@provoly/dashboard 0.22.8 → 0.22.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.
@@ -35,14 +35,14 @@ export class AdminClassesCustomizeComponent extends SubscriptionnerDirective {
35
35
  this.store.select(ClassSelectors.classes)
36
36
  ]).pipe(switchMap(([clazz, _]) => this.store.select(ClassSelectors.classById(clazz?.id ?? ''))));
37
37
  this.subscriptions.add(this.currentClass$.subscribe((clazz) => (this.currentClass = clazz ?? {})));
38
- this.currentPropertiesConfig$ = this.store.select(ConfigSelectors.tableDefaultAttributesDefinitions).pipe(combineLatestWith(this.currentClass$, this.fields$), map(([defs, clazz, fields]) => ItemUtils.getAttributesDefinitionForClass((clazz ?? { attributes: [] }), defs, fields)));
38
+ this.currentPropertiesConfig$ = this.store.select(ConfigSelectors.tableDefaultAttributesDefinitions).pipe(combineLatestWith(this.currentClass$, this.fields$), map(([defs, clazz, fields]) => ItemUtils.getClassNonGeoAttributesNames((clazz ?? { attributes: [] }), defs, fields)));
39
39
  this.subscriptions.add(this.currentPropertiesConfig$.pipe(combineLatestWith(this.currentClass$)).subscribe(([attrs, clazz]) => {
40
40
  this.defaultAttributes = JSON.parse(JSON.stringify(attrs));
41
41
  this.otherAttributes = (clazz ?? { attributes: [] }).attributes
42
42
  .filter((attr) => !attrs.includes(attr.name))
43
43
  .map((attr) => attr.name);
44
44
  }));
45
- this.currentTilePropertiesConfig$ = this.store.select(ConfigSelectors.tileAttributesDefinitions).pipe(combineLatestWith(this.currentClass$, this.fields$), map(([defs, clazz, fields]) => ItemUtils.getAttributesDefinitionForClass((clazz ?? { attributes: [] }), defs, fields)), map((attrs) => attrs.filter((_, i) => i < this.maxTilesAttributes)));
45
+ this.currentTilePropertiesConfig$ = this.store.select(ConfigSelectors.tileAttributesDefinitions).pipe(combineLatestWith(this.currentClass$, this.fields$), map(([defs, clazz, fields]) => ItemUtils.getClassNonGeoAttributesNames((clazz ?? { attributes: [] }), defs, fields)), map((attrs) => attrs.filter((_, i) => i < this.maxTilesAttributes)));
46
46
  this.subscriptions.add(this.currentTilePropertiesConfig$.pipe(combineLatestWith(this.currentClass$)).subscribe(([attrs, clazz]) => {
47
47
  this.defaultTileAttributes = JSON.parse(JSON.stringify(attrs));
48
48
  this.otherTileAttributes = (clazz ?? { attributes: [] }).attributes
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
89
89
  type: Component,
90
90
  args: [{ selector: 'pry-admin-classes-customize', template: "<div class=\"o-pry-admin-classes-customize\">\n <h1 class=\"a-h1\" id=\"tab-custom\">{{ '@pry.admin.customize.title' | i18n }}</h1>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"customizeTemplate\" name=\"customize.template\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTable\" name=\"customize.table\"></pry-tab>\n <pry-tab [templateRef]=\"customizeSymbol\" name=\"classes.rules\"></pry-tab>\n <pry-tab [templateRef]=\"customizeTile\" name=\"customize.tile\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #customizeTemplate>\n <pry-admin-classes-customize-tooltip\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-tooltip>\n </ng-template>\n <ng-template #customizeTable>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #defaultList=\"cdkDropList\"\n [cdkDropListData]=\"defaultAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTableAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultList=\"cdkDropList\"\n [cdkDropListData]=\"otherAttributes\"\n [cdkDropListConnectedTo]=\"[defaultList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTableAttrs()\">\n {{ '@pry.admin.customize.updateTable' | i18n }}\n </button>\n </div>\n </ng-template>\n <ng-template #customizeSymbol>\n <pry-admin-classes-customize-symbol\n (backPressed)=\"goBack()\"\n [currentClass]=\"currentClass$ | async\"\n ></pry-admin-classes-customize-symbol>\n </ng-template>\n <ng-template #customizeTile>\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.tile' | i18n }}</h2>\n <div\n cdkDropList\n #defaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"defaultTileAttributes\"\n [cdkDropListConnectedTo]=\"[notDefaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of defaultTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div class=\"container\">\n <h2>{{ '@pry.admin.customize.noTileAttrs' | i18n }}</h2>\n <div\n cdkDropList\n #notDefaultTilesList=\"cdkDropList\"\n [cdkDropListData]=\"otherTileAttributes\"\n [cdkDropListConnectedTo]=\"[defaultTilesList]\"\n class=\"list\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n <div class=\"item\" *ngFor=\"let item of otherTileAttributes\" cdkDrag>{{ item }}</div>\n </div>\n </div>\n\n <div>\n <ng-container *ngIf=\"!isTileConfValid()\">\n <p>{{ '@pry.admin.customize.tileHint' | i18n : { max: maxTilesAttributes } }}</p>\n </ng-container>\n </div>\n\n <div class=\"m-btn-group -width-lg\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button class=\"a-btn a-btn--primary\" type=\"submit\" (click)=\"updateTileAttrs()\" [disabled]=\"!isTileConfValid()\">\n {{ '@pry.admin.customize.updateTile' | i18n }}\n </button>\n </div>\n </ng-template>\n</div>\n" }]
91
91
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBRUwsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUVmLFlBQVksRUFDWixjQUFjLEVBQ2QsU0FBUyxFQUNULHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsd0JBQXdCO0lBYTFFLFlBQW9CLEtBQWlCLEVBQVUsTUFBYyxFQUFVLEtBQXFCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxH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QUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1NBQ3BFLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUMvRyxDQUFDOzhHQXBHVSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwRkN4QjNDLGc5SEErR0E7OzJGRHZGYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3MsXG4gIENsYXNzQWN0aW9ucyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIENvbmZpZ1NlbGVjdG9ycyxcbiAgRmllbGQsXG4gIEZpZWxkQWN0aW9ucyxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEl0ZW1VdGlscyxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc1NlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5DbGFzc2VzQ3VzdG9taXplQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY3VycmVudENsYXNzJDogT2JzZXJ2YWJsZTxDbGFzcyB8IHVuZGVmaW5lZD47XG4gIGN1cnJlbnRDbGFzczogQ2xhc3MgPSB7fSBhcyBDbGFzcztcbiAgZGVmYXVsdEF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG90aGVyQXR0cmlidXRlczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudFByb3BlcnRpZXNDb25maWckOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgY3VycmVudFRpbGVQcm9wZXJ0aWVzQ29uZmlnJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+ID0gb2YoW10pO1xuICBkZWZhdWx0VGlsZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG90aGVyVGlsZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG1heFRpbGVzQXR0cmlidXRlcyA9IDU7XG4gIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT5cbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5zZWxlY3RDbGFzcyh7IGNsYXp6OiB7IGlkOiBwYXJhbXNbJ2lkJ10gfSBhcyBDbGFzcyB9KSlcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xhc3NBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZEN1c3RvbWl6YXRpb24oKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLmN1cnJlbnRDbGFzcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluQ2xhc3NTZWxlY3RvcnMuc2VsZWN0ZWRDbGFzcyksXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKVxuICAgIF0pLnBpcGUoc3dpdGNoTWFwKChbY2xhenosIF9dKSA9PiB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc0J5SWQoY2xheno/LmlkID8/ICcnKSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuY3VycmVudENsYXNzJC5zdWJzY3JpYmUoKGNsYXp6KSA9PiAodGhpcy5jdXJyZW50Q2xhc3MgPSBjbGF6eiA/PyAoe30gYXMgQ2xhc3MpKSkpO1xuICAgIHRoaXMuY3VycmVudFByb3BlcnRpZXNDb25maWckID0gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnRhYmxlRGVmYXVsdEF0dHJpYnV0ZXNEZWZpbml0aW9ucykucGlwZShcbiAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCwgdGhpcy5maWVsZHMkKSxcbiAgICAgIG1hcCgoW2RlZnMsIGNsYXp6LCBmaWVsZHNdKSA9PlxuICAgICAgICBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlc0RlZmluaXRpb25Gb3JDbGFzcygoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KSBhcyBDbGFzcywgZGVmcywgZmllbGRzKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuY3VycmVudFByb3BlcnRpZXNDb25maWckLnBpcGUoY29tYmluZUxhdGVzdFdpdGgodGhpcy5jdXJyZW50Q2xhc3MkKSkuc3Vic2NyaWJlKChbYXR0cnMsIGNsYXp6XSkgPT4ge1xuICAgICAgICB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhdHRycykpO1xuICAgICAgICB0aGlzLm90aGVyQXR0cmlidXRlcyA9IChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pLmF0dHJpYnV0ZXNcbiAgICAgICAgICAuZmlsdGVyKChhdHRyKSA9PiAhYXR0cnMuaW5jbHVkZXMoYXR0ci5uYW1lKSlcbiAgICAgICAgICAubWFwKChhdHRyKSA9PiBhdHRyLm5hbWUpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuY3VycmVudFRpbGVQcm9wZXJ0aWVzQ29uZmlnJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy50aWxlQXR0cmlidXRlc0RlZmluaXRpb25zKS5waXBlKFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5jdXJyZW50Q2xhc3MkLCB0aGlzLmZpZWxkcyQpLFxuICAgICAgbWFwKChbZGVmcywgY2xhenosIGZpZWxkc10pID0+XG4gICAgICAgIEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pIGFzIENsYXNzLCBkZWZzLCBmaWVsZHMpXG4gICAgICApLFxuICAgICAgbWFwKChhdHRycykgPT4gYXR0cnMuZmlsdGVyKChfLCBpKSA9PiBpIDwgdGhpcy5tYXhUaWxlc0F0dHJpYnV0ZXMpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuY3VycmVudFRpbGVQcm9wZXJ0aWVzQ29uZmlnJC5waXBlKGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCkpLnN1YnNjcmliZSgoW2F0dHJzLCBjbGF6el0pID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0VGlsZUF0dHJpYnV0ZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGF0dHJzKSk7XG4gICAgICAgIHRoaXMub3RoZXJUaWxlQXR0cmlidXRlcyA9IChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pLmF0dHJpYnV0ZXNcbiAgICAgICAgICAuZmlsdGVyKChhdHRyKSA9PiAhYXR0cnMuaW5jbHVkZXMoYXR0ci5uYW1lKSlcbiAgICAgICAgICAubWFwKChhdHRyKSA9PiBhdHRyLm5hbWUpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMubWF4QXR0cmlidXRlc0luVGlsZXMpLnN1YnNjcmliZSgobWF4KSA9PiB7XG4gICAgICAgIHRoaXMubWF4VGlsZXNBdHRyaWJ1dGVzID0gbWF4O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4vLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5DbGFzc0FjdGlvbnMuYmFjayh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSB9KSk7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLCBldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB9XG4gICAgY29uc3QgdG9Tb3J0ID0gZXZlbnQucHJldmlvdXNDb250YWluZXIuaWQgPT09ICdjZGstZHJvcC1saXN0LTEnID8gZXZlbnQucHJldmlvdXNDb250YWluZXIgOiBldmVudC5jb250YWluZXI7XG4gICAgdG9Tb3J0LmRhdGEuc29ydCgoYSwgYikgPT4gYS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi50b0xvd2VyQ2FzZSgpKSk7XG4gIH1cblxuICB1cGRhdGVUYWJsZUF0dHJzKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBDb25maWdBY3Rpb25zLnNhdmVUYWJsZURlZmF1bHRBdHRyaWJ1dGVzKHtcbiAgICAgICAgZGVmaW5pdGlvbnM6IHsgW3RoaXMuY3VycmVudENsYXNzLmlkXTogdGhpcy5kZWZhdWx0QXR0cmlidXRlcy5zb3J0KCkgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZ29CYWNrKCk7XG4gIH1cblxuICB1cGRhdGVUaWxlQXR0cnMoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIENvbmZpZ0FjdGlvbnMuc2F2ZVRpbGVBdHRyaWJ1dGVzKHtcbiAgICAgICAgZGVmaW5pdGlvbnM6IHsgW3RoaXMuY3VycmVudENsYXNzLmlkXTogdGhpcy5kZWZhdWx0VGlsZUF0dHJpYnV0ZXMgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZ29CYWNrKCk7XG4gIH1cblxuICBpc1RpbGVDb25mVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRpbGVBdHRyaWJ1dGVzLmxlbmd0aCA+IDAgJiYgdGhpcy5kZWZhdWx0VGlsZUF0dHJpYnV0ZXMubGVuZ3RoIDw9IHRoaXMubWF4VGlsZXNBdHRyaWJ1dGVzO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1wcnktYWRtaW4tY2xhc3Nlcy1jdXN0b21pemVcIj5cbiAgPGgxIGNsYXNzPVwiYS1oMVwiIGlkPVwidGFiLWN1c3RvbVwiPnt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS50aXRsZScgfCBpMThuIH19PC9oMT5cblxuICA8cHJ5LXRhYi1ncm91cCB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmFkbWluLlwiPlxuICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJjdXN0b21pemVUZW1wbGF0ZVwiIG5hbWU9XCJjdXN0b21pemUudGVtcGxhdGVcIj48L3ByeS10YWI+XG4gICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImN1c3RvbWl6ZVRhYmxlXCIgbmFtZT1cImN1c3RvbWl6ZS50YWJsZVwiPjwvcHJ5LXRhYj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwiY3VzdG9taXplU3ltYm9sXCIgbmFtZT1cImNsYXNzZXMucnVsZXNcIj48L3ByeS10YWI+XG4gICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImN1c3RvbWl6ZVRpbGVcIiBuYW1lPVwiY3VzdG9taXplLnRpbGVcIj48L3ByeS10YWI+XG4gIDwvcHJ5LXRhYi1ncm91cD5cblxuICA8bmctdGVtcGxhdGUgI2N1c3RvbWl6ZVRlbXBsYXRlPlxuICAgIDxwcnktYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtdG9vbHRpcFxuICAgICAgKGJhY2tQcmVzc2VkKT1cImdvQmFjaygpXCJcbiAgICAgIFtjdXJyZW50Q2xhc3NdPVwiY3VycmVudENsYXNzJCB8IGFzeW5jXCJcbiAgICA+PC9wcnktYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtdG9vbHRpcD5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21pemVUYWJsZT5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8aDI+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLnRhYmxlQXR0cnMnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICNkZWZhdWx0TGlzdD1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJkZWZhdWx0QXR0cmlidXRlc1wiXG4gICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltub3REZWZhdWx0TGlzdF1cIlxuICAgICAgICBjbGFzcz1cImxpc3RcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGVmYXVsdEF0dHJpYnV0ZXNcIiBjZGtEcmFnPnt7IGl0ZW0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGgyPnt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS5ub1RhYmxlQXR0cnMnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICNub3REZWZhdWx0TGlzdD1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJvdGhlckF0dHJpYnV0ZXNcIlxuICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZGVmYXVsdExpc3RdXCJcbiAgICAgICAgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG90aGVyQXR0cmlidXRlc1wiIGNka0RyYWc+e3sgaXRlbSB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLWxnXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNhbmNlbCcgfCBpMThuXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwidXBkYXRlVGFibGVBdHRycygpXCI+XG4gICAgICAgIHt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS51cGRhdGVUYWJsZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21pemVTeW1ib2w+XG4gICAgPHByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS1zeW1ib2xcbiAgICAgIChiYWNrUHJlc3NlZCk9XCJnb0JhY2soKVwiXG4gICAgICBbY3VycmVudENsYXNzXT1cImN1cnJlbnRDbGFzcyQgfCBhc3luY1wiXG4gICAgPjwvcHJ5LWFkbWluLWNsYXNzZXMtY3VzdG9taXplLXN5bWJvbD5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNjdXN0b21pemVUaWxlPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxoMj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGlsZScgfCBpMThuIH19PC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgI2RlZmF1bHRUaWxlc0xpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGVmYXVsdFRpbGVBdHRyaWJ1dGVzXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW25vdERlZmF1bHRUaWxlc0xpc3RdXCJcbiAgICAgICAgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRlZmF1bHRUaWxlQXR0cmlidXRlc1wiIGNka0RyYWc+e3sgaXRlbSB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8aDI+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLm5vVGlsZUF0dHJzJyB8IGkxOG4gfX08L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAjbm90RGVmYXVsdFRpbGVzTGlzdD1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJvdGhlclRpbGVBdHRyaWJ1dGVzXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW2RlZmF1bHRUaWxlc0xpc3RdXCJcbiAgICAgICAgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG90aGVyVGlsZUF0dHJpYnV0ZXNcIiBjZGtEcmFnPnt7IGl0ZW0gfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUaWxlQ29uZlZhbGlkKClcIj5cbiAgICAgICAgPHA+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLnRpbGVIaW50JyB8IGkxOG4gOiB7IG1heDogbWF4VGlsZXNBdHRyaWJ1dGVzIH0gfX08L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtd2lkdGgtbGdcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgICAgPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJ1cGRhdGVUaWxlQXR0cnMoKVwiIFtkaXNhYmxlZF09XCIhaXNUaWxlQ29uZlZhbGlkKClcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLnVwZGF0ZVRpbGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBRUwsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUVmLFlBQVksRUFDWixjQUFjLEVBQ2QsU0FBUyxFQUNULHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsd0JBQXdCO0lBYTFFLFlBQW9CLEtBQWlCLEVBQVUsTUFBYyxFQUFVLEtBQXFCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxH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QUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1NBQ3BFLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUMvRyxDQUFDOzhHQXBHVSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwRkN4QjNDLGc5SEErR0E7OzJGRHZGYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3MsXG4gIENsYXNzQWN0aW9ucyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIENvbmZpZ1NlbGVjdG9ycyxcbiAgRmllbGQsXG4gIEZpZWxkQWN0aW9ucyxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEl0ZW1VdGlscyxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc1NlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWNsYXNzLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5DbGFzc2VzQ3VzdG9taXplQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY3VycmVudENsYXNzJDogT2JzZXJ2YWJsZTxDbGFzcyB8IHVuZGVmaW5lZD47XG4gIGN1cnJlbnRDbGFzczogQ2xhc3MgPSB7fSBhcyBDbGFzcztcbiAgZGVmYXVsdEF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG90aGVyQXR0cmlidXRlczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudFByb3BlcnRpZXNDb25maWckOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgY3VycmVudFRpbGVQcm9wZXJ0aWVzQ29uZmlnJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+ID0gb2YoW10pO1xuICBkZWZhdWx0VGlsZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG90aGVyVGlsZUF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gW107XG4gIG1heFRpbGVzQXR0cmlidXRlcyA9IDU7XG4gIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT5cbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5zZWxlY3RDbGFzcyh7IGNsYXp6OiB7IGlkOiBwYXJhbXNbJ2lkJ10gfSBhcyBDbGFzcyB9KSlcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ2xhc3NBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChGaWVsZEFjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZEN1c3RvbWl6YXRpb24oKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLmN1cnJlbnRDbGFzcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluQ2xhc3NTZWxlY3RvcnMuc2VsZWN0ZWRDbGFzcyksXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKVxuICAgIF0pLnBpcGUoc3dpdGNoTWFwKChbY2xhenosIF9dKSA9PiB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc0J5SWQoY2xheno/LmlkID8/ICcnKSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuY3VycmVudENsYXNzJC5zdWJzY3JpYmUoKGNsYXp6KSA9PiAodGhpcy5jdXJyZW50Q2xhc3MgPSBjbGF6eiA/PyAoe30gYXMgQ2xhc3MpKSkpO1xuICAgIHRoaXMuY3VycmVudFByb3BlcnRpZXNDb25maWckID0gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnRhYmxlRGVmYXVsdEF0dHJpYnV0ZXNEZWZpbml0aW9ucykucGlwZShcbiAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCwgdGhpcy5maWVsZHMkKSxcbiAgICAgIG1hcCgoW2RlZnMsIGNsYXp6LCBmaWVsZHNdKSA9PlxuICAgICAgICBJdGVtVXRpbHMuZ2V0Q2xhc3NOb25HZW9BdHRyaWJ1dGVzTmFtZXMoKGNsYXp6ID8/IHsgYXR0cmlidXRlczogW10gfSkgYXMgQ2xhc3MsIGRlZnMsIGZpZWxkcylcbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmN1cnJlbnRQcm9wZXJ0aWVzQ29uZmlnJC5waXBlKGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCkpLnN1YnNjcmliZSgoW2F0dHJzLCBjbGF6el0pID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0QXR0cmlidXRlcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYXR0cnMpKTtcbiAgICAgICAgdGhpcy5vdGhlckF0dHJpYnV0ZXMgPSAoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KS5hdHRyaWJ1dGVzXG4gICAgICAgICAgLmZpbHRlcigoYXR0cikgPT4gIWF0dHJzLmluY2x1ZGVzKGF0dHIubmFtZSkpXG4gICAgICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmN1cnJlbnRUaWxlUHJvcGVydGllc0NvbmZpZyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMudGlsZUF0dHJpYnV0ZXNEZWZpbml0aW9ucykucGlwZShcbiAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY3VycmVudENsYXNzJCwgdGhpcy5maWVsZHMkKSxcbiAgICAgIG1hcCgoW2RlZnMsIGNsYXp6LCBmaWVsZHNdKSA9PlxuICAgICAgICBJdGVtVXRpbHMuZ2V0Q2xhc3NOb25HZW9BdHRyaWJ1dGVzTmFtZXMoKGNsYXp6ID8/IHsgYXR0cmlidXRlczogW10gfSkgYXMgQ2xhc3MsIGRlZnMsIGZpZWxkcylcbiAgICAgICksXG4gICAgICBtYXAoKGF0dHJzKSA9PiBhdHRycy5maWx0ZXIoKF8sIGkpID0+IGkgPCB0aGlzLm1heFRpbGVzQXR0cmlidXRlcykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5jdXJyZW50VGlsZVByb3BlcnRpZXNDb25maWckLnBpcGUoY29tYmluZUxhdGVzdFdpdGgodGhpcy5jdXJyZW50Q2xhc3MkKSkuc3Vic2NyaWJlKChbYXR0cnMsIGNsYXp6XSkgPT4ge1xuICAgICAgICB0aGlzLmRlZmF1bHRUaWxlQXR0cmlidXRlcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYXR0cnMpKTtcbiAgICAgICAgdGhpcy5vdGhlclRpbGVBdHRyaWJ1dGVzID0gKGNsYXp6ID8/IHsgYXR0cmlidXRlczogW10gfSkuYXR0cmlidXRlc1xuICAgICAgICAgIC5maWx0ZXIoKGF0dHIpID0+ICFhdHRycy5pbmNsdWRlcyhhdHRyLm5hbWUpKVxuICAgICAgICAgIC5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5tYXhBdHRyaWJ1dGVzSW5UaWxlcykuc3Vic2NyaWJlKChtYXgpID0+IHtcbiAgICAgICAgdGhpcy5tYXhUaWxlc0F0dHJpYnV0ZXMgPSBtYXg7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuLi8uLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkNsYXNzQWN0aW9ucy5iYWNrKHsgcGF0aDogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XG4gICAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsIGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIH1cbiAgICBjb25zdCB0b1NvcnQgPSBldmVudC5wcmV2aW91c0NvbnRhaW5lci5pZCA9PT0gJ2Nkay1kcm9wLWxpc3QtMScgPyBldmVudC5wcmV2aW91c0NvbnRhaW5lciA6IGV2ZW50LmNvbnRhaW5lcjtcbiAgICB0b1NvcnQuZGF0YS5zb3J0KChhLCBiKSA9PiBhLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZShiLnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuXG4gIHVwZGF0ZVRhYmxlQXR0cnMoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIENvbmZpZ0FjdGlvbnMuc2F2ZVRhYmxlRGVmYXVsdEF0dHJpYnV0ZXMoe1xuICAgICAgICBkZWZpbml0aW9uczogeyBbdGhpcy5jdXJyZW50Q2xhc3MuaWRdOiB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzLnNvcnQoKSB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nb0JhY2soKTtcbiAgfVxuXG4gIHVwZGF0ZVRpbGVBdHRycygpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQ29uZmlnQWN0aW9ucy5zYXZlVGlsZUF0dHJpYnV0ZXMoe1xuICAgICAgICBkZWZpbml0aW9uczogeyBbdGhpcy5jdXJyZW50Q2xhc3MuaWRdOiB0aGlzLmRlZmF1bHRUaWxlQXR0cmlidXRlcyB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nb0JhY2soKTtcbiAgfVxuXG4gIGlzVGlsZUNvbmZWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VGlsZUF0dHJpYnV0ZXMubGVuZ3RoID4gMCAmJiB0aGlzLmRlZmF1bHRUaWxlQXR0cmlidXRlcy5sZW5ndGggPD0gdGhpcy5tYXhUaWxlc0F0dHJpYnV0ZXM7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLXByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZVwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCIgaWQ9XCJ0YWItY3VzdG9tXCI+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLnRpdGxlJyB8IGkxOG4gfX08L2gxPlxuXG4gIDxwcnktdGFiLWdyb3VwIHRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuYWRtaW4uXCI+XG4gICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImN1c3RvbWl6ZVRlbXBsYXRlXCIgbmFtZT1cImN1c3RvbWl6ZS50ZW1wbGF0ZVwiPjwvcHJ5LXRhYj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwiY3VzdG9taXplVGFibGVcIiBuYW1lPVwiY3VzdG9taXplLnRhYmxlXCI+PC9wcnktdGFiPlxuICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJjdXN0b21pemVTeW1ib2xcIiBuYW1lPVwiY2xhc3Nlcy5ydWxlc1wiPjwvcHJ5LXRhYj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwiY3VzdG9taXplVGlsZVwiIG5hbWU9XCJjdXN0b21pemUudGlsZVwiPjwvcHJ5LXRhYj5cbiAgPC9wcnktdGFiLWdyb3VwPlxuXG4gIDxuZy10ZW1wbGF0ZSAjY3VzdG9taXplVGVtcGxhdGU+XG4gICAgPHByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS10b29sdGlwXG4gICAgICAoYmFja1ByZXNzZWQpPVwiZ29CYWNrKClcIlxuICAgICAgW2N1cnJlbnRDbGFzc109XCJjdXJyZW50Q2xhc3MkIHwgYXN5bmNcIlxuICAgID48L3ByeS1hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS10b29sdGlwPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2N1c3RvbWl6ZVRhYmxlPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxoMj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGFibGVBdHRycycgfCBpMThuIH19PC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgI2RlZmF1bHRMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRlZmF1bHRBdHRyaWJ1dGVzXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW25vdERlZmF1bHRMaXN0XVwiXG4gICAgICAgIGNsYXNzPVwibGlzdFwiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkZWZhdWx0QXR0cmlidXRlc1wiIGNka0RyYWc+e3sgaXRlbSB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8aDI+e3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLm5vVGFibGVBdHRycycgfCBpMThuIH19PC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgI25vdERlZmF1bHRMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIm90aGVyQXR0cmlidXRlc1wiXG4gICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIltkZWZhdWx0TGlzdF1cIlxuICAgICAgICBjbGFzcz1cImxpc3RcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3RoZXJBdHRyaWJ1dGVzXCIgY2RrRHJhZz57eyBpdGVtIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtd2lkdGgtbGdcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgICAgPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJ1cGRhdGVUYWJsZUF0dHJzKClcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4uY3VzdG9taXplLnVwZGF0ZVRhYmxlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2N1c3RvbWl6ZVN5bWJvbD5cbiAgICA8cHJ5LWFkbWluLWNsYXNzZXMtY3VzdG9taXplLXN5bWJvbFxuICAgICAgKGJhY2tQcmVzc2VkKT1cImdvQmFjaygpXCJcbiAgICAgIFtjdXJyZW50Q2xhc3NdPVwiY3VycmVudENsYXNzJCB8IGFzeW5jXCJcbiAgICA+PC9wcnktYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtc3ltYm9sPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2N1c3RvbWl6ZVRpbGU+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGgyPnt7ICdAcHJ5LmFkbWluLmN1c3RvbWl6ZS50aWxlJyB8IGkxOG4gfX08L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAjZGVmYXVsdFRpbGVzTGlzdD1cImNka0Ryb3BMaXN0XCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJkZWZhdWx0VGlsZUF0dHJpYnV0ZXNcIlxuICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbbm90RGVmYXVsdFRpbGVzTGlzdF1cIlxuICAgICAgICBjbGFzcz1cImxpc3RcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGVmYXVsdFRpbGVBdHRyaWJ1dGVzXCIgY2RrRHJhZz57eyBpdGVtIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxoMj57eyAnQHByeS5hZG1pbi5jdXN0b21pemUubm9UaWxlQXR0cnMnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICNub3REZWZhdWx0VGlsZXNMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIm90aGVyVGlsZUF0dHJpYnV0ZXNcIlxuICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZGVmYXVsdFRpbGVzTGlzdF1cIlxuICAgICAgICBjbGFzcz1cImxpc3RcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3RoZXJUaWxlQXR0cmlidXRlc1wiIGNka0RyYWc+e3sgaXRlbSB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RpbGVDb25mVmFsaWQoKVwiPlxuICAgICAgICA8cD57eyAnQHByeS5hZG1pbi5jdXN0b21pemUudGlsZUhpbnQnIHwgaTE4biA6IHsgbWF4OiBtYXhUaWxlc0F0dHJpYnV0ZXMgfSB9fTwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1sZ1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jYW5jZWwnIHwgaTE4blwiXG4gICAgICA+PC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInVwZGF0ZVRpbGVBdHRycygpXCIgW2Rpc2FibGVkXT1cIiFpc1RpbGVDb25mVmFsaWQoKVwiPlxuICAgICAgICB7eyAnQHByeS5hZG1pbi5jdXN0b21pemUudXBkYXRlVGlsZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -82,12 +82,12 @@ export class ItemUtils {
82
82
  ...new Set(Object.keys(resultSet?.items || {})
83
83
  .map((classId) => classes.find((cl) => cl.id === classId))
84
84
  .filter((oClass) => oClass !== undefined)
85
- .map((oClass) => oClass.attributes.filter((attr) => ItemUtils.getAttributesDefinitionForClass(oClass, definitions, fields).includes(attr.technicalName)))
85
+ .map((oClass) => oClass.attributes)
86
86
  .reduce((p, c) => [...p, ...c], [])
87
87
  .filter((attr) => !!fields.find((f) => f.id === attr.field)))
88
88
  ];
89
89
  }
90
- static getAttributesDefinitionForClass(clazz, defs, fields) {
90
+ static getClassNonGeoAttributesNames(clazz, defs, fields) {
91
91
  return (defs[clazz.id ?? ''] ??
92
92
  (clazz ?? { attributes: [] }).attributes
93
93
  .filter((attr) => {
@@ -106,4 +106,4 @@ export class ItemUtils {
106
106
  return Array.isArray(a) && Array.isArray(b) && a.length === b.length && a.every((val, index) => val === b[index]);
107
107
  }
108
108
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVMsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU1qRixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUN0QixJQUFzQixFQUN0QixTQUF5QztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLFNBQTRDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FDTCxDQUNFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztnQkFDN0IsQ0FBQyxDQUFFLElBQWtCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO2dCQUN0RSxDQUFDLENBQUcsSUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUE0QixDQUFDLElBQUksRUFBRSxDQUMxRixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQ2Y7aUJBQ0UsR0FBRyxDQUFDLENBQUMsQ0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcs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VTtpQkFDckMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2YsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFELE9BQU8sU0FBUyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUM7aUJBQ0QsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLElBQVU7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBUSxFQUFFLENBQVE7UUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlTXVsdGlwbGVWYWx1ZSwgQXR0cmlidXRlU2ltcGxlVmFsdWUsIEl0ZW0sIFZhbHVlVHlwZSB9IGZyb20gJy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0U2V0IH0gZnJvbSAnLi4vY29yZS9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIENsYXNzIH0gZnJvbSAnLi4vY29yZS9zdG9yZS9jbGFzcy9jbGFzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQsIEdlb21ldHJpY0ZpZWxkVHlwZXMgfSBmcm9tICcuLi9jb3JlL3N0b3JlL2ZpZWxkL2ZpZWxkLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2xGZWF0dXJlIHtcbiAgZ2V0KGtleTogc3RyaW5nKTogYW55O1xufVxuXG5jb25zdCBoaWRkZW5GaWVsZFRleHQgPSAnKioqKioqKioqJztcblxuZXhwb3J0IGNsYXNzIEl0ZW1VdGlscyB7XG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVWYWx1ZShcbiAgICBpdGVtOiBJdGVtIHwgT2xGZWF0dXJlLFxuICAgIGF0dHJpYnV0ZTogQXR0cmlidXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICk6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlIHwgQXR0cmlidXRlU2ltcGxlVmFsdWVbXSB7XG4gICAgaWYgKCFhdHRyaWJ1dGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gISFpdGVtLmdldCA/IGl0ZW0uZ2V0KGF0dHJpYnV0ZSkgOiBpdGVtLmF0dHJpYnV0ZXNbYXR0cmlidXRlXTtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKFxuICAgICAgICAgICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnb0NsYXNzJylcbiAgICAgICAgICAgID8gKGl0ZW0gYXMgT2xGZWF0dXJlKS5nZXQoJ2F0dHJpYnV0ZXMnKVthdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gPz8ge31cbiAgICAgICAgICAgIDogKChpdGVtIGFzIEl0ZW0pLmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdIGFzIEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUpKSA/PyB7fVxuICAgICAgICApLnZhbHVlcyA/PyBbXVxuICAgICAgKVxuICAgICAgICAubWFwKCh2OiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSkgPT4gKHsgLi4udiwgdmFsdWU6IHYudmlzaWJsZSA9PT0gZmFsc2UgPyBoaWRkZW5GaWVsZFRleHQgOiB2LnZhbHVlIH0pKVxuICAgICAgICAuc29ydChJdGVtVXRpbHMuc29ydEF0dHJpYnV0ZXMpO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgIWl0ZW0uaGFzT3duUHJvcGVydHkoJ29DbGFzcycpXG4gICAgICAgID8gKGl0ZW0gYXMgT2xGZWF0dXJlKS5nZXQoJ2F0dHJpYnV0ZXMnKVthdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV1cbiAgICAgICAgOiAoaXRlbSBhcyBJdGVtKS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXVxuICAgICkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlQ2FsY3VsYXRlZFZhbHVlKGl0ZW06IEl0ZW0sIGF0dHJpYnV0ZTogQXR0cmlidXRlIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogVmFsdWVUeXBlIHwgVmFsdWVUeXBlW10ge1xuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgVmFsdWVUeXBlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGF0dHJpYnV0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBpdGVtW2F0dHJpYnV0ZV07XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGUubXVsdGlWYWx1ZWQpIHtcbiAgICAgIHJldHVybiAoSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIGF0dHJpYnV0ZSkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWVbXSkubWFwKCh2KSA9PiB2LnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgYXR0cmlidXRlKSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZTtcbiAgICByZXR1cm4gdmFsdWUgPyAodmFsdWUudmlzaWJsZSA9PT0gZmFsc2UgPyBoaWRkZW5GaWVsZFRleHQgOiB2YWx1ZS52YWx1ZSkgOiAodW5kZWZpbmVkIGFzIHVua25vd24gYXMgVmFsdWVUeXBlKTtcbiAgfVxuXG4gIHN0YXRpYyBzb3J0QXR0cmlidXRlcyhhOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSwgYjogQXR0cmlidXRlU2ltcGxlVmFsdWUpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbXBhcmVWaXNpYmxlID0gKGIudmlzaWJsZSA9PT0gZmFsc2UgPyAtMSA6IDEpIC0gKGEudmlzaWJsZSA9PT0gZmFsc2UgPyAtMSA6IDEpO1xuICAgIGlmIChjb21wYXJlVmlzaWJsZSAhPT0gMCkge1xuICAgICAgcmV0dXJuIGNvbXBhcmVWaXNpYmxlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgKGI/Lm1ldGFkYXRhID8gKGI/Lm1ldGFkYXRhWydfbW9kaWZpY2F0aW9uX2RhdGUnXSBhcyBudW1iZXIpID8/IDAgOiAwKSAtXG4gICAgICAoYT8ubWV0YWRhdGEgPyAoYT8ubWV0YWRhdGFbJ19tb2RpZmljYXRpb25fZGF0ZSddIGFzIG51bWJlcikgPz8gMCA6IDApXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBwZXJ0aW5lbnRWYWx1ZShpdGVtczogSXRlbVtdLCBhdHRyOiBBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gaXRlbXNcbiAgICAgIC5tYXAoKGl0ZW0pID0+IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVDYWxjdWxhdGVkVmFsdWUoaXRlbSwgYXR0cikpXG4gICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgIC5tYXAoKHZhbHVlKSA9PiB2YWx1ZSBhcyBudW1iZXIpO1xuICB9XG5cbiAgc3RhdGljIGlzTG9jYXRpb24odHVwbGU6IGFueVtdKSB7XG4gICAgcmV0dXJuICEhdHVwbGVbMF0gJiYgISF0dXBsZVsxXSAmJiB0eXBlb2YgdHVwbGVbMF0gPT09ICdudW1iZXInICYmIHR5cGVvZiB0dXBsZVsxXSA9PT0gJ251bWJlcic7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlc0Zyb21BdmFpbGFiaWxpdHlJblJlc3VsdFNldChyZXN1bHRTZXQ6IFJlc3VsdFNldCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5uZXcgU2V0KFxuICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRTZXQ/Lml0ZW1zIHx8IHt9KVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+XG4gICAgICAgICAgICByZXN1bHRTZXQuaXRlbXNbY2xhc3NJZF0ubWFwKChpdGVtKSA9PiBbLi4uT2JqZWN0LmtleXMoaXRlbSksIC4uLk9iamVjdC5rZXlzKGl0ZW0uYXR0cmlidXRlcyldKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IFsuLi5wcmV2LCAuLi5jdXJyXSwgW10pXG4gICAgICAgICAgLmZpbHRlcigocHJvcCkgPT4gcHJvcCAhPT0gJ2F0dHJpYnV0ZXMnKVxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgZ2V0RmllbGRzRm9yQ2xhc3NlcyhjbGFzc2VzSWQ6IHN0cmluZ1tdLCBjbGFzc2VzOiBDbGFzc1tdLCBmaWVsZHM6IEZpZWxkW10pOiBGaWVsZFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgY2xhc3Nlc0lkXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gY2xhc3Nlcy5maW5kKChjbCkgPT4gY2wuaWQgPT09IGNsYXNzSWQpIGFzIENsYXNzKVxuICAgICAgICAgIC5maWx0ZXIoKG9DbGFzcykgPT4gb0NsYXNzICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLm1hcCgob0NsYXNzOiBDbGFzcykgPT4gb0NsYXNzLmF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PiBmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0ci5maWVsZCkhKSlcbiAgICAgICAgICAubWFwKChmaWVsZHM6IEZpZWxkW10pID0+IGZpZWxkcy5maWx0ZXIoKGYpID0+ICEhZikpXG4gICAgICAgICAgLnJlZHVjZSgocDogRmllbGRbXSwgYzogRmllbGRbXSkgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAgIClcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGhhc0xvY2F0aW9uKGNsYXp6OiBDbGFzcykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRPYmplY3Qob2JqZWN0OiBJdGVtKSB7XG4gICAgcmV0dXJuIG9iamVjdC5vQ2xhc3MgJiYgb2JqZWN0Lm9DbGFzcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZXNGcm9tUnMoXG4gICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgY2xhc3NlczogQ2xhc3NbXSxcbiAgICBmaWVsZHM6IEZpZWxkW10sXG4gICAgZGVmcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfVxuICApOiBBdHRyaWJ1dGVbXSB7XG4gICAgY29uc3QgZGVmaW5pdGlvbnMgPSBkZWZzID8/IHt9O1xuICAgIHJldHVybiBbXG4gICAgICAuLi5uZXcgU2V0KFxuICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRTZXQ/Lml0ZW1zIHx8IHt9KVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IGNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSBjbGFzc0lkKSBhcyBDbGFzcylcbiAgICAgICAgICAuZmlsdGVyKChvQ2xhc3MpID0+IG9DbGFzcyAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG9DbGFzcykgPT5cbiAgICAgICAgICAgIG9DbGFzcy5hdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT5cbiAgICAgICAgICAgICAgSXRlbVV0aWxzLmdldEF0dHJpYnV0ZXNEZWZpbml0aW9uRm9yQ2xhc3Mob0NsYXNzLCBkZWZpbml0aW9ucywgZmllbGRzKS5pbmNsdWRlcyhhdHRyLnRlY2huaWNhbE5hbWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICAgICAgLmZpbHRlcigoYXR0cjogQXR0cmlidXRlKSA9PiAhIWZpZWxkcy5maW5kKChmKSA9PiBmLmlkID09PSBhdHRyLmZpZWxkKSlcbiAgICAgIClcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZXNEZWZpbml0aW9uRm9yQ2xhc3MoY2xheno6IENsYXNzLCBkZWZzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0sIGZpZWxkczogRmllbGRbXSkge1xuICAgIHJldHVybiAoXG4gICAgICBkZWZzW2NsYXp6LmlkID8/ICcnXSA/P1xuICAgICAgKGNsYXp6ID8/IHsgYXR0cmlidXRlczogW10gfSkuYXR0cmlidXRlc1xuICAgICAgICAuZmlsdGVyKChhdHRyKSA9PiB7XG4gICAgICAgICAgY29uc3QgYXR0ckZpZWxkID0gZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHIuZmllbGQpO1xuICAgICAgICAgIHJldHVybiBhdHRyRmllbGQgJiYgIUdlb21ldHJpY0ZpZWxkVHlwZXMuaW5jbHVkZXMoYXR0ckZpZWxkLnR5cGUpO1xuICAgICAgICB9KVxuICAgICAgICAubWFwKChhdHRyKSA9PiBhdHRyLm5hbWUpXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBlbnN1cmVJdGVtSWRIYXNDb3JyZWN0Rm9ybWF0KGl0ZW06IEl0ZW0pOiBJdGVtIHtcbiAgICBpZiAoIWl0ZW0uaWQuaW5jbHVkZXMoJ0AnKSkge1xuICAgICAgaXRlbS5pZCA9IGAke2l0ZW0ub0NsYXNzfUAke2l0ZW0uaWR9YDtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBzdGF0aWMgc2ltcGxlQXJyYXlFcXVhbHMoYTogYW55W10sIGI6IGFueVtdKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYSkgJiYgQXJyYXkuaXNBcnJheShiKSAmJiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgodmFsLCBpbmRleCkgPT4gdmFsID09PSBiW2luZGV4XSk7XG4gIH1cbn1cbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVMsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU1qRixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUN0QixJQUFzQixFQUN0QixTQUF5QztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLFNBQTRDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FDTCxDQUNFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztnQkFDN0IsQ0FBQyxDQUFFLElBQWtCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO2dCQUN0RSxDQUFDLENBQUcsSUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUE0QixDQUFDLElBQUksRUFBRSxDQUMxRixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQ2Y7aUJBQ0UsR0FBRyxDQUFDLENBQUMsQ0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcs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QyxLQUFLLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxTQUFTLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsSUFBVTtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFRLEVBQUUsQ0FBUTtRQUN6QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlLCBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSwgSXRlbSwgVmFsdWVUeXBlIH0gZnJvbSAnLi4vY29yZS9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQgfSBmcm9tICcuLi9jb3JlL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQ2xhc3MgfSBmcm9tICcuLi9jb3JlL3N0b3JlL2NsYXNzL2NsYXNzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZCwgR2VvbWV0cmljRmllbGRUeXBlcyB9IGZyb20gJy4uL2NvcmUvc3RvcmUvZmllbGQvZmllbGQuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBPbEZlYXR1cmUge1xuICBnZXQoa2V5OiBzdHJpbmcpOiBhbnk7XG59XG5cbmNvbnN0IGhpZGRlbkZpZWxkVGV4dCA9ICcqKioqKioqKionO1xuXG5leHBvcnQgY2xhc3MgSXRlbVV0aWxzIHtcbiAgc3RhdGljIGdldEF0dHJpYnV0ZVZhbHVlKFxuICAgIGl0ZW06IEl0ZW0gfCBPbEZlYXR1cmUsXG4gICAgYXR0cmlidXRlOiBBdHRyaWJ1dGUgfCBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogQXR0cmlidXRlU2ltcGxlVmFsdWUgfCBBdHRyaWJ1dGVTaW1wbGVWYWx1ZVtdIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGF0dHJpYnV0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiAhIWl0ZW0uZ2V0ID8gaXRlbS5nZXQoYXR0cmlidXRlKSA6IGl0ZW0uYXR0cmlidXRlc1thdHRyaWJ1dGVdO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoXG4gICAgICAgICAgKCFpdGVtLmhhc093blByb3BlcnR5KCdvQ2xhc3MnKVxuICAgICAgICAgICAgPyAoaXRlbSBhcyBPbEZlYXR1cmUpLmdldCgnYXR0cmlidXRlcycpW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSA/PyB7fVxuICAgICAgICAgICAgOiAoKGl0ZW0gYXMgSXRlbSkuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV0gYXMgQXR0cmlidXRlTXVsdGlwbGVWYWx1ZSkpID8/IHt9XG4gICAgICAgICkudmFsdWVzID8/IFtdXG4gICAgICApXG4gICAgICAgIC5tYXAoKHY6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlKSA9PiAoeyAuLi52LCB2YWx1ZTogdi52aXNpYmxlID09PSBmYWxzZSA/IGhpZGRlbkZpZWxkVGV4dCA6IHYudmFsdWUgfSkpXG4gICAgICAgIC5zb3J0KEl0ZW1VdGlscy5zb3J0QXR0cmlidXRlcyk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAhaXRlbS5oYXNPd25Qcm9wZXJ0eSgnb0NsYXNzJylcbiAgICAgICAgPyAoaXRlbSBhcyBPbEZlYXR1cmUpLmdldCgnYXR0cmlidXRlcycpW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXVxuICAgICAgICA6IChpdGVtIGFzIEl0ZW0pLmF0dHJpYnV0ZXNbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdXG4gICAgKSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVDYWxjdWxhdGVkVmFsdWUoaXRlbTogSXRlbSwgYXR0cmlidXRlOiBBdHRyaWJ1dGUgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBWYWx1ZVR5cGUgfCBWYWx1ZVR5cGVbXSB7XG4gICAgaWYgKCFhdHRyaWJ1dGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBWYWx1ZVR5cGU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIGl0ZW1bYXR0cmlidXRlXTtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZS5tdWx0aVZhbHVlZCkge1xuICAgICAgcmV0dXJuIChJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgYXR0cmlidXRlKSBhcyBBdHRyaWJ1dGVTaW1wbGVWYWx1ZVtdKS5tYXAoKHYpID0+IHYudmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlO1xuICAgIHJldHVybiB2YWx1ZSA/ICh2YWx1ZS52aXNpYmxlID09PSBmYWxzZSA/IGhpZGRlbkZpZWxkVGV4dCA6IHZhbHVlLnZhbHVlKSA6ICh1bmRlZmluZWQgYXMgdW5rbm93biBhcyBWYWx1ZVR5cGUpO1xuICB9XG5cbiAgc3RhdGljIHNvcnRBdHRyaWJ1dGVzKGE6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBiOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSk6IG51bWJlciB7XG4gICAgY29uc3QgY29tcGFyZVZpc2libGUgPSAoYi52aXNpYmxlID09PSBmYWxzZSA/IC0xIDogMSkgLSAoYS52aXNpYmxlID09PSBmYWxzZSA/IC0xIDogMSk7XG4gICAgaWYgKGNvbXBhcmVWaXNpYmxlICE9PSAwKSB7XG4gICAgICByZXR1cm4gY29tcGFyZVZpc2libGU7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAoYj8ubWV0YWRhdGEgPyAoYj8ubWV0YWRhdGFbJ19tb2RpZmljYXRpb25fZGF0ZSddIGFzIG51bWJlcikgPz8gMCA6IDApIC1cbiAgICAgIChhPy5tZXRhZGF0YSA/IChhPy5tZXRhZGF0YVsnX21vZGlmaWNhdGlvbl9kYXRlJ10gYXMgbnVtYmVyKSA/PyAwIDogMClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIHBlcnRpbmVudFZhbHVlKGl0ZW1zOiBJdGVtW10sIGF0dHI6IEF0dHJpYnV0ZSkge1xuICAgIHJldHVybiBpdGVtc1xuICAgICAgLm1hcCgoaXRlbSkgPT4gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShpdGVtLCBhdHRyKSlcbiAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgLm1hcCgodmFsdWUpID0+IHZhbHVlIGFzIG51bWJlcik7XG4gIH1cblxuICBzdGF0aWMgaXNMb2NhdGlvbih0dXBsZTogYW55W10pIHtcbiAgICByZXR1cm4gISF0dXBsZVswXSAmJiAhIXR1cGxlWzFdICYmIHR5cGVvZiB0dXBsZVswXSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHR1cGxlWzFdID09PSAnbnVtYmVyJztcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRnJvbUF2YWlsYWJpbGl0eUluUmVzdWx0U2V0KHJlc3VsdFNldDogUmVzdWx0U2V0KSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIE9iamVjdC5rZXlzKHJlc3VsdFNldD8uaXRlbXMgfHwge30pXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT5cbiAgICAgICAgICAgIHJlc3VsdFNldC5pdGVtc1tjbGFzc0lkXS5tYXAoKGl0ZW0pID0+IFsuLi5PYmplY3Qua2V5cyhpdGVtKSwgLi4uT2JqZWN0LmtleXMoaXRlbS5hdHRyaWJ1dGVzKV0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IFsuLi5wcmV2LCAuLi5jdXJyXSwgW10pXG4gICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcbiAgICAgICAgICAuZmlsdGVyKChwcm9wKSA9PiBwcm9wICE9PSAnYXR0cmlidXRlcycpXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRGaWVsZHNGb3JDbGFzc2VzKGNsYXNzZXNJZDogc3RyaW5nW10sIGNsYXNzZXM6IENsYXNzW10sIGZpZWxkczogRmllbGRbXSk6IEZpZWxkW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5uZXcgU2V0KFxuICAgICAgICBjbGFzc2VzSWRcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiBjbGFzc2VzLmZpbmQoKGNsKSA9PiBjbC5pZCA9PT0gY2xhc3NJZCkgYXMgQ2xhc3MpXG4gICAgICAgICAgLmZpbHRlcigob0NsYXNzKSA9PiBvQ2xhc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChvQ2xhc3M6IENsYXNzKSA9PiBvQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGZpZWxkcy5maW5kKChmKSA9PiBmLmlkID09PSBhdHRyLmZpZWxkKSEpKVxuICAgICAgICAgIC5tYXAoKGZpZWxkczogRmllbGRbXSkgPT4gZmllbGRzLmZpbHRlcigoZikgPT4gISFmKSlcbiAgICAgICAgICAucmVkdWNlKChwOiBGaWVsZFtdLCBjOiBGaWVsZFtdKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgaGFzTG9jYXRpb24oY2xheno6IENsYXNzKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZE9iamVjdChvYmplY3Q6IEl0ZW0pIHtcbiAgICByZXR1cm4gb2JqZWN0Lm9DbGFzcyAmJiBvYmplY3Qub0NsYXNzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBzdGF0aWMgZ2V0QXR0cmlidXRlc0Zyb21ScyhcbiAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICBjbGFzc2VzOiBDbGFzc1tdLFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBkZWZzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9XG4gICk6IEF0dHJpYnV0ZVtdIHtcbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IGRlZnMgPz8ge307XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIE9iamVjdC5rZXlzKHJlc3VsdFNldD8uaXRlbXMgfHwge30pXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gY2xhc3Nlcy5maW5kKChjbCkgPT4gY2wuaWQgPT09IGNsYXNzSWQpIGFzIENsYXNzKVxuICAgICAgICAgIC5maWx0ZXIoKG9DbGFzcykgPT4gb0NsYXNzICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLm1hcCgob0NsYXNzKSA9PiBvQ2xhc3MuYXR0cmlidXRlcylcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gISFmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0ci5maWVsZCkpXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDbGFzc05vbkdlb0F0dHJpYnV0ZXNOYW1lcyhjbGF6ejogQ2xhc3MsIGRlZnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSwgZmllbGRzOiBGaWVsZFtdKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGRlZnNbY2xhenouaWQgPz8gJyddID8/XG4gICAgICAoY2xhenogPz8geyBhdHRyaWJ1dGVzOiBbXSB9KS5hdHRyaWJ1dGVzXG4gICAgICAgIC5maWx0ZXIoKGF0dHIpID0+IHtcbiAgICAgICAgICBjb25zdCBhdHRyRmllbGQgPSBmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0ci5maWVsZCk7XG4gICAgICAgICAgcmV0dXJuIGF0dHJGaWVsZCAmJiAhR2VvbWV0cmljRmllbGRUeXBlcy5pbmNsdWRlcyhhdHRyRmllbGQudHlwZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5tYXAoKGF0dHIpID0+IGF0dHIubmFtZSlcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGVuc3VyZUl0ZW1JZEhhc0NvcnJlY3RGb3JtYXQoaXRlbTogSXRlbSk6IEl0ZW0ge1xuICAgIGlmICghaXRlbS5pZC5pbmNsdWRlcygnQCcpKSB7XG4gICAgICBpdGVtLmlkID0gYCR7aXRlbS5vQ2xhc3N9QCR7aXRlbS5pZH1gO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIHN0YXRpYyBzaW1wbGVBcnJheUVxdWFscyhhOiBhbnlbXSwgYjogYW55W10pIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShhKSAmJiBBcnJheS5pc0FycmF5KGIpICYmIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KCh2YWwsIGluZGV4KSA9PiB2YWwgPT09IGJbaW5kZXhdKTtcbiAgfVxufVxuIl19
@@ -56,6 +56,7 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
56
56
  this.currentOperators$ = new BehaviorSubject(this.operators);
57
57
  this.classes = [];
58
58
  this.selectedAttribute$ = new BehaviorSubject(this.filter.attributes.map((attr) => attr.id));
59
+ this.attributes = [];
59
60
  this.FilterSteps = FilterSteps;
60
61
  this.manifest$ = store.select(DashboardSelectors.globalManifest);
61
62
  this.subscriptions.add(this.manifest$.subscribe((manifest) => {
@@ -105,6 +106,7 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
105
106
  })
106
107
  .filter((attr) => !!attr)
107
108
  ]));
109
+ this.subscriptions.add(this.attributes$.subscribe((attrs) => (this.attributes = attrs)));
108
110
  }
109
111
  getDatasourceClass(dataSource, classes) {
110
112
  let clazz = undefined;
@@ -196,6 +198,7 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
196
198
  this.currentStep = FilterSteps.CREATION;
197
199
  }
198
200
  submitFilter() {
201
+ this.filter.attributes = this.filter.attributes.map((attr) => typeof attr === 'string' ? this.attributes.find((attrObj) => attrObj.id === attr) : attr);
199
202
  this.store.dispatch(DashboardActions.updateFilters({ filter: this.filter }));
200
203
  this.goBack();
201
204
  }
@@ -241,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
241
244
  type: ViewChild,
242
245
  args: ['container', { read: ViewContainerRef }]
243
246
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBRWhCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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QUFLLENBQUMsQ0FBQztnQkFDekYsS0FBSyxNQUFNO29CQUNULE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakcsS0FBSyxjQUFjO29CQUNqQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0M7b0JBQ0UsT0FBTyxRQUFRLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuUVUsMEJBQTBCO2tHQUExQiwwQkFBMEIsZ0xBRU4sV0FBVyxpR0ErQlYsZ0JBQWdCLG9EQzlFbEQsaTNOQThKQTs7MkZEakhhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSxxQkFBcUI7c05BSXRCLEtBQUs7c0JBQWIsS0FBSztnQkFDd0MsZ0JBQWdCO3NCQUE3RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBK0JRLFNBQVM7c0JBQTVELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDbGFzcyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZSxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEZpZWxkVHlwZSxcbiAgRmlsdGVyLFxuICBGaWx0ZXJGYWN0b3J5U2VydmljZSxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQsXG4gIE5hbWVkUXVlcnlUeXBlcyxcbiAgUHJ5STE4blNlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBUb29sYm94QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gRmlsdGVyU3RlcHMge1xuICBMSVNUID0gJ2xpc3QnLFxuICBDUkVBVElPTiA9ICdjcmVhdGlvbicsXG4gIEVESVRJT04gPSAnZWRpdGlvbidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGUge1xuICBpZDogc3RyaW5nO1xuICB0ZWNobmljYWxOYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRhdGFzb3VyY2U6IHN0cmluZztcbiAgdHlwZTogRmllbGRUeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZmlsdGVyLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBAVmlld0NoaWxkKCdzZXR0aW5ncycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVTZXR0aW5ncyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG92ZXJsYXlSZWZTZXR0aW5ncz86IE92ZXJsYXlSZWY7XG4gIHNldHRpbmdzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIG1hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdPjtcbiAgY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGN1cnJlbnRTdGVwOiBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIHN0ZXBzID0gRmlsdGVyU3RlcHM7XG4gIGZpbHRlcjogRmlsdGVyID0ge1xuICAgIGlkOiB2NCgpLFxuICAgIG5hbWU6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGF0dHJpYnV0ZXM6IFtdXG4gIH07XG4gIGRhdGFzb3VyY2UkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZXJhdG9ycyA9IFtcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZXF1YWxzU3RyaW5nJywgdmFsdWU6ICdFUVVBTFMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLm5vdEVxdWFsc1N0cmluZycsIHZhbHVlOiAnTk9UX0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuY29udGFpbnMnLCB2YWx1ZTogJ0NPTlRBSU5TJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5zdGFydFdpdGgnLCB2YWx1ZTogJ1NUQVJUX1dJVEgnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmVuZFdpdGgnLCB2YWx1ZTogJ0VORF9XSVRIJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5ncmVhdGVyVGhhbk51bWJlcicsIHZhbHVlOiAnR1JFQVRFUl9USEFOJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5sb3dlclRoYW5OdW1iZXInLCB2YWx1ZTogJ0xPV0VSX1RIQU4nIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmlubmVyQm91bmRzRGF0ZScsIHZhbHVlOiAnSU5TSURFJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5vdXRlckJvdW5kc0RhdGUnLCB2YWx1ZTogJ09VVFNJREUnIH1cbiAgXTtcbiAgY3VycmVudE9wZXJhdG9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMub3BlcmF0b3JzKTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmc7IHRlY2huaWNhbE5hbWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgZGF0YXNvdXJjZTogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfVtdPjtcbiAgc2VsZWN0ZWRBdHRyaWJ1dGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4odGhpcy5maWx0ZXIuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIuaWQpKTtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmaWx0ZXJGYWN0b3J5U2VydmljZTogRmlsdGVyRmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMubWFuaWZlc3QkID0gc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5nbG9iYWxNYW5pZmVzdCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMubWFuaWZlc3QkLnN1YnNjcmliZSgobWFuaWZlc3QpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gbWFuaWZlc3QuZmlsdGVycyA/IFsuLi5tYW5pZmVzdC5maWx0ZXJzXSA6IFtdO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhc291cmNlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm5hbWVkUXVlcmllc1VzZXMpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGFTb3VyY2VzLCBkYXRhU291cmNlc1VzZWRdKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhU291cmNlc1VzZWQpLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGRhdGFTb3VyY2VzLmZpbmQoKGRhdGFTb3VyY2UpID0+IGRhdGFTb3VyY2UuaWQgPT09IGlkKT8ubmFtZSxcbiAgICAgICAgICB2YWx1ZTogaWRcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudHlwZXMkID0gdGhpcy5maWx0ZXJGYWN0b3J5U2VydmljZS50eXBlcyQucGlwZShcbiAgICAgIG1hcCgodHlwZXMpID0+XG4gICAgICAgIHR5cGVzLm1hcCgodHlwZSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogJ0BwcnkuZmlsdGVycy50eXBlcy4nICsgdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE9wZXJhdG9ycyQubmV4dCh0aGlzLmdldE9wZXJhdG9ycygpKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuYXR0cmlidXRlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubmFtZWRRdWVyaWVzVXNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyksXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJFxuICAgIF0pLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbShzdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKSksXG4gICAgICBtYXAoKFtbZGF0YVNvdXJjZXMsIGN1cnJlbnREYXRhU291cmNlcywgY2xhc3NlcywgY29tcG9uZW50VHlwZV0sIGZpZWxkc10pID0+IHtcbiAgICAgICAgbGV0IGRhdGFTb3VyY2VzSW5QcmVzID0gZGF0YVNvdXJjZXMuZmlsdGVyKChkYXRhU291cmNlKSA9PlxuICAgICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnREYXRhU291cmNlcykuaW5jbHVkZXMoZGF0YVNvdXJjZS5pZCkgPyBkYXRhU291cmNlIDogZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGRhdGFTb3VyY2VzSW5QcmVzXG4gICAgICAgICAgLm1hcCgoZGF0YVNvdXJjZSkgPT5cbiAgICAgICAgICAgICh0aGlzLmdldERhdGFzb3VyY2VDbGFzcyhkYXRhU291cmNlLCBjbGFzc2VzKT8uYXR0cmlidXRlcyA/PyBbXSkubWFwKChhdHRyKSA9PiAoe1xuICAgICAgICAgICAgICBpZDogYXR0ci5pZCxcbiAgICAgICAgICAgICAgdGVjaG5pY2FsTmFtZTogYXR0ci50ZWNobmljYWxOYW1lLFxuICAgICAgICAgICAgICBsYWJlbDogYCR7YXR0ci5uYW1lfSAvICR7ZGF0YVNvdXJjZS5uYW1lfWAsXG4gICAgICAgICAgICAgIGRhdGFzb3VyY2U6IGRhdGFTb3VyY2UuaWQsXG4gICAgICAgICAgICAgIHR5cGU6IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IGF0dHIuZmllbGQpPy50eXBlID8/IEZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIClcbiAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgLnNvcnQoKGF0dHIxLCBhdHRyMikgPT4gYXR0cjEubGFiZWwubG9jYWxlQ29tcGFyZShhdHRyMi5sYWJlbCkpXG4gICAgICAgICAgLmZpbHRlcigoYXR0cikgPT4gdGhpcy5pc1ZhbGlkQXR0cmlidXRlRm9yQ29tcG9uZW50VHlwZShjb21wb25lbnRUeXBlLCBhdHRyKSk7XG4gICAgICB9KSxcbiAgICAgIG1hcChcbiAgICAgICAgKGF0dHJpYnV0ZXMpID0+XG4gICAgICAgICAgW1xuICAgICAgICAgICAgLi4uYXR0cmlidXRlcyxcbiAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVyLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgLm1hcCgoYXR0cikgPT5cbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLm1hcCgoYSkgPT4gYS5pZCkuaW5jbHVkZXMoYXR0ci5pZClcbiAgICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5hdHRyLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHt0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoJ0BwcnkudG9vbGJveC5ub3RJbkRzQXR0cicpfSAtICR7YXR0ci5sYWJlbH1gLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM6ICctd2FybidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGF0dHIpID0+ICEhYXR0cilcbiAgICAgICAgICBdIGFzIHsgaWQ6IHN0cmluZzsgdGVjaG5pY2FsTmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyBkYXRhc291cmNlOiBzdHJpbmc7IHR5cGU6IHN0cmluZyB9W11cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0RGF0YXNvdXJjZUNsYXNzKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGNsYXNzZXM6IENsYXNzW10pOiBDbGFzcyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNsYXp6OiBDbGFzcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZGF0YVNvdXJjZS5zb3VyY2VUeXBlID09PSAnZGF0YXNldCcpIHtcbiAgICAgIGNsYXp6ID0gY2xhc3Nlcy5maW5kKChjbGF6eikgPT4gY2xhenouaWQgPT09IGRhdGFTb3VyY2Uub0NsYXNzKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgZGF0YVNvdXJjZS5zb3VyY2VUeXBlID09PSAnbmFtZWRRdWVyeScgJiZcbiAgICAgIGRhdGFTb3VyY2UucmVxdWVzdCAmJlxuICAgICAgZGF0YVNvdXJjZS5yZXF1ZXN0LnR5cGUgPT09IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTXG4gICAgKSB7XG4gICAgICBjbGF6eiA9IGNsYXNzZXMuZmluZCgoY2xhenopID0+IGNsYXp6LmlkID09PSAoZGF0YVNvdXJjZS5yZXF1ZXN0IGFzIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQpLm9DbGFzcyk7XG4gICAgfVxuICAgIHJldHVybiBjbGF6ejtcbiAgfVxuXG4gIGlzVmFsaWRBdHRyaWJ1dGVGb3JDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGU6IHN0cmluZywgYXR0cmlidXRlOiBBdHRyaWJ1dGUpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICByZXR1cm4gYXR0cmlidXRlLnR5cGUgPT09IEZpZWxkVHlwZS5JTlNUQU5UO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuIFtGaWVsZFR5cGUuSU5URUdFUiwgRmllbGRUeXBlLkRFQ0lNQUwsIEZpZWxkVHlwZS5MT05HXS5pbmNsdWRlcyhhdHRyaWJ1dGUudHlwZSk7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIFtGaWVsZFR5cGUuU1RSSU5HLCBGaWVsZFR5cGUuS0VZV09SRF0uaW5jbHVkZXMoYXR0cmlidXRlLnR5cGUpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8RmlsdGVyW10+KSB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZmlsdGVycywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHRvZ2dsZVNldHRpbmdzKCkge1xuICAgIHRoaXMuc2V0dGluZ3NPcGVuZWQgPSAhdGhpcy5zZXR0aW5nc09wZW5lZDtcbiAgICBpZiAodGhpcy5zZXR0aW5nc09wZW5lZCkge1xuICAgICAgdGhpcy5vcGVuU2V0dGluZ3MoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3M/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNldEZpbHRlcnMoeyBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMgfSkpO1xuICAgICAgdGhpcy5nb0JhY2soKTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInLCAnby1zZWxlY3QtZ3JpZC1sYXlvdXQtbW9kYWwtd3JhcHBlciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AtLXdpdGgtY29sb3InXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncy5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLmdvQmFjaygpO1xuICAgICAgdGhpcy50b2dnbGVTZXR0aW5ncygpO1xuICAgIH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVNldHRpbmdzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlclR5cGUoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZpbHRlci50eXBlID0gJGV2ZW50O1xuICAgIHRoaXMuZmlsdGVyLm9wZXJhdG9yID0gJGV2ZW50ID09PSAnbGlzdCcgPyAnRVFVQUxTJyA6IHRoaXMuZmlsdGVyLm9wZXJhdG9yO1xuICAgIGlmICh0aGlzLmZpbHRlci50eXBlICE9PSAnJyAmJiB0aGlzLmNvbnRhaW5lcikge1xuICAgICAgbGV0IGNvbXBvbmVudCA9IHRoaXMuZmlsdGVyRmFjdG9yeVNlcnZpY2UuZ2VuZXJhdGVGaWx0ZXIodGhpcy5maWx0ZXIudHlwZSwgdGhpcy5pbmplY3RvciwgdGhpcy5jb250YWluZXIpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgY29tcG9uZW50LnN1YnNjcmliZSgoY29tcG9uZW50UmVmKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQubmV4dChjb21wb25lbnRSZWYuaW5zdGFuY2UudHlwZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlci5saW1pdCA9IHRoaXMuZmlsdGVyLnR5cGUgPT09ICdhdXRvY29tcGxldGUnID8gdGhpcy5maWx0ZXIubGltaXQgPz8gMTAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlcjogRmlsdGVyLCBhdHRyQ291bnQ6IG51bWJlcikge1xuICAgIGF0dHJDb3VudCA9IGF0dHJDb3VudCA8PSBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGggPyBhdHRyQ291bnQgOiBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGg7XG4gICAgcmV0dXJuIGZpbHRlci5hdHRyaWJ1dGVzXG4gICAgICAubWFwKChhdHRyKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpXG4gICAgICAuc2xpY2UoMCwgYXR0ckNvdW50KVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5maWx0ZXIgPSB7XG4gICAgICBpZDogdjQoKSxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgICBhdHRyaWJ1dGVzOiBbXVxuICAgIH07XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIH1cblxuICBnb1RvRWRpdGlvbihmaWx0ZXI6IEZpbHRlcikge1xuICAgIHRoaXMuZmlsdGVyID0geyAuLi5maWx0ZXIgfTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gRmlsdGVyU3RlcHMuRURJVElPTjtcbiAgfVxuXG4gIGdvVG9DcmVhdGlvbigpIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC5uZXh0KCcnKTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gRmlsdGVyU3RlcHMuQ1JFQVRJT047XG4gIH1cblxuICBzdWJtaXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUZpbHRlcnMoeyBmaWx0ZXI6IHRoaXMuZmlsdGVyIH0pKTtcbiAgICB0aGlzLmdvQmFjaygpO1xuICB9XG5cbiAgc2VsZWN0QXR0cmlidXRlKCRldmVudDogQXR0cmlidXRlW10pIHtcbiAgICB0aGlzLmZpbHRlci5hdHRyaWJ1dGVzID0gJGV2ZW50O1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUkLm5leHQoJGV2ZW50Lm1hcCgoYXR0cikgPT4gYXR0ci5pZCkpO1xuICB9XG5cbiAgZGVsZXRlRmlsdGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVyKHsgaWQgfSkpO1xuICB9XG5cbiAgZ2V0T3BlcmF0b3JzKCk6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG9wZXJhdG9yKSA9PiB7XG4gICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlci5oYXNEYXRlUmFuZ2VcbiAgICAgICAgICAgID8gWydJTlNJREUnLCAnT1VUU0lERSddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKVxuICAgICAgICAgICAgOiBbJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ0dSRUFURVJfVEhBTicsICdMT1dFUl9USEFOJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgICByZXR1cm4gWydFUVVBTFMnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJywgJ05PVF9FUVVBTFMnLCAnR1JFQVRFUl9USEFOJywgJ0xPV0VSX1RIQU4nXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgIHJldHVybiBbJ0NPTlRBSU5TJywgJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ1NUQVJUX1dJVEgnLCAnRU5EX1dJVEgnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2F1dG9jb21wbGV0ZSc6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBvcGVyYXRvcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzO1xufVxuIiwiPHByeS10b29sYm94LWNzcz48L3ByeS10b29sYm94LWNzcz5cbjxkaXYgY2xhc3M9XCJzYXZlLW1hbmlmZXN0LWNvbnRhaW5lclwiPlxuICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiKGF0dHJpYnV0ZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIlxuICAgIChjbGljayk9XCJ0b2dnbGVTZXR0aW5ncygpXCJcbiAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMubGFiZWwnIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NldHRpbmdzPlxuICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19faGVhZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkxJU1RcIj5cbiAgICAgICAgPGgyPnt7ICdAcHJ5LmZpbHRlcnMubGFiZWwnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuQ1JFQVRJT04gfHwgY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkVESVRJT05cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1yb3cgLWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYmFjay1idXR0b25cIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hldnJvbl9yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGgyPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgKGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiA/ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uY3JlYXRlJyA6ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udXBkYXRlJylcbiAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNldHRpbmdzKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoYXR0cmlidXRlcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMDsgZWxzZSBhdHRyaWJ1dGVzRXhpc3RzXCIgY2xhc3M9XCJhLXRhYmxlLXdyYXBwZXJcIj48L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdHRyaWJ1dGVzRXhpc3RzPlxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cImZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBub0ZpbHRlcnNcIiBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgICAgICAgIDx0Ym9keSBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImZpbHRlcnNcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgY2xhc3M9XCJvLWZpbHRlcnNfX2ZpbHRlclwiIGNka0RyYWc+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmlsdGVyLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlciwgMykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImRlbGV0ZUZpbHRlcihmaWx0ZXIuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvVG9FZGl0aW9uKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZmlsdGVycy5saXN0Lm1vZGlmeScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkcmFnX2luZGljYXRvclwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRmlsdGVycz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1maWx0ZXJzX19uby1maWx0ZXJzXCI+e3sgJ0BwcnkuZmlsdGVycy5ub0ZpbHRlcnMnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG9DcmVhdGlvbigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPnt7ICdAcHJ5LmZpbHRlcnMubGlzdC5hZGQnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiB8fCBjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuRURJVElPTlwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlck5hbWVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLm5hbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGlkPVwiZmlsdGVyTmFtZVwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5uYW1lXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyVHlwZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJmaWx0ZXJUeXBlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmNyZWF0aW9uLnR5cGUnIHwgaTE4blwiXG4gICAgICAgICAgICBbaXRlbXNdPVwidHlwZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIudHlwZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJUeXBlKCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2RhdGUnXCIgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgdS1kaXNwbGF5LWZsZXggLXJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJkYXRlLXJhbmdlXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5kYXRlUmFuZ2UnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgaWQ9XCJkYXRlLXJhbmdlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLmhhc0RhdGVSYW5nZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLmN1cnJlbnRPcGVyYXRvcnMkLm5leHQoZ2V0T3BlcmF0b3JzKCkpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdsaXN0J1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBvc3NpYmxlVmFsdWVzXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi52YWx1ZXMnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLnBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwidmFsZXVyMSwgdmFsZXVyMiwgdmFsZXVyM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnYXV0b2NvbXBsZXRlJ1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImxpbWl0XCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5saW1pdCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJsaW1pdFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBtYXg9XCI1MFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmxpbWl0XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYXR0cmlidXRlc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiYXR0cmlidXRlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmaWx0ZXIuYXR0cmlidXRlc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RBdHRyaWJ1dGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5hdHRyaWJ1dGVzJyB8IGkxOG5cIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICAgICAgYmluZENsYXNzZXM9XCJjbGFzc2VzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJvcGVyYXRpb25zXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5hdHRyaWJ1dGVzLm9wZXJhdG9yJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cIm9wZXJhdGlvbnNcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImN1cnJlbnRPcGVyYXRvcnMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIub3BlcmF0b3JcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuYXR0cmlidXRlcy5vcGVyYXRvcicgfCBpMThuXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnbGlzdCdcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZpbHRlcigpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIShmaWx0ZXIubmFtZSAmJiBmaWx0ZXIudHlwZSAmJiBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGggIT09IDAgJiYgZmlsdGVyLm9wZXJhdG9yKVwiXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBRWhCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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QUFXLEVBQUU7Z0JBK0JRLFNBQVM7c0JBQTVELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDbGFzcyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ0FjdGlvbnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YVNvdXJjZSxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEZpZWxkVHlwZSxcbiAgRmlsdGVyLFxuICBGaWx0ZXJGYWN0b3J5U2VydmljZSxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQsXG4gIE5hbWVkUXVlcnlUeXBlcyxcbiAgUHJ5STE4blNlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBUb29sYm94QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gRmlsdGVyU3RlcHMge1xuICBMSVNUID0gJ2xpc3QnLFxuICBDUkVBVElPTiA9ICdjcmVhdGlvbicsXG4gIEVESVRJT04gPSAnZWRpdGlvbidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGUge1xuICBpZDogc3RyaW5nO1xuICB0ZWNobmljYWxOYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRhdGFzb3VyY2U6IHN0cmluZztcbiAgdHlwZTogRmllbGRUeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZmlsdGVyLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBAVmlld0NoaWxkKCdzZXR0aW5ncycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVTZXR0aW5ncyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG92ZXJsYXlSZWZTZXR0aW5ncz86IE92ZXJsYXlSZWY7XG4gIHNldHRpbmdzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIG1hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdPjtcbiAgY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGN1cnJlbnRTdGVwOiBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIHN0ZXBzID0gRmlsdGVyU3RlcHM7XG4gIGZpbHRlcjogRmlsdGVyID0ge1xuICAgIGlkOiB2NCgpLFxuICAgIG5hbWU6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGF0dHJpYnV0ZXM6IFtdXG4gIH07XG4gIGRhdGFzb3VyY2UkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZXJhdG9ycyA9IFtcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZXF1YWxzU3RyaW5nJywgdmFsdWU6ICdFUVVBTFMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLm5vdEVxdWFsc1N0cmluZycsIHZhbHVlOiAnTk9UX0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuY29udGFpbnMnLCB2YWx1ZTogJ0NPTlRBSU5TJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5zdGFydFdpdGgnLCB2YWx1ZTogJ1NUQVJUX1dJVEgnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmVuZFdpdGgnLCB2YWx1ZTogJ0VORF9XSVRIJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5ncmVhdGVyVGhhbk51bWJlcicsIHZhbHVlOiAnR1JFQVRFUl9USEFOJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5sb3dlclRoYW5OdW1iZXInLCB2YWx1ZTogJ0xPV0VSX1RIQU4nIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmlubmVyQm91bmRzRGF0ZScsIHZhbHVlOiAnSU5TSURFJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5vdXRlckJvdW5kc0RhdGUnLCB2YWx1ZTogJ09VVFNJREUnIH1cbiAgXTtcbiAgY3VycmVudE9wZXJhdG9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMub3BlcmF0b3JzKTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmc7IHRlY2huaWNhbE5hbWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgZGF0YXNvdXJjZTogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfVtdPjtcbiAgc2VsZWN0ZWRBdHRyaWJ1dGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4odGhpcy5maWx0ZXIuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIuaWQpKTtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG4gIGF0dHJpYnV0ZXM6IHsgaWQ6IHN0cmluZzsgdGVjaG5pY2FsTmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyBkYXRhc291cmNlOiBzdHJpbmc7IHR5cGU6IHN0cmluZyB9W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGZpbHRlckZhY3RvcnlTZXJ2aWNlOiBGaWx0ZXJGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gICAgdGhpcy5tYW5pZmVzdCQgPSBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmdsb2JhbE1hbmlmZXN0KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5tYW5pZmVzdCQuc3Vic2NyaWJlKChtYW5pZmVzdCkgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSBtYW5pZmVzdC5maWx0ZXJzID8gWy4uLm1hbmlmZXN0LmZpbHRlcnNdIDogW107XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLmRhdGFzb3VyY2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubmFtZWRRdWVyaWVzVXNlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YVNvdXJjZXMsIGRhdGFTb3VyY2VzVXNlZF0pID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGRhdGFTb3VyY2VzVXNlZCkubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZGF0YVNvdXJjZXMuZmluZCgoZGF0YVNvdXJjZSkgPT4gZGF0YVNvdXJjZS5pZCA9PT0gaWQpPy5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBpZFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy50eXBlcyQgPSB0aGlzLmZpbHRlckZhY3RvcnlTZXJ2aWNlLnR5cGVzJC5waXBlKFxuICAgICAgbWFwKCh0eXBlcykgPT5cbiAgICAgICAgdHlwZXMubWFwKCh0eXBlKSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiAnQHByeS5maWx0ZXJzLnR5cGVzLicgKyB0eXBlLFxuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50T3BlcmF0b3JzJC5uZXh0KHRoaXMuZ2V0T3BlcmF0b3JzKCkpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5hdHRyaWJ1dGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLFxuICAgICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5uYW1lZFF1ZXJpZXNVc2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKSxcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpKSxcbiAgICAgIG1hcCgoW1tkYXRhU291cmNlcywgY3VycmVudERhdGFTb3VyY2VzLCBjbGFzc2VzLCBjb21wb25lbnRUeXBlXSwgZmllbGRzXSkgPT4ge1xuICAgICAgICBsZXQgZGF0YVNvdXJjZXNJblByZXMgPSBkYXRhU291cmNlcy5maWx0ZXIoKGRhdGFTb3VyY2UpID0+XG4gICAgICAgICAgT2JqZWN0LmtleXMoY3VycmVudERhdGFTb3VyY2VzKS5pbmNsdWRlcyhkYXRhU291cmNlLmlkKSA/IGRhdGFTb3VyY2UgOiBmYWxzZVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZGF0YVNvdXJjZXNJblByZXNcbiAgICAgICAgICAubWFwKChkYXRhU291cmNlKSA9PlxuICAgICAgICAgICAgKHRoaXMuZ2V0RGF0YXNvdXJjZUNsYXNzKGRhdGFTb3VyY2UsIGNsYXNzZXMpPy5hdHRyaWJ1dGVzID8/IFtdKS5tYXAoKGF0dHIpID0+ICh7XG4gICAgICAgICAgICAgIGlkOiBhdHRyLmlkLFxuICAgICAgICAgICAgICB0ZWNobmljYWxOYW1lOiBhdHRyLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgICAgIGxhYmVsOiBgJHthdHRyLm5hbWV9IC8gJHtkYXRhU291cmNlLm5hbWV9YCxcbiAgICAgICAgICAgICAgZGF0YXNvdXJjZTogZGF0YVNvdXJjZS5pZCxcbiAgICAgICAgICAgICAgdHlwZTogZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5pZCA9PT0gYXR0ci5maWVsZCk/LnR5cGUgPz8gRmllbGRUeXBlLlNUUklOR1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAuc29ydCgoYXR0cjEsIGF0dHIyKSA9PiBhdHRyMS5sYWJlbC5sb2NhbGVDb21wYXJlKGF0dHIyLmxhYmVsKSlcbiAgICAgICAgICAuZmlsdGVyKChhdHRyKSA9PiB0aGlzLmlzVmFsaWRBdHRyaWJ1dGVGb3JDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGUsIGF0dHIpKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKFxuICAgICAgICAoYXR0cmlidXRlcykgPT5cbiAgICAgICAgICBbXG4gICAgICAgICAgICAuLi5hdHRyaWJ1dGVzLFxuICAgICAgICAgICAgLi4udGhpcy5maWx0ZXIuYXR0cmlidXRlc1xuICAgICAgICAgICAgICAubWFwKChhdHRyKSA9PlxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMubWFwKChhKSA9PiBhLmlkKS5pbmNsdWRlcyhhdHRyLmlkKVxuICAgICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLmF0dHIsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke3RoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQHByeS50b29sYm94Lm5vdEluRHNBdHRyJyl9IC0gJHthdHRyLmxhYmVsfWAsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NlczogJy13YXJuJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmZpbHRlcigoYXR0cikgPT4gISFhdHRyKVxuICAgICAgICAgIF0gYXMgeyBpZDogc3RyaW5nOyB0ZWNobmljYWxOYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IGRhdGFzb3VyY2U6IHN0cmluZzsgdHlwZTogc3RyaW5nIH1bXVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuYXR0cmlidXRlcyQuc3Vic2NyaWJlKChhdHRycykgPT4gKHRoaXMuYXR0cmlidXRlcyA9IGF0dHJzKSkpO1xuICB9XG5cbiAgZ2V0RGF0YXNvdXJjZUNsYXNzKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UsIGNsYXNzZXM6IENsYXNzW10pOiBDbGFzcyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNsYXp6OiBDbGFzcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoZGF0YVNvdXJjZS5zb3VyY2VUeXBlID09PSAnZGF0YXNldCcpIHtcbiAgICAgIGNsYXp6ID0gY2xhc3Nlcy5maW5kKChjbGF6eikgPT4gY2xhenouaWQgPT09IGRhdGFTb3VyY2Uub0NsYXNzKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgZGF0YVNvdXJjZS5zb3VyY2VUeXBlID09PSAnbmFtZWRRdWVyeScgJiZcbiAgICAgIGRhdGFTb3VyY2UucmVxdWVzdCAmJlxuICAgICAgZGF0YVNvdXJjZS5yZXF1ZXN0LnR5cGUgPT09IE5hbWVkUXVlcnlUeXBlcy5NT05PX0NMQVNTXG4gICAgKSB7XG4gICAgICBjbGF6eiA9IGNsYXNzZXMuZmluZCgoY2xhenopID0+IGNsYXp6LmlkID09PSAoZGF0YVNvdXJjZS5yZXF1ZXN0IGFzIE1vbm9DbGFzc1NlYXJjaFBheWxvYWQpLm9DbGFzcyk7XG4gICAgfVxuICAgIHJldHVybiBjbGF6ejtcbiAgfVxuXG4gIGlzVmFsaWRBdHRyaWJ1dGVGb3JDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGU6IHN0cmluZywgYXR0cmlidXRlOiBBdHRyaWJ1dGUpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICByZXR1cm4gYXR0cmlidXRlLnR5cGUgPT09IEZpZWxkVHlwZS5JTlNUQU5UO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuIFtGaWVsZFR5cGUuSU5URUdFUiwgRmllbGRUeXBlLkRFQ0lNQUwsIEZpZWxkVHlwZS5MT05HXS5pbmNsdWRlcyhhdHRyaWJ1dGUudHlwZSk7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIFtGaWVsZFR5cGUuU1RSSU5HLCBGaWVsZFR5cGUuS0VZV09SRF0uaW5jbHVkZXMoYXR0cmlidXRlLnR5cGUpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8RmlsdGVyW10+KSB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZmlsdGVycywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHRvZ2dsZVNldHRpbmdzKCkge1xuICAgIHRoaXMuc2V0dGluZ3NPcGVuZWQgPSAhdGhpcy5zZXR0aW5nc09wZW5lZDtcbiAgICBpZiAodGhpcy5zZXR0aW5nc09wZW5lZCkge1xuICAgICAgdGhpcy5vcGVuU2V0dGluZ3MoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3M/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNldEZpbHRlcnMoeyBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMgfSkpO1xuICAgICAgdGhpcy5nb0JhY2soKTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInLCAnby1zZWxlY3QtZ3JpZC1sYXlvdXQtbW9kYWwtd3JhcHBlciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AtLXdpdGgtY29sb3InXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncy5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLmdvQmFjaygpO1xuICAgICAgdGhpcy50b2dnbGVTZXR0aW5ncygpO1xuICAgIH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVNldHRpbmdzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlclR5cGUoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmZpbHRlci50eXBlID0gJGV2ZW50O1xuICAgIHRoaXMuZmlsdGVyLm9wZXJhdG9yID0gJGV2ZW50ID09PSAnbGlzdCcgPyAnRVFVQUxTJyA6IHRoaXMuZmlsdGVyLm9wZXJhdG9yO1xuICAgIGlmICh0aGlzLmZpbHRlci50eXBlICE9PSAnJyAmJiB0aGlzLmNvbnRhaW5lcikge1xuICAgICAgbGV0IGNvbXBvbmVudCA9IHRoaXMuZmlsdGVyRmFjdG9yeVNlcnZpY2UuZ2VuZXJhdGVGaWx0ZXIodGhpcy5maWx0ZXIudHlwZSwgdGhpcy5pbmplY3RvciwgdGhpcy5jb250YWluZXIpO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgY29tcG9uZW50LnN1YnNjcmliZSgoY29tcG9uZW50UmVmKSA9PiB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQubmV4dChjb21wb25lbnRSZWYuaW5zdGFuY2UudHlwZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlci5saW1pdCA9IHRoaXMuZmlsdGVyLnR5cGUgPT09ICdhdXRvY29tcGxldGUnID8gdGhpcy5maWx0ZXIubGltaXQgPz8gMTAgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlcjogRmlsdGVyLCBhdHRyQ291bnQ6IG51bWJlcikge1xuICAgIGF0dHJDb3VudCA9IGF0dHJDb3VudCA8PSBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGggPyBhdHRyQ291bnQgOiBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGg7XG4gICAgcmV0dXJuIGZpbHRlci5hdHRyaWJ1dGVzXG4gICAgICAubWFwKChhdHRyKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpXG4gICAgICAuc2xpY2UoMCwgYXR0ckNvdW50KVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5maWx0ZXIgPSB7XG4gICAgICBpZDogdjQoKSxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgICBhdHRyaWJ1dGVzOiBbXVxuICAgIH07XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIH1cblxuICBnb1RvRWRpdGlvbihmaWx0ZXI6IEZpbHRlcikge1xuICAgIHRoaXMuZmlsdGVyID0geyAuLi5maWx0ZXIgfTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gRmlsdGVyU3RlcHMuRURJVElPTjtcbiAgfVxuXG4gIGdvVG9DcmVhdGlvbigpIHtcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC5uZXh0KCcnKTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gRmlsdGVyU3RlcHMuQ1JFQVRJT047XG4gIH1cblxuICBzdWJtaXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXIuYXR0cmlidXRlcyA9IHRoaXMuZmlsdGVyLmF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PlxuICAgICAgdHlwZW9mIGF0dHIgPT09ICdzdHJpbmcnID8gdGhpcy5hdHRyaWJ1dGVzLmZpbmQoKGF0dHJPYmopID0+IGF0dHJPYmouaWQgPT09IGF0dHIpISA6IGF0dHJcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVGaWx0ZXJzKHsgZmlsdGVyOiB0aGlzLmZpbHRlciB9KSk7XG4gICAgdGhpcy5nb0JhY2soKTtcbiAgfVxuXG4gIHNlbGVjdEF0dHJpYnV0ZSgkZXZlbnQ6IEF0dHJpYnV0ZVtdKSB7XG4gICAgdGhpcy5maWx0ZXIuYXR0cmlidXRlcyA9ICRldmVudDtcbiAgICB0aGlzLnNlbGVjdGVkQXR0cmlidXRlJC5uZXh0KCRldmVudC5tYXAoKGF0dHIpID0+IGF0dHIuaWQpKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlcihpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlcih7IGlkIH0pKTtcbiAgfVxuXG4gIGdldE9wZXJhdG9ycygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRvcnMuZmlsdGVyKChvcGVyYXRvcikgPT4ge1xuICAgICAgc3dpdGNoICh0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC52YWx1ZSkge1xuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIuaGFzRGF0ZVJhbmdlXG4gICAgICAgICAgICA/IFsnSU5TSURFJywgJ09VVFNJREUnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSlcbiAgICAgICAgICAgIDogWydFUVVBTFMnLCAnTk9UX0VRVUFMUycsICdHUkVBVEVSX1RIQU4nLCAnTE9XRVJfVEhBTiddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgY2FzZSAnbGlzdCc6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgIHJldHVybiBbJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ0dSRUFURVJfVEhBTicsICdMT1dFUl9USEFOJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICByZXR1cm4gWydDT05UQUlOUycsICdFUVVBTFMnLCAnTk9UX0VRVUFMUycsICdTVEFSVF9XSVRIJywgJ0VORF9XSVRIJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdhdXRvY29tcGxldGUnOlxuICAgICAgICAgIHJldHVybiBbJ0VRVUFMUyddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gb3BlcmF0b3I7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRmlsdGVyU3RlcHMgPSBGaWx0ZXJTdGVwcztcbn1cbiIsIjxwcnktdG9vbGJveC1jc3M+PC9wcnktdG9vbGJveC1jc3M+XG48ZGl2IGNsYXNzPVwic2F2ZS1tYW5pZmVzdC1jb250YWluZXJcIj5cbiAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cbiAgICA8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgW2Rpc2FibGVkXT1cIihhdHRyaWJ1dGVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlU2V0dGluZ3MoKVwiXG4gICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmxhYmVsJyB8IGkxOG4gfX08L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZXR0aW5ncz5cbiAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWZpbHRlcnNfX2hlYWRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICAgIDxoMj57eyAnQHByeS5maWx0ZXJzLmxhYmVsJyB8IGkxOG4gfX08L2gyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkNSRUFUSU9OIHx8IGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5FRElUSU9OXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtcm93IC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb0JhY2soKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJhY2stYnV0dG9uXCI+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNoZXZyb25fcmlnaHRcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIChjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuQ1JFQVRJT04gPyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLmNyZWF0ZScgOiAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLnVwZGF0ZScpXG4gICAgICAgICAgICAgICAgfCBpMThuXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVTZXR0aW5ncygpXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCI+PC9wcnktaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuTElTVFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19fY29udGVudFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGF0dHJpYnV0ZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDA7IGVsc2UgYXR0cmlidXRlc0V4aXN0c1wiIGNsYXNzPVwiYS10YWJsZS13cmFwcGVyXCI+PC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjYXR0cmlidXRlc0V4aXN0cz5cbiAgICAgICAgICA8dGFibGUgKm5nSWY9XCJmaWx0ZXJzLmxlbmd0aCA+IDA7IGVsc2Ugbm9GaWx0ZXJzXCIgY2xhc3M9XCJhLXRhYmxlXCI+XG4gICAgICAgICAgICA8dGJvZHkgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJmaWx0ZXJzXCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyc1wiIGNsYXNzPVwiby1maWx0ZXJzX19maWx0ZXJcIiBjZGtEcmFnPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpbHRlci5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0RmlsdGVyQXR0cmlidXRlcyhmaWx0ZXIsIDMpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJkZWxldGVGaWx0ZXIoZmlsdGVyLmlkKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24uZGVsZXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJnb1RvRWRpdGlvbihmaWx0ZXIpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmZpbHRlcnMubGlzdC5tb2RpZnknIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZHJhZ19pbmRpY2F0b3JcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ZpbHRlcnM+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm8tZmlsdGVyc19fbm8tZmlsdGVyc1wiPnt7ICdAcHJ5LmZpbHRlcnMubm9GaWx0ZXJzJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJnb1RvQ3JlYXRpb24oKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj57eyAnQHByeS5maWx0ZXJzLmxpc3QuYWRkJyB8IGkxOG4gfX08L2J1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuQ1JFQVRJT04gfHwgY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkVESVRJT05cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWZpbHRlcnNfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWx0ZXJOYW1lXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5uYW1lJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dCBpZD1cImZpbHRlck5hbWVcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIubmFtZVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlclR5cGVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLnR5cGUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgIGlkPVwiZmlsdGVyVHlwZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi50eXBlJyB8IGkxOG5cIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInR5cGVzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLnR5cGVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyVHlwZSgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdkYXRlJ1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIHUtZGlzcGxheS1mbGV4IC1yb3dcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZS1yYW5nZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uZGF0ZVJhbmdlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgIGlkPVwiZGF0ZS1yYW5nZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlci5oYXNEYXRlUmFuZ2VcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGhpcy5jdXJyZW50T3BlcmF0b3JzJC5uZXh0KGdldE9wZXJhdG9ycygpKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnbGlzdCdcIiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJwb3NzaWJsZVZhbHVlc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udmFsdWVzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJwb3NzaWJsZVZhbHVlc1wiXG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlci5wb3NzaWJsZVZhbHVlc1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInZhbGV1cjEsIHZhbGV1cjIsIHZhbGV1cjNcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2F1dG9jb21wbGV0ZSdcIiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJsaW1pdFwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24ubGltaXQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGlkPVwibGltaXRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHR5cGU9XCJudW1iZXJcIiBtaW49XCIwXCIgbWF4PVwiNTBcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5saW1pdFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImF0dHJpYnV0ZXNcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLmF0dHJpYnV0ZXMnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgIGlkPVwiYXR0cmlidXRlc1wiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImF0dHJpYnV0ZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZmlsdGVyLmF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0QXR0cmlidXRlKCRldmVudClcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgICAgIGJpbmRDbGFzc2VzPVwiY2xhc3Nlc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwib3BlcmF0aW9uc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuYXR0cmlidXRlcy5vcGVyYXRvcicgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJvcGVyYXRpb25zXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJjdXJyZW50T3BlcmF0b3JzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLm9wZXJhdG9yXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmF0dHJpYnV0ZXMub3BlcmF0b3InIHwgaTE4blwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGaWx0ZXIoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEoZmlsdGVyLm5hbWUgJiYgZmlsdGVyLnR5cGUgJiYgZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoICE9PSAwICYmIGZpbHRlci5vcGVyYXRvcilcIlxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==