valtech-components 2.0.1011 → 2.0.1013

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.
@@ -140,7 +140,7 @@ export class LinksAccordionComponent {
140
140
  </ng-container>
141
141
  </ion-accordion-group>
142
142
  </div>
143
- `, isInline: true, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }] }); }
143
+ `, isInline: true, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}:host-context(body.dark) .links-accordion ion-item,:host-context(html.ion-palette-dark) .links-accordion ion-item{--background: rgba(255, 255, 255, .045)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }] }); }
144
144
  }
145
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LinksAccordionComponent, decorators: [{
146
146
  type: Component,
@@ -191,7 +191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
191
191
  </ng-container>
192
192
  </ion-accordion-group>
193
193
  </div>
194
- `, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}\n"] }]
194
+ `, styles: [".links-accordion .accordion-label{font-size:1.3rem}.links-accordion .accordion-item-label{font-size:1.1rem}.links-accordion ion-item{--background: var(--ion-color-light-tint)}.links-accordion ion-accordion{background:transparent}:host-context(body.dark) .links-accordion ion-item,:host-context(html.ion-palette-dark) .links-accordion ion-item{--background: rgba(255, 255, 255, .045)}\n"] }]
195
195
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.MenuController }], propDecorators: { props: [{
196
196
  type: Input
197
197
  }], navigate: [{
@@ -200,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
200
200
  type: ViewChild,
201
201
  args: ['accordionGroup']
202
202
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtYWNjb3JkaW9uL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFrQixNQUFNLDJCQUEyQixDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFHckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUF1REgsTUFBTSxPQUFPLHVCQUF1QjtJQW9CbEMsWUFDVSxNQUFjLEVBQ2QsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBckIxQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ00sVUFBSyxHQUEyQjtZQUN2QyxRQUFRLEVBQUUsRUFBRTtZQUNaLGVBQWUsRUFBRSw2QkFBNkI7WUFDOUMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUM7UUFFRjs7V0FFRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO0lBTy9DLENBQUM7SUFFSjs7T0FFRztJQUNILGVBQWUsQ0FBQyxPQUE4QixFQUFFLEtBQWE7UUFDM0QsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksV0FBVyxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsT0FBOEI7UUFDNUMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLElBQXdCO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBZSxFQUFFLEtBQWE7UUFDOUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELGFBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixXQUFXO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0EzRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsZ1FBbER4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QsZ1RBaERTLFlBQVkscVZBQUUsaUJBQWlCLHFKQUFFLFlBQVksNklBQUUsT0FBTywwTkFBRSxRQUFRLDZGQUFFLE9BQU87OzRGQW1EeEUsdUJBQXVCO2tCQXREbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7d0dBU1EsS0FBSztzQkFBYixLQUFLO2dCQVVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkFjY29yZGlvbiwgSW9uQWNjb3JkaW9uR3JvdXAsIElvbkl0ZW0sIElvbkxhYmVsLCBJb25MaXN0LCBNZW51Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IExpbmtzQWNjb3JkaW9uTGluaywgTGlua3NBY2NvcmRpb25NZXRhZGF0YSwgTGlua3NBY2NvcmRpb25TZWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLWxpbmtzLWFjY29yZGlvblxuICpcbiAqIEEgaGllcmFyY2hpY2FsIG5hdmlnYXRpb24gY29tcG9uZW50IHVzaW5nIElvbmljIGFjY29yZGlvbnMuXG4gKiBTdXBwb3J0cyBzZWN0aW9ucyB3aXRoIG9wdGlvbmFsIHN1Yi1saW5rcyBhbmQgYXV0b21hdGljIG1lbnUgY2xvc2luZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1saW5rcy1hY2NvcmRpb25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBzZWN0aW9uczogW1xuICogICAgICAgeyB0aXRsZTogJ0hvbWUnLCByb3V0ZTogWycvJ10gfSxcbiAqICAgICAgIHsgdGl0bGU6ICdQcm9kdWN0cycsIGxpbmtzOiBbXG4gKiAgICAgICAgIHsgdGV4dDogJ0NhdGFsb2cnLCByb3V0ZTogWycvcHJvZHVjdHMnXSB9LFxuICogICAgICAgICB7IHRleHQ6ICdOZXcgQXJyaXZhbHMnLCByb3V0ZTogWycvcHJvZHVjdHMnLCAnbmV3J10gfVxuICogICAgICAgXX1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogICAobmF2aWdhdGUpPVwib25OYXZpZ2F0ZSgkZXZlbnQpXCJcbiAqID48L3ZhbC1saW5rcy1hY2NvcmRpb24+XG4gKlxuICogQGlucHV0IHByb3BzIC0gQWNjb3JkaW9uIGNvbmZpZ3VyYXRpb25cbiAqIEBvdXRwdXQgbmF2aWdhdGUgLSBFbWl0cyByb3V0ZSB3aGVuIGEgbGluayBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1saW5rcy1hY2NvcmRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uQWNjb3JkaW9uLCBJb25JdGVtLCBJb25MYWJlbCwgSW9uTGlzdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImxpbmtzLWFjY29yZGlvblwiPlxuICAgICAgPGlvbi1hY2NvcmRpb24tZ3JvdXAgI2FjY29yZGlvbkdyb3VwPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByb3BzLnNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPCEtLSBEaXJlY3QtbGluayBzZWN0aW9uOiByb3V0ZSArIG5vIGNoaWxkcmVuIC0tPlxuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLnJvdXRlICYmICFzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgY2xhc3M9XCJkaXJlY3QtbGlua1wiXG4gICAgICAgICAgICBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGlua0NsaWNrKHNlY3Rpb24ucm91dGUhLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgbGluZXM9XCJub25lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gQWNjb3JkaW9uIHNlY3Rpb246IGhhcyBjaGlsZHJlbiAtLT5cbiAgICAgICAgICA8aW9uLWFjY29yZGlvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImdldFNlY3Rpb25WYWx1ZShzZWN0aW9uLCBpKVwiXG4gICAgICAgICAgICB0b2dnbGVJY29uPVwiY2hldnJvbi1kb3duLW91dGxpbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICBzbG90PVwiaGVhZGVyXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgICBsaW5lcz1cIm5vbmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgPGRpdiBzbG90PVwiY29udGVudFwiIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIj5cbiAgICAgICAgICAgICAgPGlvbi1saXN0IGxpbmVzPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2Ygc2VjdGlvbi5saW5rc1wiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyB9XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxpbmtDbGljayhsaW5rLnJvdXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJhY2NvcmRpb24taXRlbS1sYWJlbFwiPnt7IGdldExpbmtUZXh0KGxpbmspIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaW9uLWFjY29yZGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2lvbi1hY2NvcmRpb24tZ3JvdXA+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rc0FjY29yZGlvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEFjY29yZGlvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IExpbmtzQWNjb3JkaW9uTWV0YWRhdGEgPSB7XG4gICAgc2VjdGlvbnM6IFtdLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScsXG4gICAgY2xvc2VNZW51T25DbGljazogdHJ1ZSxcbiAgICBjbG9zZUFjY29yZGlvbk9uQ2xpY2s6IHRydWUsXG4gIH07XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSByb3V0ZSB3aGVuIGEgbGluayBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG5hdmlnYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAVmlld0NoaWxkKCdhY2NvcmRpb25Hcm91cCcpIGFjY29yZGlvbkdyb3VwITogSW9uQWNjb3JkaW9uR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIG1lbnVDdHJsOiBNZW51Q29udHJvbGxlclxuICApIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB1bmlxdWUgdmFsdWUgZm9yIHRoZSBhY2NvcmRpb24gc2VjdGlvbi5cbiAgICovXG4gIGdldFNlY3Rpb25WYWx1ZShzZWN0aW9uOiBMaW5rc0FjY29yZGlvblNlY3Rpb24sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWN0aW9uLnRpdGxlS2V5IHx8IHNlY3Rpb24udGl0bGUgfHwgYHNlY3Rpb24tJHtpbmRleH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNlY3Rpb24gdGl0bGUsIHN1cHBvcnRpbmcgaTE4biB2aWEgdGl0bGVLZXkuXG4gICAqL1xuICBnZXRTZWN0aW9uVGl0bGUoc2VjdGlvbjogTGlua3NBY2NvcmRpb25TZWN0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoc2VjdGlvbi50aXRsZUtleSAmJiB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChzZWN0aW9uLnRpdGxlS2V5LCB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbi50aXRsZSB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsaW5rIHRleHQsIHN1cHBvcnRpbmcgaTE4biB2aWEgdGV4dEtleS5cbiAgICovXG4gIGdldExpbmtUZXh0KGxpbms6IExpbmtzQWNjb3JkaW9uTGluayk6IHN0cmluZyB7XG4gICAgaWYgKGxpbmsudGV4dEtleSAmJiB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChsaW5rLnRleHRLZXksIHRoaXMucHJvcHMuaTE4bk5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiBsaW5rLnRleHQgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBsaW5rIGNsaWNrIC0gY2xvc2VzIGFjY29yZGlvbi9tZW51IGFuZCBuYXZpZ2F0ZXMuXG4gICAqL1xuICBhc3luYyBvbkxpbmtDbGljayhyb3V0ZTogc3RyaW5nW10sIGV2ZW50PzogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8vIENsb3NlIGFjY29yZGlvbiBiZWZvcmUgbmF2aWdhdGluZ1xuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlQWNjb3JkaW9uT25DbGljayAhPT0gZmFsc2UgJiYgdGhpcy5hY2NvcmRpb25Hcm91cCkge1xuICAgICAgdGhpcy5hY2NvcmRpb25Hcm91cC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSBtZW51IGlmIGVuYWJsZWRcbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU1lbnVPbkNsaWNrICE9PSBmYWxzZSkge1xuICAgICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQocm91dGUpO1xuXG4gICAgLy8gTmF2aWdhdGVcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyb3V0ZSk7XG4gIH1cbn1cbiJdfQ==
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtYWNjb3JkaW9uL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFrQixNQUFNLDJCQUEyQixDQUFDO0FBQ3hILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFHckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUF1REgsTUFBTSxPQUFPLHVCQUF1QjtJQW9CbEMsWUFDVSxNQUFjLEVBQ2QsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBckIxQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ00sVUFBSyxHQUEyQjtZQUN2QyxRQUFRLEVBQUUsRUFBRTtZQUNaLGVBQWUsRUFBRSw2QkFBNkI7WUFDOUMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUM7UUFFRjs7V0FFRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO0lBTy9DLENBQUM7SUFFSjs7T0FFRztJQUNILGVBQWUsQ0FBQyxPQUE4QixFQUFFLEtBQWE7UUFDM0QsT0FBTyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksV0FBVyxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsT0FBOEI7UUFDNUMsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLElBQXdCO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBZSxFQUFFLEtBQWE7UUFDOUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELGFBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixXQUFXO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0EzRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsZ1FBbER4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QsMGNBaERTLFlBQVkscVZBQUUsaUJBQWlCLHFKQUFFLFlBQVksNklBQUUsT0FBTywwTkFBRSxRQUFRLDZGQUFFLE9BQU87OzRGQW1EeEUsdUJBQXVCO2tCQXREbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUMxRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7d0dBU1EsS0FBSztzQkFBYixLQUFLO2dCQVVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkFjY29yZGlvbiwgSW9uQWNjb3JkaW9uR3JvdXAsIElvbkl0ZW0sIElvbkxhYmVsLCBJb25MaXN0LCBNZW51Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IExpbmtzQWNjb3JkaW9uTGluaywgTGlua3NBY2NvcmRpb25NZXRhZGF0YSwgTGlua3NBY2NvcmRpb25TZWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLWxpbmtzLWFjY29yZGlvblxuICpcbiAqIEEgaGllcmFyY2hpY2FsIG5hdmlnYXRpb24gY29tcG9uZW50IHVzaW5nIElvbmljIGFjY29yZGlvbnMuXG4gKiBTdXBwb3J0cyBzZWN0aW9ucyB3aXRoIG9wdGlvbmFsIHN1Yi1saW5rcyBhbmQgYXV0b21hdGljIG1lbnUgY2xvc2luZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1saW5rcy1hY2NvcmRpb25cbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBzZWN0aW9uczogW1xuICogICAgICAgeyB0aXRsZTogJ0hvbWUnLCByb3V0ZTogWycvJ10gfSxcbiAqICAgICAgIHsgdGl0bGU6ICdQcm9kdWN0cycsIGxpbmtzOiBbXG4gKiAgICAgICAgIHsgdGV4dDogJ0NhdGFsb2cnLCByb3V0ZTogWycvcHJvZHVjdHMnXSB9LFxuICogICAgICAgICB7IHRleHQ6ICdOZXcgQXJyaXZhbHMnLCByb3V0ZTogWycvcHJvZHVjdHMnLCAnbmV3J10gfVxuICogICAgICAgXX1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogICAobmF2aWdhdGUpPVwib25OYXZpZ2F0ZSgkZXZlbnQpXCJcbiAqID48L3ZhbC1saW5rcy1hY2NvcmRpb24+XG4gKlxuICogQGlucHV0IHByb3BzIC0gQWNjb3JkaW9uIGNvbmZpZ3VyYXRpb25cbiAqIEBvdXRwdXQgbmF2aWdhdGUgLSBFbWl0cyByb3V0ZSB3aGVuIGEgbGluayBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1saW5rcy1hY2NvcmRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25BY2NvcmRpb25Hcm91cCwgSW9uQWNjb3JkaW9uLCBJb25JdGVtLCBJb25MYWJlbCwgSW9uTGlzdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImxpbmtzLWFjY29yZGlvblwiPlxuICAgICAgPGlvbi1hY2NvcmRpb24tZ3JvdXAgI2FjY29yZGlvbkdyb3VwPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHByb3BzLnNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgPCEtLSBEaXJlY3QtbGluayBzZWN0aW9uOiByb3V0ZSArIG5vIGNoaWxkcmVuIC0tPlxuICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLnJvdXRlICYmICFzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgY2xhc3M9XCJkaXJlY3QtbGlua1wiXG4gICAgICAgICAgICBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGlua0NsaWNrKHNlY3Rpb24ucm91dGUhLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgbGluZXM9XCJub25lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gQWNjb3JkaW9uIHNlY3Rpb246IGhhcyBjaGlsZHJlbiAtLT5cbiAgICAgICAgICA8aW9uLWFjY29yZGlvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uLmxpbmtzPy5sZW5ndGhcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImdldFNlY3Rpb25WYWx1ZShzZWN0aW9uLCBpKVwiXG4gICAgICAgICAgICB0b2dnbGVJY29uPVwiY2hldnJvbi1kb3duLW91dGxpbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICBzbG90PVwiaGVhZGVyXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIlxuICAgICAgICAgICAgICBsaW5lcz1cIm5vbmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiYWNjb3JkaW9uLWxhYmVsXCI+e3sgZ2V0U2VjdGlvblRpdGxlKHNlY3Rpb24pIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgPGRpdiBzbG90PVwiY29udGVudFwiIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMuYmFja2dyb3VuZENvbG9yIHx8ICd2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciknIH1cIj5cbiAgICAgICAgICAgICAgPGlvbi1saXN0IGxpbmVzPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2Ygc2VjdGlvbi5saW5rc1wiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLmJhY2tncm91bmRDb2xvciB8fCAndmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpJyB9XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxpbmtDbGljayhsaW5rLnJvdXRlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJhY2NvcmRpb24taXRlbS1sYWJlbFwiPnt7IGdldExpbmtUZXh0KGxpbmspIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaW9uLWFjY29yZGlvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2lvbi1hY2NvcmRpb24tZ3JvdXA+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xpbmtzLWFjY29yZGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMaW5rc0FjY29yZGlvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEFjY29yZGlvbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IExpbmtzQWNjb3JkaW9uTWV0YWRhdGEgPSB7XG4gICAgc2VjdGlvbnM6IFtdLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKScsXG4gICAgY2xvc2VNZW51T25DbGljazogdHJ1ZSxcbiAgICBjbG9zZUFjY29yZGlvbk9uQ2xpY2s6IHRydWUsXG4gIH07XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSByb3V0ZSB3aGVuIGEgbGluayBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG5hdmlnYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAVmlld0NoaWxkKCdhY2NvcmRpb25Hcm91cCcpIGFjY29yZGlvbkdyb3VwITogSW9uQWNjb3JkaW9uR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIG1lbnVDdHJsOiBNZW51Q29udHJvbGxlclxuICApIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB1bmlxdWUgdmFsdWUgZm9yIHRoZSBhY2NvcmRpb24gc2VjdGlvbi5cbiAgICovXG4gIGdldFNlY3Rpb25WYWx1ZShzZWN0aW9uOiBMaW5rc0FjY29yZGlvblNlY3Rpb24sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZWN0aW9uLnRpdGxlS2V5IHx8IHNlY3Rpb24udGl0bGUgfHwgYHNlY3Rpb24tJHtpbmRleH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHNlY3Rpb24gdGl0bGUsIHN1cHBvcnRpbmcgaTE4biB2aWEgdGl0bGVLZXkuXG4gICAqL1xuICBnZXRTZWN0aW9uVGl0bGUoc2VjdGlvbjogTGlua3NBY2NvcmRpb25TZWN0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoc2VjdGlvbi50aXRsZUtleSAmJiB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChzZWN0aW9uLnRpdGxlS2V5LCB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gc2VjdGlvbi50aXRsZSB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsaW5rIHRleHQsIHN1cHBvcnRpbmcgaTE4biB2aWEgdGV4dEtleS5cbiAgICovXG4gIGdldExpbmtUZXh0KGxpbms6IExpbmtzQWNjb3JkaW9uTGluayk6IHN0cmluZyB7XG4gICAgaWYgKGxpbmsudGV4dEtleSAmJiB0aGlzLnByb3BzLmkxOG5OYW1lc3BhY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmkxOG4udChsaW5rLnRleHRLZXksIHRoaXMucHJvcHMuaTE4bk5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiBsaW5rLnRleHQgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBsaW5rIGNsaWNrIC0gY2xvc2VzIGFjY29yZGlvbi9tZW51IGFuZCBuYXZpZ2F0ZXMuXG4gICAqL1xuICBhc3luYyBvbkxpbmtDbGljayhyb3V0ZTogc3RyaW5nW10sIGV2ZW50PzogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8vIENsb3NlIGFjY29yZGlvbiBiZWZvcmUgbmF2aWdhdGluZ1xuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlQWNjb3JkaW9uT25DbGljayAhPT0gZmFsc2UgJiYgdGhpcy5hY2NvcmRpb25Hcm91cCkge1xuICAgICAgdGhpcy5hY2NvcmRpb25Hcm91cC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSBtZW51IGlmIGVuYWJsZWRcbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU1lbnVPbkNsaWNrICE9PSBmYWxzZSkge1xuICAgICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQocm91dGUpO1xuXG4gICAgLy8gTmF2aWdhdGVcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyb3V0ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,14 +1,15 @@
1
- import { Component, inject, Input, signal } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { IonButton, IonButtons, IonCheckbox, IonContent, IonHeader, IonInput, IonSpinner, IonToolbar, } from '@ionic/angular/standalone';
1
+ import { Component, computed, inject, Input, signal } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { IonButton, IonButtons, IonContent, IonHeader, IonSpinner, IonToolbar } from '@ionic/angular/standalone';
4
+ import { FormComponent } from '../form/form.component';
4
5
  import { DisplayComponent } from '../../atoms/display/display.component';
5
6
  import { TextComponent } from '../../atoms/text/text.component';
6
7
  import { TitleComponent } from '../../atoms/title/title.component';
8
+ import { ComponentStates, InputType } from '../../types';
7
9
  import { I18nService } from '../../../services/i18n';
8
10
  import { ApiKeyService } from '../../../services/apikeys/api-keys.service';
9
11
  import { API_KEYS_MODAL_I18N } from './api-keys-modal.i18n';
10
12
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/forms";
12
13
  const DEFAULT_NAMESPACE = 'Settings.ApiKeysModal';
13
14
  /**
14
15
  * `val-api-keys-modal` — gestión de Client API Keys org-scopeadas (ADR-023 fase 6).
@@ -31,9 +32,76 @@ export class ApiKeysModalComponent {
31
32
  this.errorMsg = signal('');
32
33
  this.secret = signal(null);
33
34
  this.copied = signal(false);
34
- this.name = '';
35
- this.expiresInDays = null;
36
- this.selectedPerms = signal(new Set());
35
+ /**
36
+ * FormMetadata del form de crear key (val-form). Reactivo a idioma + permisos
37
+ * disponibles + estado submitting. Reemplaza los ion-input/ion-checkbox crudos
38
+ * por val-form (consistencia con el resto de modales del factory).
39
+ */
40
+ this.createForm = computed(() => {
41
+ this.i18n.lang();
42
+ const working = this.submitting();
43
+ const nameField = {
44
+ token: 'apikey-name',
45
+ name: 'name',
46
+ label: this.t('nameLabel'),
47
+ hint: '',
48
+ placeholder: this.t('namePlaceholder'),
49
+ type: InputType.TEXT,
50
+ order: 1,
51
+ validators: [Validators.required, Validators.maxLength(120)],
52
+ errors: { required: this.t('noName') },
53
+ value: '',
54
+ state: ComponentStates.ENABLED,
55
+ };
56
+ const permsField = {
57
+ token: 'apikey-perms',
58
+ name: 'permissions',
59
+ label: this.t('permissionsLabel'),
60
+ hint: '',
61
+ placeholder: '',
62
+ type: InputType.MULTI_SELECT,
63
+ order: 2,
64
+ validators: [Validators.required],
65
+ errors: { required: this.t('noPerms') },
66
+ value: '',
67
+ options: this.availablePermissions().map((p, i) => ({
68
+ id: p,
69
+ name: p,
70
+ order: i + 1,
71
+ })),
72
+ state: ComponentStates.ENABLED,
73
+ };
74
+ const expiresField = {
75
+ token: 'apikey-expires',
76
+ name: 'expiresInDays',
77
+ label: this.t('expiresLabel'),
78
+ hint: '',
79
+ placeholder: '',
80
+ type: InputType.NUMBER,
81
+ order: 3,
82
+ validators: [Validators.min(1)],
83
+ errors: {},
84
+ value: '',
85
+ state: ComponentStates.ENABLED,
86
+ };
87
+ const submitButton = {
88
+ token: 'apikey-create-submit',
89
+ text: this.t('create'),
90
+ color: 'dark',
91
+ type: 'submit',
92
+ fill: 'solid',
93
+ size: 'default',
94
+ shape: 'round',
95
+ expand: 'block',
96
+ state: working ? ComponentStates.WORKING : ComponentStates.ENABLED,
97
+ };
98
+ return {
99
+ name: '',
100
+ state: working ? ComponentStates.WORKING : ComponentStates.ENABLED,
101
+ sections: [{ name: '', order: 1, fields: [nameField, permsField, expiresField] }],
102
+ actions: submitButton,
103
+ };
104
+ });
37
105
  if (!this.i18n.hasNamespace(DEFAULT_NAMESPACE)) {
38
106
  this.i18n.registerContent(DEFAULT_NAMESPACE, API_KEYS_MODAL_I18N);
39
107
  }
@@ -60,39 +128,36 @@ export class ApiKeysModalComponent {
60
128
  }
61
129
  openCreate() {
62
130
  this.errorMsg.set('');
63
- this.name = '';
64
- this.expiresInDays = null;
65
- this.selectedPerms.set(new Set());
66
131
  this.showCreate.set(true);
67
132
  }
68
- togglePerm(perm, ev) {
69
- const checked = ev.detail?.checked ?? false;
70
- const next = new Set(this.selectedPerms());
71
- if (checked) {
72
- next.add(perm);
73
- }
74
- else {
75
- next.delete(perm);
76
- }
77
- this.selectedPerms.set(next);
78
- }
79
- submit() {
133
+ onCreateSubmit(event) {
134
+ if (this.submitting())
135
+ return;
80
136
  this.errorMsg.set('');
81
- if (!this.name.trim()) {
137
+ const name = String(event.fields['name'] ?? '').trim();
138
+ // MULTI_SELECT puede devolver array o csv según el render — normalizamos.
139
+ const rawPerms = event.fields['permissions'];
140
+ const permissions = Array.isArray(rawPerms)
141
+ ? rawPerms
142
+ : String(rawPerms ?? '')
143
+ .split(',')
144
+ .map(s => s.trim())
145
+ .filter(Boolean);
146
+ const expiresRaw = Number(event.fields['expiresInDays']);
147
+ if (!name) {
82
148
  this.errorMsg.set(this.t('noName'));
83
149
  return;
84
150
  }
85
- const permissions = Array.from(this.selectedPerms());
86
- if (permissions.length === 0) {
151
+ if (!permissions.length) {
87
152
  this.errorMsg.set(this.t('noPerms'));
88
153
  return;
89
154
  }
90
155
  this.submitting.set(true);
91
156
  this.apiKeys
92
157
  .create({
93
- name: this.name.trim(),
158
+ name,
94
159
  permissions,
95
- expiresInDays: this.expiresInDays && this.expiresInDays > 0 ? this.expiresInDays : undefined,
160
+ expiresInDays: Number.isFinite(expiresRaw) && expiresRaw > 0 ? expiresRaw : undefined,
96
161
  })
97
162
  .subscribe({
98
163
  next: res => {
@@ -197,45 +262,13 @@ export class ApiKeysModalComponent {
197
262
  <p class="apikey-error">{{ errorMsg() }}</p>
198
263
  }
199
264
 
200
- <!-- Crear -->
265
+ <!-- Crear — val-form (consistencia con el resto de modales del factory). -->
201
266
  @if (showCreate()) {
202
267
  <div class="apikey-create">
203
- <ion-input
204
- label="{{ t('nameLabel') }}"
205
- labelPlacement="stacked"
206
- [placeholder]="t('namePlaceholder')"
207
- [(ngModel)]="name"
208
- />
209
- <p class="apikey-create__label">{{ t('permissionsLabel') }}</p>
210
- <div class="apikey-perms">
211
- @for (p of availablePermissions(); track p) {
212
- <ion-checkbox
213
- labelPlacement="end"
214
- [checked]="selectedPerms().has(p)"
215
- (ionChange)="togglePerm(p, $event)"
216
- >
217
- {{ p }}
218
- </ion-checkbox>
219
- }
220
- </div>
221
- <ion-input
222
- label="{{ t('expiresLabel') }}"
223
- labelPlacement="stacked"
224
- type="number"
225
- [(ngModel)]="expiresInDays"
226
- />
227
- <div class="apikey-actions">
228
- <ion-button expand="block" color="dark" [disabled]="submitting()" (click)="submit()">
229
- @if (submitting()) {
230
- <ion-spinner name="dots" />&nbsp;{{ t('creating') }}
231
- } @else {
232
- {{ t('create') }}
233
- }
234
- </ion-button>
235
- <ion-button expand="block" fill="clear" color="medium" (click)="showCreate.set(false)">
236
- {{ t('cancel') }}
237
- </ion-button>
238
- </div>
268
+ <val-form [props]="createForm()" (onSubmit)="onCreateSubmit($event)" />
269
+ <ion-button expand="block" fill="clear" color="medium" (click)="showCreate.set(false)">
270
+ {{ t('cancel') }}
271
+ </ion-button>
239
272
  </div>
240
273
  } @else {
241
274
  <div class="apikey-actions">
@@ -247,20 +280,18 @@ export class ApiKeysModalComponent {
247
280
  }
248
281
  }
249
282
  </ion-content>
250
- `, isInline: true, styles: ["val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-medium-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:16px;border-radius:12px;background:var(--ion-color-light)}.apikey-create__label{margin:12px 0 4px;font-size:13px;font-weight:600;color:var(--ion-color-dark)}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
283
+ `, isInline: true, styles: ["val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-medium-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:16px;border-radius:12px;background:var(--ion-color-light)}.apikey-create__label{margin:12px 0 4px;font-size:13px;font-weight:600;color:var(--ion-color-dark)}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
251
284
  }
252
285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiKeysModalComponent, decorators: [{
253
286
  type: Component,
254
287
  args: [{ selector: 'val-api-keys-modal', standalone: true, imports: [
255
- FormsModule,
256
288
  IonHeader,
257
289
  IonToolbar,
258
290
  IonButtons,
259
291
  IonButton,
260
292
  IonContent,
261
- IonInput,
262
- IonCheckbox,
263
293
  IonSpinner,
294
+ FormComponent,
264
295
  DisplayComponent,
265
296
  TextComponent,
266
297
  TitleComponent,
@@ -326,45 +357,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
326
357
  <p class="apikey-error">{{ errorMsg() }}</p>
327
358
  }
328
359
 
329
- <!-- Crear -->
360
+ <!-- Crear — val-form (consistencia con el resto de modales del factory). -->
330
361
  @if (showCreate()) {
331
362
  <div class="apikey-create">
332
- <ion-input
333
- label="{{ t('nameLabel') }}"
334
- labelPlacement="stacked"
335
- [placeholder]="t('namePlaceholder')"
336
- [(ngModel)]="name"
337
- />
338
- <p class="apikey-create__label">{{ t('permissionsLabel') }}</p>
339
- <div class="apikey-perms">
340
- @for (p of availablePermissions(); track p) {
341
- <ion-checkbox
342
- labelPlacement="end"
343
- [checked]="selectedPerms().has(p)"
344
- (ionChange)="togglePerm(p, $event)"
345
- >
346
- {{ p }}
347
- </ion-checkbox>
348
- }
349
- </div>
350
- <ion-input
351
- label="{{ t('expiresLabel') }}"
352
- labelPlacement="stacked"
353
- type="number"
354
- [(ngModel)]="expiresInDays"
355
- />
356
- <div class="apikey-actions">
357
- <ion-button expand="block" color="dark" [disabled]="submitting()" (click)="submit()">
358
- @if (submitting()) {
359
- <ion-spinner name="dots" />&nbsp;{{ t('creating') }}
360
- } @else {
361
- {{ t('create') }}
362
- }
363
- </ion-button>
364
- <ion-button expand="block" fill="clear" color="medium" (click)="showCreate.set(false)">
365
- {{ t('cancel') }}
366
- </ion-button>
367
- </div>
363
+ <val-form [props]="createForm()" (onSubmit)="onCreateSubmit($event)" />
364
+ <ion-button expand="block" fill="clear" color="medium" (click)="showCreate.set(false)">
365
+ {{ t('cancel') }}
366
+ </ion-button>
368
367
  </div>
369
368
  } @else {
370
369
  <div class="apikey-actions">
@@ -382,4 +381,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
382
381
  }], i18nNamespace: [{
383
382
  type: Input
384
383
  }] } });
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUU1RCxNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBRWxEOzs7Ozs7R0FNRztBQXNOSCxNQUFNLE9BQU8scUJBQXFCO0lBdUJoQztRQXRCUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFLeEMsc0JBQXNCO1FBQ2Isa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQUVsQyxTQUFJ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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdIVDt3REF5RlEsU0FBUztzQkFBakIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25DaGVja2JveCxcbiAgSW9uQ29udGVudCxcbiAgSW9uSGVhZGVyLFxuICBJb25JbnB1dCxcbiAgSW9uU3Bpbm5lcixcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEFwaUtleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL2FwaS1rZXlzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xpZW50QXBpS2V5LCBDbGllbnRBcGlLZXlXaXRoU2VjcmV0IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBpa2V5cy90eXBlcyc7XG5cbmltcG9ydCB7IEFQSV9LRVlTX01PREFMX0kxOE4gfSBmcm9tICcuL2FwaS1rZXlzLW1vZGFsLmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5BcGlLZXlzTW9kYWwnO1xuXG4vKipcbiAqIGB2YWwtYXBpLWtleXMtbW9kYWxgIOKAlCBnZXN0acOzbiBkZSBDbGllbnQgQVBJIEtleXMgb3JnLXNjb3BlYWRhcyAoQURSLTAyMyBmYXNlIDYpLlxuICpcbiAqIExpc3RhIGxhcyBrZXlzIGRlIGxhIG9yZywgcGVybWl0ZSBjcmVhciAobW9zdHJhbmRvIGVsIHNlY3JldG8gVU5BIHZleiBjb24gY29waWEpXG4gKiB5IHJldm9jYXIuIFBlbnNhZG8gcGFyYSBoYWJpbGl0YXIgaW50ZWdyYWNpb25lcyBNMk0gZGVsIGltcG9ydCBkZSBtaWVtYnJvcywgcGVyb1xuICogc2lydmUgYSBjdWFscXVpZXIgcGVybWlzbyBkZWwgY2F0w6Fsb2dvLiBIZWFkZXIgY2Fuw7NuaWNvIChSZWdsYSAjNSkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hcGkta2V5cy1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25IZWFkZXIsXG4gICAgSW9uVG9vbGJhcixcbiAgICBJb25CdXR0b25zLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25Db250ZW50LFxuICAgIElvbklucHV0LFxuICAgIElvbkNoZWNrYm94LFxuICAgIElvblNwaW5uZXIsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdoaW50JyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiIC8+XG5cbiAgICAgIEBpZiAoc2VjcmV0KCk7IGFzIHMpIHtcbiAgICAgICAgPCEtLSBTZWNyZXRvIHJlY2nDqW4gY3JlYWRvOiBtb3N0cmFyIFVOQSB2ZXogLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktc2VjcmV0XCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdzZWNyZXRUaXRsZScpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IHRydWUgfVwiIC8+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhcGlrZXktc2VjcmV0X193YXJuXCI+e3sgdCgnc2VjcmV0V2FybmluZycpIH19PC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktc2VjcmV0X19ib3hcIj5cbiAgICAgICAgICAgIDxjb2RlPnt7IHMuc2VjcmV0IH19PC9jb2RlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJmaW5pc2hTZWNyZXQoKVwiPlxuICAgICAgICAgICAgICB7eyB0KCdkb25lJykgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8IS0tIExpc3RhIC0tPlxuICAgICAgICAgIEBpZiAoa2V5cygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2VtcHR5JyksIHNpemU6ICdtZWRpdW0nLCBjb2xvcjogJ21lZGl1bScsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1saXN0XCI+XG4gICAgICAgICAgICAgIEBmb3IgKGsgb2Yga2V5cygpOyB0cmFjayBrLmtleUlkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93X19tYWluXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbmFtZVwiPnt7IGsubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcGlrZXktcm93X19tZXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgay5wZXJtaXNzaW9ucy5sZW5ndGggfX0ge3sgdCgncGVybXNDb3VudCcpIH19IMK3IHt7IHQoJ2xhc3RVc2VkJykgfX06XG4gICAgICAgICAgICAgICAgICAgICAge3sgay5sYXN0VXNlZEF0IHx8IHQoJ25ldmVyJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhbmdlclwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJyZXZva2UoaylcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgncmV2b2tlJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChlcnJvck1zZygpKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1lcnJvclwiPnt7IGVycm9yTXNnKCkgfX08L3A+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBDcmVhciAtLT5cbiAgICAgICAgICBAaWYgKHNob3dDcmVhdGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1jcmVhdGVcIj5cbiAgICAgICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgdCgnbmFtZUxhYmVsJykgfX1cIlxuICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoJ25hbWVQbGFjZWhvbGRlcicpXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1jcmVhdGVfX2xhYmVsXCI+e3sgdCgncGVybWlzc2lvbnNMYWJlbCcpIH19PC9wPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXBlcm1zXCI+XG4gICAgICAgICAgICAgICAgQGZvciAocCBvZiBhdmFpbGFibGVQZXJtaXNzaW9ucygpOyB0cmFjayBwKSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwiZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRQZXJtcygpLmhhcyhwKVwiXG4gICAgICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwidG9nZ2xlUGVybShwLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgcCB9fVxuICAgICAgICAgICAgICAgICAgPC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgdCgnZXhwaXJlc0xhYmVsJykgfX1cIlxuICAgICAgICAgICAgICAgIGxhYmVsUGxhY2VtZW50PVwic3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJleHBpcmVzSW5EYXlzXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBjb2xvcj1cImRhcmtcIiBbZGlzYWJsZWRdPVwic3VibWl0dGluZygpXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKHN1Ym1pdHRpbmcoKSkge1xuICAgICAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIiAvPiZuYnNwO3t7IHQoJ2NyZWF0aW5nJykgfX1cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB7eyB0KCdjcmVhdGUnKSB9fVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgKGNsaWNrKT1cInNob3dDcmVhdGUuc2V0KGZhbHNlKVwiPlxuICAgICAgICAgICAgICAgICAge3sgdCgnY2FuY2VsJykgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib3BlbkNyZWF0ZSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnbmV3S2V5JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgdmFsLWRpc3BsYXkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgdmFsLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1saWdodCk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fbWFpbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvd19fbWV0YSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0tc2hhZGUsICM2YjZlNzYpO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1jcmVhdGUge1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWNyZWF0ZV9fbGFiZWwge1xuICAgICAgICBtYXJnaW46IDEycHggMCA0cHggMDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1wZXJtcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2MwMzkyYik7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXNlY3JldF9fd2FybiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2FybmluZy1zaGFkZSwgI2I4ODYwMCk7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X19ib3gge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUtleXNNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgYXBpS2V5cyA9IGluamVjdChBcGlLZXlTZXJ2aWNlKTtcblxuICAvKiogSW55ZWN0YWRvIHBvciBgTW9kYWxTZXJ2aWNlLm9wZW5gLiAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4bi4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIHJlYWRvbmx5IGtleXMgPSBzaWduYWw8Q2xpZW50QXBpS2V5W10+KFtdKTtcbiAgcmVhZG9ubHkgYXZhaWxhYmxlUGVybWlzc2lvbnMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd0NyZWF0ZSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHN1Ym1pdHRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBlcnJvck1zZyA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHNlY3JldCA9IHNpZ25hbDxDbGllbnRBcGlLZXlXaXRoU2VjcmV0IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGNvcGllZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgbmFtZSA9ICcnO1xuICBleHBpcmVzSW5EYXlzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRQZXJtcyA9IHNpZ25hbDxTZXQ8c3RyaW5nPj4obmV3IFNldCgpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoREVGQVVMVF9OQU1FU1BBQ0UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KERFRkFVTFRfTkFNRVNQQUNFLCBBUElfS0VZU19NT0RBTF9JMThOKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UodGhpcy5pMThuTmFtZXNwYWNlKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudCh0aGlzLmkxOG5OYW1lc3BhY2UsIEFQSV9LRVlTX01PREFMX0kxOE4pO1xuICAgIH1cbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB0aGlzLmFwaUtleXMuYXZhaWxhYmxlUGVybWlzc2lvbnMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcGVybXMgPT4gdGhpcy5hdmFpbGFibGVQZXJtaXNzaW9ucy5zZXQocGVybXMpLFxuICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hcGlLZXlzLmxpc3QoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDoga2V5cyA9PiB7XG4gICAgICAgIHRoaXMua2V5cy5zZXQoa2V5cyk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5DcmVhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuICAgIHRoaXMubmFtZSA9ICcnO1xuICAgIHRoaXMuZXhwaXJlc0luRGF5cyA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZFBlcm1zLnNldChuZXcgU2V0KCkpO1xuICAgIHRoaXMuc2hvd0NyZWF0ZS5zZXQodHJ1ZSk7XG4gIH1cblxuICB0b2dnbGVQZXJtKHBlcm06IHN0cmluZywgZXY6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2hlY2tlZCA9IChldiBhcyBDdXN0b21FdmVudCkuZGV0YWlsPy5jaGVja2VkID8/IGZhbHNlO1xuICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHRoaXMuc2VsZWN0ZWRQZXJtcygpKTtcbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgbmV4dC5hZGQocGVybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQuZGVsZXRlKHBlcm0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUGVybXMuc2V0KG5leHQpO1xuICB9XG5cbiAgc3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNc2cuc2V0KCcnKTtcbiAgICBpZiAoIXRoaXMubmFtZS50cmltKCkpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9OYW1lJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IEFycmF5LmZyb20odGhpcy5zZWxlY3RlZFBlcm1zKCkpO1xuICAgIGlmIChwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9QZXJtcycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuYXBpS2V5c1xuICAgICAgLmNyZWF0ZSh7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZS50cmltKCksXG4gICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICBleHBpcmVzSW5EYXlzOiB0aGlzLmV4cGlyZXNJbkRheXMgJiYgdGhpcy5leHBpcmVzSW5EYXlzID4gMCA/IHRoaXMuZXhwaXJlc0luRGF5cyA6IHVuZGVmaW5lZCxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnNob3dDcmVhdGUuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnNlY3JldC5zZXQocmVzLmtleSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy50KCdnZW5lcmljRXJyb3InKSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHJldm9rZShrZXk6IENsaWVudEFwaUtleSk6IHZvaWQge1xuICAgIGlmICghY29uZmlybSh0aGlzLnQoJ3Jldm9rZUNvbmZpcm0nKSkpIHJldHVybjtcbiAgICB0aGlzLmFwaUtleXMucmV2b2tlKGtleS5rZXlJZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHRoaXMucmVmcmVzaCgpLFxuICAgICAgZXJyb3I6IGVyciA9PiB0aGlzLmVycm9yTXNnLnNldChlcnI/LmVycm9yPy5tZXNzYWdlID8/IHRoaXMudCgnZ2VuZXJpY0Vycm9yJykpLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29weShzZWNyZXQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChzZWNyZXQpO1xuICAgICAgdGhpcy5jb3BpZWQuc2V0KHRydWUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gY2xpcGJvYXJkIG5vIGRpc3BvbmlibGUg4oCUIGVsIHVzZXIgcHVlZGUgc2VsZWNjaW9uYXIgZWwgdGV4dG8gbWFudWFsbWVudGVcbiAgICB9XG4gIH1cblxuICBmaW5pc2hTZWNyZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWNyZXQuc2V0KG51bGwpO1xuICAgIHRoaXMuY29waWVkLnNldChmYWxzZSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKG51bGwsICdjYW5jZWwnKTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMuaTE4bk5hbWVzcGFjZSk7XG4gIH1cbn1cbiJdfQ==
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUczRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFNUQsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUVsRDs7Ozs7O0dBTUc7QUFvTEgsTUFBTSxPQUFPLHFCQUFxQjtJQStGaEM7UUE5RlEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixZ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Q1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRlQ7d0RBeUZRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25IZWFkZXIsIElvblNwaW5uZXIsIElvblRvb2xiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcblxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBcGlLZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBpa2V5cy9hcGkta2V5cy5zZXJ2aWNlJztcbmltcG9ydCB7IENsaWVudEFwaUtleSwgQ2xpZW50QXBpS2V5V2l0aFNlY3JldCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwaWtleXMvdHlwZXMnO1xuXG5pbXBvcnQgeyBBUElfS0VZU19NT0RBTF9JMThOIH0gZnJvbSAnLi9hcGkta2V5cy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQXBpS2V5c01vZGFsJztcblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLW1vZGFsYCDigJQgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIG9yZy1zY29wZWFkYXMgKEFEUi0wMjMgZmFzZSA2KS5cbiAqXG4gKiBMaXN0YSBsYXMga2V5cyBkZSBsYSBvcmcsIHBlcm1pdGUgY3JlYXIgKG1vc3RyYW5kbyBlbCBzZWNyZXRvIFVOQSB2ZXogY29uIGNvcGlhKVxuICogeSByZXZvY2FyLiBQZW5zYWRvIHBhcmEgaGFiaWxpdGFyIGludGVncmFjaW9uZXMgTTJNIGRlbCBpbXBvcnQgZGUgbWllbWJyb3MsIHBlcm9cbiAqIHNpcnZlIGEgY3VhbHF1aWVyIHBlcm1pc28gZGVsIGNhdMOhbG9nby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXBpLWtleXMtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taGVhZGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdoaW50JyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiIC8+XG5cbiAgICAgIEBpZiAoc2VjcmV0KCk7IGFzIHMpIHtcbiAgICAgICAgPCEtLSBTZWNyZXRvIHJlY2nDqW4gY3JlYWRvOiBtb3N0cmFyIFVOQSB2ZXogLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktc2VjcmV0XCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdzZWNyZXRUaXRsZScpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IHRydWUgfVwiIC8+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhcGlrZXktc2VjcmV0X193YXJuXCI+e3sgdCgnc2VjcmV0V2FybmluZycpIH19PC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktc2VjcmV0X19ib3hcIj5cbiAgICAgICAgICAgIDxjb2RlPnt7IHMuc2VjcmV0IH19PC9jb2RlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJmaW5pc2hTZWNyZXQoKVwiPlxuICAgICAgICAgICAgICB7eyB0KCdkb25lJykgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8IS0tIExpc3RhIC0tPlxuICAgICAgICAgIEBpZiAoa2V5cygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2VtcHR5JyksIHNpemU6ICdtZWRpdW0nLCBjb2xvcjogJ21lZGl1bScsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1saXN0XCI+XG4gICAgICAgICAgICAgIEBmb3IgKGsgb2Yga2V5cygpOyB0cmFjayBrLmtleUlkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93X19tYWluXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbmFtZVwiPnt7IGsubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcGlrZXktcm93X19tZXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgay5wZXJtaXNzaW9ucy5sZW5ndGggfX0ge3sgdCgncGVybXNDb3VudCcpIH19IMK3IHt7IHQoJ2xhc3RVc2VkJykgfX06XG4gICAgICAgICAgICAgICAgICAgICAge3sgay5sYXN0VXNlZEF0IHx8IHQoJ25ldmVyJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhbmdlclwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJyZXZva2UoaylcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgncmV2b2tlJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChlcnJvck1zZygpKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1lcnJvclwiPnt7IGVycm9yTXNnKCkgfX08L3A+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBDcmVhciDigJQgdmFsLWZvcm0gKGNvbnNpc3RlbmNpYSBjb24gZWwgcmVzdG8gZGUgbW9kYWxlcyBkZWwgZmFjdG9yeSkuIC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0NyZWF0ZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWNyZWF0ZVwiPlxuICAgICAgICAgICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImNyZWF0ZUZvcm0oKVwiIChvblN1Ym1pdCk9XCJvbkNyZWF0ZVN1Ym1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cIm1lZGl1bVwiIChjbGljayk9XCJzaG93Q3JlYXRlLnNldChmYWxzZSlcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjYW5jZWwnKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuQ3JlYXRlKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCduZXdLZXknKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICB2YWwtZGlzcGxheSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgICB2YWwtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93X19tYWluIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93X19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktcm93X19tZXRhIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bS1zaGFkZSwgIzZiNmU3Nik7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWNyZWF0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktY3JlYXRlX19sYWJlbCB7XG4gICAgICAgIG1hcmdpbjogMTJweCAwIDRweCAwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXBlcm1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1lcnJvciB7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X193YXJuIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlLCAjYjg4NjAwKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1zZWNyZXRfX2JveCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBpS2V5c01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcGlLZXlzID0gaW5qZWN0KEFwaUtleVNlcnZpY2UpO1xuXG4gIC8qKiBJbnllY3RhZG8gcG9yIGBNb2RhbFNlcnZpY2Uub3BlbmAuICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuLiAqL1xuICBASW5wdXQoKSBpMThuTmFtZXNwYWNlID0gREVGQVVMVF9OQU1FU1BBQ0U7XG5cbiAgcmVhZG9ubHkga2V5cyA9IHNpZ25hbDxDbGllbnRBcGlLZXlbXT4oW10pO1xuICByZWFkb25seSBhdmFpbGFibGVQZXJtaXNzaW9ucyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBzaG93Q3JlYXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVycm9yTXNnID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2VjcmV0ID0gc2lnbmFsPENsaWVudEFwaUtleVdpdGhTZWNyZXQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgY29waWVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogRm9ybU1ldGFkYXRhIGRlbCBmb3JtIGRlIGNyZWFyIGtleSAodmFsLWZvcm0pLiBSZWFjdGl2byBhIGlkaW9tYSArIHBlcm1pc29zXG4gICAqIGRpc3BvbmlibGVzICsgZXN0YWRvIHN1Ym1pdHRpbmcuIFJlZW1wbGF6YSBsb3MgaW9uLWlucHV0L2lvbi1jaGVja2JveCBjcnVkb3NcbiAgICogcG9yIHZhbC1mb3JtIChjb25zaXN0ZW5jaWEgY29uIGVsIHJlc3RvIGRlIG1vZGFsZXMgZGVsIGZhY3RvcnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRm9ybSA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgd29ya2luZyA9IHRoaXMuc3VibWl0dGluZygpO1xuXG4gICAgY29uc3QgbmFtZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vTmFtZScpIH0sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgcGVybXNGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LXBlcm1zJyxcbiAgICAgIG5hbWU6ICdwZXJtaXNzaW9ucycsXG4gICAgICBsYWJlbDogdGhpcy50KCdwZXJtaXNzaW9uc0xhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5NVUxUSV9TRUxFQ1QsXG4gICAgICBvcmRlcjogMixcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGVycm9yczogeyByZXF1aXJlZDogdGhpcy50KCdub1Blcm1zJykgfSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIG9wdGlvbnM6IHRoaXMuYXZhaWxhYmxlUGVybWlzc2lvbnMoKS5tYXAoKHAsIGkpID0+ICh7XG4gICAgICAgIGlkOiBwLFxuICAgICAgICBuYW1lOiBwLFxuICAgICAgICBvcmRlcjogaSArIDEsXG4gICAgICB9KSksXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZXhwaXJlc0ZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktZXhwaXJlcycsXG4gICAgICBuYW1lOiAnZXhwaXJlc0luRGF5cycsXG4gICAgICBsYWJlbDogdGhpcy50KCdleHBpcmVzTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLk5VTUJFUixcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWluKDEpXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWNyZWF0ZS1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdjcmVhdGUnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBwZXJtc0ZpZWxkLCBleHBpcmVzRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczogc3VibWl0QnV0dG9uLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShERUZBVUxUX05BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoREVGQVVMVF9OQU1FU1BBQ0UsIEFQSV9LRVlTX01PREFMX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSh0aGlzLmkxOG5OYW1lc3BhY2UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KHRoaXMuaTE4bk5hbWVzcGFjZSwgQVBJX0tFWVNfTU9EQUxfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIHRoaXMuYXBpS2V5cy5hdmFpbGFibGVQZXJtaXNzaW9ucygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBwZXJtcyA9PiB0aGlzLmF2YWlsYWJsZVBlcm1pc3Npb25zLnNldChwZXJtcyksXG4gICAgICBlcnJvcjogKCkgPT4ge30sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwaUtleXMubGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBrZXlzID0+IHtcbiAgICAgICAgdGhpcy5rZXlzLnNldChrZXlzKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTXNnLnNldCgnJyk7XG4gICAgdGhpcy5zaG93Q3JlYXRlLnNldCh0cnVlKTtcbiAgfVxuXG4gIG9uQ3JlYXRlU3VibWl0KGV2ZW50OiBGb3JtU3VibWl0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWl0dGluZygpKSByZXR1cm47XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuXG4gICAgY29uc3QgbmFtZSA9IFN0cmluZyhldmVudC5maWVsZHNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIC8vIE1VTFRJX1NFTEVDVCBwdWVkZSBkZXZvbHZlciBhcnJheSBvIGNzdiBzZWfDum4gZWwgcmVuZGVyIOKAlCBub3JtYWxpemFtb3MuXG4gICAgY29uc3QgcmF3UGVybXMgPSBldmVudC5maWVsZHNbJ3Blcm1pc3Npb25zJ107XG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSBBcnJheS5pc0FycmF5KHJhd1Blcm1zKVxuICAgICAgPyAocmF3UGVybXMgYXMgc3RyaW5nW10pXG4gICAgICA6IFN0cmluZyhyYXdQZXJtcyA/PyAnJylcbiAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgIC5tYXAocyA9PiBzLnRyaW0oKSlcbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IGV4cGlyZXNSYXcgPSBOdW1iZXIoZXZlbnQuZmllbGRzWydleHBpcmVzSW5EYXlzJ10pO1xuXG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aGlzLmVycm9yTXNnLnNldCh0aGlzLnQoJ25vTmFtZScpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFwZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9QZXJtcycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuYXBpS2V5c1xuICAgICAgLmNyZWF0ZSh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICBleHBpcmVzSW5EYXlzOiBOdW1iZXIuaXNGaW5pdGUoZXhwaXJlc1JhdykgJiYgZXhwaXJlc1JhdyA+IDAgPyBleHBpcmVzUmF3IDogdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc2hvd0NyZWF0ZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc2VjcmV0LnNldChyZXMua2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5lcnJvck1zZy5zZXQoZXJyPy5lcnJvcj8ubWVzc2FnZSA/PyB0aGlzLnQoJ2dlbmVyaWNFcnJvcicpKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcmV2b2tlKGtleTogQ2xpZW50QXBpS2V5KTogdm9pZCB7XG4gICAgaWYgKCFjb25maXJtKHRoaXMudCgncmV2b2tlQ29uZmlybScpKSkgcmV0dXJuO1xuICAgIHRoaXMuYXBpS2V5cy5yZXZva2Uoa2V5LmtleUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4gdGhpcy5yZWZyZXNoKCksXG4gICAgICBlcnJvcjogZXJyID0+IHRoaXMuZXJyb3JNc2cuc2V0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy50KCdnZW5lcmljRXJyb3InKSksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb3B5KHNlY3JldDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlY3JldCk7XG4gICAgICB0aGlzLmNvcGllZC5zZXQodHJ1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgZWwgdXNlciBwdWVkZSBzZWxlY2Npb25hciBlbCB0ZXh0byBtYW51YWxtZW50ZVxuICAgIH1cbiAgfVxuXG4gIGZpbmlzaFNlY3JldCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlY3JldC5zZXQobnVsbCk7XG4gICAgdGhpcy5jb3BpZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
@@ -14,6 +14,8 @@ export const SETTINGS_HUB_LABELS_I18N = {
14
14
  generalDesc: 'Apariencia e idioma',
15
15
  account: 'Cuenta',
16
16
  accountDesc: 'Organizaciones y sesión',
17
+ organization: 'Organización',
18
+ organizationDesc: 'Miembros, roles y datos de tu organización',
17
19
  editProfile: 'Editar perfil',
18
20
  editProfileDesc: 'Actualiza tu información personal',
19
21
  preferences: 'Preferencias',
@@ -31,6 +33,8 @@ export const SETTINGS_HUB_LABELS_I18N = {
31
33
  generalDesc: 'Appearance and language',
32
34
  account: 'Account',
33
35
  accountDesc: 'Organizations and session',
36
+ organization: 'Organization',
37
+ organizationDesc: 'Members, roles and your organization data',
34
38
  editProfile: 'Edit profile',
35
39
  editProfileDesc: 'Update your personal information',
36
40
  preferences: 'Preferences',
@@ -54,4 +58,4 @@ export const SETTINGS_HUB_PAGE_I18N = {
54
58
  pageDescription: 'Tune your account and the app',
55
59
  },
56
60
  };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtaHViLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NldHRpbmdzLWh1Yi9zZXR0aW5ncy1odWIuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBcUI7SUFDeEQsRUFBRSxFQUFFO1FBQ0YsT0FBTyxFQUFFLFNBQVM7UUFDbEIsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxPQUFPLEVBQUUsUUFBUTtRQUNqQixXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLFdBQVcsRUFBRSxlQUFlO1FBQzVCLGVBQWUsRUFBRSxtQ0FBbUM7UUFDcEQsV0FBVyxFQUFFLGNBQWM7UUFDM0IsZUFBZSxFQUFFLCtCQUErQjtRQUNoRCxhQUFhLEVBQUUsZ0JBQWdCO1FBQy9CLGlCQUFpQixFQUFFLDRCQUE0QjtRQUMvQyxRQUFRLEVBQUUsV0FBVztRQUNyQixZQUFZLEVBQUUsNEJBQTRCO1FBQzFDLEtBQUssRUFBRSxXQUFXO1FBQ2xCLFNBQVMsRUFBRSxvQ0FBb0M7UUFDL0MsTUFBTSxFQUFFLGVBQWU7S0FDeEI7SUFDRCxFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsV0FBVyxFQUFFLGNBQWM7UUFDM0IsZUFBZSxFQUFFLGtDQUFrQztRQUNuRCxXQUFXLEVBQUUsYUFBYTtRQUMxQixlQUFlLEVBQUUsbUNBQW1DO1FBQ3BELGFBQWEsRUFBRSxlQUFlO1FBQzlCLGlCQUFpQixFQUFFLDRCQUE0QjtRQUMvQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixZQUFZLEVBQUUsMEJBQTBCO1FBQ3hDLEtBQUssRUFBRSxPQUFPO1FBQ2QsU0FBUyxFQUFFLG9DQUFvQztRQUMvQyxNQUFNLEVBQUUsVUFBVTtLQUNuQjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUI7SUFDdEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGNBQWM7UUFDekIsZUFBZSxFQUFFLDJCQUEyQjtLQUM3QztJQUNELEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLGVBQWUsRUFBRSwrQkFBK0I7S0FDakQ7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vdHlwZXMnO1xuXG4vKipcbiAqIERlZmF1bHRzIGkxOG4gZW1iZWJpZG9zIGVuIGB2YWwtc2V0dGluZ3MtaHViYC4gRG9zIHNldHMsIHVubyBwb3IgbmFtZXNwYWNlXG4gKiAodmVyIGBTZXR0aW5nc0h1YkNvbmZpZy5pMThuTmFtZXNwYWNlYCAvIGAucGFnZUkxOG5OYW1lc3BhY2VgKS4gQXV0by1yZWdpc3RyYWRvc1xuICogZW4gZWwgY29uc3RydWN0b3IgU09MTyBzaSBlbCBuYW1lc3BhY2Ugbm8gZXhpc3RlIChyZXNwZXRhIG92ZXJyaWRlIGRlbCBjb25zdW1lcikuXG4gKlxuICogYFNFVFRJTkdTX0hVQl9MQUJFTFNfSTE4TmAg4oCUIGxhYmVscyBkZSBjYWRhIHNlY2Npw7NuIChuYW1lc3BhY2UgYERhc2hib2FyZGAgcG9yXG4gKiBkZWZhdWx0KS4gTWlzbW8gc2V0IHF1ZSBzaG93Y2FzZSBtYW50aWVuZSBlbiBgc3JjL2kxOG4vaW5kZXgudHNgIChxdWVkYSBjb21vXG4gKiBvdmVycmlkZSkuIGBTRVRUSU5HU19IVUJfUEFHRV9JMThOYCDigJQgaGVhZGVyIGRlbCBIVUIgKG5hbWVzcGFjZVxuICogYFNldHRpbmdzLlByZWZlcmVuY2VzYCBwb3IgZGVmYXVsdCksIHRvbWFkbyBkZSBsYSBwYWdlIFByZWZlcmVuY2lhcyBvcmlnaW5hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNFVFRJTkdTX0hVQl9MQUJFTFNfSTE4TjogTGFuZ3VhZ2VzQ29udGVudCA9IHtcbiAgZXM6IHtcbiAgICBnZW5lcmFsOiAnR2VuZXJhbCcsXG4gICAgZ2VuZXJhbERlc2M6ICdBcGFyaWVuY2lhIGUgaWRpb21hJyxcbiAgICBhY2NvdW50OiAnQ3VlbnRhJyxcbiAgICBhY2NvdW50RGVzYzogJ09yZ2FuaXphY2lvbmVzIHkgc2VzacOzbicsXG4gICAgZWRpdFByb2ZpbGU6ICdFZGl0YXIgcGVyZmlsJyxcbiAgICBlZGl0UHJvZmlsZURlc2M6ICdBY3R1YWxpemEgdHUgaW5mb3JtYWNpw7NuIHBlcnNvbmFsJyxcbiAgICBwcmVmZXJlbmNlczogJ1ByZWZlcmVuY2lhcycsXG4gICAgcHJlZmVyZW5jZXNEZXNjOiAnVGVtYSwgaWRpb21hIHkgb3RyYXMgb3BjaW9uZXMnLFxuICAgIG5vdGlmaWNhdGlvbnM6ICdOb3RpZmljYWNpb25lcycsXG4gICAgbm90aWZpY2F0aW9uc0Rlc2M6ICdDb25maWd1cmEgdHVzIHByZWZlcmVuY2lhcycsXG4gICAgc2VjdXJpdHk6ICdTZWd1cmlkYWQnLFxuICAgIHNlY3VyaXR5RGVzYzogJ0dlc3Rpb25hIGNvbnRyYXNlw7FhcyB5IE1GQScsXG4gICAgYWJvdXQ6ICdBY2VyY2EgZGUnLFxuICAgIGFib3V0RGVzYzogJ1ZlcnNpw7NuLCBmZWVkYmFjayB5IGVubGFjZXMgw7p0aWxlcycsXG4gICAgbG9nb3V0OiAnQ2VycmFyIHNlc2nDs24nLFxuICB9LFxuICBlbjoge1xuICAgIGdlbmVyYWw6ICdHZW5lcmFsJyxcbiAgICBnZW5lcmFsRGVzYzogJ0FwcGVhcmFuY2UgYW5kIGxhbmd1YWdlJyxcbiAgICBhY2NvdW50OiAnQWNjb3VudCcsXG4gICAgYWNjb3VudERlc2M6ICdPcmdhbml6YXRpb25zIGFuZCBzZXNzaW9uJyxcbiAgICBlZGl0UHJvZmlsZTogJ0VkaXQgcHJvZmlsZScsXG4gICAgZWRpdFByb2ZpbGVEZXNjOiAnVXBkYXRlIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24nLFxuICAgIHByZWZlcmVuY2VzOiAnUHJlZmVyZW5jZXMnLFxuICAgIHByZWZlcmVuY2VzRGVzYzogJ1RoZW1lLCBsYW5ndWFnZSBhbmQgb3RoZXIgb3B0aW9ucycsXG4gICAgbm90aWZpY2F0aW9uczogJ05vdGlmaWNhdGlvbnMnLFxuICAgIG5vdGlmaWNhdGlvbnNEZXNjOiAnQ29uZmlndXJlIHlvdXIgcHJlZmVyZW5jZXMnLFxuICAgIHNlY3VyaXR5OiAnU2VjdXJpdHknLFxuICAgIHNlY3VyaXR5RGVzYzogJ01hbmFnZSBwYXNzd29yZHMgYW5kIE1GQScsXG4gICAgYWJvdXQ6ICdBYm91dCcsXG4gICAgYWJvdXREZXNjOiAnVmVyc2lvbiwgZmVlZGJhY2sgYW5kIHVzZWZ1bCBsaW5rcycsXG4gICAgbG9nb3V0OiAnU2lnbiBvdXQnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFNFVFRJTkdTX0hVQl9QQUdFX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgcGFnZVRpdGxlOiAnUHJlZmVyZW5jaWFzJyxcbiAgICBwYWdlRGVzY3JpcHRpb246ICdBanVzdGEgdHUgY3VlbnRhIHkgbGEgYXBwJyxcbiAgfSxcbiAgZW46IHtcbiAgICBwYWdlVGl0bGU6ICdQcmVmZXJlbmNlcycsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnVHVuZSB5b3VyIGFjY291bnQgYW5kIHRoZSBhcHAnLFxuICB9LFxufTtcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtaHViLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NldHRpbmdzLWh1Yi9zZXR0aW5ncy1odWIuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBcUI7SUFDeEQsRUFBRSxFQUFFO1FBQ0YsT0FBTyxFQUFFLFNBQVM7UUFDbEIsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxPQUFPLEVBQUUsUUFBUTtRQUNqQixXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLFlBQVksRUFBRSxjQUFjO1FBQzVCLGdCQUFnQixFQUFFLDRDQUE0QztRQUM5RCxXQUFXLEVBQUUsZUFBZTtRQUM1QixlQUFlLEVBQUUsbUNBQW1DO1FBQ3BELFdBQVcsRUFBRSxjQUFjO1FBQzNCLGVBQWUsRUFBRSwrQkFBK0I7UUFDaEQsYUFBYSxFQUFFLGdCQUFnQjtRQUMvQixpQkFBaUIsRUFBRSw0QkFBNEI7UUFDL0MsUUFBUSxFQUFFLFdBQVc7UUFDckIsWUFBWSxFQUFFLDRCQUE0QjtRQUMxQyxLQUFLLEVBQUUsV0FBVztRQUNsQixTQUFTLEVBQUUsb0NBQW9DO1FBQy9DLE1BQU0sRUFBRSxlQUFlO0tBQ3hCO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsT0FBTyxFQUFFLFNBQVM7UUFDbEIsV0FBVyxFQUFFLHlCQUF5QjtRQUN0QyxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLFlBQVksRUFBRSxjQUFjO1FBQzVCLGdCQUFnQixFQUFFLDJDQUEyQztRQUM3RCxXQUFXLEVBQUUsY0FBYztRQUMzQixlQUFlLEVBQUUsa0NBQWtDO1FBQ25ELFdBQVcsRUFBRSxhQUFhO1FBQzFCLGVBQWUsRUFBRSxtQ0FBbUM7UUFDcEQsYUFBYSxFQUFFLGVBQWU7UUFDOUIsaUJBQWlCLEVBQUUsNEJBQTRCO1FBQy9DLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFlBQVksRUFBRSwwQkFBMEI7UUFDeEMsS0FBSyxFQUFFLE9BQU87UUFDZCxTQUFTLEVBQUUsb0NBQW9DO1FBQy9DLE1BQU0sRUFBRSxVQUFVO0tBQ25CO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFxQjtJQUN0RCxFQUFFLEVBQUU7UUFDRixTQUFTLEVBQUUsY0FBYztRQUN6QixlQUFlLEVBQUUsMkJBQTJCO0tBQzdDO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGFBQWE7UUFDeEIsZUFBZSxFQUFFLCtCQUErQjtLQUNqRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biBlbWJlYmlkb3MgZW4gYHZhbC1zZXR0aW5ncy1odWJgLiBEb3Mgc2V0cywgdW5vIHBvciBuYW1lc3BhY2VcbiAqICh2ZXIgYFNldHRpbmdzSHViQ29uZmlnLmkxOG5OYW1lc3BhY2VgIC8gYC5wYWdlSTE4bk5hbWVzcGFjZWApLiBBdXRvLXJlZ2lzdHJhZG9zXG4gKiBlbiBlbCBjb25zdHJ1Y3RvciBTT0xPIHNpIGVsIG5hbWVzcGFjZSBubyBleGlzdGUgKHJlc3BldGEgb3ZlcnJpZGUgZGVsIGNvbnN1bWVyKS5cbiAqXG4gKiBgU0VUVElOR1NfSFVCX0xBQkVMU19JMThOYCDigJQgbGFiZWxzIGRlIGNhZGEgc2VjY2nDs24gKG5hbWVzcGFjZSBgRGFzaGJvYXJkYCBwb3JcbiAqIGRlZmF1bHQpLiBNaXNtbyBzZXQgcXVlIHNob3djYXNlIG1hbnRpZW5lIGVuIGBzcmMvaTE4bi9pbmRleC50c2AgKHF1ZWRhIGNvbW9cbiAqIG92ZXJyaWRlKS4gYFNFVFRJTkdTX0hVQl9QQUdFX0kxOE5gIOKAlCBoZWFkZXIgZGVsIEhVQiAobmFtZXNwYWNlXG4gKiBgU2V0dGluZ3MuUHJlZmVyZW5jZXNgIHBvciBkZWZhdWx0KSwgdG9tYWRvIGRlIGxhIHBhZ2UgUHJlZmVyZW5jaWFzIG9yaWdpbmFsLlxuICovXG5leHBvcnQgY29uc3QgU0VUVElOR1NfSFVCX0xBQkVMU19JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIGdlbmVyYWw6ICdHZW5lcmFsJyxcbiAgICBnZW5lcmFsRGVzYzogJ0FwYXJpZW5jaWEgZSBpZGlvbWEnLFxuICAgIGFjY291bnQ6ICdDdWVudGEnLFxuICAgIGFjY291bnREZXNjOiAnT3JnYW5pemFjaW9uZXMgeSBzZXNpw7NuJyxcbiAgICBvcmdhbml6YXRpb246ICdPcmdhbml6YWNpw7NuJyxcbiAgICBvcmdhbml6YXRpb25EZXNjOiAnTWllbWJyb3MsIHJvbGVzIHkgZGF0b3MgZGUgdHUgb3JnYW5pemFjacOzbicsXG4gICAgZWRpdFByb2ZpbGU6ICdFZGl0YXIgcGVyZmlsJyxcbiAgICBlZGl0UHJvZmlsZURlc2M6ICdBY3R1YWxpemEgdHUgaW5mb3JtYWNpw7NuIHBlcnNvbmFsJyxcbiAgICBwcmVmZXJlbmNlczogJ1ByZWZlcmVuY2lhcycsXG4gICAgcHJlZmVyZW5jZXNEZXNjOiAnVGVtYSwgaWRpb21hIHkgb3RyYXMgb3BjaW9uZXMnLFxuICAgIG5vdGlmaWNhdGlvbnM6ICdOb3RpZmljYWNpb25lcycsXG4gICAgbm90aWZpY2F0aW9uc0Rlc2M6ICdDb25maWd1cmEgdHVzIHByZWZlcmVuY2lhcycsXG4gICAgc2VjdXJpdHk6ICdTZWd1cmlkYWQnLFxuICAgIHNlY3VyaXR5RGVzYzogJ0dlc3Rpb25hIGNvbnRyYXNlw7FhcyB5IE1GQScsXG4gICAgYWJvdXQ6ICdBY2VyY2EgZGUnLFxuICAgIGFib3V0RGVzYzogJ1ZlcnNpw7NuLCBmZWVkYmFjayB5IGVubGFjZXMgw7p0aWxlcycsXG4gICAgbG9nb3V0OiAnQ2VycmFyIHNlc2nDs24nLFxuICB9LFxuICBlbjoge1xuICAgIGdlbmVyYWw6ICdHZW5lcmFsJyxcbiAgICBnZW5lcmFsRGVzYzogJ0FwcGVhcmFuY2UgYW5kIGxhbmd1YWdlJyxcbiAgICBhY2NvdW50OiAnQWNjb3VudCcsXG4gICAgYWNjb3VudERlc2M6ICdPcmdhbml6YXRpb25zIGFuZCBzZXNzaW9uJyxcbiAgICBvcmdhbml6YXRpb246ICdPcmdhbml6YXRpb24nLFxuICAgIG9yZ2FuaXphdGlvbkRlc2M6ICdNZW1iZXJzLCByb2xlcyBhbmQgeW91ciBvcmdhbml6YXRpb24gZGF0YScsXG4gICAgZWRpdFByb2ZpbGU6ICdFZGl0IHByb2ZpbGUnLFxuICAgIGVkaXRQcm9maWxlRGVzYzogJ1VwZGF0ZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uJyxcbiAgICBwcmVmZXJlbmNlczogJ1ByZWZlcmVuY2VzJyxcbiAgICBwcmVmZXJlbmNlc0Rlc2M6ICdUaGVtZSwgbGFuZ3VhZ2UgYW5kIG90aGVyIG9wdGlvbnMnLFxuICAgIG5vdGlmaWNhdGlvbnM6ICdOb3RpZmljYXRpb25zJyxcbiAgICBub3RpZmljYXRpb25zRGVzYzogJ0NvbmZpZ3VyZSB5b3VyIHByZWZlcmVuY2VzJyxcbiAgICBzZWN1cml0eTogJ1NlY3VyaXR5JyxcbiAgICBzZWN1cml0eURlc2M6ICdNYW5hZ2UgcGFzc3dvcmRzIGFuZCBNRkEnLFxuICAgIGFib3V0OiAnQWJvdXQnLFxuICAgIGFib3V0RGVzYzogJ1ZlcnNpb24sIGZlZWRiYWNrIGFuZCB1c2VmdWwgbGlua3MnLFxuICAgIGxvZ291dDogJ1NpZ24gb3V0JyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBTRVRUSU5HU19IVUJfUEFHRV9JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIHBhZ2VUaXRsZTogJ1ByZWZlcmVuY2lhcycsXG4gICAgcGFnZURlc2NyaXB0aW9uOiAnQWp1c3RhIHR1IGN1ZW50YSB5IGxhIGFwcCcsXG4gIH0sXG4gIGVuOiB7XG4gICAgcGFnZVRpdGxlOiAnUHJlZmVyZW5jZXMnLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ1R1bmUgeW91ciBhY2NvdW50IGFuZCB0aGUgYXBwJyxcbiAgfSxcbn07XG4iXX0=
@@ -23,6 +23,18 @@ export const SETTINGS_SECTIONS_CATALOG = [
23
23
  showChevron: true,
24
24
  shadowed: true,
25
25
  },
26
+ {
27
+ // CORE: gestión de organización (miembros, roles, transferencia). Montada
28
+ // por `provideValtechSettingsRoutes` (includeOrganization default true), así
29
+ // que TODAS las apps del factory la heredan en el hub sin `include`.
30
+ token: 'action-organization',
31
+ titleKey: 'organization',
32
+ descKey: 'organizationDesc',
33
+ ionicon: 'people-outline',
34
+ routerLink: '/app/settings/organization',
35
+ showChevron: true,
36
+ shadowed: true,
37
+ },
26
38
  {
27
39
  token: 'action-profile',
28
40
  titleKey: 'editProfile',
@@ -134,4 +146,4 @@ function rewriteBasePath(routerLink, basePath) {
134
146
  }
135
147
  return routerLink;
136
148
  }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mtc2VjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NldHRpbmdzLWh1Yi9zZXR0aW5ncy1zZWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2QkE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBc0I7SUFDMUQ7UUFDRSxLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUFFLHVCQUF1QjtRQUNuQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNmO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsVUFBVSxFQUFFLHVCQUF1QjtRQUNuQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNmO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQUUsdUJBQXVCO1FBQ25DLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO0tBQ2Y7SUFDRDtRQUNFLEtBQUssRUFBRSxvQkFBb0I7UUFDM0IsUUFBUSxFQUFFLGFBQWE7UUFDdkIsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFVBQVUsRUFBRSwyQkFBMkI7UUFDdkMsV0FBVyxFQUFFLElBQUk7UUFDakIsUUFBUSxFQUFFLElBQUk7S0FDZjtJQUNEO1FBQ0UsS0FBSyxFQUFF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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9hY3Rpb24tY2FyZC90eXBlcyc7XG5cbi8qKlxuICogTW9kZWxvIGRlIHVuYSBzZWNjacOzbiBkZWwgSFVCIGRlIHNldHRpbmdzLiBDYWRhIHNlY2Npw7NuIHNlIHByb3llY3RhIGEgdW5cbiAqIGB2YWwtYWN0aW9uLWNhcmRgICh2w61hIGBidWlsZFNldHRpbmdzQ2FyZHNgKS4gRWwgY2F0w6Fsb2dvIGRlZmF1bHRcbiAqIChgU0VUVElOR1NfU0VDVElPTlNfQ0FUQUxPR2ApIGN1YnJlIGxhcyBzZWNjaW9uZXMgZXN0w6FuZGFyIGRlbCBmYWN0b3J5O1xuICogZWwgY29uc3VtZXIgcHVlZGUgZmlsdHJhciAoYGV4Y2x1ZGVgKSwgcmVvcmRlbmFyIChgb3JkZXJgKSwgcmVlc2NyaWJpciBsYXNcbiAqIHJ1dGFzIGJhc2UgKGBiYXNlUGF0aGApIG8gc3VtYXIgbGFzIHN1eWFzIChgaW5jbHVkZWApLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzU2VjdGlvbiB7XG4gIC8qKiBJZGVudGlmaWNhZG9yIGVzdGFibGUgZGUgbGEgc2VjY2nDs24gKGRpc3BhdGNoIGRlIGNsaWNrICsgZmlsdHJhZG8pLiAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogaTE4biBrZXkgZGVsIHTDrXR1bG8gZGUgbGEgY2FyZCAocmVzdWVsdG8gY29udHJhIGVsIG5hbWVzcGFjZSBkZSBsYWJlbHMpLiAqL1xuICB0aXRsZUtleTogc3RyaW5nO1xuICAvKiogaTE4biBrZXkgZGUgbGEgZGVzY3JpcGNpw7NuIChvcGNpb25hbCDigJQgbG9nb3V0IG5vIGxhIHRpZW5lKS4gKi9cbiAgZGVzY0tleT86IHN0cmluZztcbiAgLyoqIElvbmljb24gZGUgbGEgY2FyZC4gKi9cbiAgaW9uaWNvbjogc3RyaW5nO1xuICAvKipcbiAgICogUnV0YSBkZSBuYXZlZ2FjacOzbi4gTGFzIHNlY2Npb25lcyBiYWpvIGAvYXBwL3NldHRpbmdzYCBzZSByZWVzY3JpYmVuIHNpIGVsXG4gICAqIGNvbnN1bWVyIHBhc2EgYGJhc2VQYXRoYC4gYGFjdGlvbi1sb2dvdXRgIG5vIHRpZW5lIHJ1dGEgKGNhbGxiYWNrKS5cbiAgICovXG4gIHJvdXRlckxpbms/OiBzdHJpbmc7XG4gIC8qKiBNdWVzdHJhIGVsIGNoZXZyb24gYSBsYSBkZXJlY2hhLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgc2hvd0NoZXZyb24/OiBib29sZWFuO1xuICAvKiogQ2FyZCBjb24gc29tYnJhLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgc2hhZG93ZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENhdMOhbG9nbyBkZWZhdWx0IGRlIHNlY2Npb25lcyBkZWwgSFVCIGRlIHNldHRpbmdzICg4IGVudHJhZGFzKS4gYGxvZ291dGAgdmFcbiAqIGluY2x1aWRhIHBlcm8gc2luIGByb3V0ZXJMaW5rYCAobGEgbWFuZWphIHVuIGNhbGxiYWNrKS4gTWlzbW8gc2V0LCBtaXNtb3NcbiAqIHRva2Vucy9pY29ub3MvcnV0YXMgcXVlIGVsIGJ1aWxkZXIgb3JpZ2luYWwgZGUgc2hvd2Nhc2VcbiAqIChgc2hhcmVkL3NldHRpbmdzLWFjdGlvbi1jYXJkcy50c2ApIHF1ZSBlc3RhIHByb21vY2nDs24gcmVlbXBsYXphLlxuICovXG5leHBvcnQgY29uc3QgU0VUVElOR1NfU0VDVElPTlNfQ0FUQUxPRzogU2V0dGluZ3NTZWN0aW9uW10gPSBbXG4gIHtcbiAgICB0b2tlbjogJ2FjdGlvbi1nZW5lcmFsJyxcbiAgICB0aXRsZUtleTogJ2dlbmVyYWwnLFxuICAgIGRlc2NLZXk6ICdnZW5lcmFsRGVzYycsXG4gICAgaW9uaWNvbjogJ29wdGlvbnMtb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvc2V0dGluZ3MvZ2VuZXJhbCcsXG4gICAgc2hvd0NoZXZyb246IHRydWUsXG4gICAgc2hhZG93ZWQ6IHRydWUsXG4gIH0sXG4gIHtcbiAgICB0b2tlbjogJ2FjdGlvbi1hY2NvdW50JyxcbiAgICB0aXRsZUtleTogJ2FjY291bnQnLFxuICAgIGRlc2NLZXk6ICdhY2NvdW50RGVzYycsXG4gICAgaW9uaWNvbjogJ2J1c2luZXNzLW91dGxpbmUnLFxuICAgIHJvdXRlckxpbms6ICcvYXBwL3NldHRpbmdzL2FjY291bnQnLFxuICAgIHNob3dDaGV2cm9uOiB0cnVlLFxuICAgIHNoYWRvd2VkOiB0cnVlLFxuICB9LFxuICB7XG4gICAgdG9rZW46ICdhY3Rpb24tcHJvZmlsZScsXG4gICAgdGl0bGVLZXk6ICdlZGl0UHJvZmlsZScsXG4gICAgZGVzY0tleTogJ2VkaXRQcm9maWxlRGVzYycsXG4gICAgaW9uaWNvbjogJ3BlcnNvbi1vdXRsaW5lJyxcbiAgICByb3V0ZXJMaW5rOiAnL2FwcC9zZXR0aW5ncy9wcm9maWxlJyxcbiAgICBzaG93Q2hldnJvbjogdHJ1ZSxcbiAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgfSxcbiAge1xuICAgIHRva2VuOiAnYWN0aW9uLXByZWZlcmVuY2VzJyxcbiAgICB0aXRsZUtleTogJ3ByZWZlcmVuY2VzJyxcbiAgICBkZXNjS2V5OiAncHJlZmVyZW5jZXNEZXNjJyxcbiAgICBpb25pY29uOiAnb3B0aW9ucy1vdXRsaW5lJyxcbiAgICByb3V0ZXJMaW5rOiAnL2FwcC9zZXR0aW5ncy9wcmVmZXJlbmNlcycsXG4gICAgc2hvd0NoZXZyb246IHRydWUsXG4gICAgc2hhZG93ZWQ6IHRydWUsXG4gIH0sXG4gIHtcbiAgICB0b2tlbjogJ2FjdGlvbi1ub3RpZmljYXRpb25zJyxcbiAgICB0aXRsZUtleTogJ25vdGlmaWNhdGlvbnMnLFxuICAgIGRlc2NLZXk6ICdub3RpZmljYXRpb25zRGVzYycsXG4gICAgaW9uaWNvbjogJ25vdGlmaWNhdGlvbnMtb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvc2V0dGluZ3Mvbm90aWZpY2F0aW9ucycsXG4gICAgc2hvd0NoZXZyb246IHRydWUsXG4gICAgc2hhZG93ZWQ6IHRydWUsXG4gIH0sXG4gIHtcbiAgICB0b2tlbjogJ2FjdGlvbi1zZWN1cml0eScsXG4gICAgdGl0bGVLZXk6ICdzZWN1cml0eScsXG4gICAgZGVzY0tleTogJ3NlY3VyaXR5RGVzYycsXG4gICAgaW9uaWNvbjogJ3NoaWVsZC1jaGVja21hcmstb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvc2V0dGluZ3Mvc2VjdXJpdHknLFxuICAgIHNob3dDaGV2cm9uOiB0cnVlLFxuICAgIHNoYWRvd2VkOiB0cnVlLFxuICB9LFxuICB7XG4gICAgdG9rZW46ICdhY3Rpb24tYWJvdXQnLFxuICAgIHRpdGxlS2V5OiAnYWJvdXQnLFxuICAgIGRlc2NLZXk6ICdhYm91dERlc2MnLFxuICAgIGlvbmljb246ICdpbmZvcm1hdGlvbi1jaXJjbGUtb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvYWJvdXQnLFxuICAgIHNob3dDaGV2cm9uOiB0cnVlLFxuICAgIHNoYWRvd2VkOiB0cnVlLFxuICB9LFxuICB7XG4gICAgdG9rZW46ICdhY3Rpb24tbG9nb3V0JyxcbiAgICB0aXRsZUtleTogJ2xvZ291dCcsXG4gICAgaW9uaWNvbjogJ2xvZy1vdXQtb3V0bGluZScsXG4gICAgc2hvd0NoZXZyb246IGZhbHNlLFxuICAgIHNoYWRvd2VkOiB0cnVlLFxuICB9LFxuXTtcblxuLyoqIE9wY2lvbmVzIGRlbCBidWlsZGVyIGBidWlsZFNldHRpbmdzQ2FyZHNgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXR0aW5nc0NhcmRzT3B0aW9ucyB7XG4gIC8qKiBPY3VsdGEgc2VjY2lvbmVzIHBvciB0b2tlbiAodMOtcGljYW1lbnRlIGxhIGVudHJhZGEgZGUgbGEgcMOhZ2luYSBhY3R1YWwpLiAqL1xuICBleGNsdWRlPzogc3RyaW5nW107XG4gIC8qKiBTZWNjaW9uZXMgZXh0cmEgYSBzdW1hciBhbCBjYXTDoWxvZ28gKGxhcyBkZSBsYSBhcHAgYcO6biBubyBwcm9tb3ZpZGFzKS4gKi9cbiAgaW5jbHVkZT86IFNldHRpbmdzU2VjdGlvbltdO1xuICAvKiogT3JkZW4gZXhwbMOtY2l0byBwb3IgdG9rZW4uIExhcyBubyBsaXN0YWRhcyBxdWVkYW4gYWwgZmluYWwsIGVuIHN1IG9yZGVuLiAqL1xuICBvcmRlcj86IHN0cmluZ1tdO1xuICAvKiogSW5jbHV5ZSBsYSBjYXJkIGRlIGxvZ291dCAoc2luIHJ1dGEpLiBEZWZhdWx0IGBmYWxzZWAuICovXG4gIGluY2x1ZGVMb2dvdXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogUmVlc2NyaWJlIGVsIHByZWZpam8gYC9hcHAvc2V0dGluZ3NgIGRlIGxhcyBydXRhcyBkZWwgY2F0w6Fsb2dvLiBFai5cbiAgICogYGJhc2VQYXRoOiAnL2FwcC9jb25maWcnYCDihpIgYC9hcHAvY29uZmlnL2dlbmVyYWxgLiBTaSBzZSBvbWl0ZSwgbGFzIHJ1dGFzXG4gICAqIHF1ZWRhbiB0YWwgY3VhbCBlbCBjYXTDoWxvZ28uXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbn1cblxuY29uc3QgQ0FUQUxPR19CQVNFID0gJy9hcHAvc2V0dGluZ3MnO1xuXG4vKipcbiAqIENvbnN0cnV5ZSBlbCBncmlkIGRlIGNhcmRzIGRlIG5hdmVnYWNpw7NuIGRlbCBIVUIgZGUgc2V0dGluZ3MgKHZlcnNpw7NuXG4gKiBwcm9tb3ZpZGEgZGVsIGBidWlsZFNldHRpbmdzQWN0aW9uQ2FyZHNgIGRlIHNob3djYXNlKS4gVXNhIGVsIGNhdMOhbG9nb1xuICogZGVmYXVsdCArIGxhcyBgaW5jbHVkZWAgZGVsIGNvbnN1bWVyLCBmaWx0cmEgYGV4Y2x1ZGVgLCBnYXRlYSBsb2dvdXQgcG9yXG4gKiBgaW5jbHVkZUxvZ291dGAsIHJlb3JkZW5hIHBvciBgb3JkZXJgIHkgcmVlc2NyaWJlIGxhcyBydXRhcyBwb3IgYGJhc2VQYXRoYC5cbiAqXG4gKiBFbCBgdGAgcmVzdWVsdmUgbG9zIGB0aXRsZUtleWAvYGRlc2NLZXlgIGNvbnRyYSBlbCBuYW1lc3BhY2UgZGUgbGFiZWxzXG4gKiAoZGVmYXVsdCBkZWwgY29tcG9uZW50ZTogYERhc2hib2FyZGApLiBgbG9nb3V0YCBOTyB0aWVuZSBgcm91dGVyTGlua2Ag4oCUIGVsXG4gKiBjb25zdW1lciBtYW5lamEgZWwgZmx1am8gZGUgY2llcnJlIGRlIHNlc2nDs24gcG9yIHRva2VuIC8gY2FsbGJhY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNldHRpbmdzQ2FyZHMoXG4gIHQ6IChrZXk6IHN0cmluZykgPT4gc3RyaW5nLFxuICBvcHRpb25zOiBTZXR0aW5nc0NhcmRzT3B0aW9ucyA9IHt9XG4pOiBBY3Rpb25DYXJkTWV0YWRhdGFbXSB7XG4gIGNvbnN0IGV4Y2x1ZGUgPSBuZXcgU2V0PHN0cmluZz4ob3B0aW9ucy5leGNsdWRlID8/IFtdKTtcbiAgY29uc3QgaW5jbHVkZUxvZ291dCA9IG9wdGlvbnMuaW5jbHVkZUxvZ291dCA/PyBmYWxzZTtcbiAgY29uc3QgYmFzZVBhdGggPSBvcHRpb25zLmJhc2VQYXRoO1xuXG4gIGNvbnN0IHNlY3Rpb25zOiBTZXR0aW5nc1NlY3Rpb25bXSA9IFsuLi5TRVRUSU5HU19TRUNUSU9OU19DQVRBTE9HLCAuLi4ob3B0aW9ucy5pbmNsdWRlID8/IFtdKV07XG5cbiAgbGV0IHJlc29sdmVkID0gc2VjdGlvbnMuZmlsdGVyKHMgPT4ge1xuICAgIGlmIChleGNsdWRlLmhhcyhzLnRva2VuKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChzLnRva2VuID09PSAnYWN0aW9uLWxvZ291dCcgJiYgIWluY2x1ZGVMb2dvdXQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgaWYgKG9wdGlvbnMub3JkZXIgJiYgb3B0aW9ucy5vcmRlci5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcmFuayA9IG5ldyBNYXAob3B0aW9ucy5vcmRlci5tYXAoKHRva2VuLCBpKSA9PiBbdG9rZW4sIGldKSk7XG4gICAgcmVzb2x2ZWQgPSBbLi4ucmVzb2x2ZWRdLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IHJhID0gcmFuay5oYXMoYS50b2tlbikgPyByYW5rLmdldChhLnRva2VuKSEgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcbiAgICAgIGNvbnN0IHJiID0gcmFuay5oYXMoYi50b2tlbikgPyByYW5rLmdldChiLnRva2VuKSEgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcbiAgICAgIHJldHVybiByYSAtIHJiO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc29sdmVkLm1hcChzID0+IHtcbiAgICBjb25zdCBjYXJkOiBBY3Rpb25DYXJkTWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogcy50b2tlbixcbiAgICAgIHRpdGxlOiB0KHMudGl0bGVLZXkpLFxuICAgICAgaWNvbjoge1xuICAgICAgICBpb25pY29uOiBzLmlvbmljb24sXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2xpZ2h0JyxcbiAgICAgIH0sXG4gICAgICBzaG93Q2hldnJvbjogcy5zaG93Q2hldnJvbiA/PyB0cnVlLFxuICAgICAgc2hhZG93ZWQ6IHMuc2hhZG93ZWQgPz8gdHJ1ZSxcbiAgICB9O1xuICAgIGlmIChzLmRlc2NLZXkpIGNhcmQuZGVzY3JpcHRpb24gPSB0KHMuZGVzY0tleSk7XG4gICAgaWYgKHMucm91dGVyTGluaykge1xuICAgICAgY2FyZC5yb3V0ZXJMaW5rID0gYmFzZVBhdGggPyByZXdyaXRlQmFzZVBhdGgocy5yb3V0ZXJMaW5rLCBiYXNlUGF0aCkgOiBzLnJvdXRlckxpbms7XG4gICAgfVxuICAgIHJldHVybiBjYXJkO1xuICB9KTtcbn1cblxuLyoqIFJlZXNjcmliZSBlbCBwcmVmaWpvIGAvYXBwL3NldHRpbmdzYCBkZSB1bmEgcnV0YSBkZWwgY2F0w6Fsb2dvIHBvciBgYmFzZVBhdGhgLiAqL1xuZnVuY3Rpb24gcmV3cml0ZUJhc2VQYXRoKHJvdXRlckxpbms6IHN0cmluZywgYmFzZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChyb3V0ZXJMaW5rLnN0YXJ0c1dpdGgoQ0FUQUxPR19CQVNFKSkge1xuICAgIHJldHVybiBiYXNlUGF0aCArIHJvdXRlckxpbmsuc2xpY2UoQ0FUQUxPR19CQVNFLmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIHJvdXRlckxpbms7XG59XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mtc2VjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3NldHRpbmdzLWh1Yi9zZXR0aW5ncy1zZWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2QkE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBc0I7SUFDMUQ7UUFDRSxLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUFFLHVCQUF1QjtRQUNuQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNmO0lBQ0Q7UUFDRSxLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsVUFBVSxFQUFFLHVCQUF1QjtRQUNuQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsSUFBSTtLQUNmO0lBQ0Q7UUFDRSwwRUFBMEU7UUFDMUUsNkVBQTZFO1FBQzdFLHFFQUFxRTtRQUNyRSxLQUFLLEVBQUUscUJBQXFCO1FBQzVCLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQUUsNEJBQTRCO1FBQ3hDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO0tBQ2Y7SUFDRDtRQUNFLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsUUFBUSxFQUFFLGFBQWE7UUFDdkIsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLFVBQVUsRUFBRSx1QkFBdUI7UUFDbkMsV0FBVyxFQUFFLElBQUk7UUFDakIs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RjtBQUNwRixTQUFTLGVBQWUsQ0FBQyxVQUFrQixFQUFFLFFBQWdCO0lBQzNELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uQ2FyZE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL3R5cGVzJztcblxuLyoqXG4gKiBNb2RlbG8gZGUgdW5hIHNlY2Npw7NuIGRlbCBIVUIgZGUgc2V0dGluZ3MuIENhZGEgc2VjY2nDs24gc2UgcHJveWVjdGEgYSB1blxuICogYHZhbC1hY3Rpb24tY2FyZGAgKHbDrWEgYGJ1aWxkU2V0dGluZ3NDYXJkc2ApLiBFbCBjYXTDoWxvZ28gZGVmYXVsdFxuICogKGBTRVRUSU5HU19TRUNUSU9OU19DQVRBTE9HYCkgY3VicmUgbGFzIHNlY2Npb25lcyBlc3TDoW5kYXIgZGVsIGZhY3Rvcnk7XG4gKiBlbCBjb25zdW1lciBwdWVkZSBmaWx0cmFyIChgZXhjbHVkZWApLCByZW9yZGVuYXIgKGBvcmRlcmApLCByZWVzY3JpYmlyIGxhc1xuICogcnV0YXMgYmFzZSAoYGJhc2VQYXRoYCkgbyBzdW1hciBsYXMgc3V5YXMgKGBpbmNsdWRlYCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3NTZWN0aW9uIHtcbiAgLyoqIElkZW50aWZpY2Fkb3IgZXN0YWJsZSBkZSBsYSBzZWNjacOzbiAoZGlzcGF0Y2ggZGUgY2xpY2sgKyBmaWx0cmFkbykuICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIC8qKiBpMThuIGtleSBkZWwgdMOtdHVsbyBkZSBsYSBjYXJkIChyZXN1ZWx0byBjb250cmEgZWwgbmFtZXNwYWNlIGRlIGxhYmVscykuICovXG4gIHRpdGxlS2V5OiBzdHJpbmc7XG4gIC8qKiBpMThuIGtleSBkZSBsYSBkZXNjcmlwY2nDs24gKG9wY2lvbmFsIOKAlCBsb2dvdXQgbm8gbGEgdGllbmUpLiAqL1xuICBkZXNjS2V5Pzogc3RyaW5nO1xuICAvKiogSW9uaWNvbiBkZSBsYSBjYXJkLiAqL1xuICBpb25pY29uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBSdXRhIGRlIG5hdmVnYWNpw7NuLiBMYXMgc2VjY2lvbmVzIGJham8gYC9hcHAvc2V0dGluZ3NgIHNlIHJlZXNjcmliZW4gc2kgZWxcbiAgICogY29uc3VtZXIgcGFzYSBgYmFzZVBhdGhgLiBgYWN0aW9uLWxvZ291dGAgbm8gdGllbmUgcnV0YSAoY2FsbGJhY2spLlxuICAgKi9cbiAgcm91dGVyTGluaz86IHN0cmluZztcbiAgLyoqIE11ZXN0cmEgZWwgY2hldnJvbiBhIGxhIGRlcmVjaGEuIERlZmF1bHQgYHRydWVgLiAqL1xuICBzaG93Q2hldnJvbj86IGJvb2xlYW47XG4gIC8qKiBDYXJkIGNvbiBzb21icmEuIERlZmF1bHQgYHRydWVgLiAqL1xuICBzaGFkb3dlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ2F0w6Fsb2dvIGRlZmF1bHQgZGUgc2VjY2lvbmVzIGRlbCBIVUIgZGUgc2V0dGluZ3MgKDggZW50cmFkYXMpLiBgbG9nb3V0YCB2YVxuICogaW5jbHVpZGEgcGVybyBzaW4gYHJvdXRlckxpbmtgIChsYSBtYW5lamEgdW4gY2FsbGJhY2spLiBNaXNtbyBzZXQsIG1pc21vc1xuICogdG9rZW5zL2ljb25vcy9ydXRhcyBxdWUgZWwgYnVpbGRlciBvcmlnaW5hbCBkZSBzaG93Y2FzZVxuICogKGBzaGFyZWQvc2V0dGluZ3MtYWN0aW9uLWNhcmRzLnRzYCkgcXVlIGVzdGEgcHJvbW9jacOzbiByZWVtcGxhemEuXG4gKi9cbmV4cG9ydCBjb25zdCBTRVRUSU5HU19TRUNUSU9OU19DQVRBTE9HOiBTZXR0aW5nc1NlY3Rpb25bXSA9IFtcbiAge1xuICAgIHRva2VuOiAnYWN0aW9uLWdlbmVyYWwnLFxuICAgIHRpdGxlS2V5OiAnZ2VuZXJhbCcsXG4gICAgZGVzY0tleTogJ2dlbmVyYWxEZXNjJyxcbiAgICBpb25pY29uOiAnb3B0aW9ucy1vdXRsaW5lJyxcbiAgICByb3V0ZXJMaW5rOiAnL2FwcC9zZXR0aW5ncy9nZW5lcmFsJyxcbiAgICBzaG93Q2hldnJvbjogdHJ1ZSxcbiAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgfSxcbiAge1xuICAgIHRva2VuOiAnYWN0aW9uLWFjY291bnQnLFxuICAgIHRpdGxlS2V5OiAnYWNjb3VudCcsXG4gICAgZGVzY0tleTogJ2FjY291bnREZXNjJyxcbiAgICBpb25pY29uOiAnYnVzaW5lc3Mtb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvc2V0dGluZ3MvYWNjb3VudCcsXG4gICAgc2hvd0NoZXZyb246IHRydWUsXG4gICAgc2hhZG93ZWQ6IHRydWUsXG4gIH0sXG4gIHtcbiAgICAvLyBDT1JFOiBnZXN0acOzbiBkZSBvcmdhbml6YWNpw7NuIChtaWVtYnJvcywgcm9sZXMsIHRyYW5zZmVyZW5jaWEpLiBNb250YWRhXG4gICAgLy8gcG9yIGBwcm92aWRlVmFsdGVjaFNldHRpbmdzUm91dGVzYCAoaW5jbHVkZU9yZ2FuaXphdGlvbiBkZWZhdWx0IHRydWUpLCBhc8OtXG4gICAgLy8gcXVlIFRPREFTIGxhcyBhcHBzIGRlbCBmYWN0b3J5IGxhIGhlcmVkYW4gZW4gZWwgaHViIHNpbiBgaW5jbHVkZWAuXG4gICAgdG9rZW46ICdhY3Rpb24tb3JnYW5pemF0aW9uJyxcbiAgICB0aXRsZUtleTogJ29yZ2FuaXphdGlvbicsXG4gICAgZGVzY0tleTogJ29yZ2FuaXphdGlvbkRlc2MnLFxuICAgIGlvbmljb246ICdwZW9wbGUtb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvc2V0dGluZ3Mvb3JnYW5pemF0aW9uJyxcbiAgICBzaG93Q2hldnJvbjogdHJ1ZSxcbiAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgfSxcbiAge1xuICAgIHRva2VuOiAnYWN0aW9uLXByb2ZpbGUnLFxuICAgIHRpdGxlS2V5OiAnZWRpdFByb2ZpbGUnLFxuICAgIGRlc2NLZXk6ICdlZGl0UHJvZmlsZURlc2MnLFxuICAgIGlvbmljb246ICdwZXJzb24tb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvc2V0dGluZ3MvcHJvZmlsZScsXG4gICAgc2hvd0NoZXZyb246IHRydWUsXG4gICAgc2hhZG93ZWQ6IHRydWUsXG4gIH0sXG4gIHtcbiAgICB0b2tlbjogJ2FjdGlvbi1wcmVmZXJlbmNlcycsXG4gICAgdGl0bGVLZXk6ICdwcmVmZXJlbmNlcycsXG4gICAgZGVzY0tleTogJ3ByZWZlcmVuY2VzRGVzYycsXG4gICAgaW9uaWNvbjogJ29wdGlvbnMtb3V0bGluZScsXG4gICAgcm91dGVyTGluazogJy9hcHAvc2V0dGluZ3MvcHJlZmVyZW5jZXMnLFxuICAgIHNob3dDaGV2cm9uOiB0cnVlLFxuICAgIHNoYWRvd2VkOiB0cnVlLFxuICB9LFxuICB7XG4gICAgdG9rZW46ICdhY3Rpb24tbm90aWZpY2F0aW9ucycsXG4gICAgdGl0bGVLZXk6ICdub3RpZmljYXRpb25zJyxcbiAgICBkZXNjS2V5OiAnbm90aWZpY2F0aW9uc0Rlc2MnLFxuICAgIGlvbmljb246ICdub3RpZmljYXRpb25zLW91dGxpbmUnLFxuICAgIHJvdXRlckxpbms6ICcvYXBwL3NldHRpbmdzL25vdGlmaWNhdGlvbnMnLFxuICAgIHNob3dDaGV2cm9uOiB0cnVlLFxuICAgIHNoYWRvd2VkOiB0cnVlLFxuICB9LFxuICB7XG4gICAgdG9rZW46ICdhY3Rpb24tc2VjdXJpdHknLFxuICAgIHRpdGxlS2V5OiAnc2VjdXJpdHknLFxuICAgIGRlc2NLZXk6ICdzZWN1cml0eURlc2MnLFxuICAgIGlvbmljb246ICdzaGllbGQtY2hlY2ttYXJrLW91dGxpbmUnLFxuICAgIHJvdXRlckxpbms6ICcvYXBwL3NldHRpbmdzL3NlY3VyaXR5JyxcbiAgICBzaG93Q2hldnJvbjogdHJ1ZSxcbiAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgfSxcbiAge1xuICAgIHRva2VuOiAnYWN0aW9uLWFib3V0JyxcbiAgICB0aXRsZUtleTogJ2Fib3V0JyxcbiAgICBkZXNjS2V5OiAnYWJvdXREZXNjJyxcbiAgICBpb25pY29uOiAnaW5mb3JtYXRpb24tY2lyY2xlLW91dGxpbmUnLFxuICAgIHJvdXRlckxpbms6ICcvYXBwL2Fib3V0JyxcbiAgICBzaG93Q2hldnJvbjogdHJ1ZSxcbiAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgfSxcbiAge1xuICAgIHRva2VuOiAnYWN0aW9uLWxvZ291dCcsXG4gICAgdGl0bGVLZXk6ICdsb2dvdXQnLFxuICAgIGlvbmljb246ICdsb2ctb3V0LW91dGxpbmUnLFxuICAgIHNob3dDaGV2cm9uOiBmYWxzZSxcbiAgICBzaGFkb3dlZDogdHJ1ZSxcbiAgfSxcbl07XG5cbi8qKiBPcGNpb25lcyBkZWwgYnVpbGRlciBgYnVpbGRTZXR0aW5nc0NhcmRzYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3NDYXJkc09wdGlvbnMge1xuICAvKiogT2N1bHRhIHNlY2Npb25lcyBwb3IgdG9rZW4gKHTDrXBpY2FtZW50ZSBsYSBlbnRyYWRhIGRlIGxhIHDDoWdpbmEgYWN0dWFsKS4gKi9cbiAgZXhjbHVkZT86IHN0cmluZ1tdO1xuICAvKiogU2VjY2lvbmVzIGV4dHJhIGEgc3VtYXIgYWwgY2F0w6Fsb2dvIChsYXMgZGUgbGEgYXBwIGHDum4gbm8gcHJvbW92aWRhcykuICovXG4gIGluY2x1ZGU/OiBTZXR0aW5nc1NlY3Rpb25bXTtcbiAgLyoqIE9yZGVuIGV4cGzDrWNpdG8gcG9yIHRva2VuLiBMYXMgbm8gbGlzdGFkYXMgcXVlZGFuIGFsIGZpbmFsLCBlbiBzdSBvcmRlbi4gKi9cbiAgb3JkZXI/OiBzdHJpbmdbXTtcbiAgLyoqIEluY2x1eWUgbGEgY2FyZCBkZSBsb2dvdXQgKHNpbiBydXRhKS4gRGVmYXVsdCBgZmFsc2VgLiAqL1xuICBpbmNsdWRlTG9nb3V0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlZXNjcmliZSBlbCBwcmVmaWpvIGAvYXBwL3NldHRpbmdzYCBkZSBsYXMgcnV0YXMgZGVsIGNhdMOhbG9nby4gRWouXG4gICAqIGBiYXNlUGF0aDogJy9hcHAvY29uZmlnJ2Ag4oaSIGAvYXBwL2NvbmZpZy9nZW5lcmFsYC4gU2kgc2Ugb21pdGUsIGxhcyBydXRhc1xuICAgKiBxdWVkYW4gdGFsIGN1YWwgZWwgY2F0w6Fsb2dvLlxuICAgKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmc7XG59XG5cbmNvbnN0IENBVEFMT0dfQkFTRSA9ICcvYXBwL3NldHRpbmdzJztcblxuLyoqXG4gKiBDb25zdHJ1eWUgZWwgZ3JpZCBkZSBjYXJkcyBkZSBuYXZlZ2FjacOzbiBkZWwgSFVCIGRlIHNldHRpbmdzICh2ZXJzacOzblxuICogcHJvbW92aWRhIGRlbCBgYnVpbGRTZXR0aW5nc0FjdGlvbkNhcmRzYCBkZSBzaG93Y2FzZSkuIFVzYSBlbCBjYXTDoWxvZ29cbiAqIGRlZmF1bHQgKyBsYXMgYGluY2x1ZGVgIGRlbCBjb25zdW1lciwgZmlsdHJhIGBleGNsdWRlYCwgZ2F0ZWEgbG9nb3V0IHBvclxuICogYGluY2x1ZGVMb2dvdXRgLCByZW9yZGVuYSBwb3IgYG9yZGVyYCB5IHJlZXNjcmliZSBsYXMgcnV0YXMgcG9yIGBiYXNlUGF0aGAuXG4gKlxuICogRWwgYHRgIHJlc3VlbHZlIGxvcyBgdGl0bGVLZXlgL2BkZXNjS2V5YCBjb250cmEgZWwgbmFtZXNwYWNlIGRlIGxhYmVsc1xuICogKGRlZmF1bHQgZGVsIGNvbXBvbmVudGU6IGBEYXNoYm9hcmRgKS4gYGxvZ291dGAgTk8gdGllbmUgYHJvdXRlckxpbmtgIOKAlCBlbFxuICogY29uc3VtZXIgbWFuZWphIGVsIGZsdWpvIGRlIGNpZXJyZSBkZSBzZXNpw7NuIHBvciB0b2tlbiAvIGNhbGxiYWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTZXR0aW5nc0NhcmRzKFxuICB0OiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgb3B0aW9uczogU2V0dGluZ3NDYXJkc09wdGlvbnMgPSB7fVxuKTogQWN0aW9uQ2FyZE1ldGFkYXRhW10ge1xuICBjb25zdCBleGNsdWRlID0gbmV3IFNldDxzdHJpbmc+KG9wdGlvbnMuZXhjbHVkZSA/PyBbXSk7XG4gIGNvbnN0IGluY2x1ZGVMb2dvdXQgPSBvcHRpb25zLmluY2x1ZGVMb2dvdXQgPz8gZmFsc2U7XG4gIGNvbnN0IGJhc2VQYXRoID0gb3B0aW9ucy5iYXNlUGF0aDtcblxuICBjb25zdCBzZWN0aW9uczogU2V0dGluZ3NTZWN0aW9uW10gPSBbLi4uU0VUVElOR1NfU0VDVElPTlNfQ0FUQUxPRywgLi4uKG9wdGlvbnMuaW5jbHVkZSA/PyBbXSldO1xuXG4gIGxldCByZXNvbHZlZCA9IHNlY3Rpb25zLmZpbHRlcihzID0+IHtcbiAgICBpZiAoZXhjbHVkZS5oYXMocy50b2tlbikpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocy50b2tlbiA9PT0gJ2FjdGlvbi1sb2dvdXQnICYmICFpbmNsdWRlTG9nb3V0KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuXG4gIGlmIChvcHRpb25zLm9yZGVyICYmIG9wdGlvbnMub3JkZXIubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHJhbmsgPSBuZXcgTWFwKG9wdGlvbnMub3JkZXIubWFwKCh0b2tlbiwgaSkgPT4gW3Rva2VuLCBpXSkpO1xuICAgIHJlc29sdmVkID0gWy4uLnJlc29sdmVkXS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBjb25zdCByYSA9IHJhbmsuaGFzKGEudG9rZW4pID8gcmFuay5nZXQoYS50b2tlbikhIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG4gICAgICBjb25zdCByYiA9IHJhbmsuaGFzKGIudG9rZW4pID8gcmFuay5nZXQoYi50b2tlbikhIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG4gICAgICByZXR1cm4gcmEgLSByYjtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXNvbHZlZC5tYXAocyA9PiB7XG4gICAgY29uc3QgY2FyZDogQWN0aW9uQ2FyZE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46IHMudG9rZW4sXG4gICAgICB0aXRsZTogdChzLnRpdGxlS2V5KSxcbiAgICAgIGljb246IHtcbiAgICAgICAgaW9uaWNvbjogcy5pb25pY29uLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdsaWdodCcsXG4gICAgICB9LFxuICAgICAgc2hvd0NoZXZyb246IHMuc2hvd0NoZXZyb24gPz8gdHJ1ZSxcbiAgICAgIHNoYWRvd2VkOiBzLnNoYWRvd2VkID8/IHRydWUsXG4gICAgfTtcbiAgICBpZiAocy5kZXNjS2V5KSBjYXJkLmRlc2NyaXB0aW9uID0gdChzLmRlc2NLZXkpO1xuICAgIGlmIChzLnJvdXRlckxpbmspIHtcbiAgICAgIGNhcmQucm91dGVyTGluayA9IGJhc2VQYXRoID8gcmV3cml0ZUJhc2VQYXRoKHMucm91dGVyTGluaywgYmFzZVBhdGgpIDogcy5yb3V0ZXJMaW5rO1xuICAgIH1cbiAgICByZXR1cm4gY2FyZDtcbiAgfSk7XG59XG5cbi8qKiBSZWVzY3JpYmUgZWwgcHJlZmlqbyBgL2FwcC9zZXR0aW5nc2AgZGUgdW5hIHJ1dGEgZGVsIGNhdMOhbG9nbyBwb3IgYGJhc2VQYXRoYC4gKi9cbmZ1bmN0aW9uIHJld3JpdGVCYXNlUGF0aChyb3V0ZXJMaW5rOiBzdHJpbmcsIGJhc2VQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocm91dGVyTGluay5zdGFydHNXaXRoKENBVEFMT0dfQkFTRSkpIHtcbiAgICByZXR1cm4gYmFzZVBhdGggKyByb3V0ZXJMaW5rLnNsaWNlKENBVEFMT0dfQkFTRS5sZW5ndGgpO1xuICB9XG4gIHJldHVybiByb3V0ZXJMaW5rO1xufVxuIl19