@coolon/angular-ui-powerups 12.4.7 → 12.4.9
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/bundles/coolon-angular-ui-powerups.umd.js +68 -68
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/esm2015/lib/components/cards/card-container/card-container.component.js +2 -2
- package/esm2015/lib/components/commands/command/command.component.js +2 -2
- package/esm2015/lib/components/commands/command-face.js +2 -2
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +2 -2
- package/esm2015/lib/components/tables/abstract-table-model.js +2 -2
- package/esm2015/lib/components/tables/column-list-model.js +2 -2
- package/esm2015/lib/components/tables/table/column-model.js +2 -2
- package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js +2 -2
- package/esm2015/lib/components/tables/tree-table/tree-table-model.js +2 -2
- package/esm2015/lib/components/text/markdown/markdown.component.js +2 -2
- package/esm2015/lib/directives/highlight.pipe.js +2 -2
- package/esm2015/lib/interaction/alert.js +2 -2
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +2 -2
- package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +2 -2
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +2 -2
- package/esm2015/lib/interaction/components/input-activities/input-activity.js +2 -2
- package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js +2 -2
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +2 -2
- package/esm2015/lib/place/guards/consolidated-param-map.js +2 -2
- package/esm2015/lib/place/navigation/place-component-deactivation-handler.js +2 -2
- package/esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js +2 -2
- package/esm2015/lib/place/place-component.js +2 -2
- package/esm2015/lib/place/place-definition.js +2 -2
- package/esm2015/lib/place/place-history.js +2 -2
- package/esm2015/lib/place/place.decorator.js +2 -2
- package/esm2015/lib/place/route/formatter.js +2 -2
- package/esm2015/lib/place/route/parameter-definition.js +2 -2
- package/esm2015/lib/place/url-snapshot.js +2 -2
- package/esm2015/lib/place/visit.js +2 -2
- package/fesm2015/coolon-angular-ui-powerups.js +2 -3
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/package.json +4 -3
- package/schematics/place-routes/place-class-scanner.js +2 -2
- package/schematics/place-routes/place-class-scanner.js.map +1 -1
- package/schematics/utils/method-scanner.js +3 -3
- package/schematics/utils/method-scanner.js.map +1 -1
- package/schematics/utils/source-file-scanner.js +5 -5
- package/schematics/utils/source-file-scanner.js.map +1 -1
- package/schematics/utils/source-file-utilities.js +2 -2
- package/schematics/utils/source-file-utilities.js.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, ElementRef, HostBinding, Input } from '@angular/core';
|
|
2
2
|
import { lang } from '@coolon/typescript-utilities';
|
|
3
|
-
import { isInteger, isNil } from 'lodash
|
|
3
|
+
import { isInteger, isNil } from 'lodash';
|
|
4
4
|
import { AbstractCardContainerComponent } from '../abstract-card-container.component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../commands/command-face/command-face.component";
|
|
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
130
130
|
type: HostBinding,
|
|
131
131
|
args: ['class.single-column']
|
|
132
132
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkcy9jYXJkLWNvbnRhaW5lci9jYXJkLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmRzL2NhcmQtY29udGFpbmVyL2NhcmQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7O0FBR3RGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBTUgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDhCQUE4QjtJQXdCeEUsWUFBNkIsVUFBc0I7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEbUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVBuRDs7O1dBR0c7UUFFSCxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQUl0QixDQUFDO0lBdEJELElBQ0ksV0FBVyxDQUFDLEtBQXlCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBYUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxhQUFhO1FBQ2YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRVMsdUJBQXVCO1FBQy9CLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM1QixFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMvRDthQUFNO1lBQ0wsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQzs7b0hBbERVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDZRQzFFbkMsaWlDQStCQTs0RkQyQ2Esc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2lCQUMvQztpR0FNSyxXQUFXO3NCQURkLEtBQUs7Z0JBa0JOLGFBQWE7c0JBRFosS0FBSztnQkFhRixhQUFhO3NCQURoQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFNN0IsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBsYW5nIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7IGlzSW50ZWdlciwgaXNOaWwgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQWJzdHJhY3RDYXJkQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtY2FyZC1jb250YWluZXIuY29tcG9uZW50JztcblxuXG4vKipcbiAqIEBleGFtcGxlXG4gKiAvLyBiYXNpYyB1c2FnZVxuICogPGF1cC1jYXJkLWNvbnRhaW5lcj5cbiAqICAgPG15LWNhcmQgKm5nRm9yPVwiLi4uXCI+PC9teS1jYXJkPlxuICogPC9hdXAtY2FyZC1jb250YWluZXI+XG4gKlxuICogLy8gYWRkcyBhbiBhZGQgYnV0dG9uIHdpdGggYSB0aGUgJysnIGljb24gdG8gdGhlIGVuZCBvZiB0aGUgY2FyZCBsaXN0LlxuICogPGF1cC1jYXJkLWNvbnRhaW5lciBbYWRkQ2FyZENvbW1hbmRdPVwiYWRkQ2FyZFwiPlxuICogICA8bXktY2FyZCAqbmdGb3I9XCIuLi5cIj48L215LWNhcmQ+XG4gKiA8L2F1cC1jYXJkLWNvbnRhaW5lcj5cbiAqXG4gKiAvLyBhZGRzIGFuIGFkZCBidXR0b24gd2l0aCB0aGUgc3BlY2lmaWVkIGZhY2VcbiAqIDxhdXAtY2FyZC1jb250YWluZXIgW2FkZENhcmRDb21tYW5kXT1cImFkZENhcmRcIiBbYWRkQ2FyZEZhY2VdPVwiaTE4bi5hZGRDYXJkXCIgPlxuICogICA8bXktY2FyZCAqbmdGb3I9XCIuLi5cIj48L215LWNhcmQ+XG4gKiA8L2F1cC1jYXJkLWNvbnRhaW5lcj5cbiAqXG4gKiAvLyB1c2UgdGhlIGF1cC1hZGQtY2FyZC1hY3Rpdml0eSB0byBkaXNwbGF5IGFzIHRoZSBuZXcgY2FyZCBwbGFjZSBob2xkZXIgYW5kIHRvIHJ1blxuICogLy8gdGhlIGFjdGl2aXR5IGluc2lkZSB0ZWggY2FyZFxuICogPGF1cC1jYXJkLWNvbnRhaW5lciBbYWRkQ2FyZENvbW1hbmRdPVwiYWRkQ2FyZFwiIFthZGRDYXJkRmFjZV09XCJpMThuLmFkZENhcmRcIiA+XG4gKiAgIDxteS1jYXJkICpuZ0Zvcj1cIi4uLlwiPjwvbXktY2FyZD5cbiAqICAgPGF1cC1hZGQtY2FyZC1hY3Rpdml0eSB0eXBlPVwiaW5saW5lXCIgcmVuZGVyQXM9XCJjYXJkXCIgW2ZhY2VdPVwiaTE4bi5jb21tYW5kcy5hZGRNb2RhbFwiIFthY3Rpdml0eUNsYXNzXT1cIkFkZENhcmRBY3Rpdml0eVwiPjwvYXVwLWFkZC1jYXJkLWFjdGl2aXR5PlxuICogPC9hdXAtY2FyZC1jb250YWluZXI+XG4gKlxuICogLy8gYWRkcyBhbiBhZGQgY2FyZCBjb21wb25lbnQgdXNpbmcgdGhlIHNwZWNpZmllZCB0ZW1wbGF0ZS4gIFRoZSB0ZW1wbGF0ZVxuICogLy8gd2lsbCBmaWxsIGl0J3MgY29udGFpbmVyIGluIHRoZSBncmlkLlxuICogPGF1cC1jYXJkLWNvbnRhaW5lcj5cbiAqICAgPG15LWNhcmQgKm5nRm9yPVwiLi4uXCI+PC9teS1jYXJkPlxuICogICA8bmctdGVtcGxhdGUgI2FkZENhcmRUZW1wbGF0ZT5cbiAqICAgICA8ZGl2PlRoaXMgaXMgYSBuZXcgY2FyZCB0ZW1wbGF0ZSwgaXQgd2lsbCB0aGUgdGhlIHNpemUgb2YgdGhlIG90aGVyIGNhcmRzLjwvZGl2PlxuICogICA8L25nLXRlbXBsYXRlPlxuICogPC9hdXAtY2FyZC1jb250YWluZXI+XG4gKlxuICogLy8gc2luZyB0aGUgZGVmYXVsdCBuZXcgY2FyZCBzdHlsZXMgZm9yIHlvdXIgdGVtcGxhdGVcbiAqIEBpbXBvcnQgXCIuLi8uLi8uLi8uLi9hc3NldHMvc3R5bGVzXCI7XG4gKiAubXktbmV3LWNhcmQge1xuICogICBAaW5jbHVkZSBhdXAtY2FyZC1jb250YWluZXItbmV3LWNhcmQtc3R5bGUoKTtcbiAqICAgLy8gT1JcbiAqICAgQGluY2x1ZGUgYXVwLWNhcmQtY29udGFpbmVyLW5ldy1jYXJkLXN0eWxlKFxuICogICAgICAkY29sb3I6IHJnYmEoMCwwLDAsMC41NCksXG4gKiAgICAgICRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCksXG4gKiAgICAgICRob3Zlci1jb2xvcjogJGNvbG9yLFxuICogICAgICAkYmFja2dyb3VuZC1ob3Zlci1jb2xvcjogd2hpdGVcbiAqICAgKVxuICogfVxuICogPGF1cC1jYXJkLWNvbnRhaW5lcj5cbiAqICAgPG15LWNhcmQgKm5nRm9yPVwiLi4uXCI+PC9teS1jYXJkPlxuICogICA8bmctdGVtcGxhdGUgI2FkZENhcmRUZW1wbGF0ZT5cbiAqICAgICA8ZGl2IGNsYXNzPVwibXktbmV3LWNhcmRcIiA+VGhpcyBpcyBhIG5ldyBjYXJkIHRlbXBsYXRlLCBpdCB3aWxsIHRoZSB0aGUgc2l6ZSBvZiB0aGUgb3RoZXIgY2FyZHMuPC9kaXY+XG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKiA8L2F1cC1jYXJkLWNvbnRhaW5lcj5cbiAqXG4gKiAvLyBDU1MgVmFyc1xuICogYXVwLWNhcmQtY29udGFpbmVyIHtcbiAqICAgLS1jYXJkLWdhcDogdmFyKC0tY2FyZC1nYXAsIDE2cHgpO1xuICogICAtLWNhcmQtd2lkdGg6IHZhcigtLWNhcmQtd2lkdGgsIDMwMHB4KTtcbiAqICAgLS1jYXJkLW1heC13aWR0aDogYXV0bztcbiAqICAgLS1jYXJkLWhlaWdodDogdmFyKC0tY2FyZC1oZWlnaHQsIGF1dG8pO1xuICogICAtLWNhcmQtbWluLWhlaWdodDogdmFyKC0tY2FyZC1taW4taGVpZ2h0LCBhdXRvKTtcbiAqICAgLS1jYXJkLWJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmFja2dyb3VuZCwgI2ZjZmNmYik7XG4gKiB9XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1jYXJkLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q2FyZENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBzZXQgY29sdW1uQ291bnQoY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghaXNOaWwoY291bnQpICYmICghaXNJbnRlZ2VyKGNvdW50KSB8fCBjb3VudCA8IDEpKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnY29sdW1uQ291bnQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgb3IgbmlsJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gY291bnQ7XG4gICAgdGhpcy51cGRhdGVDb2x1bW5Db3VudFN0eWxlcygpO1xuICB9XG5cbiAgZ2V0IGNvbHVtbkNvdW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5Db3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgc2Nyb2xsaW5nLiAgSWYgdHJ1ZSB0aGUgY29udGFpbmVyIHdpbGwgaGF2ZSBoZWlnaHQ9PTAgc28geW91IG11c3Qgc2V0IGl0J3MgaGVpZ2h0IGV4cGxpY2l0bHlcbiAgICogb3IgcGxhY2UgaW4gYSBsYXlvdXQgdGhhdCB3aWxsIHN0cmV0Y2ggaXQgc3VjaCBhcyBhIGdyaWQgb3IgZmxleCBsYXlvdXQuXG4gICAqL1xuICBASW5wdXQoKVxuICBlbmFibGVkU2Nyb2xsID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy51cGRhdGVDb2x1bW5Db3VudFN0eWxlcygpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hdXRvLWNvbHVtbnMnKVxuICBnZXQgaXNBdXRvQ29sdW1ucygpIHtcbiAgICByZXR1cm4gaXNOaWwodGhpcy5fY29sdW1uQ291bnQpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaW5nbGUtY29sdW1uJylcbiAgZ2V0IGlzU2luZ2xlQ29sdW1uKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5Db3VudCA9PT0gMTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVDb2x1bW5Db3VudFN0eWxlcygpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChpc05pbCh0aGlzLl9jb2x1bW5Db3VudCkpIHtcbiAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KCctLWF1cC1jYXJkLWNvbnRhaW5lci1jb2x1bW4tY291bnQnLCAnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KCctLWF1cC1jYXJkLWNvbnRhaW5lci1jb2x1bW4tY291bnQnLCB0aGlzLl9jb2x1bW5Db3VudCk7XG4gICAgfVxuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDYXJkQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgZXhwb3J0IGludGVyZmFjZSBDb2x1bW5Db25maWd1cmF0aW9uIHtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIHN0cmV0Y2hUb0ZpbGw6IGJvb2xlYW47XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltjYXJkLWNvbnRhaW5lci1oZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPGRpdiBjbGFzcz1cImNhcmQtY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdiBjbGFzcz1cImFkZC1jYXJkLWNvbnRhaW5lclwiICpuZ0lmPVwiYWRkQ2FyZENvbW1hbmQuZW5hYmxlZC52YWx1ZVwiIFtwZWN0aW5Db21tYW5kXT1cImFkZENhcmRDb21tYW5kXCI+XG4gICAgICA8YXVwLWNvbW1hbmQtZmFjZSAqbmdJZj1cImFkZENhcmRGYWNlXCIgW2ZhY2VzXT1cIlthZGRDYXJkRmFjZV1cIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICA8YXVwLWljb24gKm5nSWY9XCIhYWRkQ2FyZEZhY2VcIiBpY29uPVwibWF0OmFkZFwiPjwvYXVwLWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWRkLWNhcmQtdGVtcGxhdGVcIiAqbmdJZj1cImFkZENhcmRUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGRDYXJkVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwibm8tc2Nyb2xsLWNvbnRhaW5lclwiICpuZ0lmPVwiIWVuYWJsZWRTY3JvbGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxhdXAtc2Nyb2xsLWNvbnRhaW5lciAqbmdJZj1cImVuYWJsZWRTY3JvbGxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9hdXAtc2Nyb2xsLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NhcmQtY29udGFpbmVyLWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Component, ElementRef, HostBinding, Inject, Input, Optional } from '@angular/core';
|
|
3
3
|
import { Command, Dsl, StoreInValueModel, TrackExternal, ValueModel } from '@coolon/pectin';
|
|
4
|
-
import { isEmpty } from 'lodash
|
|
4
|
+
import { isEmpty } from 'lodash';
|
|
5
5
|
import { HorizontalAlignment } from '../../alignment';
|
|
6
6
|
import { CommandFace } from '../command-face';
|
|
7
7
|
import { PopupAwareComponent } from '../group/popup-aware.component';
|
|
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
97
97
|
type: HostBinding,
|
|
98
98
|
args: ["class"]
|
|
99
99
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBRUwsT0FBTyxFQUNQLEdBQUcsRUFFSCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFVBQVUsRUFFWCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQWtCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFFM0U7O0dBRUc7QUFNSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsbUJBQW1CO0lBK0J2RCxZQUFZLE9BQW1CLEVBQXVDLE1BQXVCO1FBQzNGLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFmekIsZ0JBQVcsR0FBRyxXQUFXLENBQUM7UUFJMUIsY0FBUyxHQUF3QixtQkFBbUIsQ0FBQyxNQUFNLENBQUM7UUFZ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Q21DLE1BQU07MkJBQUMsZUFBZTs7MEJBQUcsUUFBUTs0Q0E1Qm5FLE9BQU87c0JBRE4sS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sU0FBUztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbW1hbmQsXG4gIERzbCxcbiAgTGlzdE1vZGVsQ2hhaW4sXG4gIFN0b3JlSW5WYWx1ZU1vZGVsLFxuICBUcmFja0V4dGVybmFsLFxuICBWYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsQ2hhaW5cbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEVudW0gfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5pbXBvcnQgeyBIb3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vYWxpZ25tZW50JztcbmltcG9ydCB7IENvbW1hbmRGYWNlIH0gZnJvbSAnLi4vY29tbWFuZC1mYWNlJztcbmltcG9ydCB7IFBvcHVwQXdhcmVDb21wb25lbnQgfSBmcm9tICcuLi9ncm91cC9wb3B1cC1hd2FyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUE9QVVBfQ09OVEFJTkVSLCBQb3B1cENvbnRhaW5lciB9IGZyb20gJy4uL2dyb3VwL3BvcHVwLWNvbnRhaW5lcic7XG5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWNvbW1hbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tbWFuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbW1hbmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kQ29tcG9uZW50IGV4dGVuZHMgUG9wdXBBd2FyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgQFRyYWNrRXh0ZXJuYWwoKVxuICBjb21tYW5kOiBDb21tYW5kPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIEBUcmFja0V4dGVybmFsKClcbiAgZmFjZU1vZGVsOiBWYWx1ZU1vZGVsPENvbW1hbmRGYWNlPjtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoJ2ZhY2VNb2RlbCcpXG4gIGZhY2U6IENvbW1hbmRGYWNlO1xuXG4gIEBJbnB1dCgpIEBUcmFja0V4dGVybmFsKClcbiAgYnVzeUZhY2VNb2RlbDogVmFsdWVNb2RlbDxDb21tYW5kRmFjZT47XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKCdidXN5RmFjZU1vZGVsJylcbiAgYnVzeUZhY2U6IENvbW1hbmRGYWNlO1xuXG4gIENvbW1hbmRGYWNlID0gQ29tbWFuZEZhY2U7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIilcbiAgYWxpZ25GYWNlOiBIb3Jpem9udGFsQWxpZ25tZW50ID0gSG9yaXpvbnRhbEFsaWdubWVudC5DRU5URVI7XG5cbiAgcmVhZG9ubHkgZmFjZXMkOiBMaXN0TW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG4gIHJlYWRvbmx5IGJ1dHRvblN0eWxlJDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IGNvbG9yJDogVmFsdWVNb2RlbENoYWluPCdwcmltYXJ5JyB8ICdhY2NlbnQnIHwgJ3dhcm4nIHwgdW5kZWZpbmVkPjtcbiAgcHJpdmF0ZSBhY3RpdmVGYWNlJDogVmFsdWVNb2RlbENoYWluPENvbW1hbmRGYWNlPjtcblxuICByZWFkb25seSBpY29uT25seSQ6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHJlYWRvbmx5IHRvb2x0aXAkOiBWYWx1ZU1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmLCBASW5qZWN0KFBPUFVQX0NPTlRBSU5FUikgQE9wdGlvbmFsKCkgcGFyZW50PzogUG9wdXBDb250YWluZXIpIHtcbiAgICBzdXBlcihlbGVtZW50LCBwYXJlbnQpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5mYWNlcyQgPSBjaGFpbih0aGlzLmNvbW1hbmQuYnVzeSkubWFwVG9MaXN0KGJ1c3kgPT4ge1xuICAgICAgcmV0dXJuIGJ1c3kgP1xuICAgICAgICBbdGhpcy5idXN5RmFjZU1vZGVsLnZhbHVlLCB0aGlzLmZhY2VNb2RlbC52YWx1ZV0gOlxuICAgICAgICBbdGhpcy5mYWNlTW9kZWwudmFsdWUsIHRoaXMuYnVzeUZhY2VNb2RlbC52YWx1ZV07XG4gICAgfSwgeyBhbGxvd05pbDogdHJ1ZSwgZGVwZW5kc09uOiBbdGhpcy5mYWNlTW9kZWwsIHRoaXMuYnVzeUZhY2VNb2RlbF0gfSlcbiAgICAgIC5yZWplY3ROaWwoKTtcbiAgICB0aGlzLmFjdGl2ZUZhY2UkID0gdGhpcy5mYWNlcyQuZmlyc3QoKTtcbiAgICB0aGlzLmJ1dHRvblN0eWxlJCA9IGNoYWluKHRoaXMuYWN0aXZlRmFjZSQpLm1hcChmID0+IENvbW1hbmRGYWNlLmdldFN0eWxlT2YoZikpO1xuICAgIHRoaXMuY29sb3IkID0gY2hhaW4odGhpcy5hY3RpdmVGYWNlJCkubWFwKGYgPT4gQ29tbWFuZEZhY2UuZ2V0Q29sb3JPZihmKSk7XG4gICAgdGhpcy50b29sdGlwJCA9IGNoYWluKHRoaXMuYWN0aXZlRmFjZSQpLm1hcChmID0+IENvbW1hbmRGYWNlLmdldFRvb2x0aXBPZihmKSk7XG4gICAgdGhpcy5pY29uT25seSQgPSB0aGlzLmZhY2VzJC5zZWxlY3QoZmFjZSA9PiB7XG4gICAgICByZXR1cm4gaXNFbXB0eShDb21tYW5kRmFjZS5nZXRUZXh0T2YoZmFjZSkpICYmICFpc0VtcHR5KENvbW1hbmRGYWNlLmdldEljb25PZihmYWNlKSk7XG4gICAgfSkuY291bnQoKS5lcXVhbHModGhpcy5mYWNlcyQuY291bnQoKSk7XG4gIH1cblxuICBpc0FjdGl2ZShmYWNlOiBDb21tYW5kRmFjZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhY2UkLnF1ZXJ5KCkuZXF1YWxzKGZhY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucHJldmlvdXNTaWJsaW5nKVxuICB9XG5cbiAgZ2V0RmFjZSgpOiBDb21tYW5kRmFjZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmFjZTtcbiAgfVxuXG5cbn1cblxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImljb25Pbmx5JC52YWx1ZVwiPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbcGVjdGluQ29tbWFuZF09XCJjb21tYW5kXCIgW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtjbGFzcy5idXN5XT1cImNvbW1hbmQuYnVzeS52YWx1ZVwiXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaWNvbk9ubHkkLnZhbHVlXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImJ1dHRvblN0eWxlJC52YWx1ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbW1hbmRGYWNlLlN0eWxlLlNUUk9LRURcIj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtwZWN0aW5Db21tYW5kXT1cImNvbW1hbmRcIiBbY29sb3JdPVwiY29sb3IkLnZhbHVlXCIgW2NsYXNzLmJ1c3ldPVwiY29tbWFuZC5idXN5LnZhbHVlXCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZS5TdHlsZS5SQUlTRURcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW3BlY3RpbkNvbW1hbmRdPVwiY29tbWFuZFwiIFtjb2xvcl09XCJjb2xvciQudmFsdWVcIiBbY2xhc3MuYnVzeV09XCJjb21tYW5kLmJ1c3kudmFsdWVcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbcGVjdGluQ29tbWFuZF09XCJjb21tYW5kXCIgW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtjbGFzcy5idXN5XT1cImNvbW1hbmQuYnVzeS52YWx1ZVwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAkLnZhbHVlXCI+XG4gICAgICAgIDxhdXAtY29tbWFuZC1mYWNlIFtjbGFzc109XCJhbGlnbkZhY2VcIiBbZmFjZXNdPVwiZmFjZXMkLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
3
|
-
import { isFunction } from 'lodash
|
|
3
|
+
import { isFunction } from 'lodash';
|
|
4
4
|
import { Enum } from 'typescript-string-enums';
|
|
5
5
|
export var CommandFace;
|
|
6
6
|
(function (CommandFace) {
|
|
@@ -109,4 +109,4 @@ export var CommandFace;
|
|
|
109
109
|
], Adapter.prototype, "style", null);
|
|
110
110
|
CommandFace.Adapter = Adapter;
|
|
111
111
|
})(CommandFace || (CommandFace = {}));
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1mYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQWlCL0MsTUFBTSxLQUFXLFdBQVcsQ0FtRjNCO0FBbkZELFdBQWlCLFdBQVc7SUFFMUIsSUFBWSxRQUdYO0lBSEQsV0FBWSxRQUFRO1FBQ2xCLDJCQUFlLENBQUE7UUFDZix1QkFBVyxDQUFBO0lBQ2IsQ0FBQyxFQUhXLFFBQVEsR0FBUixvQkFBUSxLQUFSLG9CQUFRLFFBR25CO0lBRVksaUJBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUsU0FBUztRQUNsQixNQUFNLEVBQUUsUUFBUTtLQUNqQixDQUFDLENBQUM7SUFHSCxTQUFnQixVQUFVLENBQUMsSUFBaUI7UUFDMUMsT0FBTyxVQUFVLENBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUUsQ0FBQztJQUZlLHNCQUFVLGFBRXpCLENBQUE7SUFFRCxTQUFnQixVQUFVLENBQUMsSUFBaUI7UUFDMUMsT0FBTyxVQUFVLENBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3InO1xuXG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEVudW0gfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZEZhY2Uge1xuICB0ZXh0PygpOiBzdHJpbmc7XG5cbiAgaWNvbj8oKTogc3RyaW5nO1xuXG4gIGljb25Qb3NpdGlvbj8oKTogc3RyaW5nO1xuXG4gIHRvb2x0aXA/KCk6IHN0cmluZztcblxuICBjb2xvcj8oKTogc3RyaW5nOyAvLyBUaGVtZVBhbGV0dGVcblxuICBzdHlsZT8oKTogc3RyaW5nOyAvLyBDb21tYW5kRmFjZS5TdHlsZTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDb21tYW5kRmFjZSB7XG5cbiAgZXhwb3J0IGVudW0gUG9zaXRpb24ge1xuICAgIFNUQVJUID0gJ3N0YXJ0JyxcbiAgICBFTkQgPSAnZW5kJ1xuICB9XG5cbiAgZXhwb3J0IGNvbnN0IFN0eWxlID0gRW51bSh7XG4gICAgRkxBVDogJ2ZsYXQnLFxuICAgIFNUUk9LRUQ6ICdzdHJva2VkJyxcbiAgICBSQUlTRUQ6ICdyYWlzZWQnXG4gIH0pO1xuICBleHBvcnQgdHlwZSBTdHlsZSA9IEVudW08dHlwZW9mIFN0eWxlPjtcblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Q29sb3JPZihmYWNlOiBDb21tYW5kRmFjZSk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZmFjZT8uY29sb3IpID8gZmFjZS5jb2xvcigpIGFzIFRoZW1lUGFsZXR0ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTdHlsZU9mKGZhY2U6IENvbW1hbmRGYWNlKTogU3R5bGUge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKGZhY2U/LnN0eWxlKSA/IGZhY2Uuc3R5bGUoKSBhcyBTdHlsZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRJY29uT2YoZmFjZTogQ29tbWFuZEZhY2UpIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbihmYWNlPy5pY29uKSA/IGZhY2UuaWNvbigpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEljb25Qb3NpdGlvbk9mKGZhY2U6IENvbW1hbmRGYWNlKSB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZmFjZT8uaWNvblBvc2l0aW9uKSA/IGZhY2UuaWNvblBvc2l0aW9uKCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcE9mKGZhY2U6IENvbW1hbmRGYWNlKSB7XG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZmFjZT8udG9vbHRpcCkgPyBmYWNlLnRvb2x0aXAoKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0T2YoZmFjZTogQ29tbWFuZEZhY2UpIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbihmYWNlPy50ZXh0KSA/IGZhY2UudGV4dCgpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEFkYXB0ZXIge1xuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZhY2U6IENvbW1hbmRGYWNlKSB7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGdldCB0ZXh0KCkge1xuICAgICAgcmV0dXJuIENvbW1hbmRGYWNlLmdldFRleHRPZih0aGlzLmZhY2UpO1xuICAgIH1cblxuICAgIEBNZW1vaXplKClcbiAgICBnZXQgaWNvbigpIHtcbiAgICAgIHJldHVybiBDb21tYW5kRmFjZS5nZXRJY29uT2YodGhpcy5mYWNlKTtcbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgZ2V0IGljb25Qb3NpdGlvbigpIHtcbiAgICAgIHJldHVybiBDb21tYW5kRmFjZS5nZXRJY29uUG9zaXRpb25PZih0aGlzLmZhY2UpO1xuICAgIH1cblxuICAgIEBNZW1vaXplKClcbiAgICBnZXQgdG9vbHRpcCgpIHtcbiAgICAgIHJldHVybiBDb21tYW5kRmFjZS5nZXRUb29sdGlwT2YodGhpcy5mYWNlKTtcbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgZ2V0IGljb25Qb3NpdGlvblN0YXJ0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaWNvblBvc2l0aW9uID09PSBDb21tYW5kRmFjZS5Qb3NpdGlvbi5TVEFSVDtcbiAgICB9XG5cbiAgICBATWVtb2l6ZSgpXG4gICAgZ2V0IGljb25Qb3NpdGlvbkVuZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmljb25Qb3NpdGlvbiA9PT0gQ29tbWFuZEZhY2UuUG9zaXRpb24uRU5EO1xuICAgIH1cblxuICAgIEBNZW1vaXplKClcbiAgICBnZXQgY29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICAgIHJldHVybiBDb21tYW5kRmFjZS5nZXRDb2xvck9mKHRoaXMuZmFjZSk7XG4gICAgfVxuXG4gICAgQE1lbW9pemUoKVxuICAgIGdldCBzdHlsZSgpOiBTdHlsZSB7XG4gICAgICByZXR1cm4gQ29tbWFuZEZhY2UuZ2V0U3R5bGVPZih0aGlzLmZhY2UpO1xuICAgIH1cblxuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Component, ContentChild, Input, TemplateRef } from '@angular/core';
|
|
3
3
|
import { Dsl, ListModel, MutableValueModel, StoreInListModel, TrackExternal } from '@coolon/pectin';
|
|
4
|
-
import { isEmpty, isString } from 'lodash
|
|
4
|
+
import { isEmpty, isString } from 'lodash';
|
|
5
5
|
import { AbstractValueInputComponent } from '../abstract-value-input.component';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/material/form-field";
|
|
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
73
73
|
}], optionLabelFormat: [{
|
|
74
74
|
type: Input
|
|
75
75
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvYXV0b2NvbXBsZXRlLWlucHV0L2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2F1dG9jb21wbGV0ZS1pbnB1dC9hdXRvY29tcGxldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUNMLEdBQUcsRUFDSCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUVoQixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBRWhGOzs7OztHQUtHO0FBTUgsTUFBTSxPQUFPLDBCQUFvQyxTQUFRLDJCQUE4QjtJQXVCckY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVBGLGdCQUFXLEdBQUcsSUFBSSxpQkFBaUIsRUFBVSxDQUFDO1FBSXRELHNCQUFpQixHQUF1QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFJbkgsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekYsTUFBTyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUNsRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDZixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBUztRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBb0M7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDOUMsQ0FBQzs7d0hBaERVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLG9XQzFCdkMscXpDQTZCQTtBREFFO0lBRFUsYUFBYSxFQUFFOzhCQUNYLFNBQVM7Z0VBQUk7QUFHM0I7SUFEVSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7OzJEQUM3Qjs0RkFORiwwQkFBMEI7a0JBTHRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsV0FBVyxFQUFFLHFDQUFxQztvQkFDbEQsU0FBUyxFQUFFLENBQUMscUNBQXFDLENBQUM7aUJBQ25EOzBFQUlDLFlBQVk7c0JBRFgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsbUJBQW1CO2dCQU9qQyxpQkFBaUI7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtcbiAgRHNsLFxuICBMaXN0TW9kZWwsXG4gIExpc3RNb2RlbENoYWluLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgU3RvcmVJbkxpc3RNb2RlbCxcbiAgVHJhY2UsXG4gIFRyYWNrRXh0ZXJuYWwsIFRyYW5zYWN0aW9uT2JzZXJ2ZXJcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG5pbXBvcnQgeyBpc0VtcHR5LCBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBYnN0cmFjdFZhbHVlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFVzaW5nIHRlbXBsYXRlcyAobm90IG9ubHkgc3VwcG9ydGVkIGZvciBuaWwgdmFsdWVzOlxuICogPGF1cC1hdXRvY29tcGxldGUtaW5wdXQgW3ZhbHVlTW9kZWxdPVwibXlNb2RlbFwiIFtvcHRpb25zXT1cIm15T3B0aW9uc1wiPlxuICogICA8bmctdGVtcGxhdGUgI25pbE9wdGlvblRlbXBsYXRlIGxldC1vcHRpb24+e3tvcHRpb24udGhlUHJvcGVydHlZb3VXYW50fX08L25nLXRlbXBsYXRlPlxuICogPC9hdXAtYXV0b2NvbXBsZXRlLWlucHV0PlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtYXV0b2NvbXBsZXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBAVHJhY2tFeHRlcm5hbCgpXG4gIG9wdGlvbnNNb2RlbDogTGlzdE1vZGVsPFQ+O1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluTGlzdE1vZGVsKCdvcHRpb25zTW9kZWwnKVxuICBvcHRpb25zOiBUW107XG5cbiAgQElucHV0KClcbiAgb3B0aW9uTGFiZWw6IGtleW9mIFQ7XG5cbiAgQElucHV0KClcbiAgYWxsb3dOaWw6IGJvb2xlYW47XG5cbiAgQENvbnRlbnRDaGlsZCgnbmlsT3B0aW9uVGVtcGxhdGUnKVxuICBuaWxPcHRpb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIGZpbHRlclZhbHVlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZmlsdGVyZWRPcHRpb25zOiBMaXN0TW9kZWxDaGFpbjxUPjtcblxuICBASW5wdXQoKVxuICBvcHRpb25MYWJlbEZvcm1hdDogKG9wdGlvbjogVCkgPT4gYW55ID0gKG9wdGlvbikgPT4gKG9wdGlvbiAmJiB0aGlzLm9wdGlvbkxhYmVsKSA/IG9wdGlvblt0aGlzLm9wdGlvbkxhYmVsXSA6IG9wdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgY29uc3QgIGxvd2VyQ2FzZUZpbHRlclZhbHVlID0gY2hhaW4odGhpcy5maWx0ZXJWYWx1ZSlcbiAgICAgIC5tYXAodiA9PiBpc1N0cmluZyh2KSA/IHYudG9Mb3dlckNhc2UoKSA6ICcnKTtcblxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gY2hhaW4odGhpcy5vcHRpb25zTW9kZWwpXG4gICAgICAuc2VsZWN0KG9wdGlvbiA9PiB7XG4gICAgICAgIHJldHVybiBpc0VtcHR5KHRoaXMuZmlsdGVyVmFsdWUudmFsdWUpIHx8IHRoaXMub3B0aW9uTGFiZWxGb3JtYXQob3B0aW9uKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJDYXNlRmlsdGVyVmFsdWUudmFsdWUpO1xuICAgICAgfSwgeyBkZXBlbmRzT246IGxvd2VyQ2FzZUZpbHRlclZhbHVlIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBmb3JtYXRPcHRpb24ob3B0aW9uOiBUKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uTGFiZWxGb3JtYXQob3B0aW9uKTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcigkZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyVmFsdWUudmFsdWUgPSAkZXZlbnQ7XG4gIH1cblxuICBvblNlbGVjdCgkZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICB0aGlzLnZhbHVlTW9kZWwudmFsdWUgPSAkZXZlbnQub3B0aW9uLnZhbHVlO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cInN0YW5kYXJkXCIgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IHR5cGU9XCJzdHJpbmdcIlxuICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgIHBsYWNlaG9sZGVyPVwie3twbGFjZWhvbGRlcn19XCJcbiAgICAgICAgIFtuZ01vZGVsXT1cImNvbXBvbmVudFZhbHVlTW9kZWwudmFsdWVcIlxuICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyKCRldmVudClcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbmFibGVkLnZhbHVlXCJcbiAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5vdGlmeUVudGVyS2V5KClcIlxuICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm5vdGlmeUVzY2FwZUtleSgpXCJcbiAgICAgICAgIFtwZWN0aW5Gb2N1c0JpbmRpbmddPVwiZm9jdXNDb250ZXh0XCJcbiAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvclN0YXRlTWF0Y2hlclwiXG4gID5cbiAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG9jb21wbGV0ZSBbZGlzcGxheVdpdGhdPVwib3B0aW9uTGFiZWxGb3JtYXRcIiBbYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXT1cInRydWVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50KVwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zLnZhbHVlOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICA+e3tmb3JtYXRPcHRpb24ob3B0aW9uKX19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImFsbG93TmlsXCI+e3twbGFjZWhvbGRlcn19PC9tYXQtb3B0aW9uPlxuICA8L21hdC1hdXRvY29tcGxldGU+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwic2hvd0hpbnRcIj57e2hpbnR9fTwvbWF0LWhpbnQ+XG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNFcnJvcnNcIj57e2ZpcnN0RXJyb3J9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD5cbjxkaXYgY2xhc3M9XCJ3aWR0aC1zdHJ1dFwiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L21hdC1sYWJlbD5cbiAgPGRpdj57e3BsYWNlaG9sZGVyfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCI+e3tvcHRpb25MYWJlbEZvcm1hdChpdGVtKX19PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assert, DelegatingListModel, DirtyTrackingForm, Dsl, EventListenerList, GarbageCollector, lang, MutableListModel, TrackExternal, ValueModel } from '@coolon/pectin';
|
|
2
|
-
import { isFunction, isNil } from 'lodash
|
|
2
|
+
import { isFunction, isNil } from 'lodash';
|
|
3
3
|
import { ColumnListModel } from './column-list-model';
|
|
4
4
|
import { EditSession } from './edit-session';
|
|
5
5
|
import { CustomTemplateColumnModel, CustomValueColumnModel, EditorControlColumnModel, ListPropertyColumnModel, PropertyColumnModel, SelectionColumnModel } from './table/column-model';
|
|
@@ -185,4 +185,4 @@ export class AbstractTableModel extends GarbageCollector {
|
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
TrackExternal.oneTimeBinding(AbstractTableModel);
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9hYnN0cmFjdC10YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsTUFBTSxFQUdOLG1CQUFtQixFQUNuQixpQkFBaUIsRUFFakIsR0FBRyxFQUNILGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsSUFBSSxFQUlKLGdCQUFnQixFQUVoQixhQUFhLEVBRWIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBR0wseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBRXZCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDckIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixvR0FBb0c7QUFDcEcsb0dBQW9HO0FBRXBHLE1BQU0sUUFBUTtJQUNaLFlBQXFCLFNBQWlCLEVBQ2pCLE9BQThCO1FBRDlCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFDbkQsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLGtCQUF3QixTQUFRLGdCQUFnQjtJQTBCM0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXpCTyxnQkFBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG1CQUFtQixFQUFPLENBQUMsQ0FBQztRQUd0RSxnQkFBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJ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LElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFHRCxhQUFhLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLCBDb21tYW5kLFxuICBDb21tYW5kRmFjdG9yeSxcbiAgRGVsZWdhdGluZ0xpc3RNb2RlbCxcbiAgRGlydHlUcmFja2luZ0Zvcm0sXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgRXZlbnRMaXN0ZW5lckxpc3QsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsXG4gIGxhbmcsXG4gIExpc3RNb2RlbCxcbiAgTGlzdE1vZGVsQ2hhaW4sXG4gIE1hcE1vZGVsQ2hhaW4sXG4gIE11dGFibGVMaXN0TW9kZWwsXG4gIFNlbGVjdGlvbk1vZGVsLFxuICBUcmFja0V4dGVybmFsLFxuICBUeXBlcyxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQ29sdW1uTGlzdE1vZGVsIH0gZnJvbSAnLi9jb2x1bW4tbGlzdC1tb2RlbCc7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4vZWRpdC1zZXNzaW9uJztcbmltcG9ydCB7IENlbGxSZW5kZXJlciB9IGZyb20gJy4vdGFibGUvY2VsbC1yZW5kZXJlcic7XG5pbXBvcnQge1xuICBDZWxsUmVuZGVyZXJPcHRpb25zLFxuICBDb2x1bW5Nb2RlbCxcbiAgQ3VzdG9tVGVtcGxhdGVDb2x1bW5Nb2RlbCxcbiAgQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbCxcbiAgRWRpdG9yQ29udHJvbENvbHVtbk1vZGVsLFxuICBMaXN0UHJvcGVydHlDb2x1bW5Nb2RlbCxcbiAgT25Db21wb25lbnRJbml0LFxuICBQcm9wZXJ0eUNvbHVtbk1vZGVsLFxuICBTZWxlY3Rpb25Db2x1bW5Nb2RlbFxufSBmcm9tICcuL3RhYmxlL2NvbHVtbi1tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5UZXh0UHJvcGVydGllcyB9IGZyb20gJy4vdGFibGUvY29sdW1uLXRleHQtcHJvcGVydGllcyc7XG5cbi8vIGV4cG9ydCB0eXBlIFN0cmluZ1Byb3BlcnRpZXNPZjxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcbi8vIGV4cG9ydCB0eXBlIE51bWJlclByb3BlcnRpZXNPZjxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBudW1iZXIgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcblxuY2xhc3MgUm93Q2xhc3M8Um93PiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICByZWFkb25seSBtYXRjaGVzOiAocm93OiBSb3cpID0+IGJvb2xlYW4pIHtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFRhYmxlTW9kZWw8Um93PiBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2UgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ0xpc3RNb2RlbDxSb3c+KCkpO1xuICByZWFkb25seSBkYXRhU291cmNlOiBMaXN0TW9kZWxDaGFpbjxSb3c+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbHVtbkxpc3QgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgQ29sdW1uTGlzdE1vZGVsPFJvdz4oKSk7XG5cbiAgcHJpdmF0ZSBfZWRpdG9yU2Vzc2lvbnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxFZGl0U2Vzc2lvbjxSb3c+PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yb3dzQmVpbmdFZGl0ZWQ6IE11dGFibGVMaXN0TW9kZWw8Um93PjtcbiAgcHJpdmF0ZSByZWFkb25seSByb3dDbGFzc05hbWVQcmVkaWNhdGVzOiBSb3dDbGFzczxSb3c+W10gPSBbXTtcblxuICBwcml2YXRlIF9jb2x1bW5UZXh0UHJvcGVydGllc0xvb2t1cDogeyBbY29sdW1uTmFtZTogc3RyaW5nXTogQ29sdW1uVGV4dFByb3BlcnRpZXMgfTtcblxuICBwcml2YXRlIHNhdmVDb21tYW5kRmFjdG9yeTogQ29tbWFuZC5GYWN0b3J5PERpcnR5VHJhY2tpbmdGb3JtPFJvdz4sIGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+PjtcbiAgcHJpdmF0ZSBfZWRpdG9yU2Vzc2lvbkJ5Um93SWQ6IE1hcE1vZGVsQ2hhaW48YW55LCBFZGl0U2Vzc2lvbjxSb3c+PjtcblxuICByZWFkb25seSBlZGl0aW5nOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSBmaXJzdEVkaXRhYmxlQ29sdW1uOiBWYWx1ZU1vZGVsQ2hhaW48Q29sdW1uTW9kZWw8Um93Pj47XG4gIHByaXZhdGUgc2VsZWN0aW9uQ29sdW1uTW9kZWw6IFNlbGVjdGlvbkNvbHVtbk1vZGVsPFJvdz47XG4gIHByaXZhdGUgcm93U2VsZWN0aW9uRGlzYWJsZWRPbkFsbENvbHVtbnM6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHByaXZhdGUgcmVhZG9ubHkgcm93Q2xpY2tMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8KHJvdzogUm93KSA9PiB2b2lkPigpO1xuICByZWFkb25seSBmaXJzdFZpc2libGVDb2x1bW46IFZhbHVlTW9kZWw8Q29sdW1uTW9kZWw8Um93Pj47XG4gIHJlYWRvbmx5IGxhc3RWaXNpYmxlQ29sdW1uOiBWYWx1ZU1vZGVsPENvbHVtbk1vZGVsPFJvdz4+O1xuXG4gIHByaXZhdGUgX2NyZWF0ZUZvcm06IChyb3c6IFJvdykgPT4gRGlydHlUcmFja2luZ0Zvcm08Um93PiA9IChyb3cpID0+IG5ldyBEaXJ0eVRyYWNraW5nRm9ybTxSb3c+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxSb3c+KFtdLCB7XG4gICAgICBpZGVudGlmaWVkV2l0aDogcm93ID0+IHRoaXMuaWRlbnRpdHlPZihyb3cpXG4gICAgfSk7XG4gICAgdGhpcy5fZWRpdG9yU2Vzc2lvbkJ5Um93SWQgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuaW5kZXhCeSgncm93SWQnKTtcbiAgICB0aGlzLmVkaXRpbmcgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuY291bnQoKS5pc0dyZWF0ZXJUaGFuKDApO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGNoYWluKHRoaXMuX2RhdGFTb3VyY2UpLnJlcGxhY2VBbGwodGhpcy5yb3dzQmVpbmdFZGl0ZWQpO1xuXG4gICAgdGhpcy5maXJzdEVkaXRhYmxlQ29sdW1uID0gY2hhaW4odGhpcy5jb2x1bW5zKS5zZWxlY3QoYyA9PiBjLmhhc0VkaXRvclBvcnRhbCgpKS5maXJzdCgpO1xuICAgIHRoaXMuZmlyc3RWaXNpYmxlQ29sdW1uID0gY2hhaW4odGhpcy5fY29sdW1uTGlzdCkuZmlyc3QoKTtcbiAgICB0aGlzLmxhc3RWaXNpYmxlQ29sdW1uID0gY2hhaW4odGhpcy5fY29sdW1uTGlzdCkubGFzdCgpO1xuXG4gICAgdGhpcy5yb3dTZWxlY3Rpb25EaXNhYmxlZE9uQWxsQ29sdW1ucyA9IGNoYWluKHRoaXMuX2NvbHVtbkxpc3QpLnNlbGVjdChjb2x1bW4gPT4gY29sdW1uLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpKS5jb3VudCgpLmVxdWFscygwKTtcbiAgfVxuXG4gIGZpbmRNYXRjaGluZ0NvbHVtbnMocm93OiBSb3csIHJlZ2V4OiBSZWdFeHApOiBDb2x1bW5Nb2RlbDxSb3c+W10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMudmFsdWUuZmlsdGVyKGMgPT4gYy5pc1RleHRNYXRjaChyb3csIHJlZ2V4KSk7XG4gIH1cblxuICBoYXNNYXRjaGluZ0NvbHVtbihyb3c6IFJvdywgcmVnZXg6IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29sdW1ucy52YWx1ZS5maW5kKGMgPT4gYy5pc1RleHRNYXRjaChyb3csIHJlZ2V4KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0RGF0YVNvdXJjZShzb3VyY2VPZlRydXRoOiBMaXN0TW9kZWw8Um93Pikge1xuICAgIHRoaXMuX2RhdGFTb3VyY2Uuc2V0RGVsZWdhdGUoc291cmNlT2ZUcnV0aCk7XG4gIH1cblxuICBpZGVudGl0eU9mKHJvdzogUm93KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZS5pZGVudGl0eU9mKHJvdyk7XG4gIH1cblxuICBnZXQgcm93c0JlaW5nRWRpdGVkKCk6IExpc3RNb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fcm93c0JlaW5nRWRpdGVkLnJlYWRvbmx5O1xuICB9XG5cbiAgcmVhZG9ubHkgdHJhY2tCeSA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBSb3cpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eU9mID8gdGhpcy5pZGVudGl0eU9mKGl0ZW0pIDogaW5kZXg7XG4gIH07XG5cbiAgZ2V0IGNvbHVtbnMoKTogTGlzdE1vZGVsPENvbHVtbk1vZGVsPFJvdz4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uTGlzdC5hbGxDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IHZpc2libGVDb2x1bW5zKCk6IExpc3RNb2RlbDxDb2x1bW5Nb2RlbDxSb3c+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkxpc3QucmVhZG9ubHk7XG4gIH1cblxuICBwbHVjazxQIGV4dGVuZHMgVHlwZXMuVmFsdWVQcm9wZXJ0aWVzT2Y8Um93Pj4ocHJvcGVydHk6IFAsIG9wdGlvbnM/OiB7IGNvbHVtbklkOiBzdHJpbmcgfSk6IFByb3BlcnR5Q29sdW1uTW9kZWw8Um93LCBQPiB7XG4gICAgY29uc3QgY29sdW1uSWQgPSBvcHRpb25zPy5jb2x1bW5JZCB8fCBwcm9wZXJ0eS50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihuZXcgUHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFA+KGNvbHVtbklkLCBwcm9wZXJ0eSwgKCkgPT4gdGhpcy5nZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZCkpKTtcbiAgfVxuXG4gIHBsdWNrTGlzdDxQIGV4dGVuZHMgVHlwZXMuQXJyYXlQcm9wZXJ0aWVzT2Y8Um93Pj4ocHJvcGVydHk6IFAsIG9wdGlvbnM/OiB7IGNvbHVtbklkOiBzdHJpbmcgfSk6IExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUD4ge1xuICAgIGNvbnN0IGNvbHVtbklkID0gb3B0aW9ucz8uY29sdW1uSWQgfHwgcHJvcGVydHkudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUD4oY29sdW1uSWQsIHByb3BlcnR5LCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9hZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWw/OiBTZWxlY3Rpb25Nb2RlbDxSb3c+LCB2aXNpYmxlPzogVmFsdWVNb2RlbDxib29sZWFuPiB8IGJvb2xlYW4pOiBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+IHtcbiAgICBhc3NlcnQuaXNOaWwodGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCk7XG4gICAgY29uc3QgY29sdW1uSWQgPSAnc2VsZWN0aW9uLWNvbHVtbic7XG4gICAgdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+KGNvbHVtbklkLCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSwgc2VsZWN0aW9uTW9kZWwpO1xuICAgIHRoaXMuYWRkUm93Q2xhc3MoJ2F1cC1yb3ctc2VsZWN0ZWQnLCByb3cgPT4gdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbC5pc1NlbGVjdGVkKHJvdykpO1xuICAgIGNvbnN0IHNlbGVjdGlvbkNvbHVtbk1vZGVsID0gdGhpcy5hZGRDb2x1bW4odGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCwgMCk7XG4gICAgaWYgKCFpc05pbCh2aXNpYmxlKSkge1xuICAgICAgc2VsZWN0aW9uQ29sdW1uTW9kZWwudmlzaWJsZVdoaWxlKHZpc2libGUgaW5zdGFuY2VvZiBWYWx1ZU1vZGVsID8gdmlzaWJsZSA6IFZhbHVlTW9kZWwuY29uc3RhbnQodmlzaWJsZSkpO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0aW9uQ29sdW1uTW9kZWw7XG4gIH1cblxuICBhZGRFZGl0Q29udHJvbHMoc2F2ZUNvbW1hbmRGYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8RGlydHlUcmFja2luZ0Zvcm08Um93PiwgYm9vbGVhbnxQcm9taXNlPGJvb2xlYW4+PiwgZm9ybUZhY3Rvcnk/OiAocm93OiBSb3cpID0+IERpcnR5VHJhY2tpbmdGb3JtPFJvdz4pOiBFZGl0b3JDb250cm9sQ29sdW1uTW9kZWw8Um93PiB7XG4gICAgdGhpcy5zYXZlQ29tbWFuZEZhY3RvcnkgPSBzYXZlQ29tbWFuZEZhY3Rvcnk7XG4gICAgaWYgKGlzRnVuY3Rpb24oZm9ybUZhY3RvcnkpKSB7XG4gICAgICB0aGlzLl9jcmVhdGVGb3JtID0gZm9ybUZhY3Rvcnk7XG4gICAgfVxuICAgIGNvbnN0IGNvbHVtbklkID0gJ2VkaXRDb250cm9scyc7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29sdW1uKG5ldyBFZGl0b3JDb250cm9sQ29sdW1uTW9kZWw8Um93Pihjb2x1bW5JZCwgc2F2ZUNvbW1hbmRGYWN0b3J5LCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgYWRkQ3VzdG9tQ29sdW1uPFY+KGNvbHVtbklkOiBzdHJpbmcsIGRhdGFBY2Nlc3NvcjogKHJvdzogUm93KSA9PiBWKTogQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFY+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBWPihjb2x1bW5JZCwgKCkgPT4gdGhpcy5nZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZCksIGRhdGFBY2Nlc3NvcikpO1xuICB9XG5cbiAgYWRkQ29tcG9uZW50Q29sdW1uPEMgZXh0ZW5kcyBDZWxsUmVuZGVyZXI8UGFydGlhbDxSb3c+Pj4oY29sdW1uSWQ6IHN0cmluZywgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEM+LCBvbkluaXQ/OiBPbkNvbXBvbmVudEluaXQ8Qz4pOiBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgUm93PlxuICBhZGRDb21wb25lbnRDb2x1bW48QyBleHRlbmRzIENlbGxSZW5kZXJlcjxQYXJ0aWFsPFJvdz4+Pihjb2x1bW5JZDogc3RyaW5nLCBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIG9wdGlvbnM/OiBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgQz4pOiBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgUm93PlxuICBhZGRDb21wb25lbnRDb2x1bW48QyBleHRlbmRzIENlbGxSZW5kZXJlcjxQYXJ0aWFsPFJvdz4+Pihjb2x1bW5JZDogc3RyaW5nLCBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucz86IE9uQ29tcG9uZW50SW5pdDxDPiB8IENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBDPik6IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBSb3c+KGNvbHVtbklkLCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSwgcm93ID0+IHJvdykpLmNlbGxSZW5kZXJlcihjb21wb25lbnQsIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucyk7XG4gIH1cblxuICBhZGRUZW1wbGF0ZUNvbHVtbjxWPihjb2x1bW5JZDogc3RyaW5nKTogQ3VzdG9tVGVtcGxhdGVDb2x1bW5Nb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVRlbXBsYXRlQ29sdW1uTW9kZWw8Um93Pihjb2x1bW5JZCwgKCkgPT4gdGhpcy5nZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZCkpKTtcbiAgfVxuXG4gIGFkZFJvd0NsYXNzKGNsYXNzTmFtZTogc3RyaW5nLCBwcmVkaWNhdGU6IChyb3c6IFJvdykgPT4gYm9vbGVhbikge1xuICAgIHRoaXMucm93Q2xhc3NOYW1lUHJlZGljYXRlcy5wdXNoKG5ldyBSb3dDbGFzczxSb3c+KGNsYXNzTmFtZSwgcHJlZGljYXRlKSk7XG4gIH1cblxuICBnZXRSb3dDbGFzc2VzKHJvdzogUm93KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNsYXNzTmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5yb3dDbGFzc05hbWVQcmVkaWNhdGVzLmZvckVhY2goaSA9PiB7XG4gICAgICBpZiAoaS5tYXRjaGVzKHJvdykpIHtcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGkuY2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2xhc3NOYW1lcztcbiAgfVxuXG4gIHVzZUZvcm1GYWN0b3J5KGZhY3Rvcnk6IChyb3c6IFJvdykgPT4gRGlydHlUcmFja2luZ0Zvcm08Um93Pik6IHRoaXMge1xuICAgIHRoaXMuX2NyZWF0ZUZvcm0gPSBmYWN0b3J5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZENvbHVtbjxDIGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93Pj4oY29sdW1uOiBDLCBpbmRleD86IG51bWJlcik6IEMge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5MaXN0LmFkZENvbHVtbihjb2x1bW4sIGluZGV4KTtcbiAgfVxuXG4gIC8vIHJlbW92ZUNvbHVtbihjb2x1bW46IENvbHVtbk1vZGVsPFJvdz4pIHtcbiAgLy9cbiAgLy8gfVxuXG4gIGNvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtblRleHRQcm9wZXJ0aWVzOiB7IFtjb2x1bW5OYW1lOiBzdHJpbmddOiBDb2x1bW5UZXh0UHJvcGVydGllcyB9KSB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXNMb29rdXAgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgfVxuXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkOiBzdHJpbmcpOiBDb2x1bW5UZXh0UHJvcGVydGllcyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtblRleHRQcm9wZXJ0aWVzTG9va3VwID8gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXNMb29rdXBbY29sdW1uSWRdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhcnRFZGl0U2Vzc2lvbihyb3c6IFJvdyk6IEVkaXRTZXNzaW9uPFJvdz4ge1xuICAgIGNvbnN0IHJvd0lkID0gdGhpcy5pZGVudGl0eU9mKHJvdyk7XG4gICAgaWYgKHRoaXMuX3Jvd3NCZWluZ0VkaXRlZC5xdWVyeSgpLmluZGV4T2Yocm93KSA+IC0xKSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYFJvdyB3aXRoIGlkPSR7cm93SWR9IGFscmVhZHkgYmVpbmcgZWRpdGVkYCk7XG4gICAgfVxuXG4gICAgLy8gdG9kbzogcGFzcyB0aGUgZmFjdG9yaWVzIHRvIHRoZSBlZGl0IHNlc3Npb24gc28gd2UgY2FuIG1ha2UgdGhlIHdob2xlIGxvdCBwbHVnZ2FibGU/XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuX2NyZWF0ZUZvcm0ocm93KTtcbiAgICBjb25zdCBzYXZlQ29tbWFuZCA9IHRoaXMuc2F2ZUNvbW1hbmRGYWN0b3J5LmNyZWF0ZShmb3JtKTtcbiAgICBjb25zdCBlZGl0U2Vzc2lvbiA9IG5ldyBFZGl0U2Vzc2lvbjxSb3c+KHJvd0lkLCByb3csIGZvcm0sIHNhdmVDb21tYW5kKTtcbiAgICBjb25zdCB7IHdoZW4gfSA9IERzbC5kaXNwb3NlV2l0aChlZGl0U2Vzc2lvbik7XG4gICAgd2hlbihlZGl0U2Vzc2lvbi5saXZlUm93VmFsdWUpLmNoYW5nZXMoKGVkaXRlZFZhbHVlKSA9PiB7XG4gICAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQucmVwbGFjZU9yUHVzaChlZGl0ZWRWYWx1ZSk7XG4gICAgfSwgeyBpbml0aWFsVmFsdWU6ICd0cmlnZ2VyQ2hhbmdlVW5sZXNzTmlsJyB9KTtcblxuICAgIHRoaXMuX2VkaXRvclNlc3Npb25zLnB1c2goZWRpdFNlc3Npb24pO1xuICAgIGVkaXRTZXNzaW9uLm9uRGlzcG9zZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQucmVtb3ZlKGVkaXRTZXNzaW9uLmxpdmVSb3dWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLl9lZGl0b3JTZXNzaW9ucy5yZW1vdmUoZWRpdFNlc3Npb24pO1xuICAgIH0pO1xuICAgIHJldHVybiBlZGl0U2Vzc2lvbjtcbiAgfVxuXG4gIGdldEVkaXRTZXNzaW9uRm9yKHJvdzogUm93KTogRWRpdFNlc3Npb248Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvclNlc3Npb25CeVJvd0lkLmdldCh0aGlzLmlkZW50aXR5T2Yocm93KSk7XG4gIH1cblxuICBjYW5jZWxBbGxFZGl0b3JTZXNzaW9ucygpIHtcbiAgICB0aGlzLl9lZGl0b3JTZXNzaW9ucy5ydW5JblRyYW5zYWN0aW9uKChkcmFmdCkgPT4ge1xuICAgICAgdGhpcy5fcm93c0JlaW5nRWRpdGVkLnJ1bkluVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBkcmFmdC52YWx1ZS5mb3JFYWNoKHNlc3Npb24gPT4gc2Vzc2lvbi5kaXNwb3NlKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGlvbkVuYWJsZWRGb3IoY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSb3dTZWxlY3Rpb25FbmFibGVkKCkgJiYgY29sdW1uLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpO1xuICB9XG5cbiAgaXNSb3dTZWxlY3Rpb25FbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmhhc1VzZXJTZWxlY3Rpb25Nb2RlbCgpICYmICF0aGlzLnJvd1NlbGVjdGlvbkRpc2FibGVkT25BbGxDb2x1bW5zLnZhbHVlO1xuICB9XG5cbiAgaGFzVXNlclNlbGVjdGlvbk1vZGVsKCkge1xuICAgIHJldHVybiAhIXRoaXMuc2VsZWN0aW9uQ29sdW1uTW9kZWw/LnNlbGVjdGlvbk1vZGVsLmdldERlbGVnYXRlKCk7XG4gIH1cblxuICBnZXRTZWxlY3Rpb25Nb2RlbCgpOiBTZWxlY3Rpb25Nb2RlbDxSb3c+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbD8uc2VsZWN0aW9uTW9kZWw7XG4gIH1cblxuICBpc0hvdmVyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKSB8fCB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmxpc3RlbmVyQ291bnQgPiAwO1xuICB9XG5cbiAgaXNDdXJzb3JFbmFibGVkKGNvbHVtbjogQ29sdW1uTW9kZWw8Um93Pikge1xuICAgIHJldHVybiB0aGlzLmlzUm93U2VsZWN0aW9uRW5hYmxlZEZvcihjb2x1bW4pIHx8IHRoaXMucm93Q2xpY2tMaXN0ZW5lcnMubGlzdGVuZXJDb3VudCA+IDA7XG4gIH1cblxuICBzZWxlY3RSb3cocm93OiBSb3cpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsPy5zZWxlY3RSb3cocm93KTtcbiAgfVxuXG4gIG9uUm93Q2xpY2tlZChjYWxsYmFjazogKHJvdzogUm93KSA9PiB2b2lkKTogRGlzcG9zYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMucm93Q2xpY2tMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIF9ub3RpZnlDZWxsQ2xpY2tlZChjb2x1bW5Nb2RlbDogQ29sdW1uTW9kZWw8Um93Piwgcm93OiBSb3cpIHtcbiAgICBpZiAodGhpcy5pc1Jvd1NlbGVjdGlvbkVuYWJsZWRGb3IoY29sdW1uTW9kZWwpKSB7XG4gICAgICB0aGlzLnNlbGVjdFJvdyhyb3cpO1xuICAgIH1cbiAgICB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmZpcmUobCA9PiBsKHJvdykpO1xuICB9XG59XG5cblxuVHJhY2tFeHRlcm5hbC5vbmVUaW1lQmluZGluZyhBYnN0cmFjdFRhYmxlTW9kZWwpO1xuIl19
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9hYnN0cmFjdC10YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsTUFBTSxFQUdOLG1CQUFtQixFQUNuQixpQkFBaUIsRUFFakIsR0FBRyxFQUNILGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsSUFBSSxFQUlKLGdCQUFnQixFQUVoQixhQUFhLEVBRWIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBR0wseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBRXZCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDckIsTUFBTSxzQkFBc0IsQ0FBQztBQUc5QixvR0FBb0c7QUFDcEcsb0dBQW9HO0FBRXBHLE1BQU0sUUFBUTtJQUNaLFlBQXFCLFNBQWlCLEVBQ2pCLE9BQThCO1FBRDlCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFDbkQsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLGtCQUF3QixTQUFRLGdCQUFnQjtJQTBCM0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXpCTyxnQkFBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG1CQUFtQixFQUFPLENBQUMsQ0FBQztRQUd0RSxnQkFBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJ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LElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFHRCxhQUFhLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLCBDb21tYW5kLFxuICBDb21tYW5kRmFjdG9yeSxcbiAgRGVsZWdhdGluZ0xpc3RNb2RlbCxcbiAgRGlydHlUcmFja2luZ0Zvcm0sXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgRXZlbnRMaXN0ZW5lckxpc3QsXG4gIEdhcmJhZ2VDb2xsZWN0b3IsXG4gIGxhbmcsXG4gIExpc3RNb2RlbCxcbiAgTGlzdE1vZGVsQ2hhaW4sXG4gIE1hcE1vZGVsQ2hhaW4sXG4gIE11dGFibGVMaXN0TW9kZWwsXG4gIFNlbGVjdGlvbk1vZGVsLFxuICBUcmFja0V4dGVybmFsLFxuICBUeXBlcyxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOaWwgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ29sdW1uTGlzdE1vZGVsIH0gZnJvbSAnLi9jb2x1bW4tbGlzdC1tb2RlbCc7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4vZWRpdC1zZXNzaW9uJztcbmltcG9ydCB7IENlbGxSZW5kZXJlciB9IGZyb20gJy4vdGFibGUvY2VsbC1yZW5kZXJlcic7XG5pbXBvcnQge1xuICBDZWxsUmVuZGVyZXJPcHRpb25zLFxuICBDb2x1bW5Nb2RlbCxcbiAgQ3VzdG9tVGVtcGxhdGVDb2x1bW5Nb2RlbCxcbiAgQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbCxcbiAgRWRpdG9yQ29udHJvbENvbHVtbk1vZGVsLFxuICBMaXN0UHJvcGVydHlDb2x1bW5Nb2RlbCxcbiAgT25Db21wb25lbnRJbml0LFxuICBQcm9wZXJ0eUNvbHVtbk1vZGVsLFxuICBTZWxlY3Rpb25Db2x1bW5Nb2RlbFxufSBmcm9tICcuL3RhYmxlL2NvbHVtbi1tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5UZXh0UHJvcGVydGllcyB9IGZyb20gJy4vdGFibGUvY29sdW1uLXRleHQtcHJvcGVydGllcyc7XG5cbi8vIGV4cG9ydCB0eXBlIFN0cmluZ1Byb3BlcnRpZXNPZjxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcbi8vIGV4cG9ydCB0eXBlIE51bWJlclByb3BlcnRpZXNPZjxUPiA9IHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBudW1iZXIgPyBLIDogbmV2ZXIgfVtrZXlvZiBUXTtcblxuY2xhc3MgUm93Q2xhc3M8Um93PiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICByZWFkb25seSBtYXRjaGVzOiAocm93OiBSb3cpID0+IGJvb2xlYW4pIHtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFRhYmxlTW9kZWw8Um93PiBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2UgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ0xpc3RNb2RlbDxSb3c+KCkpO1xuICByZWFkb25seSBkYXRhU291cmNlOiBMaXN0TW9kZWxDaGFpbjxSb3c+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbHVtbkxpc3QgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgQ29sdW1uTGlzdE1vZGVsPFJvdz4oKSk7XG5cbiAgcHJpdmF0ZSBfZWRpdG9yU2Vzc2lvbnMgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxFZGl0U2Vzc2lvbjxSb3c+PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yb3dzQmVpbmdFZGl0ZWQ6IE11dGFibGVMaXN0TW9kZWw8Um93PjtcbiAgcHJpdmF0ZSByZWFkb25seSByb3dDbGFzc05hbWVQcmVkaWNhdGVzOiBSb3dDbGFzczxSb3c+W10gPSBbXTtcblxuICBwcml2YXRlIF9jb2x1bW5UZXh0UHJvcGVydGllc0xvb2t1cDogeyBbY29sdW1uTmFtZTogc3RyaW5nXTogQ29sdW1uVGV4dFByb3BlcnRpZXMgfTtcblxuICBwcml2YXRlIHNhdmVDb21tYW5kRmFjdG9yeTogQ29tbWFuZC5GYWN0b3J5PERpcnR5VHJhY2tpbmdGb3JtPFJvdz4sIGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+PjtcbiAgcHJpdmF0ZSBfZWRpdG9yU2Vzc2lvbkJ5Um93SWQ6IE1hcE1vZGVsQ2hhaW48YW55LCBFZGl0U2Vzc2lvbjxSb3c+PjtcblxuICByZWFkb25seSBlZGl0aW5nOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSBmaXJzdEVkaXRhYmxlQ29sdW1uOiBWYWx1ZU1vZGVsQ2hhaW48Q29sdW1uTW9kZWw8Um93Pj47XG4gIHByaXZhdGUgc2VsZWN0aW9uQ29sdW1uTW9kZWw6IFNlbGVjdGlvbkNvbHVtbk1vZGVsPFJvdz47XG4gIHByaXZhdGUgcm93U2VsZWN0aW9uRGlzYWJsZWRPbkFsbENvbHVtbnM6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHByaXZhdGUgcmVhZG9ubHkgcm93Q2xpY2tMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8KHJvdzogUm93KSA9PiB2b2lkPigpO1xuICByZWFkb25seSBmaXJzdFZpc2libGVDb2x1bW46IFZhbHVlTW9kZWw8Q29sdW1uTW9kZWw8Um93Pj47XG4gIHJlYWRvbmx5IGxhc3RWaXNpYmxlQ29sdW1uOiBWYWx1ZU1vZGVsPENvbHVtbk1vZGVsPFJvdz4+O1xuXG4gIHByaXZhdGUgX2NyZWF0ZUZvcm06IChyb3c6IFJvdykgPT4gRGlydHlUcmFja2luZ0Zvcm08Um93PiA9IChyb3cpID0+IG5ldyBEaXJ0eVRyYWNraW5nRm9ybTxSb3c+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxSb3c+KFtdLCB7XG4gICAgICBpZGVudGlmaWVkV2l0aDogcm93ID0+IHRoaXMuaWRlbnRpdHlPZihyb3cpXG4gICAgfSk7XG4gICAgdGhpcy5fZWRpdG9yU2Vzc2lvbkJ5Um93SWQgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuaW5kZXhCeSgncm93SWQnKTtcbiAgICB0aGlzLmVkaXRpbmcgPSBjaGFpbih0aGlzLl9lZGl0b3JTZXNzaW9ucykuY291bnQoKS5pc0dyZWF0ZXJUaGFuKDApO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGNoYWluKHRoaXMuX2RhdGFTb3VyY2UpLnJlcGxhY2VBbGwodGhpcy5yb3dzQmVpbmdFZGl0ZWQpO1xuXG4gICAgdGhpcy5maXJzdEVkaXRhYmxlQ29sdW1uID0gY2hhaW4odGhpcy5jb2x1bW5zKS5zZWxlY3QoYyA9PiBjLmhhc0VkaXRvclBvcnRhbCgpKS5maXJzdCgpO1xuICAgIHRoaXMuZmlyc3RWaXNpYmxlQ29sdW1uID0gY2hhaW4odGhpcy5fY29sdW1uTGlzdCkuZmlyc3QoKTtcbiAgICB0aGlzLmxhc3RWaXNpYmxlQ29sdW1uID0gY2hhaW4odGhpcy5fY29sdW1uTGlzdCkubGFzdCgpO1xuXG4gICAgdGhpcy5yb3dTZWxlY3Rpb25EaXNhYmxlZE9uQWxsQ29sdW1ucyA9IGNoYWluKHRoaXMuX2NvbHVtbkxpc3QpLnNlbGVjdChjb2x1bW4gPT4gY29sdW1uLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpKS5jb3VudCgpLmVxdWFscygwKTtcbiAgfVxuXG4gIGZpbmRNYXRjaGluZ0NvbHVtbnMocm93OiBSb3csIHJlZ2V4OiBSZWdFeHApOiBDb2x1bW5Nb2RlbDxSb3c+W10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMudmFsdWUuZmlsdGVyKGMgPT4gYy5pc1RleHRNYXRjaChyb3csIHJlZ2V4KSk7XG4gIH1cblxuICBoYXNNYXRjaGluZ0NvbHVtbihyb3c6IFJvdywgcmVnZXg6IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29sdW1ucy52YWx1ZS5maW5kKGMgPT4gYy5pc1RleHRNYXRjaChyb3csIHJlZ2V4KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0RGF0YVNvdXJjZShzb3VyY2VPZlRydXRoOiBMaXN0TW9kZWw8Um93Pikge1xuICAgIHRoaXMuX2RhdGFTb3VyY2Uuc2V0RGVsZWdhdGUoc291cmNlT2ZUcnV0aCk7XG4gIH1cblxuICBpZGVudGl0eU9mKHJvdzogUm93KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZS5pZGVudGl0eU9mKHJvdyk7XG4gIH1cblxuICBnZXQgcm93c0JlaW5nRWRpdGVkKCk6IExpc3RNb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5fcm93c0JlaW5nRWRpdGVkLnJlYWRvbmx5O1xuICB9XG5cbiAgcmVhZG9ubHkgdHJhY2tCeSA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBSb3cpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eU9mID8gdGhpcy5pZGVudGl0eU9mKGl0ZW0pIDogaW5kZXg7XG4gIH07XG5cbiAgZ2V0IGNvbHVtbnMoKTogTGlzdE1vZGVsPENvbHVtbk1vZGVsPFJvdz4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uTGlzdC5hbGxDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IHZpc2libGVDb2x1bW5zKCk6IExpc3RNb2RlbDxDb2x1bW5Nb2RlbDxSb3c+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkxpc3QucmVhZG9ubHk7XG4gIH1cblxuICBwbHVjazxQIGV4dGVuZHMgVHlwZXMuVmFsdWVQcm9wZXJ0aWVzT2Y8Um93Pj4ocHJvcGVydHk6IFAsIG9wdGlvbnM/OiB7IGNvbHVtbklkOiBzdHJpbmcgfSk6IFByb3BlcnR5Q29sdW1uTW9kZWw8Um93LCBQPiB7XG4gICAgY29uc3QgY29sdW1uSWQgPSBvcHRpb25zPy5jb2x1bW5JZCB8fCBwcm9wZXJ0eS50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihuZXcgUHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFA+KGNvbHVtbklkLCBwcm9wZXJ0eSwgKCkgPT4gdGhpcy5nZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZCkpKTtcbiAgfVxuXG4gIHBsdWNrTGlzdDxQIGV4dGVuZHMgVHlwZXMuQXJyYXlQcm9wZXJ0aWVzT2Y8Um93Pj4ocHJvcGVydHk6IFAsIG9wdGlvbnM/OiB7IGNvbHVtbklkOiBzdHJpbmcgfSk6IExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUD4ge1xuICAgIGNvbnN0IGNvbHVtbklkID0gb3B0aW9ucz8uY29sdW1uSWQgfHwgcHJvcGVydHkudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUD4oY29sdW1uSWQsIHByb3BlcnR5LCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9hZGRTZWxlY3Rpb25Db2x1bW4oc2VsZWN0aW9uTW9kZWw/OiBTZWxlY3Rpb25Nb2RlbDxSb3c+LCB2aXNpYmxlPzogVmFsdWVNb2RlbDxib29sZWFuPiB8IGJvb2xlYW4pOiBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+IHtcbiAgICBhc3NlcnQuaXNOaWwodGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCk7XG4gICAgY29uc3QgY29sdW1uSWQgPSAnc2VsZWN0aW9uLWNvbHVtbic7XG4gICAgdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+KGNvbHVtbklkLCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSwgc2VsZWN0aW9uTW9kZWwpO1xuICAgIHRoaXMuYWRkUm93Q2xhc3MoJ2F1cC1yb3ctc2VsZWN0ZWQnLCByb3cgPT4gdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbC5pc1NlbGVjdGVkKHJvdykpO1xuICAgIGNvbnN0IHNlbGVjdGlvbkNvbHVtbk1vZGVsID0gdGhpcy5hZGRDb2x1bW4odGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbCwgMCk7XG4gICAgaWYgKCFpc05pbCh2aXNpYmxlKSkge1xuICAgICAgc2VsZWN0aW9uQ29sdW1uTW9kZWwudmlzaWJsZVdoaWxlKHZpc2libGUgaW5zdGFuY2VvZiBWYWx1ZU1vZGVsID8gdmlzaWJsZSA6IFZhbHVlTW9kZWwuY29uc3RhbnQodmlzaWJsZSkpO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0aW9uQ29sdW1uTW9kZWw7XG4gIH1cblxuICBhZGRFZGl0Q29udHJvbHMoc2F2ZUNvbW1hbmRGYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8RGlydHlUcmFja2luZ0Zvcm08Um93PiwgYm9vbGVhbnxQcm9taXNlPGJvb2xlYW4+PiwgZm9ybUZhY3Rvcnk/OiAocm93OiBSb3cpID0+IERpcnR5VHJhY2tpbmdGb3JtPFJvdz4pOiBFZGl0b3JDb250cm9sQ29sdW1uTW9kZWw8Um93PiB7XG4gICAgdGhpcy5zYXZlQ29tbWFuZEZhY3RvcnkgPSBzYXZlQ29tbWFuZEZhY3Rvcnk7XG4gICAgaWYgKGlzRnVuY3Rpb24oZm9ybUZhY3RvcnkpKSB7XG4gICAgICB0aGlzLl9jcmVhdGVGb3JtID0gZm9ybUZhY3Rvcnk7XG4gICAgfVxuICAgIGNvbnN0IGNvbHVtbklkID0gJ2VkaXRDb250cm9scyc7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29sdW1uKG5ldyBFZGl0b3JDb250cm9sQ29sdW1uTW9kZWw8Um93Pihjb2x1bW5JZCwgc2F2ZUNvbW1hbmRGYWN0b3J5LCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSkpO1xuICB9XG5cbiAgYWRkQ3VzdG9tQ29sdW1uPFY+KGNvbHVtbklkOiBzdHJpbmcsIGRhdGFBY2Nlc3NvcjogKHJvdzogUm93KSA9PiBWKTogQ3VzdG9tVmFsdWVDb2x1bW5Nb2RlbDxSb3csIFY+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBWPihjb2x1bW5JZCwgKCkgPT4gdGhpcy5nZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZCksIGRhdGFBY2Nlc3NvcikpO1xuICB9XG5cbiAgYWRkQ29tcG9uZW50Q29sdW1uPEMgZXh0ZW5kcyBDZWxsUmVuZGVyZXI8UGFydGlhbDxSb3c+Pj4oY29sdW1uSWQ6IHN0cmluZywgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEM+LCBvbkluaXQ/OiBPbkNvbXBvbmVudEluaXQ8Qz4pOiBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgUm93PlxuICBhZGRDb21wb25lbnRDb2x1bW48QyBleHRlbmRzIENlbGxSZW5kZXJlcjxQYXJ0aWFsPFJvdz4+Pihjb2x1bW5JZDogc3RyaW5nLCBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIG9wdGlvbnM/OiBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgQz4pOiBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgUm93PlxuICBhZGRDb21wb25lbnRDb2x1bW48QyBleHRlbmRzIENlbGxSZW5kZXJlcjxQYXJ0aWFsPFJvdz4+Pihjb2x1bW5JZDogc3RyaW5nLCBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Qz4sIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucz86IE9uQ29tcG9uZW50SW5pdDxDPiB8IENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBDPik6IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVZhbHVlQ29sdW1uTW9kZWw8Um93LCBSb3c+KGNvbHVtbklkLCAoKSA9PiB0aGlzLmdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkKSwgcm93ID0+IHJvdykpLmNlbGxSZW5kZXJlcihjb21wb25lbnQsIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucyk7XG4gIH1cblxuICBhZGRUZW1wbGF0ZUNvbHVtbjxWPihjb2x1bW5JZDogc3RyaW5nKTogQ3VzdG9tVGVtcGxhdGVDb2x1bW5Nb2RlbDxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4obmV3IEN1c3RvbVRlbXBsYXRlQ29sdW1uTW9kZWw8Um93Pihjb2x1bW5JZCwgKCkgPT4gdGhpcy5nZXRDb2x1bW5UZXh0UHJvcGVydGllcyhjb2x1bW5JZCkpKTtcbiAgfVxuXG4gIGFkZFJvd0NsYXNzKGNsYXNzTmFtZTogc3RyaW5nLCBwcmVkaWNhdGU6IChyb3c6IFJvdykgPT4gYm9vbGVhbikge1xuICAgIHRoaXMucm93Q2xhc3NOYW1lUHJlZGljYXRlcy5wdXNoKG5ldyBSb3dDbGFzczxSb3c+KGNsYXNzTmFtZSwgcHJlZGljYXRlKSk7XG4gIH1cblxuICBnZXRSb3dDbGFzc2VzKHJvdzogUm93KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNsYXNzTmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5yb3dDbGFzc05hbWVQcmVkaWNhdGVzLmZvckVhY2goaSA9PiB7XG4gICAgICBpZiAoaS5tYXRjaGVzKHJvdykpIHtcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGkuY2xhc3NOYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY2xhc3NOYW1lcztcbiAgfVxuXG4gIHVzZUZvcm1GYWN0b3J5KGZhY3Rvcnk6IChyb3c6IFJvdykgPT4gRGlydHlUcmFja2luZ0Zvcm08Um93Pik6IHRoaXMge1xuICAgIHRoaXMuX2NyZWF0ZUZvcm0gPSBmYWN0b3J5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZENvbHVtbjxDIGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93Pj4oY29sdW1uOiBDLCBpbmRleD86IG51bWJlcik6IEMge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5MaXN0LmFkZENvbHVtbihjb2x1bW4sIGluZGV4KTtcbiAgfVxuXG4gIC8vIHJlbW92ZUNvbHVtbihjb2x1bW46IENvbHVtbk1vZGVsPFJvdz4pIHtcbiAgLy9cbiAgLy8gfVxuXG4gIGNvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtblRleHRQcm9wZXJ0aWVzOiB7IFtjb2x1bW5OYW1lOiBzdHJpbmddOiBDb2x1bW5UZXh0UHJvcGVydGllcyB9KSB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXNMb29rdXAgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgfVxuXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKGNvbHVtbklkOiBzdHJpbmcpOiBDb2x1bW5UZXh0UHJvcGVydGllcyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtblRleHRQcm9wZXJ0aWVzTG9va3VwID8gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXNMb29rdXBbY29sdW1uSWRdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhcnRFZGl0U2Vzc2lvbihyb3c6IFJvdyk6IEVkaXRTZXNzaW9uPFJvdz4ge1xuICAgIGNvbnN0IHJvd0lkID0gdGhpcy5pZGVudGl0eU9mKHJvdyk7XG4gICAgaWYgKHRoaXMuX3Jvd3NCZWluZ0VkaXRlZC5xdWVyeSgpLmluZGV4T2Yocm93KSA+IC0xKSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYFJvdyB3aXRoIGlkPSR7cm93SWR9IGFscmVhZHkgYmVpbmcgZWRpdGVkYCk7XG4gICAgfVxuXG4gICAgLy8gdG9kbzogcGFzcyB0aGUgZmFjdG9yaWVzIHRvIHRoZSBlZGl0IHNlc3Npb24gc28gd2UgY2FuIG1ha2UgdGhlIHdob2xlIGxvdCBwbHVnZ2FibGU/XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuX2NyZWF0ZUZvcm0ocm93KTtcbiAgICBjb25zdCBzYXZlQ29tbWFuZCA9IHRoaXMuc2F2ZUNvbW1hbmRGYWN0b3J5LmNyZWF0ZShmb3JtKTtcbiAgICBjb25zdCBlZGl0U2Vzc2lvbiA9IG5ldyBFZGl0U2Vzc2lvbjxSb3c+KHJvd0lkLCByb3csIGZvcm0sIHNhdmVDb21tYW5kKTtcbiAgICBjb25zdCB7IHdoZW4gfSA9IERzbC5kaXNwb3NlV2l0aChlZGl0U2Vzc2lvbik7XG4gICAgd2hlbihlZGl0U2Vzc2lvbi5saXZlUm93VmFsdWUpLmNoYW5nZXMoKGVkaXRlZFZhbHVlKSA9PiB7XG4gICAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQucmVwbGFjZU9yUHVzaChlZGl0ZWRWYWx1ZSk7XG4gICAgfSwgeyBpbml0aWFsVmFsdWU6ICd0cmlnZ2VyQ2hhbmdlVW5sZXNzTmlsJyB9KTtcblxuICAgIHRoaXMuX2VkaXRvclNlc3Npb25zLnB1c2goZWRpdFNlc3Npb24pO1xuICAgIGVkaXRTZXNzaW9uLm9uRGlzcG9zZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yb3dzQmVpbmdFZGl0ZWQucmVtb3ZlKGVkaXRTZXNzaW9uLmxpdmVSb3dWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLl9lZGl0b3JTZXNzaW9ucy5yZW1vdmUoZWRpdFNlc3Npb24pO1xuICAgIH0pO1xuICAgIHJldHVybiBlZGl0U2Vzc2lvbjtcbiAgfVxuXG4gIGdldEVkaXRTZXNzaW9uRm9yKHJvdzogUm93KTogRWRpdFNlc3Npb248Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvclNlc3Npb25CeVJvd0lkLmdldCh0aGlzLmlkZW50aXR5T2Yocm93KSk7XG4gIH1cblxuICBjYW5jZWxBbGxFZGl0b3JTZXNzaW9ucygpIHtcbiAgICB0aGlzLl9lZGl0b3JTZXNzaW9ucy5ydW5JblRyYW5zYWN0aW9uKChkcmFmdCkgPT4ge1xuICAgICAgdGhpcy5fcm93c0JlaW5nRWRpdGVkLnJ1bkluVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBkcmFmdC52YWx1ZS5mb3JFYWNoKHNlc3Npb24gPT4gc2Vzc2lvbi5kaXNwb3NlKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGlvbkVuYWJsZWRGb3IoY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNSb3dTZWxlY3Rpb25FbmFibGVkKCkgJiYgY29sdW1uLmlzUm93U2VsZWN0aW9uRW5hYmxlZCgpO1xuICB9XG5cbiAgaXNSb3dTZWxlY3Rpb25FbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmhhc1VzZXJTZWxlY3Rpb25Nb2RlbCgpICYmICF0aGlzLnJvd1NlbGVjdGlvbkRpc2FibGVkT25BbGxDb2x1bW5zLnZhbHVlO1xuICB9XG5cbiAgaGFzVXNlclNlbGVjdGlvbk1vZGVsKCkge1xuICAgIHJldHVybiAhIXRoaXMuc2VsZWN0aW9uQ29sdW1uTW9kZWw/LnNlbGVjdGlvbk1vZGVsLmdldERlbGVnYXRlKCk7XG4gIH1cblxuICBnZXRTZWxlY3Rpb25Nb2RlbCgpOiBTZWxlY3Rpb25Nb2RlbDxSb3c+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Db2x1bW5Nb2RlbD8uc2VsZWN0aW9uTW9kZWw7XG4gIH1cblxuICBpc0hvdmVyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1Jvd1NlbGVjdGlvbkVuYWJsZWQoKSB8fCB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmxpc3RlbmVyQ291bnQgPiAwO1xuICB9XG5cbiAgaXNDdXJzb3JFbmFibGVkKGNvbHVtbjogQ29sdW1uTW9kZWw8Um93Pikge1xuICAgIHJldHVybiB0aGlzLmlzUm93U2VsZWN0aW9uRW5hYmxlZEZvcihjb2x1bW4pIHx8IHRoaXMucm93Q2xpY2tMaXN0ZW5lcnMubGlzdGVuZXJDb3VudCA+IDA7XG4gIH1cblxuICBzZWxlY3RSb3cocm93OiBSb3cpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNvbHVtbk1vZGVsPy5zZWxlY3RSb3cocm93KTtcbiAgfVxuXG4gIG9uUm93Q2xpY2tlZChjYWxsYmFjazogKHJvdzogUm93KSA9PiB2b2lkKTogRGlzcG9zYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMucm93Q2xpY2tMaXN0ZW5lcnMuYWRkKGNhbGxiYWNrKTtcbiAgfVxuXG4gIF9ub3RpZnlDZWxsQ2xpY2tlZChjb2x1bW5Nb2RlbDogQ29sdW1uTW9kZWw8Um93Piwgcm93OiBSb3cpIHtcbiAgICBpZiAodGhpcy5pc1Jvd1NlbGVjdGlvbkVuYWJsZWRGb3IoY29sdW1uTW9kZWwpKSB7XG4gICAgICB0aGlzLnNlbGVjdFJvdyhyb3cpO1xuICAgIH1cbiAgICB0aGlzLnJvd0NsaWNrTGlzdGVuZXJzLmZpcmUobCA9PiBsKHJvdykpO1xuICB9XG59XG5cblxuVHJhY2tFeHRlcm5hbC5vbmVUaW1lQmluZGluZyhBYnN0cmFjdFRhYmxlTW9kZWwpO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AbstractComputedListModel, Dsl, lang, MutableListModel } from '@coolon/pectin';
|
|
2
|
-
import { isNil } from 'lodash
|
|
2
|
+
import { isNil } from 'lodash';
|
|
3
3
|
export class ColumnListModel extends AbstractComputedListModel {
|
|
4
4
|
constructor() {
|
|
5
5
|
super();
|
|
@@ -36,4 +36,4 @@ export class ColumnListModel extends AbstractComputedListModel {
|
|
|
36
36
|
return this._allColumns.value.filter(c => c.visible.value);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWxpc3QtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9jb2x1bW4tbGlzdC1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBNEIsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRy9CLE1BQU0sT0FBTyxlQUFxQixTQUFRLHlCQUFvRDtJQUs1RjtRQUNFLEtBQUssRUFBRSxDQUFDO1FBSk8sZ0JBQVcsR0FBRyxJQUFJLGdCQUFnQixFQUFvQixDQUFDO1FBS3RFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFVO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxTQUFTLENBQTZCLE1BQVMsRUFBRSxLQUFjO1FBQzdELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLFFBQVEsaUJBQWlCLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb21wdXRlZExpc3RNb2RlbCwgRHNsLCBsYW5nLCBMaXN0TW9kZWwsIE1hcE1vZGVsQ2hhaW4sIE11dGFibGVMaXN0TW9kZWwgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbHVtbk1vZGVsIH0gZnJvbSAnLi90YWJsZS9jb2x1bW4tbW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uTGlzdE1vZGVsPFJvdz4gZXh0ZW5kcyBBYnN0cmFjdENvbXB1dGVkTGlzdE1vZGVsPENvbHVtbk1vZGVsPFJvdz4sIGJvb2xlYW4+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hbGxDb2x1bW5zID0gbmV3IE11dGFibGVMaXN0TW9kZWw8Q29sdW1uTW9kZWw8Um93Pj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2x1bW5zQnlJZDogTWFwTW9kZWxDaGFpbjxzdHJpbmcsIENvbHVtbk1vZGVsPFJvdz4+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMuY29sdW1uc0J5SWQgPSBjaGFpbih0aGlzLl9hbGxDb2x1bW5zKS5pbmRleEJ5KCdjb2x1bW5JZCcpO1xuICB9XG5cbiAgZ2V0IGFsbENvbHVtbnMoKTogTGlzdE1vZGVsPENvbHVtbk1vZGVsPFJvdz4+IHtcbiAgICByZXR1cm4gdGhpcy5fYWxsQ29sdW1ucy5yZWFkb25seTtcbiAgfVxuXG4gIGdldENvbHVtbihpZDogc3RyaW5nKTogQ29sdW1uTW9kZWw8Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uc0J5SWQuZ2V0KGlkKTtcbiAgfVxuXG4gIGhhc0NvbHVtbihpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5jb2x1bW5zQnlJZC5nZXQoaWQpO1xuICB9XG5cbiAgYWRkQ29sdW1uPEMgZXh0ZW5kcyBDb2x1bW5Nb2RlbDxSb3c+Pihjb2x1bW46IEMsIGluZGV4PzogbnVtYmVyKTogQyB7XG4gICAgaWYgKHRoaXMuaGFzQ29sdW1uKGNvbHVtbi5jb2x1bW5JZCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBDb2x1bW4gd2l0aCBpZD0ke2NvbHVtbi5jb2x1bW5JZH0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUoY29sdW1uKTtcbiAgICB0aGlzLnJ1bkluVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgaWYgKCFpc05pbChpbmRleCkpIHtcbiAgICAgICAgdGhpcy5fYWxsQ29sdW1ucy5pbnNlcnQoaW5kZXgsIGNvbHVtbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9hbGxDb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKHRoaXMudHJhY2tTb3VyY2UoY29sdW1uLnZpc2libGUpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29sdW1uO1xuICB9XG5cbiAgZG9Db21wdXRlVmFsdWUoKTogQ29sdW1uTW9kZWw8Um93PltdIHtcbiAgICByZXR1cm4gdGhpcy5fYWxsQ29sdW1ucy52YWx1ZS5maWx0ZXIoYyA9PiBjLnZpc2libGUudmFsdWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { ComponentRef } from "@angular/core";
|
|
|
3
3
|
import { DelegatingSelectionModel, DelegatingValueModel, GarbageCollector, MultipleSelectionModel, ValueModel } from '@coolon/pectin';
|
|
4
4
|
import { assert, lang, Stringy } from "@coolon/typescript-utilities";
|
|
5
5
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator';
|
|
6
|
-
import { isFunction } from 'lodash
|
|
6
|
+
import { isFunction } from 'lodash';
|
|
7
7
|
import { CellEditorPortalRef, CellHeaderPortalRef, ComponentCellRendererPortalRef, TemplateCellRendererPortalRef } from './cell-portal-ref';
|
|
8
8
|
import { DefaultCellRendererComponent } from './default-cell-renderer/default-cell-renderer.component';
|
|
9
9
|
import { DefaultHeaderCellRendererComponent } from './default-header-cell-renderer/default-header-cell-renderer.component';
|
|
@@ -386,4 +386,4 @@ export class SelectionColumnModel extends ColumnModel {
|
|
|
386
386
|
return this.selectionModel.isSelected(row);
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvY29sdW1uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUVwQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBS3RCLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXZDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBRW5CLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUczQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFHbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFNeEgsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0saUNBQWlDLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFjckYsTUFBTSw2QkFBNkIsR0FBaUMs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Q0FBQywyQkFBMkIsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFxQixFQUFFLEVBQUU7WUFDOUgsU0FBUyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzVCLFNBQVMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFtQztRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxZQUFZLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVE7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsL3BvcnRhbC1kaXJlY3RpdmVzXCI7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIENvbW1hbmQsIENvbW1hbmRGYWN0b3J5LFxuICBEZWxlZ2F0aW5nU2VsZWN0aW9uTW9kZWwsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEaXJ0eVRyYWNraW5nRm9ybSxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTXVsdGlwbGVTZWxlY3Rpb25Nb2RlbCxcbiAgU2VsZWN0aW9uTW9kZWwsXG4gIFR5cGVzLFxuICBVbmFyeUNvbW1hbmQsXG4gIFZhbGlkYXRvcixcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBhc3NlcnQsIGxhbmcsIFN0cmluZ3kgfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgTWVtb2l6ZSB9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5cbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQ2VsbEVkaXRvckNvbXBvbmVudCwgQ2VsbExpc3RFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycyc7XG5pbXBvcnQge1xuICBDZWxsRWRpdG9yUG9ydGFsUmVmLFxuICBDZWxsSGVhZGVyUG9ydGFsUmVmLFxuICBDZWxsUmVuZGVyZXJQb3J0YWxSZWYsXG4gIENvbXBvbmVudENlbGxSZW5kZXJlclBvcnRhbFJlZixcbiAgVGVtcGxhdGVDZWxsUmVuZGVyZXJQb3J0YWxSZWZcbn0gZnJvbSAnLi9jZWxsLXBvcnRhbC1yZWYnO1xuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IENvbHVtblRleHRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9jb2x1bW4tdGV4dC1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IERlZmF1bHRDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtY2VsbC1yZW5kZXJlci9kZWZhdWx0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIvZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdFJvd0NvbnRyb2xzIH0gZnJvbSAnLi9lZGl0LXJvdy1jb250cm9scy9lZGl0LXJvdy1jb250cm9scy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi9lZGl0LXNlc3Npb24nO1xuaW1wb3J0IHsgTXV0YWJsZUNlbGxSZW5kZXJlciB9IGZyb20gJy4vbXV0YWJsZS1jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFNlbGVjdENlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWNlbGwtcmVuZGVyZXIvc2VsZWN0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWhlYWRlci1jZWxsLXJlbmRlcmVyL3NlbGVjdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwtcmVuZGVyZXIvdGFibGUtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyL3RhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0U2VhcmNoUHJlZGljYXRlIH0gZnJvbSAnLi90ZXh0LXNlYXJjaC1wcmVkaWNhdGUnO1xuXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvd0RhdGE8Um93PiB7XG4gIHJvdzogUm93O1xuICBlZGl0U2Vzc2lvbj86IEVkaXRTZXNzaW9uPFJvdz47XG4gIGVkaXRSb3dDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xufVxuXG5jb25zdCBDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEUgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyOnJvdy1kYXRhLWNhY2hlJyk7XG5cbmV4cG9ydCB0eXBlIE9uQ29tcG9uZW50SW5pdDxDPiA9IChjb21wb25lbnQ6IEMpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+IHtcbiAgb25Db21wb25lbnRJbml0PzogKGNvbXBvbmVudDogRSkgPT4gdm9pZDtcbiAgb25Sb3dVcGRhdGU/OiAoY29tcG9uZW50OiBFLCByb3c6IFJvdykgPT4gdm9pZDtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIE11dGFibGVDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgRSwgUCBleHRlbmRzIGtleW9mIFJvdz4gZXh0ZW5kcyBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgRT4ge1xuICBvblZhbHVlRWRpdDogKHJvdzogUm93LCBpczogUm93W1BdLCB3YXM6IFJvd1tQXSkgPT4gdm9pZDtcbn1cblxuY29uc3QgREVGQVVMVF9URVhUX1NFQVJDSF9QUkVESUNBVEU6IFRleHRTZWFyY2hQcmVkaWNhdGU8dW5rbm93bj4gPSAocm93OiB1bmtub3duLCB0ZXh0OiBSZWdFeHApID0+IGZhbHNlO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uTW9kZWw8Um93PiBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHByaXZhdGUgX2NvbHVtblRleHRQcm9wZXJ0aWVzOiBDb2x1bW5UZXh0UHJvcGVydGllcztcblxuICBwcml2YXRlIF9jb2x1bW5IZWFkZXJQb3J0YWxSZWY6IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBhbnk+O1xuICBwcml2YXRlIF9jZWxsUmVuZGVyZXJQb3J0YWxSZWY6IENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3csIGFueT47XG4gIHByaXZhdGUgX2NlbGxFZGl0b3JQb3J0YWxSZWY6IENlbGxFZGl0b3JQb3J0YWxSZWY8Um93LCBhbnk+O1xuXG4gIHByaXZhdGUgX2VuYWJsZVJvd1NlbGVjdGlvbiA9IHRydWU7XG4gIHByaXZhdGUgX2ZsZXggPSBmYWxzZTtcblxuICBwcml2YXRlIF9kZWZhdWx0VmlzaWJpbGl0eSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRydWUpKTtcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRoaXMuX2RlZmF1bHRWaXNpYmlsaXR5KSk7XG4gIHJlYWRvbmx5IGRhc2hlcmlzZWRDb2x1bW5JZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2NvbHVtbk1vZGVsVGV4dFNlYXJjaFByZWRpY2F0ZTogVGV4dFNlYXJjaFByZWRpY2F0ZTxSb3c+ID0gdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgX2NlbGxSZW5kZXJlclRleHRTZWFyY2hQcmVkaWNhdGU6IFRleHRTZWFyY2hQcmVkaWNhdGU8Um93PiA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb2x1bW5JZDogc3RyaW5nLCBwcml2YXRlIHRleHRQcm9wZXJ0aWVzUHJvdmlkZXI6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW5zdGFsbEhlYWRlclJlbmRlcmVyKCk7XG4gICAgdGhpcy5kYXNoZXJpc2VkQ29sdW1uSWQgPSBTdHJpbmd5LmZyb20oY29sdW1uSWQpLmRhc2hlcml6ZSgpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEhlYWRlclJlbmRlcmVyKCkge1xuICAgIHRoaXMuY2VsbEhlYWRlclJlbmRlcmVyKERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQsIGNvbHVtbikgPT4ge1xuICAgICAgY29tcG9uZW50LmhlYWRlclRleHQgPSBjb2x1bW4uZ2V0SGVhZGVyVGV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoKT8uaGVhZGVyVGV4dCgpIHx8IHRoaXMuZ2V0RGVmYXVsdEhlYWRlclRleHQoKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlLnZhbHVlO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUucmVhZG9ubHk7XG4gIH1cblxuICB2aXNpYmxlV2hpbGUodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPik6IHRoaXMge1xuICAgIHRoaXMuX3Zpc2libGUuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0RGVmYXVsdFZpc2liaWxpdHkodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX2RlZmF1bHRWaXNpYmlsaXR5LnNldERlbGVnYXRlKHZpc2libGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRIZWFkZXJUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbklkO1xuICB9XG5cbiAgZ2V0IGlzVGV4dE1hdGNoKCk6IFRleHRTZWFyY2hQcmVkaWNhdGU8Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbk1vZGVsVGV4dFNlYXJjaFByZWRpY2F0ZSB8fCB0aGlzLl9jZWxsUmVuZGVyZXJUZXh0U2VhcmNoUHJlZGljYXRlIHx8IERFRkFVTFRfVEVYVF9TRUFSQ0hfUFJFRElDQVRFO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHByZWRpY2F0ZSB0byB1c2Ugd2hlbiBjaGVja2luZyBpZiB0aGUgc3BlY2lmaWVkIHJvdyBpcyBhIHRleHQgbWF0Y2ggZm9yIHRoaXMgY29sdW1uLlxuICAgKiBAcGFyYW0gcHJlZGljYXRlXG4gICAqL1xuICB1c2VUZXh0U2VhcmNoUHJlZGljYXRlKHByZWRpY2F0ZTogVGV4dFNlYXJjaFByZWRpY2F0ZTxSb3c+KTp0aGlzIHtcbiAgICB0aGlzLl9jb2x1bW5Nb2RlbFRleHRTZWFyY2hQcmVkaWNhdGUgPSBwcmVkaWNhdGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKCk6IENvbHVtblRleHRQcm9wZXJ0aWVzIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgfHwgdGhpcy50ZXh0UHJvcGVydGllc1Byb3ZpZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjb2x1bW5UZXh0UHJvcGVydGllcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBjb2x1bW5UZXh0UHJvcGVydGllc1xuICAgKi9cbiAgdGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXMpO1xuICB9XG5cbiAgY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVIZWFkZXJSZW5kZXJlcjxDPihjb25maWc6IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmID0gY29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUNlbGxSZW5kZXJlcjxDPihjb25maWc6IENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3csIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYgPSBjb25maWc7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlQ2VsbEVkaXRvcjxFPihjZWxsRWRpdG9yOiBDZWxsRWRpdG9yUG9ydGFsUmVmPFJvdywgRT4pOiB2b2lkIHtcbiAgICB0aGlzLl9jZWxsRWRpdG9yUG9ydGFsUmVmID0gY2VsbEVkaXRvcjtcbiAgfVxuXG4gIGNlbGxIZWFkZXJSZW5kZXJlcjxDPihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+LCBpbml0aWFsaXNlcjogKGNvbXBvbmVudDogQywgY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgdGhpcy5jb25maWd1cmVIZWFkZXJSZW5kZXJlcihuZXcgQ2VsbEhlYWRlclBvcnRhbFJlZjxSb3csIEM+KGNvbXBvbmVudFR5cGUsIGluaXRpYWxpc2VyKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmbGV4KGZsZXggPSB0cnVlKSB7XG4gICAgdGhpcy5fZmxleCA9IGZsZXg7XG4gIH1cblxuICBpc0ZsZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZsZXg7XG4gIH1cblxuICBoYXNFZGl0b3JQb3J0YWwoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZjtcbiAgfVxuXG4gIGF0dGFjaEhlYWRlckNlbGwoaG9zdDogYW55KSB7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QsIHRoaXMpO1xuICB9XG5cbiAgYXR0YWNoQ2VsbChob3N0OiBhbnkpIHtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYuaW5pdGlhbGlzZUhvc3QoaG9zdCwgdGhpcyk7XG4gICAgaWYgKHRoaXMuaGFzRWRpdG9yUG9ydGFsKCkpIHtcbiAgICAgIHRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWYuaW5pdGlhbGlzZUhvc3QoaG9zdCwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgb25IZWFkZXJBdHRhY2hlZChob3N0OiBUYWJsZUhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudCwgcmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50KHJlZik7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmLm9uUG9ydGFsQXR0YWNoZWQoaG9zdCwgY29tcG9uZW50KTtcbiAgfVxuXG4gIG9uUmVuZGVyZXJBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWYpO1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIGNvbXBvbmVudCk7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29tcG9uZW50Py5tYXRjaGVzKSkge1xuICAgICAgdGhpcy5fY2VsbFJlbmRlcmVyVGV4dFNlYXJjaFByZWRpY2F0ZSA9IChyb3csIHRleHQpID0+IGNvbXBvbmVudC5tYXRjaGVzKHJvdywgdGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NlbGxSZW5kZXJlclRleHRTZWFyY2hQcmVkaWNhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25FZGl0b3JBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIHRoaXMuZ2V0Q29tcG9uZW50KHJlZikpO1xuICB9XG5cbiAgdXBkYXRlUG9ydGFsQ29udGVudChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+KSB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmLnB1c2hTdGF0ZShob3N0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2VsZWN0Um93T25DbGljayhzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fZW5hYmxlUm93U2VsZWN0aW9uID0gc2VsZWN0Um93T25DbGljaztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlzUm93U2VsZWN0aW9uRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlUm93U2VsZWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbXBvbmVudChyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogYW55IHtcbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gcmVmLmluc3RhbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiaGVhZGVycyBvbmx5IHN1cHBvcnQgY29tcG9uZW50IHBvcnRhbHMsIGdvdFwiLCByZWYpO1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYGhlYWRlcnMgb25seSBzdXBwb3J0IGNvbXBvbmVudCBwb3J0YWxzLCBnb3QgJHtyZWZ9YClcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbXBvbmVudE9yRW1iZWRkZWRWaWV3KHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpOiBhbnkge1xuICAgIGlmIChyZWYgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybiByZWYuaW5zdGFuY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZWY7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29sdW1uTW9kZWwge1xuICBleHBvcnQgdHlwZSBUZXh0UHJvcGVydGllc1Byb3ZpZGVyID0gKCkgPT4gQ29sdW1uVGV4dFByb3BlcnRpZXNcbn1cblxuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFAgZXh0ZW5kcyBUeXBlcy5WYWx1ZVByb3BlcnRpZXNPZjxSb3c+PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuXG4gIHByaXZhdGUgX2Zvcm1hdDogKHZhbHVlOiBSb3dbUF0pID0+IGFueSA9ICh2YWx1ZSkgPT4gdmFsdWU/LnRvU3RyaW5nKCk7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcmVhZG9ubHkgcHJvcGVydHk6IFAsIGRlZmF1bHRzOiBDb2x1bW5Nb2RlbC5UZXh0UHJvcGVydGllc1Byb3ZpZGVyKSB7XG4gICAgc3VwZXIoaWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgICB0aGlzLnVzZVRleHRTZWFyY2hQcmVkaWNhdGUoKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh0aGlzLl9mb3JtYXQocm93W3RoaXMucHJvcGVydHldKSk7XG4gICAgfSk7XG4gIH1cblxuICBjZWxsUmVuZGVyZXI8RSBleHRlbmRzIENlbGxSZW5kZXJlcjxSb3dbUF0+Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEU+LCBvcHRpb25zPzogQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+KTogdGhpc1xuICBjZWxsUmVuZGVyZXI8RSBleHRlbmRzIENlbGxSZW5kZXJlcjxSb3dbUF0+Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEU+LCBvbkNvbXBvbmVudEluaXQ/OiBPbkNvbXBvbmVudEluaXQ8RT4pOiB0aGlzXG4gIGNlbGxSZW5kZXJlcjxFIGV4dGVuZHMgQ2VsbFJlbmRlcmVyPFJvd1tQXT4+KGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8RT4sIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucz86IENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFPiB8IE9uQ29tcG9uZW50SW5pdDxFPik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YSwgZmlyc3RUaW1lKSA9PiB7XG4gICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucykpIHtcbiAgICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMoY29tcG9uZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/Lm9uQ29tcG9uZW50SW5pdCkpIHtcbiAgICAgICAgICAgIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucy5vbkNvbXBvbmVudEluaXQoY29tcG9uZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdChyb3dEYXRhLnJvd1t0aGlzLnByb3BlcnR5XSk7XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbGl2ZUVkaXRDZWxsUmVuZGVyZXI8RSBleHRlbmRzIE11dGFibGVDZWxsUmVuZGVyZXI8Um93W1BdPj4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxFPiwgb3B0aW9uczogTXV0YWJsZUNlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFLCBQPik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLm11dGFibGVDZWxsUmVuZGVyZXIoY29tcG9uZW50VHlwZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVwcmVjYXRlZC4gIFVzZSAjbGl2ZUVkaXRDZWxsUmVuZGVyZXIgaW5zdGVhZC5cbiAgICogQHBhcmFtIGNvbXBvbmVudFR5cGVcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIG11dGFibGVDZWxsUmVuZGVyZXI8RSBleHRlbmRzIE11dGFibGVDZWxsUmVuZGVyZXI8Um93W1BdPj4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxFPiwgb3B0aW9uczogTXV0YWJsZUNlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFLCBQPik6IHRoaXMge1xuXG4gICAgdGhpcy5jb25maWd1cmVDZWxsUmVuZGVyZXIobmV3IENvbXBvbmVudENlbGxSZW5kZXJlclBvcnRhbFJlZihjb21wb25lbnRUeXBlLCAoY29tcG9uZW50LCByb3dEYXRhLCBmaXJzdFRpbWUpID0+IHtcblxuICAgICAgLy8ga2VlcCBhIGxvY2FsIGNvcHkgbW9zdCByZWNlbnQgcm93IHZhbHVlIHNvIGl0J3MgYXZhaWxhYmxlIHRvIHRlaFxuICAgICAgLy8gZWRpdCBjYWxsYmFjayB3aXRob3V0IGhhdmluZyB0byBhZGQvcmVtb3ZlIHN1YnNjcmliZXJzIGFsbCB0aGUgdGltZS5cbiAgICAgIGNvbXBvbmVudFtDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEVdID0gcm93RGF0YS5yb3c7XG4gICAgICBsZXQgZGlzYWJsZUVkaXRDYWxsYmFjayA9IGZhbHNlO1xuXG4gICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKG9wdGlvbnM/Lm9uQ29tcG9uZW50SW5pdCkpIHtcbiAgICAgICAgICBvcHRpb25zLm9uQ29tcG9uZW50SW5pdChjb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluc3RhbGwgb3VyIGVkaXQgY2FsbGJhY2tcbiAgICAgICAgY29tcG9uZW50Lm9uVmFsdWVFZGl0ZWQoKGlzLCB3YXMpID0+IHtcbiAgICAgICAgICBpZiAoIWRpc2FibGVFZGl0Q2FsbGJhY2spIHtcbiAgICAgICAgICAgIG9wdGlvbnMub25WYWx1ZUVkaXQoY29tcG9uZW50W0NFTExfUkVOREVSRVJfQ09NUE9ORU5UX1JPV19DQUNIRV0sIGlzLCB3YXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIH1cblxuICAgICAgLy8gbm93IHB1c2ggdGhlIHZhbHVlIHRoZSBjb21wb25lbnQgYW5kIGRpc2FibGUgdGhlIGNhbGxiYWNrIGp1c3QgaW5jYXNlIHRoZSBjb21wb25lbnQgbWlzYmVoYXZlc1xuICAgICAgLy8gYW5kIGZpcmVzIGEgdmFsdWUgY2hhbmdlIGR1cmluZyB0aGUgb3BlcmF0aW9uLlxuICAgICAgZGlzYWJsZUVkaXRDYWxsYmFjayA9IHRydWU7XG4gICAgICBjb21wb25lbnQudmFsdWUgPSByb3dEYXRhLnJvd1t0aGlzLnByb3BlcnR5XTtcbiAgICAgIGRpc2FibGVFZGl0Q2FsbGJhY2sgPSBmYWxzZTtcblxuICAgICAgaWYgKCFpc0Z1bmN0aW9uKG9wdGlvbnMpICYmIGlzRnVuY3Rpb24ob3B0aW9ucz8ub25Sb3dVcGRhdGUpKSB7XG4gICAgICAgIG9wdGlvbnMub25Sb3dVcGRhdGUoY29tcG9uZW50LCByb3dEYXRhLnJvdyk7XG4gICAgICB9XG5cbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZWxsRWRpdG9yPEUgZXh0ZW5kcyBDZWxsRWRpdG9yQ29tcG9uZW50PFJvd1tQXT4+KGVkaXRvcjogQ29tcG9uZW50VHlwZTxFPiwgdmFsaWRhdG9ycz86IFZhbGlkYXRvcjxSb3dbUF0+W10sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBFKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEUgZXh0ZW5kcyBDZWxsRWRpdG9yQ29tcG9uZW50PFJvd1tQXT4+KGVkaXRvcjogQ29tcG9uZW50VHlwZTxFPiwgaW5pdGlhbGlzZUNvbXBvbmVudD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQpOiB0aGlzXG4gIGNlbGxFZGl0b3I8RSBleHRlbmRzIENlbGxFZGl0b3JDb21wb25lbnQ8Um93W1BdPj4oZWRpdG9yOiBDb21wb25lbnRUeXBlPEU+LCB2YWxpZGF0b3JzT3JJbml0aWFsaXNlcj86IFZhbGlkYXRvcjxSb3dbUF0+W10gfCAoKGNvbXBvbmVudDogRSkgPT4gdm9pZCksIG9uQ29tcG9uZW50SW5pdD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzT3JJbml0aWFsaXNlcikgPyB2YWxpZGF0b3JzT3JJbml0aWFsaXNlciA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpbml0aWFsaXNlciA9IGlzRnVuY3Rpb24odmFsaWRhdG9yc09ySW5pdGlhbGlzZXIpID8gdmFsaWRhdG9yc09ySW5pdGlhbGlzZXIgOiBvbkNvbXBvbmVudEluaXQ7XG4gICAgdGhpcy5jb25maWd1cmVDZWxsRWRpdG9yKG5ldyBDZWxsRWRpdG9yUG9ydGFsUmVmKGVkaXRvciwgKGNvbXBvbmVudDogRSwgZWRpdFNlc3Npb246IEVkaXRTZXNzaW9uPFJvdz4pID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZU1vZGVsID0gZWRpdFNlc3Npb24uZm9ybS5wbHVjayh0aGlzLnByb3BlcnR5KTtcbiAgICAgIGlmICh2YWxpZGF0b3JzKSB7XG4gICAgICAgIGZvcm1WYWx1ZU1vZGVsLnZhbGlkYXRlVXNpbmcodmFsaWRhdG9ycyk7XG4gICAgICB9XG4gICAgICBjb21wb25lbnQudmFsdWVNb2RlbCA9IGZvcm1WYWx1ZU1vZGVsO1xuICAgICAgaWYgKGluaXRpYWxpc2VyKSB7XG4gICAgICAgIGluaXRpYWxpc2VyKGNvbXBvbmVudCk7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZm9ybWF0KGZvcm1hdHRlcjogKHZhbHVlOiBSb3dbUF0pID0+IGFueSk6IHRoaXMge1xuICAgIGFzc2VydC5pc0Z1bmN0aW9uKGZvcm1hdHRlcik7XG4gICAgdGhpcy5fZm9ybWF0ID0gZm9ybWF0dGVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdFJvd09uQ2xpY2soc2VsZWN0T25Sb3dDbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2spO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUCBleHRlbmRzIFR5cGVzLkFycmF5UHJvcGVydGllc09mPFJvdz4+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgcHJpdmF0ZSBfZm9ybWF0OiAodmFsdWU6IFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdKSA9PiBhbnkgPSAodmFsdWUpID0+IHZhbHVlLm1hcCh2ID0+IHY/LnRvU3RyaW5nKCkpLmpvaW4oJywgJyk7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcmVhZG9ubHkgcHJvcGVydHk6IFAsIGRlZmF1bHRzOiBDb2x1bW5Nb2RlbC5UZXh0UHJvcGVydGllc1Byb3ZpZGVyKSB7XG4gICAgc3VwZXIoaWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgICB0aGlzLnVzZVRleHRTZWFyY2hQcmVkaWNhdGUoKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh0aGlzLl9mb3JtYXQocm93W3RoaXMucHJvcGVydHldKSk7XG4gICAgfSk7XG4gIH1cblxuICBjZWxsUmVuZGVyZXIoY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTx7IHZhbHVlOiBUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD5bXSB9Pik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YSkgPT4ge1xuICAgICAgY29tcG9uZW50LnZhbHVlID0gdGhpcy5fZm9ybWF0KHJvd0RhdGEucm93W3RoaXMucHJvcGVydHldKTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3I8VHlwZXMuQXJyYXlFbGVtZW50VHlwZTxSb3csIFA+W10+W10sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIHZhbGlkYXRvcnNPckluaXRpYWxpc2VyPzogVmFsaWRhdG9yPFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdPltdIHwgKChjb21wb25lbnQ6IEMpID0+IHZvaWQpLCBpbml0aWFsaXNlQ29tcG9uZW50PzogKGNvbXBvbmVudDogQykgPT4gdm9pZCk6IHRoaXMge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBBcnJheS5pc0FycmF5KHZhbGlkYXRvcnNPckluaXRpYWxpc2VyKSA/IHZhbGlkYXRvcnNPckluaXRpYWxpc2VyIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGluaXRpYWxpc2VyID0gaXNGdW5jdGlvbih2YWxpZGF0b3JzT3JJbml0aWFsaXNlcikgPyB2YWxpZGF0b3JzT3JJbml0aWFsaXNlciA6IGluaXRpYWxpc2VDb21wb25lbnQ7XG5cbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxFZGl0b3IobmV3IENlbGxFZGl0b3JQb3J0YWxSZWYoZWRpdG9yLCAoY29tcG9uZW50OiBDLCBlZGl0U2Vzc2lvbjogRWRpdFNlc3Npb248Um93PikgPT4ge1xuICAgICAgY29uc3QgZm9ybUxpc3RNb2RlbCA9IGVkaXRTZXNzaW9uLmZvcm0ucGx1Y2tMaXN0KHRoaXMucHJvcGVydHkpO1xuICAgICAgaWYgKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgZm9ybUxpc3RNb2RlbC52YWxpZGF0ZVVzaW5nKHZhbGlkYXRvcnMpO1xuICAgICAgfVxuICAgICAgY29tcG9uZW50Lmxpc3RNb2RlbCA9IGZvcm1MaXN0TW9kZWw7XG4gICAgICBpZiAoaW5pdGlhbGlzZXIpIHtcbiAgICAgICAgaW5pdGlhbGlzZXIoY29tcG9uZW50KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmb3JtYXQoZm9ybWF0dGVyOiAodmFsdWU6IFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdKSA9PiBhbnkpOiB0aGlzIHtcbiAgICBhc3NlcnQuaXNGdW5jdGlvbihmb3JtYXR0ZXIpO1xuICAgIHRoaXMuX2Zvcm1hdCA9IGZvcm1hdHRlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RSb3dPbkNsaWNrKHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0Um93T25DbGljayhzZWxlY3RSb3dPbkNsaWNrKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgVj4gZXh0ZW5kcyBDb2x1bW5Nb2RlbDxSb3c+IHtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5JZDogc3RyaW5nLCBkZWZhdWx0czogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlciwgcHJpdmF0ZSBnZXRWYWx1ZTogKHJvdzogUm93KSA9PiBWKSB7XG4gICAgc3VwZXIoY29sdW1uSWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcjxDIGV4dGVuZHMgeyB2YWx1ZTogUGFydGlhbDxWPiB9Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+LCBvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/OiBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgQz4gfCBPbkNvbXBvbmVudEluaXQ8Qz4pOiB0aGlzIHtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKGNvbXBvbmVudFR5cGUsIChjb21wb25lbnQsIHJvd0RhdGEsIGZpcnN0VGltZSkgPT4ge1xuICAgICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnMpKSB7XG4gICAgICAgICAgb25Db21wb25lbnRJbml0T3JPcHRpb25zKGNvbXBvbmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGlzRnVuY3Rpb24ob25Db21wb25lbnRJbml0T3JPcHRpb25zPy5vbkNvbXBvbmVudEluaXQpKSB7XG4gICAgICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMub25Db21wb25lbnRJbml0KGNvbXBvbmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb21wb25lbnQudmFsdWUgPSB0aGlzLmdldFZhbHVlKHJvd0RhdGEucm93KTtcblxuICAgICAgaWYgKCFpc0Z1bmN0aW9uKG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucykgJiYgaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/Lm9uUm93VXBkYXRlKSkge1xuICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMub25Sb3dVcGRhdGUoY29tcG9uZW50LCByb3dEYXRhLnJvdyk7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdFJvd09uQ2xpY2soc2VsZWN0T25Sb3dDbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2spO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xDb2x1bW5Nb2RlbDxSb3c+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgc2F2ZUNvbW1hbmRGYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8RGlydHlUcmFja2luZ0Zvcm08Um93PiwgYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4+LCBkZWZhdWx0czogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcikge1xuICAgIHN1cGVyKGNvbHVtbklkLCBkZWZhdWx0cyk7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXIoRWRpdFJvd0NvbnRyb2xzKTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPHsgcm93OiBSb3csIGVkaXRTZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+LCBlZGl0Um93Q29tbWFuZDogQ29tbWFuZDx2b2lkPiB9Pik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YTogUm93RGF0YTxSb3c+KSA9PiB7XG4gICAgICBjb21wb25lbnQucm93ID0gcm93RGF0YS5yb3c7XG4gICAgICBjb21wb25lbnQuZWRpdFNlc3Npb24gPSByb3dEYXRhLmVkaXRTZXNzaW9uO1xuICAgICAgY29tcG9uZW50LmVkaXRSb3dDb21tYW5kID0gcm93RGF0YS5lZGl0Um93Q29tbWFuZDtcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEhlYWRlclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbVRlbXBsYXRlQ29sdW1uTW9kZWw8Um93PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IG5ldyBUZW1wbGF0ZUNlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3c+KCk7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgZGVmYXVsdHM6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIpIHtcbiAgICBzdXBlcihjb2x1bW5JZCwgZGVmYXVsdHMpO1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHNldFRlbXBsYXRlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBmaWxsQ2VsbDogYm9vbGVhbiwgcGFkQ2hpbGQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbmZpZy5yZWdpc3RlclBvcnRhbCh0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lciwgZmlsbENlbGwsIHBhZENoaWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2s6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0Um93T25DbGljayhzZWxlY3RPblJvd0NsaWNrKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlSGVhZGVyQ29udHJvbHMgPSB0cnVlO1xuICByZWFkb25seSBzZWxlY3Rpb25Nb2RlbCA9IERlbGVnYXRpbmdTZWxlY3Rpb25Nb2RlbC5jcmVhdGVEZWxlZ2F0ZTxSb3csIHVua25vd24+KCk7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgZGVmYXVsdHM6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIsIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxSb3c+KSB7XG4gICAgc3VwZXIoY29sdW1uSWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKGZhbHNlKTtcbiAgICB0aGlzLmNlbGxIZWFkZXJSZW5kZXJlcihTZWxlY3RIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQpID0+IHtcbiAgICAgIGNvbXBvbmVudC5zZWxlY3Rpb25Nb2RlbCA9IHRoaXMuc2VsZWN0aW9uTW9kZWw7XG4gICAgICBjb21wb25lbnQuZW5hYmxlSGVhZGVyQ29udHJvbHMgPSB0aGlzLl9lbmFibGVIZWFkZXJDb250cm9scztcbiAgICB9KTtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKFNlbGVjdENlbGxSZW5kZXJlckNvbXBvbmVudCwgKGNvbXBvbmVudCwgcm93RGF0YTogUm93RGF0YTxSb3c+KSA9PiB7XG4gICAgICBjb21wb25lbnQucm93ID0gcm93RGF0YS5yb3c7XG4gICAgICBjb21wb25lbnQuc2VsZWN0aW9uTW9kZWwgPSB0aGlzLnNlbGVjdGlvbk1vZGVsO1xuICAgIH0pKTtcbiAgICB0aGlzLnNldFNlbGVjdGlvbk1vZGVsKHNlbGVjdGlvbk1vZGVsKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbk1vZGVsKHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxSb3c+KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZXREZWxlZ2F0ZShzZWxlY3Rpb25Nb2RlbCk7XG4gICAgdGhpcy5zZXREZWZhdWx0VmlzaWJpbGl0eShzZWxlY3Rpb25Nb2RlbCBpbnN0YW5jZW9mIE11bHRpcGxlU2VsZWN0aW9uTW9kZWwgPyBWYWx1ZU1vZGVsLlRSVUUgOiBWYWx1ZU1vZGVsLkZBTFNFKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0SGVhZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGVuYWJsZUhlYWRlckNvbnRyb2xzKGVuYWJsZTogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2VuYWJsZUhlYWRlckNvbnRyb2xzID0gZW5hYmxlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogUm93KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RDb21tYW5kLmV4ZWN1dGUocm93KTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQocm93OiBSb3cpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHJvdyk7XG4gIH1cbn1cblxuXG4iXX0=
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvY29sdW1uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUVwQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBS3RCLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBRW5CLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUczQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFHbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFNeEgsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0saUNBQWlDLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFjckYsTUFBTSw2QkFBNkIsR0FBaUMs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Q0FBQywyQkFBMkIsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFxQixFQUFFLEVBQUU7WUFDOUgsU0FBUyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzVCLFNBQVMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFtQztRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxZQUFZLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVE7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsL3BvcnRhbC1kaXJlY3RpdmVzXCI7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIENvbW1hbmQsIENvbW1hbmRGYWN0b3J5LFxuICBEZWxlZ2F0aW5nU2VsZWN0aW9uTW9kZWwsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEaXJ0eVRyYWNraW5nRm9ybSxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTXVsdGlwbGVTZWxlY3Rpb25Nb2RlbCxcbiAgU2VsZWN0aW9uTW9kZWwsXG4gIFR5cGVzLFxuICBVbmFyeUNvbW1hbmQsXG4gIFZhbGlkYXRvcixcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBhc3NlcnQsIGxhbmcsIFN0cmluZ3kgfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgTWVtb2l6ZSB9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5cbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ2VsbEVkaXRvckNvbXBvbmVudCwgQ2VsbExpc3RFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycyc7XG5pbXBvcnQge1xuICBDZWxsRWRpdG9yUG9ydGFsUmVmLFxuICBDZWxsSGVhZGVyUG9ydGFsUmVmLFxuICBDZWxsUmVuZGVyZXJQb3J0YWxSZWYsXG4gIENvbXBvbmVudENlbGxSZW5kZXJlclBvcnRhbFJlZixcbiAgVGVtcGxhdGVDZWxsUmVuZGVyZXJQb3J0YWxSZWZcbn0gZnJvbSAnLi9jZWxsLXBvcnRhbC1yZWYnO1xuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IENvbHVtblRleHRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9jb2x1bW4tdGV4dC1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IERlZmF1bHRDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtY2VsbC1yZW5kZXJlci9kZWZhdWx0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIvZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdFJvd0NvbnRyb2xzIH0gZnJvbSAnLi9lZGl0LXJvdy1jb250cm9scy9lZGl0LXJvdy1jb250cm9scy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi9lZGl0LXNlc3Npb24nO1xuaW1wb3J0IHsgTXV0YWJsZUNlbGxSZW5kZXJlciB9IGZyb20gJy4vbXV0YWJsZS1jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFNlbGVjdENlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWNlbGwtcmVuZGVyZXIvc2VsZWN0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWhlYWRlci1jZWxsLXJlbmRlcmVyL3NlbGVjdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwtcmVuZGVyZXIvdGFibGUtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyL3RhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0U2VhcmNoUHJlZGljYXRlIH0gZnJvbSAnLi90ZXh0LXNlYXJjaC1wcmVkaWNhdGUnO1xuXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvd0RhdGE8Um93PiB7XG4gIHJvdzogUm93O1xuICBlZGl0U2Vzc2lvbj86IEVkaXRTZXNzaW9uPFJvdz47XG4gIGVkaXRSb3dDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xufVxuXG5jb25zdCBDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEUgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyOnJvdy1kYXRhLWNhY2hlJyk7XG5cbmV4cG9ydCB0eXBlIE9uQ29tcG9uZW50SW5pdDxDPiA9IChjb21wb25lbnQ6IEMpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+IHtcbiAgb25Db21wb25lbnRJbml0PzogKGNvbXBvbmVudDogRSkgPT4gdm9pZDtcbiAgb25Sb3dVcGRhdGU/OiAoY29tcG9uZW50OiBFLCByb3c6IFJvdykgPT4gdm9pZDtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIE11dGFibGVDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgRSwgUCBleHRlbmRzIGtleW9mIFJvdz4gZXh0ZW5kcyBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgRT4ge1xuICBvblZhbHVlRWRpdDogKHJvdzogUm93LCBpczogUm93W1BdLCB3YXM6IFJvd1tQXSkgPT4gdm9pZDtcbn1cblxuY29uc3QgREVGQVVMVF9URVhUX1NFQVJDSF9QUkVESUNBVEU6IFRleHRTZWFyY2hQcmVkaWNhdGU8dW5rbm93bj4gPSAocm93OiB1bmtub3duLCB0ZXh0OiBSZWdFeHApID0+IGZhbHNlO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uTW9kZWw8Um93PiBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHByaXZhdGUgX2NvbHVtblRleHRQcm9wZXJ0aWVzOiBDb2x1bW5UZXh0UHJvcGVydGllcztcblxuICBwcml2YXRlIF9jb2x1bW5IZWFkZXJQb3J0YWxSZWY6IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBhbnk+O1xuICBwcml2YXRlIF9jZWxsUmVuZGVyZXJQb3J0YWxSZWY6IENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3csIGFueT47XG4gIHByaXZhdGUgX2NlbGxFZGl0b3JQb3J0YWxSZWY6IENlbGxFZGl0b3JQb3J0YWxSZWY8Um93LCBhbnk+O1xuXG4gIHByaXZhdGUgX2VuYWJsZVJvd1NlbGVjdGlvbiA9IHRydWU7XG4gIHByaXZhdGUgX2ZsZXggPSBmYWxzZTtcblxuICBwcml2YXRlIF9kZWZhdWx0VmlzaWJpbGl0eSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRydWUpKTtcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRoaXMuX2RlZmF1bHRWaXNpYmlsaXR5KSk7XG4gIHJlYWRvbmx5IGRhc2hlcmlzZWRDb2x1bW5JZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2NvbHVtbk1vZGVsVGV4dFNlYXJjaFByZWRpY2F0ZTogVGV4dFNlYXJjaFByZWRpY2F0ZTxSb3c+ID0gdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgX2NlbGxSZW5kZXJlclRleHRTZWFyY2hQcmVkaWNhdGU6IFRleHRTZWFyY2hQcmVkaWNhdGU8Um93PiA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb2x1bW5JZDogc3RyaW5nLCBwcml2YXRlIHRleHRQcm9wZXJ0aWVzUHJvdmlkZXI6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW5zdGFsbEhlYWRlclJlbmRlcmVyKCk7XG4gICAgdGhpcy5kYXNoZXJpc2VkQ29sdW1uSWQgPSBTdHJpbmd5LmZyb20oY29sdW1uSWQpLmRhc2hlcml6ZSgpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEhlYWRlclJlbmRlcmVyKCkge1xuICAgIHRoaXMuY2VsbEhlYWRlclJlbmRlcmVyKERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQsIGNvbHVtbikgPT4ge1xuICAgICAgY29tcG9uZW50LmhlYWRlclRleHQgPSBjb2x1bW4uZ2V0SGVhZGVyVGV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoKT8uaGVhZGVyVGV4dCgpIHx8IHRoaXMuZ2V0RGVmYXVsdEhlYWRlclRleHQoKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlLnZhbHVlO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUucmVhZG9ubHk7XG4gIH1cblxuICB2aXNpYmxlV2hpbGUodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPik6IHRoaXMge1xuICAgIHRoaXMuX3Zpc2libGUuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0RGVmYXVsdFZpc2liaWxpdHkodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX2RlZmF1bHRWaXNpYmlsaXR5LnNldERlbGVnYXRlKHZpc2libGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRIZWFkZXJUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbklkO1xuICB9XG5cbiAgZ2V0IGlzVGV4dE1hdGNoKCk6IFRleHRTZWFyY2hQcmVkaWNhdGU8Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbk1vZGVsVGV4dFNlYXJjaFByZWRpY2F0ZSB8fCB0aGlzLl9jZWxsUmVuZGVyZXJUZXh0U2VhcmNoUHJlZGljYXRlIHx8IERFRkFVTFRfVEVYVF9TRUFSQ0hfUFJFRElDQVRFO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHByZWRpY2F0ZSB0byB1c2Ugd2hlbiBjaGVja2luZyBpZiB0aGUgc3BlY2lmaWVkIHJvdyBpcyBhIHRleHQgbWF0Y2ggZm9yIHRoaXMgY29sdW1uLlxuICAgKiBAcGFyYW0gcHJlZGljYXRlXG4gICAqL1xuICB1c2VUZXh0U2VhcmNoUHJlZGljYXRlKHByZWRpY2F0ZTogVGV4dFNlYXJjaFByZWRpY2F0ZTxSb3c+KTp0aGlzIHtcbiAgICB0aGlzLl9jb2x1bW5Nb2RlbFRleHRTZWFyY2hQcmVkaWNhdGUgPSBwcmVkaWNhdGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKCk6IENvbHVtblRleHRQcm9wZXJ0aWVzIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgfHwgdGhpcy50ZXh0UHJvcGVydGllc1Byb3ZpZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjb2x1bW5UZXh0UHJvcGVydGllcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBjb2x1bW5UZXh0UHJvcGVydGllc1xuICAgKi9cbiAgdGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXMpO1xuICB9XG5cbiAgY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVIZWFkZXJSZW5kZXJlcjxDPihjb25maWc6IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmID0gY29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUNlbGxSZW5kZXJlcjxDPihjb25maWc6IENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3csIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYgPSBjb25maWc7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlQ2VsbEVkaXRvcjxFPihjZWxsRWRpdG9yOiBDZWxsRWRpdG9yUG9ydGFsUmVmPFJvdywgRT4pOiB2b2lkIHtcbiAgICB0aGlzLl9jZWxsRWRpdG9yUG9ydGFsUmVmID0gY2VsbEVkaXRvcjtcbiAgfVxuXG4gIGNlbGxIZWFkZXJSZW5kZXJlcjxDPihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+LCBpbml0aWFsaXNlcjogKGNvbXBvbmVudDogQywgY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgdGhpcy5jb25maWd1cmVIZWFkZXJSZW5kZXJlcihuZXcgQ2VsbEhlYWRlclBvcnRhbFJlZjxSb3csIEM+KGNvbXBvbmVudFR5cGUsIGluaXRpYWxpc2VyKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmbGV4KGZsZXggPSB0cnVlKSB7XG4gICAgdGhpcy5fZmxleCA9IGZsZXg7XG4gIH1cblxuICBpc0ZsZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZsZXg7XG4gIH1cblxuICBoYXNFZGl0b3JQb3J0YWwoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZjtcbiAgfVxuXG4gIGF0dGFjaEhlYWRlckNlbGwoaG9zdDogYW55KSB7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QsIHRoaXMpO1xuICB9XG5cbiAgYXR0YWNoQ2VsbChob3N0OiBhbnkpIHtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYuaW5pdGlhbGlzZUhvc3QoaG9zdCwgdGhpcyk7XG4gICAgaWYgKHRoaXMuaGFzRWRpdG9yUG9ydGFsKCkpIHtcbiAgICAgIHRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWYuaW5pdGlhbGlzZUhvc3QoaG9zdCwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgb25IZWFkZXJBdHRhY2hlZChob3N0OiBUYWJsZUhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudCwgcmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50KHJlZik7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmLm9uUG9ydGFsQXR0YWNoZWQoaG9zdCwgY29tcG9uZW50KTtcbiAgfVxuXG4gIG9uUmVuZGVyZXJBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWYpO1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIGNvbXBvbmVudCk7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29tcG9uZW50Py5tYXRjaGVzKSkge1xuICAgICAgdGhpcy5fY2VsbFJlbmRlcmVyVGV4dFNlYXJjaFByZWRpY2F0ZSA9IChyb3csIHRleHQpID0+IGNvbXBvbmVudC5tYXRjaGVzKHJvdywgdGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NlbGxSZW5kZXJlclRleHRTZWFyY2hQcmVkaWNhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25FZGl0b3JBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIHRoaXMuZ2V0Q29tcG9uZW50KHJlZikpO1xuICB9XG5cbiAgdXBkYXRlUG9ydGFsQ29udGVudChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+KSB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmLnB1c2hTdGF0ZShob3N0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2VsZWN0Um93T25DbGljayhzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fZW5hYmxlUm93U2VsZWN0aW9uID0gc2VsZWN0Um93T25DbGljaztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlzUm93U2VsZWN0aW9uRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlUm93U2VsZWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbXBvbmVudChyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogYW55IHtcbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gcmVmLmluc3RhbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiaGVhZGVycyBvbmx5IHN1cHBvcnQgY29tcG9uZW50IHBvcnRhbHMsIGdvdFwiLCByZWYpO1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYGhlYWRlcnMgb25seSBzdXBwb3J0IGNvbXBvbmVudCBwb3J0YWxzLCBnb3QgJHtyZWZ9YClcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbXBvbmVudE9yRW1iZWRkZWRWaWV3KHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpOiBhbnkge1xuICAgIGlmIChyZWYgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybiByZWYuaW5zdGFuY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZWY7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29sdW1uTW9kZWwge1xuICBleHBvcnQgdHlwZSBUZXh0UHJvcGVydGllc1Byb3ZpZGVyID0gKCkgPT4gQ29sdW1uVGV4dFByb3BlcnRpZXNcbn1cblxuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFAgZXh0ZW5kcyBUeXBlcy5WYWx1ZVByb3BlcnRpZXNPZjxSb3c+PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuXG4gIHByaXZhdGUgX2Zvcm1hdDogKHZhbHVlOiBSb3dbUF0pID0+IGFueSA9ICh2YWx1ZSkgPT4gdmFsdWU/LnRvU3RyaW5nKCk7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcmVhZG9ubHkgcHJvcGVydHk6IFAsIGRlZmF1bHRzOiBDb2x1bW5Nb2RlbC5UZXh0UHJvcGVydGllc1Byb3ZpZGVyKSB7XG4gICAgc3VwZXIoaWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgICB0aGlzLnVzZVRleHRTZWFyY2hQcmVkaWNhdGUoKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh0aGlzLl9mb3JtYXQocm93W3RoaXMucHJvcGVydHldKSk7XG4gICAgfSk7XG4gIH1cblxuICBjZWxsUmVuZGVyZXI8RSBleHRlbmRzIENlbGxSZW5kZXJlcjxSb3dbUF0+Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEU+LCBvcHRpb25zPzogQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+KTogdGhpc1xuICBjZWxsUmVuZGVyZXI8RSBleHRlbmRzIENlbGxSZW5kZXJlcjxSb3dbUF0+Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEU+LCBvbkNvbXBvbmVudEluaXQ/OiBPbkNvbXBvbmVudEluaXQ8RT4pOiB0aGlzXG4gIGNlbGxSZW5kZXJlcjxFIGV4dGVuZHMgQ2VsbFJlbmRlcmVyPFJvd1tQXT4+KGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8RT4sIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucz86IENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFPiB8IE9uQ29tcG9uZW50SW5pdDxFPik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YSwgZmlyc3RUaW1lKSA9PiB7XG4gICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucykpIHtcbiAgICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMoY29tcG9uZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/Lm9uQ29tcG9uZW50SW5pdCkpIHtcbiAgICAgICAgICAgIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucy5vbkNvbXBvbmVudEluaXQoY29tcG9uZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdChyb3dEYXRhLnJvd1t0aGlzLnByb3BlcnR5XSk7XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbGl2ZUVkaXRDZWxsUmVuZGVyZXI8RSBleHRlbmRzIE11dGFibGVDZWxsUmVuZGVyZXI8Um93W1BdPj4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxFPiwgb3B0aW9uczogTXV0YWJsZUNlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFLCBQPik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLm11dGFibGVDZWxsUmVuZGVyZXIoY29tcG9uZW50VHlwZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVwcmVjYXRlZC4gIFVzZSAjbGl2ZUVkaXRDZWxsUmVuZGVyZXIgaW5zdGVhZC5cbiAgICogQHBhcmFtIGNvbXBvbmVudFR5cGVcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIG11dGFibGVDZWxsUmVuZGVyZXI8RSBleHRlbmRzIE11dGFibGVDZWxsUmVuZGVyZXI8Um93W1BdPj4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxFPiwgb3B0aW9uczogTXV0YWJsZUNlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFLCBQPik6IHRoaXMge1xuXG4gICAgdGhpcy5jb25maWd1cmVDZWxsUmVuZGVyZXIobmV3IENvbXBvbmVudENlbGxSZW5kZXJlclBvcnRhbFJlZihjb21wb25lbnRUeXBlLCAoY29tcG9uZW50LCByb3dEYXRhLCBmaXJzdFRpbWUpID0+IHtcblxuICAgICAgLy8ga2VlcCBhIGxvY2FsIGNvcHkgbW9zdCByZWNlbnQgcm93IHZhbHVlIHNvIGl0J3MgYXZhaWxhYmxlIHRvIHRlaFxuICAgICAgLy8gZWRpdCBjYWxsYmFjayB3aXRob3V0IGhhdmluZyB0byBhZGQvcmVtb3ZlIHN1YnNjcmliZXJzIGFsbCB0aGUgdGltZS5cbiAgICAgIGNvbXBvbmVudFtDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEVdID0gcm93RGF0YS5yb3c7XG4gICAgICBsZXQgZGlzYWJsZUVkaXRDYWxsYmFjayA9IGZhbHNlO1xuXG4gICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKG9wdGlvbnM/Lm9uQ29tcG9uZW50SW5pdCkpIHtcbiAgICAgICAgICBvcHRpb25zLm9uQ29tcG9uZW50SW5pdChjb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluc3RhbGwgb3VyIGVkaXQgY2FsbGJhY2tcbiAgICAgICAgY29tcG9uZW50Lm9uVmFsdWVFZGl0ZWQoKGlzLCB3YXMpID0+IHtcbiAgICAgICAgICBpZiAoIWRpc2FibGVFZGl0Q2FsbGJhY2spIHtcbiAgICAgICAgICAgIG9wdGlvbnMub25WYWx1ZUVkaXQoY29tcG9uZW50W0NFTExfUkVOREVSRVJfQ09NUE9ORU5UX1JPV19DQUNIRV0sIGlzLCB3YXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIH1cblxuICAgICAgLy8gbm93IHB1c2ggdGhlIHZhbHVlIHRoZSBjb21wb25lbnQgYW5kIGRpc2FibGUgdGhlIGNhbGxiYWNrIGp1c3QgaW5jYXNlIHRoZSBjb21wb25lbnQgbWlzYmVoYXZlc1xuICAgICAgLy8gYW5kIGZpcmVzIGEgdmFsdWUgY2hhbmdlIGR1cmluZyB0aGUgb3BlcmF0aW9uLlxuICAgICAgZGlzYWJsZUVkaXRDYWxsYmFjayA9IHRydWU7XG4gICAgICBjb21wb25lbnQudmFsdWUgPSByb3dEYXRhLnJvd1t0aGlzLnByb3BlcnR5XTtcbiAgICAgIGRpc2FibGVFZGl0Q2FsbGJhY2sgPSBmYWxzZTtcblxuICAgICAgaWYgKCFpc0Z1bmN0aW9uKG9wdGlvbnMpICYmIGlzRnVuY3Rpb24ob3B0aW9ucz8ub25Sb3dVcGRhdGUpKSB7XG4gICAgICAgIG9wdGlvbnMub25Sb3dVcGRhdGUoY29tcG9uZW50LCByb3dEYXRhLnJvdyk7XG4gICAgICB9XG5cbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZWxsRWRpdG9yPEUgZXh0ZW5kcyBDZWxsRWRpdG9yQ29tcG9uZW50PFJvd1tQXT4+KGVkaXRvcjogQ29tcG9uZW50VHlwZTxFPiwgdmFsaWRhdG9ycz86IFZhbGlkYXRvcjxSb3dbUF0+W10sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBFKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEUgZXh0ZW5kcyBDZWxsRWRpdG9yQ29tcG9uZW50PFJvd1tQXT4+KGVkaXRvcjogQ29tcG9uZW50VHlwZTxFPiwgaW5pdGlhbGlzZUNvbXBvbmVudD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQpOiB0aGlzXG4gIGNlbGxFZGl0b3I8RSBleHRlbmRzIENlbGxFZGl0b3JDb21wb25lbnQ8Um93W1BdPj4oZWRpdG9yOiBDb21wb25lbnRUeXBlPEU+LCB2YWxpZGF0b3JzT3JJbml0aWFsaXNlcj86IFZhbGlkYXRvcjxSb3dbUF0+W10gfCAoKGNvbXBvbmVudDogRSkgPT4gdm9pZCksIG9uQ29tcG9uZW50SW5pdD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzT3JJbml0aWFsaXNlcikgPyB2YWxpZGF0b3JzT3JJbml0aWFsaXNlciA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpbml0aWFsaXNlciA9IGlzRnVuY3Rpb24odmFsaWRhdG9yc09ySW5pdGlhbGlzZXIpID8gdmFsaWRhdG9yc09ySW5pdGlhbGlzZXIgOiBvbkNvbXBvbmVudEluaXQ7XG4gICAgdGhpcy5jb25maWd1cmVDZWxsRWRpdG9yKG5ldyBDZWxsRWRpdG9yUG9ydGFsUmVmKGVkaXRvciwgKGNvbXBvbmVudDogRSwgZWRpdFNlc3Npb246IEVkaXRTZXNzaW9uPFJvdz4pID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZU1vZGVsID0gZWRpdFNlc3Npb24uZm9ybS5wbHVjayh0aGlzLnByb3BlcnR5KTtcbiAgICAgIGlmICh2YWxpZGF0b3JzKSB7XG4gICAgICAgIGZvcm1WYWx1ZU1vZGVsLnZhbGlkYXRlVXNpbmcodmFsaWRhdG9ycyk7XG4gICAgICB9XG4gICAgICBjb21wb25lbnQudmFsdWVNb2RlbCA9IGZvcm1WYWx1ZU1vZGVsO1xuICAgICAgaWYgKGluaXRpYWxpc2VyKSB7XG4gICAgICAgIGluaXRpYWxpc2VyKGNvbXBvbmVudCk7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZm9ybWF0KGZvcm1hdHRlcjogKHZhbHVlOiBSb3dbUF0pID0+IGFueSk6IHRoaXMge1xuICAgIGFzc2VydC5pc0Z1bmN0aW9uKGZvcm1hdHRlcik7XG4gICAgdGhpcy5fZm9ybWF0ID0gZm9ybWF0dGVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdFJvd09uQ2xpY2soc2VsZWN0T25Sb3dDbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2spO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUCBleHRlbmRzIFR5cGVzLkFycmF5UHJvcGVydGllc09mPFJvdz4+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgcHJpdmF0ZSBfZm9ybWF0OiAodmFsdWU6IFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdKSA9PiBhbnkgPSAodmFsdWUpID0+IHZhbHVlLm1hcCh2ID0+IHY/LnRvU3RyaW5nKCkpLmpvaW4oJywgJyk7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcmVhZG9ubHkgcHJvcGVydHk6IFAsIGRlZmF1bHRzOiBDb2x1bW5Nb2RlbC5UZXh0UHJvcGVydGllc1Byb3ZpZGVyKSB7XG4gICAgc3VwZXIoaWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgICB0aGlzLnVzZVRleHRTZWFyY2hQcmVkaWNhdGUoKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh0aGlzLl9mb3JtYXQocm93W3RoaXMucHJvcGVydHldKSk7XG4gICAgfSk7XG4gIH1cblxuICBjZWxsUmVuZGVyZXIoY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTx7IHZhbHVlOiBUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD5bXSB9Pik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YSkgPT4ge1xuICAgICAgY29tcG9uZW50LnZhbHVlID0gdGhpcy5fZm9ybWF0KHJvd0RhdGEucm93W3RoaXMucHJvcGVydHldKTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3I8VHlwZXMuQXJyYXlFbGVtZW50VHlwZTxSb3csIFA+W10+W10sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIHZhbGlkYXRvcnNPckluaXRpYWxpc2VyPzogVmFsaWRhdG9yPFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdPltdIHwgKChjb21wb25lbnQ6IEMpID0+IHZvaWQpLCBpbml0aWFsaXNlQ29tcG9uZW50PzogKGNvbXBvbmVudDogQykgPT4gdm9pZCk6IHRoaXMge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBBcnJheS5pc0FycmF5KHZhbGlkYXRvcnNPckluaXRpYWxpc2VyKSA/IHZhbGlkYXRvcnNPckluaXRpYWxpc2VyIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGluaXRpYWxpc2VyID0gaXNGdW5jdGlvbih2YWxpZGF0b3JzT3JJbml0aWFsaXNlcikgPyB2YWxpZGF0b3JzT3JJbml0aWFsaXNlciA6IGluaXRpYWxpc2VDb21wb25lbnQ7XG5cbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxFZGl0b3IobmV3IENlbGxFZGl0b3JQb3J0YWxSZWYoZWRpdG9yLCAoY29tcG9uZW50OiBDLCBlZGl0U2Vzc2lvbjogRWRpdFNlc3Npb248Um93PikgPT4ge1xuICAgICAgY29uc3QgZm9ybUxpc3RNb2RlbCA9IGVkaXRTZXNzaW9uLmZvcm0ucGx1Y2tMaXN0KHRoaXMucHJvcGVydHkpO1xuICAgICAgaWYgKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgZm9ybUxpc3RNb2RlbC52YWxpZGF0ZVVzaW5nKHZhbGlkYXRvcnMpO1xuICAgICAgfVxuICAgICAgY29tcG9uZW50Lmxpc3RNb2RlbCA9IGZvcm1MaXN0TW9kZWw7XG4gICAgICBpZiAoaW5pdGlhbGlzZXIpIHtcbiAgICAgICAgaW5pdGlhbGlzZXIoY29tcG9uZW50KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmb3JtYXQoZm9ybWF0dGVyOiAodmFsdWU6IFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdKSA9PiBhbnkpOiB0aGlzIHtcbiAgICBhc3NlcnQuaXNGdW5jdGlvbihmb3JtYXR0ZXIpO1xuICAgIHRoaXMuX2Zvcm1hdCA9IGZvcm1hdHRlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RSb3dPbkNsaWNrKHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0Um93T25DbGljayhzZWxlY3RSb3dPbkNsaWNrKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgVj4gZXh0ZW5kcyBDb2x1bW5Nb2RlbDxSb3c+IHtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5JZDogc3RyaW5nLCBkZWZhdWx0czogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlciwgcHJpdmF0ZSBnZXRWYWx1ZTogKHJvdzogUm93KSA9PiBWKSB7XG4gICAgc3VwZXIoY29sdW1uSWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcjxDIGV4dGVuZHMgeyB2YWx1ZTogUGFydGlhbDxWPiB9Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+LCBvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/OiBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgQz4gfCBPbkNvbXBvbmVudEluaXQ8Qz4pOiB0aGlzIHtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKGNvbXBvbmVudFR5cGUsIChjb21wb25lbnQsIHJvd0RhdGEsIGZpcnN0VGltZSkgPT4ge1xuICAgICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnMpKSB7XG4gICAgICAgICAgb25Db21wb25lbnRJbml0T3JPcHRpb25zKGNvbXBvbmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGlzRnVuY3Rpb24ob25Db21wb25lbnRJbml0T3JPcHRpb25zPy5vbkNvbXBvbmVudEluaXQpKSB7XG4gICAgICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMub25Db21wb25lbnRJbml0KGNvbXBvbmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb21wb25lbnQudmFsdWUgPSB0aGlzLmdldFZhbHVlKHJvd0RhdGEucm93KTtcblxuICAgICAgaWYgKCFpc0Z1bmN0aW9uKG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucykgJiYgaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/Lm9uUm93VXBkYXRlKSkge1xuICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMub25Sb3dVcGRhdGUoY29tcG9uZW50LCByb3dEYXRhLnJvdyk7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdFJvd09uQ2xpY2soc2VsZWN0T25Sb3dDbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2spO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xDb2x1bW5Nb2RlbDxSb3c+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgc2F2ZUNvbW1hbmRGYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8RGlydHlUcmFja2luZ0Zvcm08Um93PiwgYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4+LCBkZWZhdWx0czogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcikge1xuICAgIHN1cGVyKGNvbHVtbklkLCBkZWZhdWx0cyk7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXIoRWRpdFJvd0NvbnRyb2xzKTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPHsgcm93OiBSb3csIGVkaXRTZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+LCBlZGl0Um93Q29tbWFuZDogQ29tbWFuZDx2b2lkPiB9Pik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YTogUm93RGF0YTxSb3c+KSA9PiB7XG4gICAgICBjb21wb25lbnQucm93ID0gcm93RGF0YS5yb3c7XG4gICAgICBjb21wb25lbnQuZWRpdFNlc3Npb24gPSByb3dEYXRhLmVkaXRTZXNzaW9uO1xuICAgICAgY29tcG9uZW50LmVkaXRSb3dDb21tYW5kID0gcm93RGF0YS5lZGl0Um93Q29tbWFuZDtcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEhlYWRlclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbVRlbXBsYXRlQ29sdW1uTW9kZWw8Um93PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IG5ldyBUZW1wbGF0ZUNlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3c+KCk7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgZGVmYXVsdHM6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIpIHtcbiAgICBzdXBlcihjb2x1bW5JZCwgZGVmYXVsdHMpO1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHNldFRlbXBsYXRlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBmaWxsQ2VsbDogYm9vbGVhbiwgcGFkQ2hpbGQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbmZpZy5yZWdpc3RlclBvcnRhbCh0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lciwgZmlsbENlbGwsIHBhZENoaWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2s6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0Um93T25DbGljayhzZWxlY3RPblJvd0NsaWNrKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlSGVhZGVyQ29udHJvbHMgPSB0cnVlO1xuICByZWFkb25seSBzZWxlY3Rpb25Nb2RlbCA9IERlbGVnYXRpbmdTZWxlY3Rpb25Nb2RlbC5jcmVhdGVEZWxlZ2F0ZTxSb3csIHVua25vd24+KCk7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgZGVmYXVsdHM6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIsIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxSb3c+KSB7XG4gICAgc3VwZXIoY29sdW1uSWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKGZhbHNlKTtcbiAgICB0aGlzLmNlbGxIZWFkZXJSZW5kZXJlcihTZWxlY3RIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQpID0+IHtcbiAgICAgIGNvbXBvbmVudC5zZWxlY3Rpb25Nb2RlbCA9IHRoaXMuc2VsZWN0aW9uTW9kZWw7XG4gICAgICBjb21wb25lbnQuZW5hYmxlSGVhZGVyQ29udHJvbHMgPSB0aGlzLl9lbmFibGVIZWFkZXJDb250cm9scztcbiAgICB9KTtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKFNlbGVjdENlbGxSZW5kZXJlckNvbXBvbmVudCwgKGNvbXBvbmVudCwgcm93RGF0YTogUm93RGF0YTxSb3c+KSA9PiB7XG4gICAgICBjb21wb25lbnQucm93ID0gcm93RGF0YS5yb3c7XG4gICAgICBjb21wb25lbnQuc2VsZWN0aW9uTW9kZWwgPSB0aGlzLnNlbGVjdGlvbk1vZGVsO1xuICAgIH0pKTtcbiAgICB0aGlzLnNldFNlbGVjdGlvbk1vZGVsKHNlbGVjdGlvbk1vZGVsKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbk1vZGVsKHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxSb3c+KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZXREZWxlZ2F0ZShzZWxlY3Rpb25Nb2RlbCk7XG4gICAgdGhpcy5zZXREZWZhdWx0VmlzaWJpbGl0eShzZWxlY3Rpb25Nb2RlbCBpbnN0YW5jZW9mIE11bHRpcGxlU2VsZWN0aW9uTW9kZWwgPyBWYWx1ZU1vZGVsLlRSVUUgOiBWYWx1ZU1vZGVsLkZBTFNFKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0SGVhZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGVuYWJsZUhlYWRlckNvbnRyb2xzKGVuYWJsZTogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2VuYWJsZUhlYWRlckNvbnRyb2xzID0gZW5hYmxlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogUm93KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RDb21tYW5kLmV4ZWN1dGUocm93KTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQocm93OiBSb3cpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHJvdyk7XG4gIH1cbn1cblxuXG4iXX0=
|