@decaf-ts/for-angular 0.0.19 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/components/crud-form/crud-form.component.d.ts +1 -1
- package/components/fieldset/fieldset.component.d.ts +1 -1
- package/components/filter/filter.component.d.ts +1 -1
- package/components/for-angular-components.module.d.ts +1 -2
- package/components/list/constants.d.ts +5 -9
- package/components/list-item/list-item.component.d.ts +1 -1
- package/engine/NgxBaseComponent.d.ts +1 -1
- package/esm2022/components/component-renderer/component-renderer.component.mjs +7 -7
- package/esm2022/components/crud-field/crud-field.component.mjs +13 -12
- package/esm2022/components/crud-form/crud-form.component.mjs +9 -9
- package/esm2022/components/empty-state/empty-state.component.mjs +8 -12
- package/esm2022/components/fieldset/fieldset.component.mjs +27 -19
- package/esm2022/components/filter/filter.component.mjs +14 -13
- package/esm2022/components/for-angular-components.module.mjs +17 -9
- package/esm2022/components/layout/layout.component.mjs +6 -7
- package/esm2022/components/list/constants.mjs +1 -1
- package/esm2022/components/list/list.component.mjs +6 -11
- package/esm2022/components/list-item/list-item.component.mjs +7 -12
- package/esm2022/components/model-renderer/model-renderer.component.mjs +5 -7
- package/esm2022/components/pagination/pagination.component.mjs +8 -9
- package/esm2022/components/searchbar/searchbar.component.mjs +5 -7
- package/esm2022/directives/collapsable.directive.mjs +3 -3
- package/esm2022/engine/NgxBaseComponent.mjs +11 -10
- package/esm2022/engine/NgxFormService.mjs +12 -3
- package/esm2022/engine/NgxRenderingEngine.mjs +3 -2
- package/esm2022/for-angular-common.module.mjs +82 -0
- package/esm2022/helpers/utils.mjs +2 -2
- package/esm2022/i18n/Loader.mjs +10 -6
- package/esm2022/i18n/data/en.json +80 -0
- package/esm2022/public-apis.mjs +3 -2
- package/fesm2022/decaf-ts-for-angular.mjs +254 -170
- package/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
- package/for-angular-common.module.d.ts +44 -0
- package/package.json +6 -3
- package/public-apis.d.ts +2 -1
- package/esm2022/for-angular.module.mjs +0 -118
- package/for-angular.module.d.ts +0 -45
|
@@ -2,12 +2,11 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
2
2
|
import { IonIcon } from '@ionic/angular/standalone';
|
|
3
3
|
import { addIcons } from 'ionicons';
|
|
4
4
|
import { chevronBackOutline, chevronForwardOutline } from 'ionicons/icons';
|
|
5
|
-
import { ForAngularModule } from '../../for-angular.module';
|
|
6
5
|
import { NgxBaseComponent } from '../../engine/NgxBaseComponent';
|
|
7
6
|
import { EventConstants } from '../../engine';
|
|
7
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@
|
|
10
|
-
import * as i2 from "@ngx-translate/core";
|
|
9
|
+
import * as i1 from "@ngx-translate/core";
|
|
11
10
|
/**
|
|
12
11
|
* @description A pagination component for navigating through multiple pages of content.
|
|
13
12
|
* @summary This component provides a user interface for paginated content navigation,
|
|
@@ -303,15 +302,15 @@ export class PaginationComponent extends NgxBaseComponent {
|
|
|
303
302
|
if (page !== null && this.current !== page)
|
|
304
303
|
this.handleClick(page > this.current ? 'next' : 'previous', page);
|
|
305
304
|
}
|
|
306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
307
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
305
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
306
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginationComponent, isStandalone: true, selector: "ngx-decaf-pagination", inputs: { totalPages: "totalPages", current: "current" }, outputs: { clickEvent: "clickEvent" }, usesInheritance: true, ngImport: i0, template: " <div [id]=\"uid\" class=\"dcf-paginator-container dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [class.dcf-disabled]=\"current === 1\">\n <ion-icon name=\"chevron-back-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n @for(page of pages; track page) {\n <div tabindex=\"0\" [class]=\"page['class']\" (click)=\"navigate(page['index'])\"\n (keydown.enter)=\"navigate(page['index'])\"\n [class.dcf-active]=\"current === page['index']\">\n <span class=\"page-item\">{{ page['text'] }}</span>\n </div>\n }\n <div\n tabindex=\"0\" (click)=\"next()\"\n (keydown.enter)=\"next()\"\n [class.dcf-disabled]=\"current === last\">\n <ion-icon name=\"chevron-forward-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dcf-paginator-container{margin-bottom:1rem}.dcf-pagination{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination .page-item{display:flex;justify-content:center;align-items:center;text-align:center;font-weight:600;width:34px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}@media (prefers-color-scheme: dark){.dcf-pagination .page-item{color:var(--dcf-color-gray-3)!important}}@media (prefers-color-scheme: light){.dcf-pagination .page-item{color:var(--dcf-color-gray-7)!important}}.dcf-pagination>*{flex:none;padding-left:0;position:relative;margin:0px .15rem;cursor:pointer}.dcf-pagination>*.dcf-disabled{pointer-events:none;touch-action:none;cursor:text}.dcf-pagination>*.dcf-active{pointer-events:none;touch-action:none}@media (prefers-color-scheme: light){.dcf-pagination>*.dcf-active .page-item{background:rgba(var(--dcf-color-primary-rgb),.15)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}@media (prefers-color-scheme: dark){.dcf-pagination>*.dcf-active .page-item{background:var(--dcf-color-gray-7)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}.dcf-pagination-resume{margin:1rem 0px;text-align:center}@media (prefers-color-scheme: light){.dcf-pagination-resume{color:var(--dcf-color-gray-8)}}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
308
307
|
}
|
|
309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
310
309
|
type: Component,
|
|
311
310
|
args: [{ selector: 'ngx-decaf-pagination', imports: [
|
|
312
|
-
|
|
311
|
+
TranslateModule,
|
|
313
312
|
IonIcon
|
|
314
|
-
], standalone: true, template: " <div [id]=\"uid\" class=\"dcf-paginator-container dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [
|
|
313
|
+
], standalone: true, template: " <div [id]=\"uid\" class=\"dcf-paginator-container dcf-flex dcf-flex-center\">\n <div class=\"dcf-width-1-1\">\n <div class=\"dcf-pagination-resume\" [innerHTML]=\"locale + '.resume' | translate: {value0: current, value1: last}\"></div>\n <div #paginationComponent class=\"dcf-pagination dcf-flex-center\">\n <div\n aria-label=\"previous\"\n tabindex=\"0\"\n (click)=\"previous()\"\n (keydown.enter)=\"previous()\" [class.dcf-disabled]=\"current === 1\">\n <ion-icon name=\"chevron-back-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n @for(page of pages; track page) {\n <div tabindex=\"0\" [class]=\"page['class']\" (click)=\"navigate(page['index'])\"\n (keydown.enter)=\"navigate(page['index'])\"\n [class.dcf-active]=\"current === page['index']\">\n <span class=\"page-item\">{{ page['text'] }}</span>\n </div>\n }\n <div\n tabindex=\"0\" (click)=\"next()\"\n (keydown.enter)=\"next()\"\n [class.dcf-disabled]=\"current === last\">\n <ion-icon name=\"chevron-forward-outline\" aria-hidden=\"true\"></ion-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dcf-paginator-container{margin-bottom:1rem}.dcf-pagination{display:flex;flex-wrap:wrap;align-items:center;margin-left:0;padding:0;list-style:none}.dcf-pagination .page-item{display:flex;justify-content:center;align-items:center;text-align:center;font-weight:600;width:34px;line-height:34px;padding:0!important;border-radius:50%;box-sizing:border-box}@media (prefers-color-scheme: dark){.dcf-pagination .page-item{color:var(--dcf-color-gray-3)!important}}@media (prefers-color-scheme: light){.dcf-pagination .page-item{color:var(--dcf-color-gray-7)!important}}.dcf-pagination>*{flex:none;padding-left:0;position:relative;margin:0px .15rem;cursor:pointer}.dcf-pagination>*.dcf-disabled{pointer-events:none;touch-action:none;cursor:text}.dcf-pagination>*.dcf-active{pointer-events:none;touch-action:none}@media (prefers-color-scheme: light){.dcf-pagination>*.dcf-active .page-item{background:rgba(var(--dcf-color-primary-rgb),.15)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}@media (prefers-color-scheme: dark){.dcf-pagination>*.dcf-active .page-item{background:var(--dcf-color-gray-7)}.dcf-pagination>*:hover:not(.dcf-active) *{color:var(--dcf-color-primary)!important}}.dcf-pagination-resume{margin:1rem 0px;text-align:center}@media (prefers-color-scheme: light){.dcf-pagination-resume{color:var(--dcf-color-gray-8)}}\n"] }]
|
|
315
314
|
}], ctorParameters: () => [], propDecorators: { totalPages: [{
|
|
316
315
|
type: Input,
|
|
317
316
|
args: [{ required: true }]
|
|
@@ -320,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
320
319
|
}], clickEvent: [{
|
|
321
320
|
type: Output
|
|
322
321
|
}] } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLGNBQWMsQ0FBQzs7OztBQUd6RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQVlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFvRXZEOzs7O09BSUc7SUFDSDtRQUNFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBeEUvQjs7Ozs7Ozs7V0FRRztRQUNNLGlCQUFZLEdBQW9CLElBQUksQ0FBQztRQWM5Qzs7Ozs7Ozs7V0FRRztRQUVILFlBQU8sR0FBRyxDQUFDLENBQUM7UUFxQlo7Ozs7Ozs7O1dBUUc7UUFFSCxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO1FBU3pGLFFBQVEsQ0FBQyxFQUFDLGtCQUFrQixFQUFF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Qjt3QkFDaEIsT0FBTztxQkFDUixjQUNXLElBQUk7d0RBMEJoQixVQUFVO3NCQURULEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWF6QixPQUFPO3NCQUROLEtBQUs7Z0JBZ0NOLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkJhY2tPdXRsaW5lLCBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBGb3JBbmd1bGFyTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9yLWFuZ3VsYXIubW9kdWxlJztcbmltcG9ydCB7IE5neEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbmdpbmUvTmd4QmFzZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdmVudENvbnN0YW50cywgS2V5VmFsdWUsIFN0cmluZ09yQm9vbGVhbiB9IGZyb20gJy4uLy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ3VzdG9tRXZlbnQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEEgcGFnaW5hdGlvbiBjb21wb25lbnQgZm9yIG5hdmlnYXRpbmcgdGhyb3VnaCBtdWx0aXBsZSBwYWdlcyBvZiBjb250ZW50LlxuICogQHN1bW1hcnkgVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSB1c2VyIGludGVyZmFjZSBmb3IgcGFnaW5hdGVkIGNvbnRlbnQgbmF2aWdhdGlvbixcbiAqIGRpc3BsYXlpbmcgcGFnZSBudW1iZXJzIGFuZCBuYXZpZ2F0aW9uIGNvbnRyb2xzLiBJdCBzdXBwb3J0cyBjdXN0b21pemFibGUgcGFnZSBjb3VudHMsXG4gKiBjdXJyZW50IHBhZ2UgdHJhY2tpbmcsIGFuZCBlbWl0cyBldmVudHMgd2hlbiB1c2VycyBuYXZpZ2F0ZSBiZXR3ZWVuIHBhZ2VzLlxuICpcbiAqIFRoZSBjb21wb25lbnQgaW50ZWxsaWdlbnRseSBoYW5kbGVzIGxhcmdlIG51bWJlcnMgb2YgcGFnZXMgYnkgc2hvd2luZyBhIHN1YnNldCBvZiBwYWdlXG4gKiBudW1iZXJzIHdpdGggZWxsaXBzZXMgdG8gaW5kaWNhdGUgc2tpcHBlZCBwYWdlcywgZW5zdXJpbmcgdGhlIFVJIHJlbWFpbnMgY2xlYW4gYW5kIHVzYWJsZVxuICogZXZlbiB3aXRoIG1hbnkgcGFnZXMuXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gKiAgIHBhcnRpY2lwYW50IEUgYXMgRXh0ZXJuYWwgQ29tcG9uZW50XG4gKlxuICogICBVLT4+UDogQ2xpY2sgcGFnZSBudW1iZXJcbiAqICAgUC0+PlA6IG5hdmlnYXRlKHBhZ2UpXG4gKiAgIFAtPj5QOiBoYW5kbGVDbGljayhkaXJlY3Rpb24sIHBhZ2UpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiAgIFUtPj5QOiBDbGljayBuZXh0IGJ1dHRvblxuICogICBQLT4+UDogbmV4dCgpXG4gKiAgIFAtPj5QOiBoYW5kbGVDbGljaygnbmV4dCcpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiAgIFUtPj5QOiBDbGljayBwcmV2aW91cyBidXR0b25cbiAqICAgUC0+PlA6IHByZXZpb3VzKClcbiAqICAgUC0+PlA6IGhhbmRsZUNsaWNrKCdwcmV2aW91cycpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiBAZXhhbXBsZVxuICogPG5neC1kZWNhZi1wYWdpbmF0aW9uXG4gKiAgIFtwYWdlc109XCIxMFwiXG4gKiAgIFtjdXJyZW50XT1cIjNcIlxuICogICAoY2xpY2tFdmVudCk9XCJoYW5kbGVQYWdlQ2hhbmdlKCRldmVudClcIj5cbiAqIDwvbmd4LWRlY2FmLXBhZ2luYXRpb24+XG4gKlxuICogQGV4dGVuZHMge05neEJhc2VDb21wb25lbnR9XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgRm9yQW5ndWxhck1vZHVsZSxcbiAgICBJb25JY29uXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG5cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbHMgd2hldGhlciB0aGUgY29tcG9uZW50IHVzZXMgdHJhbnNsYXRpb24gc2VydmljZXMuXG4gICAqIEBzdW1tYXJ5IFdoZW4gc2V0IHRvIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBhdHRlbXB0IHRvIHVzZSB0cmFuc2xhdGlvbiBzZXJ2aWNlc1xuICAgKiBmb3IgYW55IHRleHQgY29udGVudC4gVGhpcyBhbGxvd3MgZm9yIGludGVybmF0aW9uYWxpemF0aW9uIG9mIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgb3ZlcnJpZGUgdHJhbnNsYXRhYmxlOiBTdHJpbmdPckJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyB0byBkaXNwbGF5IGluIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudC5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgYXZhaWxhYmxlIGZvciBuYXZpZ2F0aW9uLiBUaGlzIGlzIGEgcmVxdWlyZWRcbiAgICogaW5wdXQgdGhhdCBkZXRlcm1pbmVzIGhvdyBtYW55IHBhZ2UgbnVtYmVycyB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgZGlzcGxheWVkLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAcmVxdWlyZWRcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHRvdGFsUGFnZXMhOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY3VycmVudGx5IGFjdGl2ZSBwYWdlIG51bWJlci5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHdoaWNoIHBhZ2UgaXMgY3VycmVudGx5IGFjdGl2ZSBvciBzZWxlY3RlZC4gVGhpcyB2YWx1ZSBpcyB1c2VkXG4gICAqIHRvIGhpZ2hsaWdodCB0aGUgY3VycmVudCBwYWdlIGluIHRoZSBVSSBhbmQgYXMgYSByZWZlcmVuY2UgcG9pbnQgZm9yIG5hdmlnYXRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDFcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGN1cnJlbnQgPSAxO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgb2YgcGFnZSBvYmplY3RzIGZvciByZW5kZXJpbmcgaW4gdGhlIHRlbXBsYXRlLlxuICAgKiBAc3VtbWFyeSBDb250YWlucyB0aGUgcHJvY2Vzc2VkIHBhZ2UgZGF0YSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRpb24gVUkuXG4gICAqIEVhY2ggb2JqZWN0IGluY2x1ZGVzIGFuIGluZGV4IChwYWdlIG51bWJlcikgYW5kIHRleHQgcmVwcmVzZW50YXRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtLZXlWYWx1ZVtdfVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgcGFnZXMhOiBLZXlWYWx1ZVtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGxhc3QgcGFnZSBudW1iZXIgaW4gdGhlIHBhZ2luYXRpb24uXG4gICAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgbnVtYmVyIG9mIHRoZSBsYXN0IHBhZ2UgZm9yIGJvdW5kYXJ5IGNoZWNraW5nIGR1cmluZyBuYXZpZ2F0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgbGFzdCE6IG51bWJlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGVtaXR0ZXIgZm9yIHBhZ2luYXRpb24gbmF2aWdhdGlvbiBldmVudHMuXG4gICAqIEBzdW1tYXJ5IEVtaXRzIGEgY3VzdG9tIGV2ZW50IHdoZW4gdXNlcnMgbmF2aWdhdGUgYmV0d2VlbiBwYWdlcywgZWl0aGVyIGJ5IGNsaWNraW5nXG4gICAqIG9uIHBhZ2UgbnVtYmVycyBvciB1c2luZyB0aGUgbmV4dC9wcmV2aW91cyBidXR0b25zLiBUaGUgZXZlbnQgY29udGFpbnMgaW5mb3JtYXRpb25cbiAgICogYWJvdXQgdGhlIG5hdmlnYXRpb24gZGlyZWN0aW9uIGFuZCB0aGUgdGFyZ2V0IHBhZ2UgbnVtYmVyLlxuICAgKlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPFBhZ2luYXRpb25DdXN0b21FdmVudD59XG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgY2xpY2tFdmVudDogRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25DdXN0b21FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25DdXN0b21FdmVudD4oKTtcblxuICAvKipcbiAgICogQGNvbnN0cnVjdG9yXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgUGFnaW5hdGlvbkNvbXBvbmVudC5cbiAgICogQ2FsbHMgdGhlIHBhcmVudCBjb25zdHJ1Y3RvciB3aXRoIHRoZSBjb21wb25lbnQgbmFtZSBmb3IgZ2VuZXJhdGUgYmFzZSBsb2NhbGUgc3RyaW5nLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJQYWdpbmF0aW9uQ29tcG9uZW50XCIpO1xuICAgICBhZGRJY29ucyh7Y2hldnJvbkJhY2tPdXRsaW5lLCBjaGV2cm9uRm9yd2FyZE91dGxpbmV9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgdGhlIGNvbXBvbmVudCBhZnRlciBBbmd1bGFyIHNldHMgdGhlIGlucHV0IHByb3BlcnRpZXMuXG4gICAqIEBzdW1tYXJ5IFNldHMgdXAgdGhlIGNvbXBvbmVudCBieSBpbml0aWFsaXppbmcgdGhlIGxvY2FsZSBzZXR0aW5ncyBiYXNlZCBvbiB0aGVcbiAgICogdHJhbnNsYXRhYmxlIHByb3BlcnR5LCBnZW5lcmF0aW5nIHRoZSBwYWdlIG51bWJlcnMgYmFzZWQgb24gdGhlIHRvdGFsIHBhZ2VzIGFuZFxuICAgKiBjdXJyZW50IHBhZ2UsIGFuZCBzdG9yaW5nIHRoZSBsYXN0IHBhZ2UgbnVtYmVyIGZvciBib3VuZGFyeSBjaGVja2luZy5cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQSBhcyBBbmd1bGFyIExpZmVjeWNsZVxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKlxuICAgKiAgIEEtPj5QOiBuZ09uSW5pdCgpXG4gICAqICAgUC0+PlA6IGdldExvY2FsZSh0cmFuc2xhdGFibGUpXG4gICAqICAgUC0+PlA6IFNldCBsb2NhbGVcbiAgICogICBQLT4+UDogZ2V0UGFnZXMoZGF0YSwgY3VycmVudClcbiAgICogICBQLT4+UDogU2V0IHBhZ2VzIGFycmF5XG4gICAqICAgUC0+PlA6IFNldCBsYXN0IHBhZ2UgbnVtYmVyXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbGUgPSB0aGlzLmdldExvY2FsZSh0aGlzLnRyYW5zbGF0YWJsZSk7XG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuZ2V0UGFnZXModGhpcy50b3RhbFBhZ2VzLCB0aGlzLmN1cnJlbnQpIGFzIEtleVZhbHVlW107XG4gICAgdGhpcy5sYXN0ID0gdGhpcy50b3RhbFBhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIGNsaWNrIGV2ZW50cyBvbiBwYWdpbmF0aW9uIGNvbnRyb2xzLlxuICAgKiBAc3VtbWFyeSBQcm9jZXNzZXMgdXNlciBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQsIHVwZGF0aW5nIHRoZVxuICAgKiBjdXJyZW50IHBhZ2UgaWYgc3BlY2lmaWVkIGFuZCBlbWl0dGluZyBhbiBldmVudCB3aXRoIG5hdmlnYXRpb24gZGV0YWlscy4gVGhpcyBtZXRob2RcbiAgICogaXMgY2FsbGVkIHdoZW4gdXNlcnMgY2xpY2sgb24gcGFnZSBudW1iZXJzIG9yIG5hdmlnYXRpb24gYnV0dG9ucy5cbiAgICpcbiAgICogQHBhcmFtIHsoJ25leHQnIHwgJ3ByZXZpb3VzJyl9IGRpcmVjdGlvbiAtIFRoZSBkaXJlY3Rpb24gb2YgbmF2aWdhdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gW3BhZ2VdIC0gT3B0aW9uYWwgcGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG8gZGlyZWN0bHlcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlclxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IEUgYXMgRXh0ZXJuYWwgQ29tcG9uZW50XG4gICAqXG4gICAqICAgVS0+PlA6IENsaWNrIHBhZ2luYXRpb24gY29udHJvbFxuICAgKiAgIFAtPj5QOiBoYW5kbGVDbGljayhkaXJlY3Rpb24sIHBhZ2U/KVxuICAgKiAgIGFsdCBwYWdlIGlzIHByb3ZpZGVkXG4gICAqICAgICBQLT4+UDogVXBkYXRlIGN1cnJlbnQgcGFnZVxuICAgKiAgIGVuZFxuICAgKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBkaXJlY3Rpb24gYW5kIHBhZ2VcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIGhhbmRsZUNsaWNrKGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXZpb3VzJywgcGFnZT86IG51bWJlcik6IHZvaWQge1xuICAgIGlmKHBhZ2UpXG4gICAgICB0aGlzLmN1cnJlbnQgPSBwYWdlO1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHtcbiAgICAgIG5hbWU6IEV2ZW50Q29uc3RhbnRzLkNMSUNLLFxuICAgICAgZGF0YToge1xuICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgIHBhZ2U6IHRoaXMuY3VycmVudFxuICAgICAgfSxcbiAgICAgIGNvbXBvbmVudDogdGhpcy5jb21wb25lbnROYW1lXG4gICAgfSBhcyBQYWdpbmF0aW9uQ3VzdG9tRXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgdGhlIGFycmF5IG9mIHBhZ2Ugb2JqZWN0cyBmb3IgZGlzcGxheS5cbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhbiBhcnJheSBvZiBwYWdlIG9iamVjdHMgYmFzZWQgb24gdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBhbmRcbiAgICogdGhlIGN1cnJlbnQgcGFnZS4gRm9yIHNtYWxsIHBhZ2UgY291bnRzICjiiaQ1KSwgYWxsIHBhZ2VzIGFyZSBzaG93bi4gRm9yIGxhcmdlciBwYWdlXG4gICAqIGNvdW50cywgYSBzdWJzZXQgaXMgc2hvd24gd2l0aCBlbGxpcHNlcyB0byBpbmRpY2F0ZSBza2lwcGVkIHBhZ2VzLiBUaGlzIGVuc3VyZXNcbiAgICogdGhlIHBhZ2luYXRpb24gVUkgcmVtYWlucyBjbGVhbiBhbmQgdXNhYmxlIGV2ZW4gd2l0aCBtYW55IHBhZ2VzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdG90YWwgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbY3VycmVudF0gLSBUaGUgY3VycmVudCBhY3RpdmUgcGFnZSAoZGVmYXVsdHMgdG8gdGhpcy5jdXJyZW50KVxuICAgKiBAcmV0dXJucyB7S2V5VmFsdWVbXX0gQXJyYXkgb2YgcGFnZSBvYmplY3RzIHdpdGggaW5kZXggYW5kIHRleHQgcHJvcGVydGllc1xuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBmbG93Y2hhcnQgVERcbiAgICogICBBW1N0YXJ0XSAtLT4gQnt0b3RhbCA8PSA1P31cbiAgICogICBCIC0tPnxZZXN8IENbU2hvdyBhbGwgcGFnZXNdXG4gICAqICAgQiAtLT58Tm98IERbU2hvdyBmaXJzdCBwYWdlXVxuICAgKiAgIEQgLS0+IEVbU2hvdyBsYXN0IHBhZ2VzXVxuICAgKiAgIEUgLS0+IEZbQWRkIGVsbGlwc2VzIGZvciBza2lwcGVkIHBhZ2VzXVxuICAgKiAgIEMgLS0+IEdbUmV0dXJuIHBhZ2VzIGFycmF5XVxuICAgKiAgIEYgLS0+IEdcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIGdldFBhZ2VzKHRvdGFsOiBudW1iZXIsIGN1cnJlbnQ/OiBudW1iZXIpOiBLZXlWYWx1ZVtdIHtcbiAgICBpZiAoIWN1cnJlbnQpIGN1cnJlbnQgPSB0aGlzLmN1cnJlbnQ7XG5cbiAgICBjb25zdCBwYWdlczogS2V5VmFsdWVbXSA9IFtdO1xuXG4gICAgZnVuY3Rpb24gZ2V0UGFnZShpbmRleDogbnVtYmVyIHwgbnVsbCwgdGV4dCA9ICcnLCBjbGF6eiA9ICdidXR0b24nKTogdm9pZCB7XG4gICAgICAgIGlmIChwYWdlcy5zb21lKGl0ZW0gPT4gaXRlbVsnaW5kZXgnXSA9PT0gaW5kZXgpKSByZXR1cm47XG4gICAgICAgIHBhZ2VzLnB1c2goeyBpbmRleCwgdGV4dDogaW5kZXggIT0gbnVsbCA/IGluZGV4LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSA6IHRleHQsIGNsYXNzOiBjbGF6eiB9KTtcbiAgICB9XG5cbiAgICBpZiAodG90YWwgPD0gNSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0b3RhbDsgaSsrKSBnZXRQYWdlKGkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBZGljaW9uYSBvcyBkb2lzIHByaW1laXJvc1xuICAgICAgZ2V0UGFnZSgxKTtcbiAgICAgIGdldFBhZ2UoMik7XG5cbiAgICAgIC8vIEFkaWNpb25hIFwiLi4uXCIgZW50cmUgb3MgYmxvY29zXG4gICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50ID4gMykgZ2V0UGFnZShudWxsLCAnLi4uJyk7XG5cbiAgICAgIC8vIEFkaWNpb25hIGEgcMOhZ2luYSBhdHVhbCAoc2UgZXN0aXZlciBubyBtZWlvKVxuICAgICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudCA+IDIgJiYgY3VycmVudCA8IHRvdGFsIC0gMSkgZ2V0UGFnZShjdXJyZW50KTtcblxuICAgICAgLy8gQWRpY2lvbmEgXCIuLi5cIiBlbnRyZSBvcyBibG9jb3NcbiAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQgPCB0b3RhbCAtIDIpIGdldFBhZ2UobnVsbCwgJy4uLicgLCAnc2VwYXJhdG9yJyk7XG5cbiAgICAgIC8vIEFkaWNpb25hIG9zIGRvaXMgw7psdGltb3NcbiAgICAgIGdldFBhZ2UodG90YWwgLSAxKTtcbiAgICAgIGdldFBhZ2UodG90YWwpO1xuICAgIH1cblxuICAgIHJldHVybiBwYWdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY3VycmVudCBhY3RpdmUgcGFnZSBudW1iZXIuXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdGhhdCBpcyBhY3RpdmUgaW4gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50LlxuICAgKiBUaGlzIG1ldGhvZCBwcm92aWRlcyBhIHdheSB0byBhY2Nlc3MgdGhlIGN1cnJlbnQgcGFnZSBzdGF0ZSBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGN1cnJlbnQgcGFnZSBudW1iZXJcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIGdldEN1cnJlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZpZ2F0ZXMgdG8gdGhlIG5leHQgcGFnZS5cbiAgICogQHN1bW1hcnkgSW5jcmVtZW50cyB0aGUgY3VycmVudCBwYWdlIG51bWJlciBpZiBub3QgYXQgdGhlIGxhc3QgcGFnZSBhbmQgdHJpZ2dlcnNcbiAgICogdGhlIGNsaWNrIGV2ZW50IGhhbmRsZXIgd2l0aCAnbmV4dCcgZGlyZWN0aW9uLiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgY2FsbGVkXG4gICAqIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBcIm5leHRcIiBidXR0b24gaW4gdGhlIHBhZ2luYXRpb24gVUkuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICpcbiAgICogICBVLT4+UDogQ2xpY2sgbmV4dCBidXR0b25cbiAgICogICBQLT4+UDogbmV4dCgpXG4gICAqICAgYWx0IHBhZ2UgPD0gbWF4IHBhZ2VzXG4gICAqICAgICBQLT4+UDogSW5jcmVtZW50IGN1cnJlbnQgcGFnZVxuICAgKiAgICAgUC0+PlA6IGhhbmRsZUNsaWNrKCduZXh0JylcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIG5leHQoKTogdm9pZCB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuY3VycmVudCArIDE7XG4gICAgaWYocGFnZSA8PSBPYmplY3Qua2V5cyh0aGlzLnBhZ2VzKT8ubGVuZ3RoIHx8IDApIHtcbiAgICAgIHRoaXMuY3VycmVudCA9IHBhZ2U7XG4gICAgICB0aGlzLmhhbmRsZUNsaWNrKCduZXh0Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIHBhZ2UuXG4gICAqIEBzdW1tYXJ5IERlY3JlbWVudHMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgaWYgbm90IGF0IHRoZSBmaXJzdCBwYWdlIGFuZCB0cmlnZ2Vyc1xuICAgKiB0aGUgY2xpY2sgZXZlbnQgaGFuZGxlciB3aXRoICdwcmV2aW91cycgZGlyZWN0aW9uLiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgY2FsbGVkXG4gICAqIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBcInByZXZpb3VzXCIgYnV0dG9uIGluIHRoZSBwYWdpbmF0aW9uIFVJLlxuICAgKlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqXG4gICAqICAgVS0+PlA6IENsaWNrIHByZXZpb3VzIGJ1dHRvblxuICAgKiAgIFAtPj5QOiBwcmV2aW91cygpXG4gICAqICAgYWx0IHBhZ2UgPiAwXG4gICAqICAgICBQLT4+UDogRGVjcmVtZW50IGN1cnJlbnQgcGFnZVxuICAgKiAgICAgUC0+PlA6IGhhbmRsZUNsaWNrKCdwcmV2aW91cycpXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5jdXJyZW50IC0gMTtcbiAgICBpZihwYWdlID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50ID0gcGFnZTtcbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2soJ3ByZXZpb3VzJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZpZ2F0ZXMgdG8gYSBzcGVjaWZpYyBwYWdlIG51bWJlci5cbiAgICogQHN1bW1hcnkgVXBkYXRlcyB0aGUgY3VycmVudCBwYWdlIHRvIHRoZSBzcGVjaWZpZWQgcGFnZSBudW1iZXIgYW5kIHRyaWdnZXJzXG4gICAqIHRoZSBjbGljayBldmVudCBoYW5kbGVyIHdpdGggdGhlIGFwcHJvcHJpYXRlIGRpcmVjdGlvbi4gVGhpcyBtZXRob2QgaXMgdHlwaWNhbGx5XG4gICAqIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBkaXJlY3RseSBvbiBhIHBhZ2UgbnVtYmVyIGluIHRoZSBwYWdpbmF0aW9uIFVJLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlciB8IG51bGx9IHBhZ2UgLSBUaGUgcGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG9cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlclxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKlxuICAgKiAgIFUtPj5QOiBDbGljayBwYWdlIG51bWJlclxuICAgKiAgIFAtPj5QOiBuYXZpZ2F0ZShwYWdlKVxuICAgKiAgIGFsdCBwYWdlIGlzIG5vdCBudWxsIGFuZCBkaWZmZXJlbnQgZnJvbSBjdXJyZW50XG4gICAqICAgICBQLT4+UDogRGV0ZXJtaW5lIGRpcmVjdGlvbiAobmV4dC9wcmV2aW91cylcbiAgICogICAgIFAtPj5QOiBoYW5kbGVDbGljayhkaXJlY3Rpb24sIHBhZ2UpXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBuYXZpZ2F0ZShwYWdlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYocGFnZSAhPT0gbnVsbCAmJiB0aGlzLmN1cnJlbnQgIT09IHBhZ2UgYXMgbnVtYmVyKVxuICAgICAgdGhpcy5oYW5kbGVDbGljayhwYWdlID4gdGhpcy5jdXJyZW50ID8gJ25leHQnIDogJ3ByZXZpb3VzJywgcGFnZSk7XG4gIH1cbn1cbiIsIiA8ZGl2IFtpZF09XCJ1aWRcIiBjbGFzcz1cImRjZi1wYWdpbmF0b3ItY29udGFpbmVyIGRjZi1mbGV4IGRjZi1mbGV4LWNlbnRlclwiPlxuICA8ZGl2IGNsYXNzPVwiZGNmLXdpZHRoLTEtMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkY2YtcGFnaW5hdGlvbi1yZXN1bWVcIiBbaW5uZXJIVE1MXT1cImxvY2FsZSArICcucmVzdW1lJyB8IHRyYW5zbGF0ZToge3ZhbHVlMDogY3VycmVudCwgdmFsdWUxOiBsYXN0fVwiPjwvZGl2PlxuICAgIDxkaXYgI3BhZ2luYXRpb25Db21wb25lbnQgY2xhc3M9XCJkY2YtcGFnaW5hdGlvbiBkY2YtZmxleC1jZW50ZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgYXJpYS1sYWJlbD1cInByZXZpb3VzXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzKClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJwcmV2aW91cygpXCIgW25nQ2xhc3NdPVwieydkY2YtZGlzYWJsZWQnOiBjdXJyZW50ID09PSAxfVwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tYmFjay1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGZvcihwYWdlIG9mIHBhZ2VzOyB0cmFjayBwYWdlKSB7XG4gICAgICAgIDxkaXYgdGFiaW5kZXg9XCIwXCIgW2NsYXNzXT1cInBhZ2VbJ2NsYXNzJ11cIiAoY2xpY2spPVwibmF2aWdhdGUocGFnZVsnaW5kZXgnXSlcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5hdmlnYXRlKHBhZ2VbJ2luZGV4J10pXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2RjZi1hY3RpdmUnOiBjdXJyZW50ID09PSBwYWdlWydpbmRleCddfVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnZS1pdGVtXCI+e3sgcGFnZVsndGV4dCddIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxkaXZcbiAgICAgICAgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5leHQoKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnZGNmLWRpc2FibGVkJzogY3VycmVudCA9PT0gbGFzdH1cIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUE2QixNQUFNLGNBQWMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUV0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQVlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFvRXZEOzs7O09BSUc7SUFDSDtRQUNFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBeEUvQjs7Ozs7Ozs7V0FRRztRQUNNLGlCQUFZLEdBQW9CLElBQUksQ0FBQztRQWM5Qzs7Ozs7Ozs7V0FRRztRQUVILFlBQU8sR0FBRyxDQUFDLENBQUM7UUFxQlo7Ozs7Ozs7O1dBUUc7UUFFSCxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO1FBU3pGLFFBQVEsQ0FBQyxFQUFDLGtCQUFrQixFQUFFLHFC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T0FBTztxQkFDUixjQUNXLElBQUk7d0RBMEJoQixVQUFVO3NCQURULEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWF6QixPQUFPO3NCQUROLEtBQUs7Z0JBZ0NOLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkJhY2tPdXRsaW5lLCBjaGV2cm9uRm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBOZ3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZW5naW5lL05neEJhc2VDb21wb25lbnQnO1xuaW1wb3J0IHsgRXZlbnRDb25zdGFudHMsIEtleVZhbHVlLCBTdHJpbmdPckJvb2xlYW4gfSBmcm9tICcuLi8uLi9lbmdpbmUnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkN1c3RvbUV2ZW50IH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEEgcGFnaW5hdGlvbiBjb21wb25lbnQgZm9yIG5hdmlnYXRpbmcgdGhyb3VnaCBtdWx0aXBsZSBwYWdlcyBvZiBjb250ZW50LlxuICogQHN1bW1hcnkgVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSB1c2VyIGludGVyZmFjZSBmb3IgcGFnaW5hdGVkIGNvbnRlbnQgbmF2aWdhdGlvbixcbiAqIGRpc3BsYXlpbmcgcGFnZSBudW1iZXJzIGFuZCBuYXZpZ2F0aW9uIGNvbnRyb2xzLiBJdCBzdXBwb3J0cyBjdXN0b21pemFibGUgcGFnZSBjb3VudHMsXG4gKiBjdXJyZW50IHBhZ2UgdHJhY2tpbmcsIGFuZCBlbWl0cyBldmVudHMgd2hlbiB1c2VycyBuYXZpZ2F0ZSBiZXR3ZWVuIHBhZ2VzLlxuICpcbiAqIFRoZSBjb21wb25lbnQgaW50ZWxsaWdlbnRseSBoYW5kbGVzIGxhcmdlIG51bWJlcnMgb2YgcGFnZXMgYnkgc2hvd2luZyBhIHN1YnNldCBvZiBwYWdlXG4gKiBudW1iZXJzIHdpdGggZWxsaXBzZXMgdG8gaW5kaWNhdGUgc2tpcHBlZCBwYWdlcywgZW5zdXJpbmcgdGhlIFVJIHJlbWFpbnMgY2xlYW4gYW5kIHVzYWJsZVxuICogZXZlbiB3aXRoIG1hbnkgcGFnZXMuXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gKiAgIHBhcnRpY2lwYW50IEUgYXMgRXh0ZXJuYWwgQ29tcG9uZW50XG4gKlxuICogICBVLT4+UDogQ2xpY2sgcGFnZSBudW1iZXJcbiAqICAgUC0+PlA6IG5hdmlnYXRlKHBhZ2UpXG4gKiAgIFAtPj5QOiBoYW5kbGVDbGljayhkaXJlY3Rpb24sIHBhZ2UpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiAgIFUtPj5QOiBDbGljayBuZXh0IGJ1dHRvblxuICogICBQLT4+UDogbmV4dCgpXG4gKiAgIFAtPj5QOiBoYW5kbGVDbGljaygnbmV4dCcpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiAgIFUtPj5QOiBDbGljayBwcmV2aW91cyBidXR0b25cbiAqICAgUC0+PlA6IHByZXZpb3VzKClcbiAqICAgUC0+PlA6IGhhbmRsZUNsaWNrKCdwcmV2aW91cycpXG4gKiAgIFAtPj5FOiBFbWl0IGNsaWNrRXZlbnQgd2l0aCBQYWdpbmF0aW9uQ3VzdG9tRXZlbnRcbiAqXG4gKiBAZXhhbXBsZVxuICogPG5neC1kZWNhZi1wYWdpbmF0aW9uXG4gKiAgIFtwYWdlc109XCIxMFwiXG4gKiAgIFtjdXJyZW50XT1cIjNcIlxuICogICAoY2xpY2tFdmVudCk9XCJoYW5kbGVQYWdlQ2hhbmdlKCRldmVudClcIj5cbiAqIDwvbmd4LWRlY2FmLXBhZ2luYXRpb24+XG4gKlxuICogQGV4dGVuZHMge05neEJhc2VDb21wb25lbnR9XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIElvbkljb25cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcblxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IGV4dGVuZHMgTmd4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb250cm9scyB3aGV0aGVyIHRoZSBjb21wb25lbnQgdXNlcyB0cmFuc2xhdGlvbiBzZXJ2aWNlcy5cbiAgICogQHN1bW1hcnkgV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIGNvbXBvbmVudCB3aWxsIGF0dGVtcHQgdG8gdXNlIHRyYW5zbGF0aW9uIHNlcnZpY2VzXG4gICAqIGZvciBhbnkgdGV4dCBjb250ZW50LiBUaGlzIGFsbG93cyBmb3IgaW50ZXJuYXRpb25hbGl6YXRpb24gb2YgdGhlIHBhZ2luYXRpb24gY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZSB7U3RyaW5nT3JCb29sZWFufVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBvdmVycmlkZSB0cmFuc2xhdGFibGU6IFN0cmluZ09yQm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIHRvIGRpc3BsYXkgaW4gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBhdmFpbGFibGUgZm9yIG5hdmlnYXRpb24uIFRoaXMgaXMgYSByZXF1aXJlZFxuICAgKiBpbnB1dCB0aGF0IGRldGVybWluZXMgaG93IG1hbnkgcGFnZSBudW1iZXJzIHdpbGwgYmUgZ2VuZXJhdGVkIGFuZCBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEByZXF1aXJlZFxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgdG90YWxQYWdlcyE6IG51bWJlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZ2UgbnVtYmVyLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgd2hpY2ggcGFnZSBpcyBjdXJyZW50bHkgYWN0aXZlIG9yIHNlbGVjdGVkLiBUaGlzIHZhbHVlIGlzIHVzZWRcbiAgICogdG8gaGlnaGxpZ2h0IHRoZSBjdXJyZW50IHBhZ2UgaW4gdGhlIFVJIGFuZCBhcyBhIHJlZmVyZW5jZSBwb2ludCBmb3IgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgMVxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgY3VycmVudCA9IDE7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBcnJheSBvZiBwYWdlIG9iamVjdHMgZm9yIHJlbmRlcmluZyBpbiB0aGUgdGVtcGxhdGUuXG4gICAqIEBzdW1tYXJ5IENvbnRhaW5zIHRoZSBwcm9jZXNzZWQgcGFnZSBkYXRhIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgcGFnaW5hdGlvbiBVSS5cbiAgICogRWFjaCBvYmplY3QgaW5jbHVkZXMgYW4gaW5kZXggKHBhZ2UgbnVtYmVyKSBhbmQgdGV4dCByZXByZXNlbnRhdGlvbi5cbiAgICpcbiAgICogQHR5cGUge0tleVZhbHVlW119XG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBwYWdlcyE6IEtleVZhbHVlW107XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgbGFzdCBwYWdlIG51bWJlciBpbiB0aGUgcGFnaW5hdGlvbi5cbiAgICogQHN1bW1hcnkgU3RvcmVzIHRoZSBudW1iZXIgb2YgdGhlIGxhc3QgcGFnZSBmb3IgYm91bmRhcnkgY2hlY2tpbmcgZHVyaW5nIG5hdmlnYXRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBsYXN0ITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgZW1pdHRlciBmb3IgcGFnaW5hdGlvbiBuYXZpZ2F0aW9uIGV2ZW50cy5cbiAgICogQHN1bW1hcnkgRW1pdHMgYSBjdXN0b20gZXZlbnQgd2hlbiB1c2VycyBuYXZpZ2F0ZSBiZXR3ZWVuIHBhZ2VzLCBlaXRoZXIgYnkgY2xpY2tpbmdcbiAgICogb24gcGFnZSBudW1iZXJzIG9yIHVzaW5nIHRoZSBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMuIFRoZSBldmVudCBjb250YWlucyBpbmZvcm1hdGlvblxuICAgKiBhYm91dCB0aGUgbmF2aWdhdGlvbiBkaXJlY3Rpb24gYW5kIHRoZSB0YXJnZXQgcGFnZSBudW1iZXIuXG4gICAqXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbkN1c3RvbUV2ZW50Pn1cbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBjbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbkN1c3RvbUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdGlvbkN1c3RvbUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBAY29uc3RydWN0b3JcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBQYWdpbmF0aW9uQ29tcG9uZW50LlxuICAgKiBDYWxscyB0aGUgcGFyZW50IGNvbnN0cnVjdG9yIHdpdGggdGhlIGNvbXBvbmVudCBuYW1lIGZvciBnZW5lcmF0ZSBiYXNlIGxvY2FsZSBzdHJpbmcuXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIlBhZ2luYXRpb25Db21wb25lbnRcIik7XG4gICAgIGFkZEljb25zKHtjaGV2cm9uQmFja091dGxpbmUsIGNoZXZyb25Gb3J3YXJkT3V0bGluZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50IGFmdGVyIEFuZ3VsYXIgc2V0cyB0aGUgaW5wdXQgcHJvcGVydGllcy5cbiAgICogQHN1bW1hcnkgU2V0cyB1cCB0aGUgY29tcG9uZW50IGJ5IGluaXRpYWxpemluZyB0aGUgbG9jYWxlIHNldHRpbmdzIGJhc2VkIG9uIHRoZVxuICAgKiB0cmFuc2xhdGFibGUgcHJvcGVydHksIGdlbmVyYXRpbmcgdGhlIHBhZ2UgbnVtYmVycyBiYXNlZCBvbiB0aGUgdG90YWwgcGFnZXMgYW5kXG4gICAqIGN1cnJlbnQgcGFnZSwgYW5kIHN0b3JpbmcgdGhlIGxhc3QgcGFnZSBudW1iZXIgZm9yIGJvdW5kYXJ5IGNoZWNraW5nLlxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBBIGFzIEFuZ3VsYXIgTGlmZWN5Y2xlXG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqXG4gICAqICAgQS0+PlA6IG5nT25Jbml0KClcbiAgICogICBQLT4+UDogZ2V0TG9jYWxlKHRyYW5zbGF0YWJsZSlcbiAgICogICBQLT4+UDogU2V0IGxvY2FsZVxuICAgKiAgIFAtPj5QOiBnZXRQYWdlcyhkYXRhLCBjdXJyZW50KVxuICAgKiAgIFAtPj5QOiBTZXQgcGFnZXMgYXJyYXlcbiAgICogICBQLT4+UDogU2V0IGxhc3QgcGFnZSBudW1iZXJcbiAgICpcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMuZ2V0TG9jYWxlKHRoaXMudHJhbnNsYXRhYmxlKTtcbiAgICB0aGlzLnBhZ2VzID0gdGhpcy5nZXRQYWdlcyh0aGlzLnRvdGFsUGFnZXMsIHRoaXMuY3VycmVudCkgYXMgS2V5VmFsdWVbXTtcbiAgICB0aGlzLmxhc3QgPSB0aGlzLnRvdGFsUGFnZXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgY2xpY2sgZXZlbnRzIG9uIHBhZ2luYXRpb24gY29udHJvbHMuXG4gICAqIEBzdW1tYXJ5IFByb2Nlc3NlcyB1c2VyIGludGVyYWN0aW9ucyB3aXRoIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudCwgdXBkYXRpbmcgdGhlXG4gICAqIGN1cnJlbnQgcGFnZSBpZiBzcGVjaWZpZWQgYW5kIGVtaXR0aW5nIGFuIGV2ZW50IHdpdGggbmF2aWdhdGlvbiBkZXRhaWxzLiBUaGlzIG1ldGhvZFxuICAgKiBpcyBjYWxsZWQgd2hlbiB1c2VycyBjbGljayBvbiBwYWdlIG51bWJlcnMgb3IgbmF2aWdhdGlvbiBidXR0b25zLlxuICAgKlxuICAgKiBAcGFyYW0geygnbmV4dCcgfCAncHJldmlvdXMnKX0gZGlyZWN0aW9uIC0gVGhlIGRpcmVjdGlvbiBvZiBuYXZpZ2F0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbcGFnZV0gLSBPcHRpb25hbCBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0byBkaXJlY3RseVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgRSBhcyBFeHRlcm5hbCBDb21wb25lbnRcbiAgICpcbiAgICogICBVLT4+UDogQ2xpY2sgcGFnaW5hdGlvbiBjb250cm9sXG4gICAqICAgUC0+PlA6IGhhbmRsZUNsaWNrKGRpcmVjdGlvbiwgcGFnZT8pXG4gICAqICAgYWx0IHBhZ2UgaXMgcHJvdmlkZWRcbiAgICogICAgIFAtPj5QOiBVcGRhdGUgY3VycmVudCBwYWdlXG4gICAqICAgZW5kXG4gICAqICAgUC0+PkU6IEVtaXQgY2xpY2tFdmVudCB3aXRoIGRpcmVjdGlvbiBhbmQgcGFnZVxuICAgKlxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgaGFuZGxlQ2xpY2soZGlyZWN0aW9uOiAnbmV4dCcgfCAncHJldmlvdXMnLCBwYWdlPzogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYocGFnZSlcbiAgICAgIHRoaXMuY3VycmVudCA9IHBhZ2U7XG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoe1xuICAgICAgbmFtZTogRXZlbnRDb25zdGFudHMuQ0xJQ0ssXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgcGFnZTogdGhpcy5jdXJyZW50XG4gICAgICB9LFxuICAgICAgY29tcG9uZW50OiB0aGlzLmNvbXBvbmVudE5hbWVcbiAgICB9IGFzIFBhZ2luYXRpb25DdXN0b21FdmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyB0aGUgYXJyYXkgb2YgcGFnZSBvYmplY3RzIGZvciBkaXNwbGF5LlxuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGFuIGFycmF5IG9mIHBhZ2Ugb2JqZWN0cyBiYXNlZCBvbiB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIGFuZFxuICAgKiB0aGUgY3VycmVudCBwYWdlLiBGb3Igc21hbGwgcGFnZSBjb3VudHMgKOKJpDUpLCBhbGwgcGFnZXMgYXJlIHNob3duLiBGb3IgbGFyZ2VyIHBhZ2VcbiAgICogY291bnRzLCBhIHN1YnNldCBpcyBzaG93biB3aXRoIGVsbGlwc2VzIHRvIGluZGljYXRlIHNraXBwZWQgcGFnZXMuIFRoaXMgZW5zdXJlc1xuICAgKiB0aGUgcGFnaW5hdGlvbiBVSSByZW1haW5zIGNsZWFuIGFuZCB1c2FibGUgZXZlbiB3aXRoIG1hbnkgcGFnZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0b3RhbCAtIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtjdXJyZW50XSAtIFRoZSBjdXJyZW50IGFjdGl2ZSBwYWdlIChkZWZhdWx0cyB0byB0aGlzLmN1cnJlbnQpXG4gICAqIEByZXR1cm5zIHtLZXlWYWx1ZVtdfSBBcnJheSBvZiBwYWdlIG9iamVjdHMgd2l0aCBpbmRleCBhbmQgdGV4dCBwcm9wZXJ0aWVzXG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIGZsb3djaGFydCBURFxuICAgKiAgIEFbU3RhcnRdIC0tPiBCe3RvdGFsIDw9IDU/fVxuICAgKiAgIEIgLS0+fFllc3wgQ1tTaG93IGFsbCBwYWdlc11cbiAgICogICBCIC0tPnxOb3wgRFtTaG93IGZpcnN0IHBhZ2VdXG4gICAqICAgRCAtLT4gRVtTaG93IGxhc3QgcGFnZXNdXG4gICAqICAgRSAtLT4gRltBZGQgZWxsaXBzZXMgZm9yIHNraXBwZWQgcGFnZXNdXG4gICAqICAgQyAtLT4gR1tSZXR1cm4gcGFnZXMgYXJyYXldXG4gICAqICAgRiAtLT4gR1xuICAgKlxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgZ2V0UGFnZXModG90YWw6IG51bWJlciwgY3VycmVudD86IG51bWJlcik6IEtleVZhbHVlW10ge1xuICAgIGlmICghY3VycmVudCkgY3VycmVudCA9IHRoaXMuY3VycmVudDtcblxuICAgIGNvbnN0IHBhZ2VzOiBLZXlWYWx1ZVtdID0gW107XG5cbiAgICBmdW5jdGlvbiBnZXRQYWdlKGluZGV4OiBudW1iZXIgfCBudWxsLCB0ZXh0ID0gJycsIGNsYXp6ID0gJ2J1dHRvbicpOiB2b2lkIHtcbiAgICAgICAgaWYgKHBhZ2VzLnNvbWUoaXRlbSA9PiBpdGVtWydpbmRleCddID09PSBpbmRleCkpIHJldHVybjtcbiAgICAgICAgcGFnZXMucHVzaCh7IGluZGV4LCB0ZXh0OiBpbmRleCAhPSBudWxsID8gaW5kZXgudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpIDogdGV4dCwgY2xhc3M6IGNsYXp6IH0pO1xuICAgIH1cblxuICAgIGlmICh0b3RhbCA8PSA1KSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRvdGFsOyBpKyspIGdldFBhZ2UoaSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFkaWNpb25hIG9zIGRvaXMgcHJpbWVpcm9zXG4gICAgICBnZXRQYWdlKDEpO1xuICAgICAgZ2V0UGFnZSgyKTtcblxuICAgICAgLy8gQWRpY2lvbmEgXCIuLi5cIiBlbnRyZSBvcyBibG9jb3NcbiAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQgPiAzKSBnZXRQYWdlKG51bGwsICcuLi4nKTtcblxuICAgICAgLy8gQWRpY2lvbmEgYSBww6FnaW5hIGF0dWFsIChzZSBlc3RpdmVyIG5vIG1laW8pXG4gICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50ID4gMiAmJiBjdXJyZW50IDwgdG90YWwgLSAxKSBnZXRQYWdlKGN1cnJlbnQpO1xuXG4gICAgICAvLyBBZGljaW9uYSBcIi4uLlwiIGVudHJlIG9zIGJsb2Nvc1xuICAgICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudCA8IHRvdGFsIC0gMikgZ2V0UGFnZShudWxsLCAnLi4uJyAsICdzZXBhcmF0b3InKTtcblxuICAgICAgLy8gQWRpY2lvbmEgb3MgZG9pcyDDumx0aW1vc1xuICAgICAgZ2V0UGFnZSh0b3RhbCAtIDEpO1xuICAgICAgZ2V0UGFnZSh0b3RhbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBjdXJyZW50IGFjdGl2ZSBwYWdlIG51bWJlci5cbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgY3VycmVudCBwYWdlIG51bWJlciB0aGF0IGlzIGFjdGl2ZSBpbiB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnQuXG4gICAqIFRoaXMgbWV0aG9kIHByb3ZpZGVzIGEgd2F5IHRvIGFjY2VzcyB0aGUgY3VycmVudCBwYWdlIHN0YXRlIGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgY3VycmVudCBwYWdlIG51bWJlclxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgZ2V0Q3VycmVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE5hdmlnYXRlcyB0byB0aGUgbmV4dCBwYWdlLlxuICAgKiBAc3VtbWFyeSBJbmNyZW1lbnRzIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIGlmIG5vdCBhdCB0aGUgbGFzdCBwYWdlIGFuZCB0cmlnZ2Vyc1xuICAgKiB0aGUgY2xpY2sgZXZlbnQgaGFuZGxlciB3aXRoICduZXh0JyBkaXJlY3Rpb24uIFRoaXMgbWV0aG9kIGlzIHR5cGljYWxseSBjYWxsZWRcbiAgICogd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlIFwibmV4dFwiIGJ1dHRvbiBpbiB0aGUgcGFnaW5hdGlvbiBVSS5cbiAgICpcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlclxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKlxuICAgKiAgIFUtPj5QOiBDbGljayBuZXh0IGJ1dHRvblxuICAgKiAgIFAtPj5QOiBuZXh0KClcbiAgICogICBhbHQgcGFnZSA8PSBtYXggcGFnZXNcbiAgICogICAgIFAtPj5QOiBJbmNyZW1lbnQgY3VycmVudCBwYWdlXG4gICAqICAgICBQLT4+UDogaGFuZGxlQ2xpY2soJ25leHQnKVxuICAgKiAgIGVuZFxuICAgKlxuICAgKiBAbWVtYmVyT2YgUGFnaW5hdGlvbkNvbXBvbmVudFxuICAgKi9cbiAgbmV4dCgpOiB2b2lkIHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5jdXJyZW50ICsgMTtcbiAgICBpZihwYWdlIDw9IE9iamVjdC5rZXlzKHRoaXMucGFnZXMpPy5sZW5ndGggfHwgMCkge1xuICAgICAgdGhpcy5jdXJyZW50ID0gcGFnZTtcbiAgICAgIHRoaXMuaGFuZGxlQ2xpY2soJ25leHQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE5hdmlnYXRlcyB0byB0aGUgcHJldmlvdXMgcGFnZS5cbiAgICogQHN1bW1hcnkgRGVjcmVtZW50cyB0aGUgY3VycmVudCBwYWdlIG51bWJlciBpZiBub3QgYXQgdGhlIGZpcnN0IHBhZ2UgYW5kIHRyaWdnZXJzXG4gICAqIHRoZSBjbGljayBldmVudCBoYW5kbGVyIHdpdGggJ3ByZXZpb3VzJyBkaXJlY3Rpb24uIFRoaXMgbWV0aG9kIGlzIHR5cGljYWxseSBjYWxsZWRcbiAgICogd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlIFwicHJldmlvdXNcIiBidXR0b24gaW4gdGhlIHBhZ2luYXRpb24gVUkuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICpcbiAgICogICBVLT4+UDogQ2xpY2sgcHJldmlvdXMgYnV0dG9uXG4gICAqICAgUC0+PlA6IHByZXZpb3VzKClcbiAgICogICBhbHQgcGFnZSA+IDBcbiAgICogICAgIFAtPj5QOiBEZWNyZW1lbnQgY3VycmVudCBwYWdlXG4gICAqICAgICBQLT4+UDogaGFuZGxlQ2xpY2soJ3ByZXZpb3VzJylcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIHByZXZpb3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmN1cnJlbnQgLSAxO1xuICAgIGlmKHBhZ2UgPiAwKSB7XG4gICAgICB0aGlzLmN1cnJlbnQgPSBwYWdlO1xuICAgICAgdGhpcy5oYW5kbGVDbGljaygncHJldmlvdXMnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE5hdmlnYXRlcyB0byBhIHNwZWNpZmljIHBhZ2UgbnVtYmVyLlxuICAgKiBAc3VtbWFyeSBVcGRhdGVzIHRoZSBjdXJyZW50IHBhZ2UgdG8gdGhlIHNwZWNpZmllZCBwYWdlIG51bWJlciBhbmQgdHJpZ2dlcnNcbiAgICogdGhlIGNsaWNrIGV2ZW50IGhhbmRsZXIgd2l0aCB0aGUgYXBwcm9wcmlhdGUgZGlyZWN0aW9uLiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHlcbiAgICogY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIGRpcmVjdGx5IG9uIGEgcGFnZSBudW1iZXIgaW4gdGhlIHBhZ2luYXRpb24gVUkuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbH0gcGFnZSAtIFRoZSBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0b1xuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYWdpbmF0aW9uQ29tcG9uZW50XG4gICAqXG4gICAqICAgVS0+PlA6IENsaWNrIHBhZ2UgbnVtYmVyXG4gICAqICAgUC0+PlA6IG5hdmlnYXRlKHBhZ2UpXG4gICAqICAgYWx0IHBhZ2UgaXMgbm90IG51bGwgYW5kIGRpZmZlcmVudCBmcm9tIGN1cnJlbnRcbiAgICogICAgIFAtPj5QOiBEZXRlcm1pbmUgZGlyZWN0aW9uIChuZXh0L3ByZXZpb3VzKVxuICAgKiAgICAgUC0+PlA6IGhhbmRsZUNsaWNrKGRpcmVjdGlvbiwgcGFnZSlcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFBhZ2luYXRpb25Db21wb25lbnRcbiAgICovXG4gIG5hdmlnYXRlKHBhZ2U6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICBpZihwYWdlICE9PSBudWxsICYmIHRoaXMuY3VycmVudCAhPT0gcGFnZSBhcyBudW1iZXIpXG4gICAgICB0aGlzLmhhbmRsZUNsaWNrKHBhZ2UgPiB0aGlzLmN1cnJlbnQgPyAnbmV4dCcgOiAncHJldmlvdXMnLCBwYWdlKTtcbiAgfVxufVxuIiwiIDxkaXYgW2lkXT1cInVpZFwiIGNsYXNzPVwiZGNmLXBhZ2luYXRvci1jb250YWluZXIgZGNmLWZsZXggZGNmLWZsZXgtY2VudGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkY2Ytd2lkdGgtMS0xXCI+XG4gICAgPGRpdiBjbGFzcz1cImRjZi1wYWdpbmF0aW9uLXJlc3VtZVwiIFtpbm5lckhUTUxdPVwibG9jYWxlICsgJy5yZXN1bWUnIHwgdHJhbnNsYXRlOiB7dmFsdWUwOiBjdXJyZW50LCB2YWx1ZTE6IGxhc3R9XCI+PC9kaXY+XG4gICAgPGRpdiAjcGFnaW5hdGlvbkNvbXBvbmVudCBjbGFzcz1cImRjZi1wYWdpbmF0aW9uIGRjZi1mbGV4LWNlbnRlclwiPlxuICAgICAgPGRpdlxuICAgICAgICBhcmlhLWxhYmVsPVwicHJldmlvdXNcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAoY2xpY2spPVwicHJldmlvdXMoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cInByZXZpb3VzKClcIiBbY2xhc3MuZGNmLWRpc2FibGVkXT1cImN1cnJlbnQgPT09IDFcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWJhY2stb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBmb3IocGFnZSBvZiBwYWdlczsgdHJhY2sgcGFnZSkge1xuICAgICAgICA8ZGl2IHRhYmluZGV4PVwiMFwiIFtjbGFzc109XCJwYWdlWydjbGFzcyddXCIgKGNsaWNrKT1cIm5hdmlnYXRlKHBhZ2VbJ2luZGV4J10pXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJuYXZpZ2F0ZShwYWdlWydpbmRleCddKVwiXG4gICAgICAgICAgW2NsYXNzLmRjZi1hY3RpdmVdPVwiY3VycmVudCA9PT0gcGFnZVsnaW5kZXgnXVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnZS1pdGVtXCI+e3sgcGFnZVsndGV4dCddIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxkaXZcbiAgICAgICAgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm5leHQoKVwiXG4gICAgICAgIFtjbGFzcy5kY2YtZGlzYWJsZWRdPVwiY3VycmVudCA9PT0gbGFzdFwiPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tZm9yd2FyZC1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
2
|
import { windowEventEmitter } from '../../helpers/utils';
|
|
3
|
-
import { ForAngularModule } from '../../for-angular.module';
|
|
4
3
|
import { stringToBoolean } from '../../helpers/utils';
|
|
5
4
|
import { NgxBaseComponent } from '../../engine/NgxBaseComponent';
|
|
6
5
|
import { IonSearchbar } from '@ionic/angular/standalone';
|
|
7
6
|
import * as allIcons from 'ionicons/icons';
|
|
8
7
|
import { addIcons } from 'ionicons';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common";
|
|
11
9
|
/**
|
|
12
10
|
* @description Searchbar component for Angular applications.
|
|
13
11
|
* @summary The SearchbarComponent provides a highly customizable search input field with comprehensive
|
|
@@ -434,12 +432,12 @@ export class SearchbarComponent extends NgxBaseComponent {
|
|
|
434
432
|
preventChange(event) {
|
|
435
433
|
event.preventDefault();
|
|
436
434
|
}
|
|
437
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
438
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
435
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
436
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SearchbarComponent, isStandalone: true, selector: "ngx-decaf-searchbar", inputs: { autocomplete: "autocomplete", autocorrect: "autocorrect", animated: "animated", buttonCancelText: "buttonCancelText", clearIcon: "clearIcon", color: "color", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", inputmode: "inputmode", placeholder: "placeholder", searchIcon: "searchIcon", showCancelButton: "showCancelButton", showClearButton: "showClearButton", spellcheck: "spellcheck", type: "type", value: "value", queryKeys: "queryKeys", isVisible: "isVisible", wrapper: "wrapper", wrapperColor: "wrapperColor", emitEventToWindow: "emitEventToWindow" }, outputs: { searchEvent: "searchEvent" }, host: { listeners: { "window:toggleSearchbarVisibility": "handleToggleVisibility($event)" } }, usesInheritance: true, ngImport: i0, template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionChange)=\"handleChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n", styles: [""], dependencies: [{ kind: "component", type: IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }] }); }
|
|
439
437
|
}
|
|
440
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
438
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchbarComponent, decorators: [{
|
|
441
439
|
type: Component,
|
|
442
|
-
args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [
|
|
440
|
+
args: [{ selector: 'ngx-decaf-searchbar', standalone: true, imports: [IonSearchbar], template: "<ion-searchbar\n [id]=\"uid\"\n ngClass=\"dcf-searchbar\"\n name=\"search\"\n mode=\"ios\"\n (keyup.enter)=\"preventChange($event)\"\n (ionChange)=\"handleChange($event)\"\n (ionInput)=\"handleInput($event)\"\n (ionClear)=\"handleClear()\"\n [autocomplete]=\"autocomplete\"\n [showCancelButton]=\"showCancelButton\"\n [cancelButtonText]=\"buttonCancelText\"\n [clearIcon]=\"clearIcon\"\n [color]=\"color\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n [enterkeyhint]=\"enterkeyhint\"\n [inputmode]=\"inputmode\"\n [placeholder]=\"placeholder\"\n [searchIcon]=\"searchIcon\"\n [showClearButton]=\"showClearButton\"\n [spellcheck]=\"spellcheck\"\n [type]=\"type\"\n #component\n />\n" }]
|
|
443
441
|
}], ctorParameters: () => [], propDecorators: { autocomplete: [{
|
|
444
442
|
type: Input
|
|
445
443
|
}], autocorrect: [{
|
|
@@ -490,4 +488,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
490
488
|
type: HostListener,
|
|
491
489
|
args: ["window:toggleSearchbarVisibility", ['$event']]
|
|
492
490
|
}] } });
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUcsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7QUFFcEM7Ozs7Ozs7Ozs7OztHQVlHO0FBUUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQTRRdEQ7Ozs7Ozs7T0FPRztJQUNIO1FBQ0UsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFuUjlCOzs7OztXQUtHO1FBQ0gsV0FBVztRQUNYLGtEQUFrRDtRQUVsRDs7Ozs7Ozs7OztXQVVHO1FBRUgsaUJBQVksR0FBa0MsS0FBSyxDQUFDO1FBRXBEOzs7Ozs7Ozs7V0FTRztRQUVILGdCQUFXLEdBQWlCLEtBQUssQ0FBQztRQUVsQzs7Ozs7Ozs7O1dBU0c7UUFFSCxhQUFRLEdBQW9CLElBQUks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QkFjTixRQUFRO3NCQURQLEtBQUs7Z0JBZU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBV04sU0FBUztzQkFEUixLQUFLO2dCQVdOLEtBQUs7c0JBREosS0FBSztnQkFXTixRQUFRO3NCQURQLEtBQUs7Z0JBV04sUUFBUTtzQkFEUCxLQUFLO2dCQVdOLFlBQVk7c0JBRFgsS0FBSztnQkFXTixTQUFTO3NCQURSLEtBQUs7Z0JBV04sV0FBVztzQkFEVixLQUFLO2dCQVdOLFVBQVU7c0JBRFQsS0FBSztnQkFXTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBV04sVUFBVTtzQkFEVCxLQUFLO2dCQVdOLElBQUk7c0JBREgsS0FBSztnQkFXTixLQUFLO3NCQURKLEtBQUs7Z0JBV04sU0FBUztzQkFEUixLQUFLO2dCQVdOLFNBQVM7c0JBRFIsS0FBSztnQkFXTixPQUFPO3NCQUROLEtBQUs7Z0JBV04sWUFBWTtzQkFEWCxLQUFLO2dCQVdOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkF3Qk4sV0FBVztzQkFEVixNQUFNO2dCQWdGUCxzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsICBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVUeXBlcywgUHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nT3JCb29sZWFuIH0gZnJvbSAnLi4vLi4vZW5naW5lL3R5cGVzJztcbmltcG9ydCB7d2luZG93RXZlbnRFbWl0dGVyfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IEZvckFuZ3VsYXJNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3ItYW5ndWxhci5tb2R1bGUnO1xuaW1wb3J0IHsgc3RyaW5nVG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vaGVscGVycy91dGlscyc7XG5pbXBvcnQgeyBOZ3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZW5naW5lL05neEJhc2VDb21wb25lbnQnO1xuaW1wb3J0IHsgSW9uU2VhcmNoYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgKiBhcyBhbGxJY29ucyBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU2VhcmNoYmFyIGNvbXBvbmVudCBmb3IgQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBAc3VtbWFyeSBUaGUgU2VhcmNoYmFyQ29tcG9uZW50IHByb3ZpZGVzIGEgaGlnaGx5IGN1c3RvbWl6YWJsZSBzZWFyY2ggaW5wdXQgZmllbGQgd2l0aCBjb21wcmVoZW5zaXZlXG4gKiBvcHRpb25zIGZvciBhcHBlYXJhbmNlLCBiZWhhdmlvciwgYW5kIGludGVyYWN0aW9uIHBhdHRlcm5zLiBJdCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgdG8gaW5oZXJpdFxuICogY29tbW9uIGZ1bmN0aW9uYWxpdHkgYW5kIGltcGxlbWVudHMgT25Jbml0IGZvciBwcm9wZXIgbGlmZWN5Y2xlIG1hbmFnZW1lbnQuIFRoaXMgY29tcG9uZW50IGZlYXR1cmVzXG4gKiBkZWJvdW5jZWQgaW5wdXQgaGFuZGxpbmcsIHdpbmRvdyBldmVudCBpbnRlZ3JhdGlvbiwgdmlzaWJpbGl0eSBjb250cm9scywgYW5kIGV4dGVuc2l2ZSBzdHlsaW5nIG9wdGlvbnMuXG4gKiBJdCdzIGRlc2lnbmVkIHRvIGJlIGZsZXhpYmxlIGFuZCBhZGFwdGFibGUgdG8gZGlmZmVyZW50IHNlYXJjaCByZXF1aXJlbWVudHMgd2l0aGluIG1vZGVybiB3ZWIgYXBwbGljYXRpb25zLlxuICpcbiAqIEBjbGFzcyBTZWFyY2hiYXJDb21wb25lbnRcbiAqIEBleHRlbmRzIHtOZ3hCYXNlQ29tcG9uZW50fVxuICogQGltcGxlbWVudHMge09uSW5pdH1cbiAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWRlY2FmLXNlYXJjaGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2hiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2hiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ZvckFuZ3VsYXJNb2R1bGUsIElvblNlYXJjaGJhcl0sXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaGJhckNvbXBvbmVudCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIG1vZGUgb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHN1bW1hcnkgRGV0ZXJtaW5lcyB0aGUgdmlzdWFsIHN0eWxlIG9mIHRoZSBzZWFyY2hiYXIsIGVpdGhlciBpT1Mgb3IgTWF0ZXJpYWwgRGVzaWduLlxuICAgKiBAdHlwZSB7XCJpb3NcIiB8IFwibWRcIiB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJpb3NcIlxuICAgKi9cbiAgLy8gQElucHV0KClcbiAgLy8gb3ZlcnJpZGUgbW9kZTogXCJpb3NcIiB8IFwibWRcIiB8IHVuZGVmaW5lZCA9IFwibWRcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBhdXRvY29tcGxldGUgYXR0cmlidXRlIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgd2hldGhlciB0aGUgYnJvd3NlciBzaG91bGQgZW5hYmxlIGF1dG9jb21wbGV0ZSBmb3IgdGhlIGlucHV0IGZpZWxkLlxuICAgKiBUaGlzIGNvbnRyb2xzIHRoZSBicm93c2VyJ3MgYnVpbHQtaW4gYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHksIGhlbHBpbmcgdXNlcnMgYnlcbiAgICogc3VnZ2VzdGluZyBwcmV2aW91c2x5IGVudGVyZWQgdmFsdWVzIG9yIGNvbW1vbiBpbnB1dHMuIFNldHRpbmcgdG8gJ29mZicgZGlzYWJsZXNcbiAgICogdGhpcyBmZWF0dXJlIGZvciBwcml2YWN5IG9yIHNlY3VyaXR5IHJlYXNvbnMuXG4gICAqXG4gICAqIEB0eXBlIHtBdXRvY29tcGxldGVUeXBlcyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJvZmZcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBhdXRvY29tcGxldGU6IEF1dG9jb21wbGV0ZVR5cGVzIHwgdW5kZWZpbmVkID0gXCJvZmZcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBhdXRvY29ycmVjdCBhdHRyaWJ1dGUgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHdoZXRoZXIgdGhlIGJyb3dzZXIgc2hvdWxkIGVuYWJsZSBhdXRvY29ycmVjdCBmdW5jdGlvbmFsaXR5IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhlIGJyb3dzZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGNvcnJlY3Qgc3BlbGxpbmcgbWlzdGFrZXMgYXMgdGhlIHVzZXIgdHlwZXMuXG4gICAqIFRoaXMgaXMgdHlwaWNhbGx5IGRpc2FibGVkIGZvciBzZWFyY2ggZmllbGRzIHRvIHByZXNlcnZlIHRoZSB1c2VyJ3MgZXhhY3Qgc2VhcmNoIHRlcm1zLlxuICAgKlxuICAgKiBAdHlwZSB7XCJvblwiIHwgXCJvZmZcIn1cbiAgICogQGRlZmF1bHQgXCJvZmZcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBhdXRvY29ycmVjdDogXCJvblwiIHwgXCJvZmZcIiA9IFwib2ZmXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBzZWFyY2hiYXIgc2hvdWxkIGFuaW1hdGUuXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHRoZSBhbmltYXRpb24gYmVoYXZpb3Igb2YgdGhlIHNlYXJjaGJhciBkdXJpbmcgYXBwZWFyYW5jZSBhbmQgZGlzYXBwZWFyYW5jZSB0cmFuc2l0aW9ucy5cbiAgICogV2hlbiBlbmFibGVkLCB0aGUgc2VhcmNoYmFyIHdpbGwgdXNlIHNtb290aCBhbmltYXRpb25zIGZvciBzdGF0ZSBjaGFuZ2VzLCBwcm92aWRpbmcgYSBtb3JlXG4gICAqIHBvbGlzaGVkIHVzZXIgZXhwZXJpZW5jZS4gVGhpcyBhZmZlY3RzIHRyYW5zaXRpb25zIGxpa2Ugc2hvd2luZy9oaWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBhbmltYXRlZDogU3RyaW5nT3JCb29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB0ZXh0IGZvciB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBsb2NhbGl6ZWQgdGV4dCB0byBiZSBkaXNwbGF5ZWQgb24gdGhlIGNhbmNlbCBidXR0b24gb2YgdGhlIHNlYXJjaGJhci5cbiAgICogVGhpcyB0ZXh0IGFwcGVhcnMgd2hlbiB0aGUgY2FuY2VsIGJ1dHRvbiBpcyB2aXNpYmxlIGFuZCBwcm92aWRlcyB1c2VycyB3aXRoIGEgY2xlYXJcbiAgICogaW5kaWNhdGlvbiBvZiBob3cgdG8gZGlzbWlzcyB0aGUgc2VhcmNoIGludGVyZmFjZS4gVGhlIHRleHQgY2FuIGJlIGN1c3RvbWl6ZWQgZm9yXG4gICAqIGRpZmZlcmVudCBsYW5ndWFnZXMgYW5kIGN1bHR1cmFsIGNvbnRleHRzLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCBcIkNhbmNlbFwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGJ1dHRvbkNhbmNlbFRleHQ6IHN0cmluZyA9IFwiQ2FuY2VsXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgaWNvbiB0byB1c2UgZm9yIHRoZSBjbGVhciBidXR0b24uXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgaWNvbiB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoZSBjbGVhciBidXR0b24gb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsZWFySWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGNvbG9yIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgY29sb3IgdGhlbWUgdG8gYmUgYXBwbGllZCB0byB0aGUgc2VhcmNoYmFyLlxuICAgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgY29sb3I6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0byB3YWl0IHRvIHRyaWdnZXIgdGhlIGBpb25DaGFuZ2VgIGV2ZW50IGFmdGVyIGVhY2gga2V5c3Ryb2tlLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB0aGUgZGVib3VuY2UgdGltZSBmb3IgdGhlIHNlYXJjaCBpbnB1dCB0byByZWR1Y2UgdGhlIGZyZXF1ZW5jeSBvZiBldmVudCBlbWlzc2lvbnMuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDUwMFxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBkZWJvdW5jZTogbnVtYmVyID0gNTAwO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgc2VhcmNoYmFyIGlzIGRpc2FibGVkLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBzZWFyY2hiYXIgaXMgaW50ZXJhY3RpdmUgb3Igbm90LlxuICAgKiBAdHlwZSB7U3RyaW5nT3JCb29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBkaXNhYmxlZDogU3RyaW5nT3JCb29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBIGhpbnQgdG8gdGhlIGJyb3dzZXIgZm9yIHdoaWNoIGVudGVyIGtleSB0byBkaXNwbGF5LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgYWN0aW9uIHRoYXQgd2lsbCBiZSBwZXJmb3JtZWQgd2hlbiB0aGUgZW50ZXIga2V5IGlzIHByZXNzZWQuXG4gICAqIEB0eXBlIHtcInNlYXJjaFwiIHwgXCJlbnRlclwiIHwgXCJkb25lXCIgfCBcImdvXCIgfCBcIm5leHRcIiB8IFwicHJldmlvdXNcIiB8IFwic2VuZFwiIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCBcImVudGVyXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZW50ZXJrZXloaW50OiBcInNlYXJjaFwiIHwgXCJlbnRlclwiIHwgXCJkb25lXCIgfCBcImdvXCIgfCBcIm5leHRcIiB8IFwicHJldmlvdXNcIiB8IFwic2VuZFwiIHwgdW5kZWZpbmVkID0gXCJlbnRlclwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGlucHV0IG1vZGUgZm9yIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgbWlnaHQgYmUgZW50ZXJlZCBieSB0aGUgdXNlciB3aGlsZSBlZGl0aW5nIHRoZSBlbGVtZW50IG9yIGl0cyBjb250ZW50cy5cbiAgICogQHR5cGUge1widGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwibm9uZVwiIHwgXCJlbWFpbFwiIHwgXCJ0ZWxcIiB8IFwidXJsXCIgfCBcIm51bWVyaWNcIiB8IFwiZGVjaW1hbFwiIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCAnc2VhcmNoJ1xuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBpbnB1dG1vZGU6IFwidGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwibm9uZVwiIHwgXCJlbWFpbFwiIHwgXCJ0ZWxcIiB8IFwidXJsXCIgfCBcIm51bWVyaWNcIiB8IFwiZGVjaW1hbFwiIHwgdW5kZWZpbmVkID0gJ3NlYXJjaCc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgcGxhY2Vob2xkZXIgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgcGxhY2Vob2xkZXIgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNlYXJjaGJhciB3aGVuIGl0J3MgZW1wdHkuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0IFwiU2VhcmNoXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSBcIlNlYXJjaFwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGljb24gdG8gdXNlIGZvciB0aGUgc2VhcmNoIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBpY29uIHRvIGJlIGRpc3BsYXllZCBmb3IgdGhlIHNlYXJjaCBidXR0b24gb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJzZWFyY2gtb3V0bGluZVwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNlYXJjaEljb246IHN0cmluZyB8IHVuZGVmaW5lZCA9IFwic2VhcmNoLW91dGxpbmVcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZW4gdG8gc2hvdyB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNhbmNlbCBidXR0b24gaW4gZGlmZmVyZW50IHN0YXRlcyBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAdHlwZSB7XCJhbHdheXNcIiB8IFwiZm9jdXNcIiB8IFwibmV2ZXJcIn1cbiAgICogQGRlZmF1bHQgXCJuZXZlclwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNob3dDYW5jZWxCdXR0b246IFwiYWx3YXlzXCIgfCBcImZvY3VzXCIgfCBcIm5ldmVyXCIgPSBcIm5ldmVyXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGVuIHRvIHNob3cgdGhlIGNsZWFyIGJ1dHRvbi5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNsZWFyIGJ1dHRvbiBpbiBkaWZmZXJlbnQgc3RhdGVzIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEB0eXBlIHtcImFsd2F5c1wiIHwgXCJmb2N1c1wiIHwgXCJuZXZlclwifVxuICAgKiBAZGVmYXVsdCBcImZvY3VzXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgc2hvd0NsZWFyQnV0dG9uOiBcImFsd2F5c1wiIHwgXCJmb2N1c1wiIHwgXCJuZXZlclwiID0gXCJmb2N1c1wiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBlbmFibGUgc3BlbGxjaGVjayBvbiB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBicm93c2VyJ3Mgc3BlbGxjaGVjayBmZWF0dXJlIGlzIGVuYWJsZWQgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBzcGVsbGNoZWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiBpbnB1dCB0byB1c2UgZm9yIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBjb250cm9sIHRvIGRpc3BsYXkgZm9yIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEB0eXBlIHtcIm51bWJlclwiIHwgXCJ0ZXh0XCIgfCBcInNlYXJjaFwiIHwgXCJlbWFpbFwiIHwgXCJwYXNzd29yZFwiIHwgXCJ0ZWxcIiB8IFwidXJsXCIgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwic2VhcmNoXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgdHlwZTogXCJudW1iZXJcIiB8IFwidGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwiZW1haWxcIiB8IFwicGFzc3dvcmRcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgdW5kZWZpbmVkID0gXCJzZWFyY2hcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSB2YWx1ZSBvZiB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHR5cGUge251bGwgfCBzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwiXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgdmFsdWU6IG51bGwgfCBzdHJpbmcgfCB1bmRlZmluZWQgPSBcIlwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleXMgdG8gdXNlIGZvciBxdWVyeWluZy5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBrZXlzIHRvIGJlIHVzZWQgd2hlbiBwZXJmb3JtaW5nIGEgc2VhcmNoIHF1ZXJ5LlxuICAgKiBAdHlwZSB7c3RyaW5nIHwgc3RyaW5nW119XG4gICAqIEBkZWZhdWx0IFwibmFtZVwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHF1ZXJ5S2V5czogc3RyaW5nIHwgc3RyaW5nW10gPSBcIm5hbWVcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHNlYXJjaGJhciBpcyB2aXNpYmxlLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgc2VhcmNoYmFyIGNvbXBvbmVudC5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgaXNWaXNpYmxlOiBTdHJpbmdPckJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gd3JhcCB0aGUgc2VhcmNoYmFyIGluIGEgY29udGFpbmVyLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBzZWFyY2hiYXIgaXMgd3JhcHBlZCBpbiBhbiBhZGRpdGlvbmFsIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKiBAdHlwZSB7U3RyaW5nT3JCb29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICB3cmFwcGVyOiBTdHJpbmdPckJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjb2xvciBvZiB0aGUgd3JhcHBlci5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBjb2xvciB0aGVtZSB0byBiZSBhcHBsaWVkIHRvIHRoZSB3cmFwcGVyIGNvbnRhaW5lciwgaWYgcHJlc2VudC5cbiAgICogQHR5cGUge1ByZWRlZmluZWRDb2xvcnN9XG4gICAqIEBkZWZhdWx0IFwicHJpbWFyeVwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHdyYXBwZXJDb2xvcjogUHJlZGVmaW5lZENvbG9ycyA9IFwicHJpbWFyeVwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBlbWl0IGV2ZW50cyB0byB0aGUgd2luZG93LlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHNlYXJjaCBldmVudHMgc2hvdWxkIGJlIGVtaXR0ZWQgYXMgd2luZG93IGV2ZW50cy5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBlbWl0RXZlbnRUb1dpbmRvdzogU3RyaW5nT3JCb29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IFN0b3JlcyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VhcmNoYmFyIGlucHV0IGZvciBpbnRlcm5hbCBzdGF0ZSBtYW5hZ2VtZW50IGFuZCBwcm9jZXNzaW5nLlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gdHJhY2sgdGhlIHNlYXJjaCB0ZXJtIHRocm91Z2hvdXQgdGhlIGNvbXBvbmVudCdzIGxpZmVjeWNsZSBhbmRcbiAgICogY29vcmRpbmF0ZSBiZXR3ZWVuIGRpZmZlcmVudCBldmVudCBoYW5kbGVycyBhbmQgbWV0aG9kcy5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgY3VycmVudFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBlbWl0dGVyIGZvciBzZWFyY2ggZXZlbnRzLlxuICAgKiBAc3VtbWFyeSBFbWl0cyBzZWFyY2ggZXZlbnRzIHdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIHNlYXJjaGJhciwgcHJvdmlkaW5nIGEgcmVhY3RpdmVcbiAgICogaW50ZXJmYWNlIGZvciBwYXJlbnQgY29tcG9uZW50cyB0byByZXNwb25kIHRvIHNlYXJjaCBhY3Rpb25zLiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCBieVxuICAgKiB2YXJpb3VzIHVzZXIgaW50ZXJhY3Rpb25zIGluY2x1ZGluZyB0eXBpbmcsIGNsZWFyaW5nLCBhbmQgZXhwbGljaXQgc2VhcmNoIGFjdGlvbnMuXG4gICAqXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8c3RyaW5nPn1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHNlYXJjaEV2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBTZWFyY2hiYXJDb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIHRoZSBTZWFyY2hiYXJDb21wb25lbnQgd2l0aCBhbGwgbmVjZXNzYXJ5IGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbnMuXG4gICAqIER1cmluZyBpbml0aWFsaXphdGlvbiwgaXQgYWRkcyBhbGwgYXZhaWxhYmxlIElvbmljb25zIHRvIHRoZSBhcHBsaWNhdGlvbidzIGljb24gcmVnaXN0cnksXG4gICAqIGVuc3VyaW5nIHRoYXQgc2VhcmNoIGFuZCBjbGVhciBpY29ucyBhcmUgYXZhaWxhYmxlIGZvciB1c2UgdGhyb3VnaG91dCB0aGUgY29tcG9uZW50J3MgbGlmZWN5Y2xlLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignU2VhcmNoYmFyQ29tcG9uZW50Jyk7XG4gICAgYWRkSWNvbnMoYWxsSWNvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBjb21wb25lbnQgYWZ0ZXIgQW5ndWxhciBmaXJzdCBkaXNwbGF5cyB0aGUgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzLlxuICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBlc3NlbnRpYWwgY29tcG9uZW50IGluaXRpYWxpemF0aW9uIGJ5IGNvbnZlcnRpbmcgc3RyaW5nLWJhc2VkIGJvb2xlYW4gaW5wdXRzXG4gICAqIHRvIHByb3BlciBib29sZWFuIHZhbHVlcyB1c2luZyB0aGUgc3RyaW5nVG9Cb29sZWFuIHV0aWxpdHkuIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCBib29sZWFuXG4gICAqIHByb3BlcnRpZXMgd29yayBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiBob3cgdGhleSB3ZXJlIHBhc3NlZCBmcm9tIHBhcmVudCBjb21wb25lbnRzIG9yIHRlbXBsYXRlcy5cbiAgICpcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQSBhcyBBbmd1bGFyIExpZmVjeWNsZVxuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVdGlsaXR5IEZ1bmN0aW9uc1xuICAgKlxuICAgKiAgIEEtPj5TOiBuZ09uSW5pdCgpXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihlbWl0RXZlbnRUb1dpbmRvdylcbiAgICogICBVLS0+PlM6IGJvb2xlYW4gdmFsdWVcbiAgICogICBTLT4+VTogc3RyaW5nVG9Cb29sZWFuKHdyYXBwZXIpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihpc1Zpc2libGUpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihkaXNhYmxlZClcbiAgICogICBVLS0+PlM6IGJvb2xlYW4gdmFsdWVcbiAgICogICBTLT4+VTogc3RyaW5nVG9Cb29sZWFuKGFuaW1hdGVkKVxuICAgKiAgIFUtLT4+UzogYm9vbGVhbiB2YWx1ZVxuICAgKiAgIE5vdGUgb3ZlciBTOiBDb21wb25lbnQgcmVhZHkgZm9yIGludGVyYWN0aW9uXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdEV2ZW50VG9XaW5kb3cgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5lbWl0RXZlbnRUb1dpbmRvdyk7XG4gICAgdGhpcy53cmFwcGVyID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMud3JhcHBlcik7XG4gICAgdGhpcy5pc1Zpc2libGUgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5pc1Zpc2libGUpO1xuICAgIHRoaXMuZGlzYWJsZWQgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5kaXNhYmxlZCk7XG4gICAgdGhpcy5hbmltYXRlZCA9IHN0cmluZ1RvQm9vbGVhbih0aGlzLmFuaW1hdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyB0aGUgdmlzaWJpbGl0eSB0b2dnbGUgb2YgdGhlIHNlYXJjaGJhciBjb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGdsb2JhbCB3aW5kb3cgZXZlbnRzIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBXaGVuIHRoZSBzZWFyY2hiYXIgYmVjb21lcyB2aXNpYmxlLCBpdCBhdXRvbWF0aWNhbGx5IGZvY3VzZXMgb24gdGhlIGlucHV0IGZpZWxkIGFmdGVyIGEgYnJpZWZcbiAgICogZGVsYXkgdG8gZW5zdXJlIHNtb290aCBhbmltYXRpb24gY29tcGxldGlvbi4gVGhpcyBwcm92aWRlcyBhIHNlYW1sZXNzIHVzZXIgZXhwZXJpZW5jZSBmb3JcbiAgICogc2VhcmNoIGFjdGl2YXRpb24gdGhyb3VnaCBrZXlib2FyZCBzaG9ydGN1dHMgb3IgcHJvZ3JhbW1hdGljIHRyaWdnZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBjdXN0b20gZXZlbnQgdHJpZ2dlcmluZyB0aGUgdmlzaWJpbGl0eSB0b2dnbGUgKHVudXNlZCBidXQgcmVxdWlyZWQgYnkgSG9zdExpc3RlbmVyKVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBXIGFzIFdpbmRvd1xuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgRSBhcyBET00gRWxlbWVudFxuICAgKlxuICAgKiAgIFctPj5TOiB0b2dnbGVTZWFyY2hiYXJWaXNpYmlsaXR5IGV2ZW50XG4gICAqICAgUy0+PlM6IGhhbmRsZVRvZ2dsZVZpc2liaWxpdHkoKVxuICAgKiAgIFMtPj5TOiBUb2dnbGUgaXNWaXNpYmxlIHN0YXRlXG4gICAqICAgYWx0IGlzVmlzaWJsZSBpcyB0cnVlIEFORCBjb21wb25lbnQgZXhpc3RzXG4gICAqICAgICBTLT4+Uzogc2V0VGltZW91dCgxMjVtcylcbiAgICogICAgIFMtPj5FOiBzZXRGb2N1cygpIG9uIGlvbi1zZWFyY2hiYXJcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzp0b2dnbGVTZWFyY2hiYXJWaXNpYmlsaXR5XCIsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVRvZ2dsZVZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGU7XG4gICAgaWYodGhpcy5pc1Zpc2libGUgJiYgISF0aGlzLmNvbXBvbmVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgKHRoaXMuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElvblNlYXJjaGJhckVsZW1lbnQpLnNldEZvY3VzKCk7XG4gICAgICB9LCAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVHJpZ2dlcnMgYSBtYW51YWwgc2VhcmNoIGV2ZW50IHdpdGggdGhlIGN1cnJlbnQgc2VhcmNoYmFyIHZhbHVlLlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgZnJvbSB0aGUgc2VhcmNoYmFyJ3MgbmF0aXZlIGVsZW1lbnQgYW5kIGVtaXRzIGl0IGFzIGEgc2VhcmNoIGV2ZW50LlxuICAgKiBUaGlzIG1ldGhvZCBwcm92aWRlcyBhIHByb2dyYW1tYXRpYyB3YXkgdG8gdHJpZ2dlciBzZWFyY2ggZnVuY3Rpb25hbGl0eSwgdXNlZnVsIGZvciBleHRlcm5hbFxuICAgKiBjb21wb25lbnRzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyB0aGF0IG5lZWQgdG8gZXhlY3V0ZSBzZWFyY2ggd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHNlYXJjaGJhciBpdHNlbGYuXG4gICAqXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIHNlYXJjaCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jb21wb25lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW9uU2VhcmNoYmFyRWxlbWVudDtcbiAgICB0aGlzLnNlYXJjaEV2ZW50LmVtaXQoZWxlbWVudC52YWx1ZSB8fCB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIHZhbHVlIGNoYW5nZXMgaW4gdGhlIHNlYXJjaGJhciBpbnB1dCBmaWVsZC5cbiAgICogQHN1bW1hcnkgUHJvY2Vzc2VzIGNoYW5nZSBldmVudHMgZnJvbSB0aGUgSW9uaWMgc2VhcmNoYmFyIGNvbXBvbmVudCBhbmQgZXh0cmFjdHMgdGhlIG5ldyB2YWx1ZVxuICAgKiB0byBlbWl0IGFzIGEgc2VhcmNoIGV2ZW50LiBUaGlzIG1ldGhvZCBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBmaW5pc2hlcyBlZGl0aW5nIHRoZSBzZWFyY2hiYXJcbiAgICogdmFsdWUsIHByb3ZpZGluZyBhIHdheSB0byByZWFjdCB0byBjb21wbGV0ZWQgaW5wdXQgY2hhbmdlcyByYXRoZXIgdGhhbiByZWFsLXRpbWUgdHlwaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBjaGFuZ2UgZXZlbnQgZnJvbSB0aGUgSW9uaWMgc2VhcmNoYmFyIGNvbnRhaW5pbmcgdGhlIG5ldyB2YWx1ZVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5lbWl0RXZlbnQoZXZlbnQ/LmRldGFpbD8udmFsdWUgPz8gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBjbGVhcmluZyBvZiB0aGUgc2VhcmNoYmFyIGlucHV0IGZpZWxkLlxuICAgKiBAc3VtbWFyeSBFbWl0cyBhbiB1bmRlZmluZWQgdmFsdWUgYXMgYSBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgc2VhcmNoYmFyIGlzIGNsZWFyZWQgYnkgdGhlIHVzZXIuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHR5cGljYWxseSB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhlIGNsZWFyIGJ1dHRvbiBvciB1c2VzIG90aGVyXG4gICAqIGNsZWFyIG1lY2hhbmlzbXMsIHNpZ25hbGluZyB0aGF0IHRoZSBzZWFyY2ggc2hvdWxkIGJlIHJlc2V0IG9yIGNsZWFyZWQuXG4gICAqXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGhhbmRsZUNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdEV2ZW50KHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgcmVhbC10aW1lIGlucHV0IGV2ZW50cyBvbiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBQcm9jZXNzZXMgaW5wdXQgZXZlbnRzIGFzIHRoZSB1c2VyIHR5cGVzLCBwcm92aWRpbmcgaW1tZWRpYXRlIGZlZWRiYWNrIGZvciBzZWFyY2ggZnVuY3Rpb25hbGl0eS5cbiAgICogVGhpcyBtZXRob2QgaW1wbGVtZW50cyBzbWFydCBjbGVhcmluZyBiZWhhdmlvciAtIGlmIHRoZSBpbnB1dCBiZWNvbWVzIGVtcHR5LCBpdCBhdXRvbWF0aWNhbGx5XG4gICAqIHRyaWdnZXJzIHRoZSBjbGVhciBoYW5kbGVyLiBPdGhlcndpc2UsIGl0IGVtaXRzIHRoZSBjdXJyZW50IHZhbHVlIGZvciByZWFsLXRpbWUgc2VhcmNoIHN1Z2dlc3Rpb25zXG4gICAqIG9yIGZpbHRlcmluZy4gVGhpcyBlbmFibGVzIHJlc3BvbnNpdmUgc2VhcmNoIGV4cGVyaWVuY2VzIHdpdGggZGVib3VuY2VkIGV2ZW50IGhhbmRsaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBpbnB1dCBldmVudCBmcm9tIHRoZSBJb25pYyBzZWFyY2hiYXIgY29udGFpbmluZyB0aGUgY3VycmVudCB2YWx1ZVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBTIGFzIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IEUgYXMgRXZlbnQgU3lzdGVtXG4gICAqXG4gICAqICAgVS0+PlM6IFR5cGUgaW4gc2VhcmNoYmFyXG4gICAqICAgUy0+PlM6IGhhbmRsZUlucHV0KGV2ZW50KVxuICAgKiAgIFMtPj5TOiBFeHRyYWN0IHZhbHVlIGZyb20gZXZlbnRcbiAgICogICBhbHQgdmFsdWUgaXMgZW1wdHkgb3IgbnVsbFxuICAgKiAgICAgUy0+PlM6IGhhbmRsZUNsZWFyKClcbiAgICogICAgIFMtPj5FOiBFbWl0IHVuZGVmaW5lZFxuICAgKiAgIGVsc2UgdmFsdWUgaGFzIGNvbnRlbnRcbiAgICogICAgIFMtPj5TOiBlbWl0RXZlbnQodmFsdWUpXG4gICAqICAgICBTLT4+RTogRW1pdCBzZWFyY2ggdmFsdWVcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgaGFuZGxlSW5wdXQoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudD8uZGV0YWlsPy52YWx1ZTtcbiAgICBpZighdmFsdWUgfHwgIXZhbHVlPy5sZW5ndGgpXG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVDbGVhcigpO1xuICAgIHRoaXMuZW1pdEV2ZW50KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBibHVyIGV2ZW50cyBvbiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBDdXJyZW50bHkgYW4gZW1wdHkgbWV0aG9kLCBjYW4gYmUgaW1wbGVtZW50ZWQgZm9yIHNwZWNpZmljIGJsdXIgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSB7Q3VzdG9tRXZlbnR9IGV2ZW50IC0gVGhlIGJsdXIgZXZlbnQgZnJvbSB0aGUgc2VhcmNoYmFyXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICAvLyBoYW5kbGVCbHVyKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge31cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEVtaXRzIHNlYXJjaCBldmVudHMgdGhyb3VnaCBtdWx0aXBsZSBjaGFubmVscy5cbiAgICogQHN1bW1hcnkgT3JjaGVzdHJhdGVzIHRoZSBlbWlzc2lvbiBvZiBzZWFyY2ggZXZlbnRzIGJvdGggYXMgY29tcG9uZW50IG91dHB1dCBldmVudHMgYW5kIG9wdGlvbmFsbHlcbiAgICogYXMgZ2xvYmFsIHdpbmRvdyBldmVudHMuIFRoaXMgZHVhbC1jaGFubmVsIGFwcHJvYWNoIGVuYWJsZXMgYm90aCBkaXJlY3QgcGFyZW50LWNoaWxkIGNvbW11bmljYXRpb25cbiAgICogYW5kIGFwcGxpY2F0aW9uLXdpZGUgZXZlbnQgYnJvYWRjYXN0aW5nLCBzdXBwb3J0aW5nIGZsZXhpYmxlIGludGVncmF0aW9uIHBhdHRlcm5zIGFuZCBsb29zZSBjb3VwbGluZ1xuICAgKiBiZXR3ZWVuIGNvbXBvbmVudHMgdGhhdCBuZWVkIHRvIHJlc3BvbmQgdG8gc2VhcmNoIGFjdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFRoZSBzZWFyY2ggdmFsdWUgdG8gZW1pdCBhY3Jvc3MgYWxsIGNvbmZpZ3VyZWQgY2hhbm5lbHNcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgUyBhcyBTZWFyY2hiYXJDb21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBQIGFzIFBhcmVudCBDb21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBXIGFzIFdpbmRvdyBFdmVudCBTeXN0ZW1cbiAgICpcbiAgICogICBTLT4+UzogZW1pdEV2ZW50KHZhbHVlKVxuICAgKiAgIFMtPj5QOiBzZWFyY2hFdmVudC5lbWl0KHZhbHVlKVxuICAgKiAgIGFsdCBlbWl0RXZlbnRUb1dpbmRvdyBpcyB0cnVlXG4gICAqICAgICBTLT4+Vzogd2luZG93RXZlbnRFbWl0dGVyKCdzZWFyY2hiYXJFdmVudCcsIHt2YWx1ZX0pXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGVtaXRFdmVudCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hFdmVudC5lbWl0KHZhbHVlKTtcbiAgICBpZih0aGlzLmVtaXRFdmVudFRvV2luZG93KVxuICAgICAgd2luZG93RXZlbnRFbWl0dGVyKCdzZWFyY2hiYXJFdmVudCcsIHt2YWx1ZTogdmFsdWV9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmV2ZW50cyBkZWZhdWx0IGJlaGF2aW9yIG9mIERPTSBldmVudHMuXG4gICAqIEBzdW1tYXJ5IFV0aWxpdHkgbWV0aG9kIHRvIHByZXZlbnQgdW53YW50ZWQgZGVmYXVsdCBhY3Rpb25zIG9uIERPTSBldmVudHMsIHN1Y2ggYXMgZm9ybSBzdWJtaXNzaW9uc1xuICAgKiBvciBuYXZpZ2F0aW9uIHRyaWdnZXJzLiBUaGlzIGlzIGNvbW1vbmx5IHVzZWQgaW4gZXZlbnQgaGFuZGxlcnMgd2hlcmUgdGhlIGRlZmF1bHQgYnJvd3NlciBiZWhhdmlvclxuICAgKiB3b3VsZCBpbnRlcmZlcmUgd2l0aCB0aGUgY29tcG9uZW50J3MgY3VzdG9tIGxvZ2ljIG9yIHVzZXIgZXhwZXJpZW5jZSBkZXNpZ24uXG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIERPTSBldmVudCB3aG9zZSBkZWZhdWx0IGJlaGF2aW9yIHNob3VsZCBiZSBwcmV2ZW50ZWRcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgcHJldmVudENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPGlvbi1zZWFyY2hiYXJcbiAgW2lkXT1cInVpZFwiXG4gIG5nQ2xhc3M9XCJkY2Ytc2VhcmNoYmFyXCJcbiAgbmFtZT1cInNlYXJjaFwiXG4gIG1vZGU9XCJpb3NcIlxuICAoa2V5dXAuZW50ZXIpPVwicHJldmVudENoYW5nZSgkZXZlbnQpXCJcbiAgKGlvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gIChpb25JbnB1dCk9XCJoYW5kbGVJbnB1dCgkZXZlbnQpXCJcbiAgKGlvbkNsZWFyKT1cImhhbmRsZUNsZWFyKClcIlxuICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtzaG93Q2FuY2VsQnV0dG9uXT1cInNob3dDYW5jZWxCdXR0b25cIlxuICBbY2FuY2VsQnV0dG9uVGV4dF09XCJidXR0b25DYW5jZWxUZXh0XCJcbiAgW2NsZWFySWNvbl09XCJjbGVhckljb25cIlxuICBbY29sb3JdPVwiY29sb3JcIlxuICBbZGVib3VuY2VdPVwiZGVib3VuY2VcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbZW50ZXJrZXloaW50XT1cImVudGVya2V5aGludFwiXG4gIFtpbnB1dG1vZGVdPVwiaW5wdXRtb2RlXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW3NlYXJjaEljb25dPVwic2VhcmNoSWNvblwiXG4gIFtzaG93Q2xlYXJCdXR0b25dPVwic2hvd0NsZWFyQnV0dG9uXCJcbiAgW3NwZWxsY2hlY2tdPVwic3BlbGxjaGVja1wiXG4gIFt0eXBlXT1cInR5cGVcIlxuICAjY29tcG9uZW50XG4gLz5cbiJdfQ==
|
|
491
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUcsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVwQzs7Ozs7Ozs7Ozs7O0dBWUc7QUFRSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZ0JBQWdCO0lBNFF0RDs7Ozs7OztPQU9HO0lBQ0g7UUFDRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQW5SOUI7Ozs7O1dBS0c7UUFDSCxXQUFXO1FBQ1gsa0RBQWtEO1FBRWxEOzs7Ozs7Ozs7O1dBVUc7UUFFSCxpQkFBWSxHQUFrQyxLQUFLLENBQUM7UUFFcEQ7Ozs7Ozs7OztXQVNHO1FBRUgsZ0JBQVcsR0FBaUIsS0FBSyxDQUFDO1FBRWxDOzs7Ozs7Ozs7V0FTRztRQUVILGFBQVEsR0FBb0IsSUFBSSxDQUFDO1FBRWpDOzs7Ozs7Ozs7O1dBVUc7UUFFSCxxQkFBZ0IsR0FBVyxRQUFRLENBQUM7UUFFcEM7Ozs7OztXQU1HO1FBRUgsY0FBUyxHQUF1QixTQUFTLENBQUM7UUFFMUM7Ozs7OztXQU1HO1FBRUgsVUFBSyxHQUF1QixTQUFTLENBQUM7UUFFdEM7Ozs7OztXQU1HO1FBRUgsYUFBUSxHQUFXLEdBQUcsQ0FBQztRQUV2Qjs7Ozs7O1dBTUc7UUFFSCxhQUFRLEdBQW9CLEtBQUssQ0FBQztRQUVsQzs7Ozs7O1dBTUc7UUFFSCxpQkFBWSxHQUFrRixPQUFPLENBQUM7UUFFdEc7Ozs7OztXQU1HO1FBRUgsY0FBUyxHQUE2RixRQUFRLENBQUM7UUFFL0c7Ozs7OztXQU1HO1FBRUgsZ0JBQVcsR0FBRyxRQUFRLENBQUM7UUFFdkI7Ozs7OztXQU1HO1FBRUgsZUFBVSxHQUF1QixnQkFBZ0IsQ0FBQztRQUVsRDs7Ozs7O1dBTUc7UUFFSCxxQkFBZ0IsR0FBaUMsT0FBTyxDQUFDO1FBRXpEOzs7Ozs7V0FNRztRQUVILG9CQUFlLEdBQWlDLE9BQU8sQ0FBQztRQUV4RDs7Ozs7O1dBTUc7UUFFSCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVCOzs7Ozs7V0FNRztRQUVILFNBQUksR0FBb0YsUUFBUSxDQUFDO1FBRWpHOzs7Ozs7V0FNRztRQUVILFVBQUssR0FBOEIsRUFBRSxDQUFDO1FBRXRDOzs7Ozs7V0FNRztRQUVILGNBQVMsR0FBc0IsTUFBTSxDQUFDO1FBRXRDOzs7Ozs7V0FNRztRQUVILGNBQVMsR0FBb0IsS0FBSyxDQUFDO1FBRW5DOzs7Ozs7V0FNRztRQUVILFlBQU8sR0FBb0IsS0FBSyxDQUFDO1FBRWpDOzs7Ozs7V0FNRztRQUVILGlCQUFZLEdBQXFCLFNBQVMsQ0FBQztRQUUzQzs7Ozs7O1dBTUc7UUFFSCxzQkFBaUIsR0FBb0IsSUFBSSxDQUFDO1FBYTFDOzs7Ozs7OztXQVFHO1FBRUgsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVk3RCxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlCRztJQUVILHNCQUFzQjtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQXlDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU07UUFDSixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQXdDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxDQUFDLEtBQWtCO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0gsV0FBVyxDQUFDLEtBQWtCO1FBQzVCLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1FBQ25DLElBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTTtZQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDBDQUEwQztJQUUxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1Qkc7SUFDSCxTQUFTLENBQUMsS0FBeUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBRyxJQUFJLENBQUMsaUJBQWlCO1lBQ3ZCLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGFBQWEsQ0FBQyxLQUFZO1FBQ3ZCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQWplVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0ekJDOUIvQiwwc0JBeUJBLDBEREdZLFlBQVk7OzRGQUVYLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDO3dEQXlCdkIsWUFBWTtzQkFEWCxLQUFLO2dCQWNOLFdBQVc7c0JBRFYsS0FBSztnQkFjTixRQUFRO3NCQURQLEtBQUs7Z0JBZU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBV04sU0FBUztzQkFEUixLQUFLO2dCQVdOLEtBQUs7c0JBREosS0FBSztnQkFXTixRQUFRO3NCQURQLEtBQUs7Z0JBV04sUUFBUTtzQkFEUCxLQUFLO2dCQVdOLFlBQVk7c0JBRFgsS0FBSztnQkFXTixTQUFTO3NCQURSLEtBQUs7Z0JBV04sV0FBVztzQkFEVixLQUFLO2dCQVdOLFVBQVU7c0JBRFQsS0FBSztnQkFXTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBV04sVUFBVTtzQkFEVCxLQUFLO2dCQVdOLElBQUk7c0JBREgsS0FBSztnQkFXTixLQUFLO3NCQURKLEtBQUs7Z0JBV04sU0FBUztzQkFEUixLQUFLO2dCQVdOLFNBQVM7c0JBRFIsS0FBSztnQkFXTixPQUFPO3NCQUROLEtBQUs7Z0JBV04sWUFBWTtzQkFEWCxLQUFLO2dCQVdOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkF3Qk4sV0FBVztzQkFEVixNQUFNO2dCQWdGUCxzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMsa0NBQWtDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsICBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVUeXBlcywgUHJlZGVmaW5lZENvbG9yc30gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgU3RyaW5nT3JCb29sZWFuIH0gZnJvbSAnLi4vLi4vZW5naW5lL3R5cGVzJztcbmltcG9ydCB7d2luZG93RXZlbnRFbWl0dGVyfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IHN0cmluZ1RvQm9vbGVhbiB9IGZyb20gJy4uLy4uL2hlbHBlcnMvdXRpbHMnO1xuaW1wb3J0IHsgTmd4QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hCYXNlQ29tcG9uZW50JztcbmltcG9ydCB7IElvblNlYXJjaGJhciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0ICogYXMgYWxsSWNvbnMgZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFNlYXJjaGJhciBjb21wb25lbnQgZm9yIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogQHN1bW1hcnkgVGhlIFNlYXJjaGJhckNvbXBvbmVudCBwcm92aWRlcyBhIGhpZ2hseSBjdXN0b21pemFibGUgc2VhcmNoIGlucHV0IGZpZWxkIHdpdGggY29tcHJlaGVuc2l2ZVxuICogb3B0aW9ucyBmb3IgYXBwZWFyYW5jZSwgYmVoYXZpb3IsIGFuZCBpbnRlcmFjdGlvbiBwYXR0ZXJucy4gSXQgZXh0ZW5kcyBOZ3hCYXNlQ29tcG9uZW50IHRvIGluaGVyaXRcbiAqIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGFuZCBpbXBsZW1lbnRzIE9uSW5pdCBmb3IgcHJvcGVyIGxpZmVjeWNsZSBtYW5hZ2VtZW50LiBUaGlzIGNvbXBvbmVudCBmZWF0dXJlc1xuICogZGVib3VuY2VkIGlucHV0IGhhbmRsaW5nLCB3aW5kb3cgZXZlbnQgaW50ZWdyYXRpb24sIHZpc2liaWxpdHkgY29udHJvbHMsIGFuZCBleHRlbnNpdmUgc3R5bGluZyBvcHRpb25zLlxuICogSXQncyBkZXNpZ25lZCB0byBiZSBmbGV4aWJsZSBhbmQgYWRhcHRhYmxlIHRvIGRpZmZlcmVudCBzZWFyY2ggcmVxdWlyZW1lbnRzIHdpdGhpbiBtb2Rlcm4gd2ViIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBAY2xhc3MgU2VhcmNoYmFyQ29tcG9uZW50XG4gKiBAZXh0ZW5kcyB7Tmd4QmFzZUNvbXBvbmVudH1cbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XG4gKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1kZWNhZi1zZWFyY2hiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25TZWFyY2hiYXJdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hiYXJDb21wb25lbnQgZXh0ZW5kcyBOZ3hCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBtb2RlIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEBzdW1tYXJ5IERldGVybWluZXMgdGhlIHZpc3VhbCBzdHlsZSBvZiB0aGUgc2VhcmNoYmFyLCBlaXRoZXIgaU9TIG9yIE1hdGVyaWFsIERlc2lnbi5cbiAgICogQHR5cGUge1wiaW9zXCIgfCBcIm1kXCIgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwiaW9zXCJcbiAgICovXG4gIC8vIEBJbnB1dCgpXG4gIC8vIG92ZXJyaWRlIG1vZGU6IFwiaW9zXCIgfCBcIm1kXCIgfCB1bmRlZmluZWQgPSBcIm1kXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZSBmb3IgdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgc2hvdWxkIGVuYWJsZSBhdXRvY29tcGxldGUgZm9yIHRoZSBpbnB1dCBmaWVsZC5cbiAgICogVGhpcyBjb250cm9scyB0aGUgYnJvd3NlcidzIGJ1aWx0LWluIGF1dG9jb21wbGV0ZSBmdW5jdGlvbmFsaXR5LCBoZWxwaW5nIHVzZXJzIGJ5XG4gICAqIHN1Z2dlc3RpbmcgcHJldmlvdXNseSBlbnRlcmVkIHZhbHVlcyBvciBjb21tb24gaW5wdXRzLiBTZXR0aW5nIHRvICdvZmYnIGRpc2FibGVzXG4gICAqIHRoaXMgZmVhdHVyZSBmb3IgcHJpdmFjeSBvciBzZWN1cml0eSByZWFzb25zLlxuICAgKlxuICAgKiBAdHlwZSB7QXV0b2NvbXBsZXRlVHlwZXMgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwib2ZmXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgYXV0b2NvbXBsZXRlOiBBdXRvY29tcGxldGVUeXBlcyB8IHVuZGVmaW5lZCA9IFwib2ZmXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgYXV0b2NvcnJlY3QgYXR0cmlidXRlIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB3aGV0aGVyIHRoZSBicm93c2VyIHNob3VsZCBlbmFibGUgYXV0b2NvcnJlY3QgZnVuY3Rpb25hbGl0eSBmb3IgdGhlIGlucHV0IGZpZWxkLlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBicm93c2VyIHdpbGwgYXV0b21hdGljYWxseSBjb3JyZWN0IHNwZWxsaW5nIG1pc3Rha2VzIGFzIHRoZSB1c2VyIHR5cGVzLlxuICAgKiBUaGlzIGlzIHR5cGljYWxseSBkaXNhYmxlZCBmb3Igc2VhcmNoIGZpZWxkcyB0byBwcmVzZXJ2ZSB0aGUgdXNlcidzIGV4YWN0IHNlYXJjaCB0ZXJtcy5cbiAgICpcbiAgICogQHR5cGUge1wib25cIiB8IFwib2ZmXCJ9XG4gICAqIEBkZWZhdWx0IFwib2ZmXCJcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgYXV0b2NvcnJlY3Q6IFwib25cIiB8IFwib2ZmXCIgPSBcIm9mZlwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgc2VhcmNoYmFyIHNob3VsZCBhbmltYXRlLlxuICAgKiBAc3VtbWFyeSBDb250cm9scyB0aGUgYW5pbWF0aW9uIGJlaGF2aW9yIG9mIHRoZSBzZWFyY2hiYXIgZHVyaW5nIGFwcGVhcmFuY2UgYW5kIGRpc2FwcGVhcmFuY2UgdHJhbnNpdGlvbnMuXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhlIHNlYXJjaGJhciB3aWxsIHVzZSBzbW9vdGggYW5pbWF0aW9ucyBmb3Igc3RhdGUgY2hhbmdlcywgcHJvdmlkaW5nIGEgbW9yZVxuICAgKiBwb2xpc2hlZCB1c2VyIGV4cGVyaWVuY2UuIFRoaXMgYWZmZWN0cyB0cmFuc2l0aW9ucyBsaWtlIHNob3dpbmcvaGlkaW5nIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmdPckJvb2xlYW59XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgYW5pbWF0ZWQ6IFN0cmluZ09yQm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b24uXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgbG9jYWxpemVkIHRleHQgdG8gYmUgZGlzcGxheWVkIG9uIHRoZSBjYW5jZWwgYnV0dG9uIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIFRoaXMgdGV4dCBhcHBlYXJzIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgdmlzaWJsZSBhbmQgcHJvdmlkZXMgdXNlcnMgd2l0aCBhIGNsZWFyXG4gICAqIGluZGljYXRpb24gb2YgaG93IHRvIGRpc21pc3MgdGhlIHNlYXJjaCBpbnRlcmZhY2UuIFRoZSB0ZXh0IGNhbiBiZSBjdXN0b21pemVkIGZvclxuICAgKiBkaWZmZXJlbnQgbGFuZ3VhZ2VzIGFuZCBjdWx0dXJhbCBjb250ZXh0cy5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgXCJDYW5jZWxcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBidXR0b25DYW5jZWxUZXh0OiBzdHJpbmcgPSBcIkNhbmNlbFwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGljb24gdG8gdXNlIGZvciB0aGUgY2xlYXIgYnV0dG9uLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIGljb24gdG8gYmUgZGlzcGxheWVkIGZvciB0aGUgY2xlYXIgYnV0dG9uIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjbGVhckljb246IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjb2xvciBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIGNvbG9yIHRoZW1lIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdG8gd2FpdCB0byB0cmlnZ2VyIHRoZSBgaW9uQ2hhbmdlYCBldmVudCBhZnRlciBlYWNoIGtleXN0cm9rZS5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIGRlYm91bmNlIHRpbWUgZm9yIHRoZSBzZWFyY2ggaW5wdXQgdG8gcmVkdWNlIHRoZSBmcmVxdWVuY3kgb2YgZXZlbnQgZW1pc3Npb25zLlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCA1MDBcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZGVib3VuY2U6IG51bWJlciA9IDUwMDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdGhlIHNlYXJjaGJhciBpcyBkaXNhYmxlZC5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciB0aGUgc2VhcmNoYmFyIGlzIGludGVyYWN0aXZlIG9yIG5vdC5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IFN0cmluZ09yQm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQSBoaW50IHRvIHRoZSBicm93c2VyIGZvciB3aGljaCBlbnRlciBrZXkgdG8gZGlzcGxheS5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGFjdGlvbiB0aGF0IHdpbGwgYmUgcGVyZm9ybWVkIHdoZW4gdGhlIGVudGVyIGtleSBpcyBwcmVzc2VkLlxuICAgKiBAdHlwZSB7XCJzZWFyY2hcIiB8IFwiZW50ZXJcIiB8IFwiZG9uZVwiIHwgXCJnb1wiIHwgXCJuZXh0XCIgfCBcInByZXZpb3VzXCIgfCBcInNlbmRcIiB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgXCJlbnRlclwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGVudGVya2V5aGludDogXCJzZWFyY2hcIiB8IFwiZW50ZXJcIiB8IFwiZG9uZVwiIHwgXCJnb1wiIHwgXCJuZXh0XCIgfCBcInByZXZpb3VzXCIgfCBcInNlbmRcIiB8IHVuZGVmaW5lZCA9IFwiZW50ZXJcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBpbnB1dCBtb2RlIGZvciB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0aGF0IG1pZ2h0IGJlIGVudGVyZWQgYnkgdGhlIHVzZXIgd2hpbGUgZWRpdGluZyB0aGUgZWxlbWVudCBvciBpdHMgY29udGVudHMuXG4gICAqIEB0eXBlIHtcInRleHRcIiB8IFwic2VhcmNoXCIgfCBcIm5vbmVcIiB8IFwiZW1haWxcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgXCJudW1lcmljXCIgfCBcImRlY2ltYWxcIiB8IHVuZGVmaW5lZH1cbiAgICogQGRlZmF1bHQgJ3NlYXJjaCdcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgaW5wdXRtb2RlOiBcInRleHRcIiB8IFwic2VhcmNoXCIgfCBcIm5vbmVcIiB8IFwiZW1haWxcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgXCJudW1lcmljXCIgfCBcImRlY2ltYWxcIiB8IHVuZGVmaW5lZCA9ICdzZWFyY2gnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHBsYWNlaG9sZGVyIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHBsYWNlaG9sZGVyIHRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzZWFyY2hiYXIgd2hlbiBpdCdzIGVtcHR5LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCBcIlNlYXJjaFwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gXCJTZWFyY2hcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBpY29uIHRvIHVzZSBmb3IgdGhlIHNlYXJjaCBidXR0b24uXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgaWNvbiB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoZSBzZWFyY2ggYnV0dG9uIG9mIHRoZSBzZWFyY2hiYXIuXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBkZWZhdWx0IFwic2VhcmNoLW91dGxpbmVcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBzZWFyY2hJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBcInNlYXJjaC1vdXRsaW5lXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGVuIHRvIHNob3cgdGhlIGNhbmNlbCBidXR0b24uXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBjYW5jZWwgYnV0dG9uIGluIGRpZmZlcmVudCBzdGF0ZXMgb2YgdGhlIHNlYXJjaGJhci5cbiAgICogQHR5cGUge1wiYWx3YXlzXCIgfCBcImZvY3VzXCIgfCBcIm5ldmVyXCJ9XG4gICAqIEBkZWZhdWx0IFwibmV2ZXJcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBzaG93Q2FuY2VsQnV0dG9uOiBcImFsd2F5c1wiIHwgXCJmb2N1c1wiIHwgXCJuZXZlclwiID0gXCJuZXZlclwiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hlbiB0byBzaG93IHRoZSBjbGVhciBidXR0b24uXG4gICAqIEBzdW1tYXJ5IENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBjbGVhciBidXR0b24gaW4gZGlmZmVyZW50IHN0YXRlcyBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAdHlwZSB7XCJhbHdheXNcIiB8IFwiZm9jdXNcIiB8IFwibmV2ZXJcIn1cbiAgICogQGRlZmF1bHQgXCJmb2N1c1wiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNob3dDbGVhckJ1dHRvbjogXCJhbHdheXNcIiB8IFwiZm9jdXNcIiB8IFwibmV2ZXJcIiA9IFwiZm9jdXNcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gZW5hYmxlIHNwZWxsY2hlY2sgb24gdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciB0aGUgYnJvd3NlcidzIHNwZWxsY2hlY2sgZmVhdHVyZSBpcyBlbmFibGVkIGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgc3BlbGxjaGVjazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgaW5wdXQgdG8gdXNlIGZvciB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgY29udHJvbCB0byBkaXNwbGF5IGZvciB0aGUgc2VhcmNoYmFyIGlucHV0LlxuICAgKiBAdHlwZSB7XCJudW1iZXJcIiB8IFwidGV4dFwiIHwgXCJzZWFyY2hcIiB8IFwiZW1haWxcIiB8IFwicGFzc3dvcmRcIiB8IFwidGVsXCIgfCBcInVybFwiIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCBcInNlYXJjaFwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHR5cGU6IFwibnVtYmVyXCIgfCBcInRleHRcIiB8IFwic2VhcmNoXCIgfCBcImVtYWlsXCIgfCBcInBhc3N3b3JkXCIgfCBcInRlbFwiIHwgXCJ1cmxcIiB8IHVuZGVmaW5lZCA9IFwic2VhcmNoXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgdmFsdWUgb2YgdGhlIHNlYXJjaGJhciBpbnB1dC5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZWFyY2hiYXIgaW5wdXQuXG4gICAqIEB0eXBlIHtudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkID0gXCJcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXlzIHRvIHVzZSBmb3IgcXVlcnlpbmcuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUga2V5cyB0byBiZSB1c2VkIHdoZW4gcGVyZm9ybWluZyBhIHNlYXJjaCBxdWVyeS5cbiAgICogQHR5cGUge3N0cmluZyB8IHN0cmluZ1tdfVxuICAgKiBAZGVmYXVsdCBcIm5hbWVcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBxdWVyeUtleXM6IHN0cmluZyB8IHN0cmluZ1tdID0gXCJuYW1lXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRoZSBzZWFyY2hiYXIgaXMgdmlzaWJsZS5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHNlYXJjaGJhciBjb21wb25lbnQuXG4gICAqIEB0eXBlIHtTdHJpbmdPckJvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGlzVmlzaWJsZTogU3RyaW5nT3JCb29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRvIHdyYXAgdGhlIHNlYXJjaGJhciBpbiBhIGNvbnRhaW5lci5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciB0aGUgc2VhcmNoYmFyIGlzIHdyYXBwZWQgaW4gYW4gYWRkaXRpb25hbCBjb250YWluZXIgZWxlbWVudC5cbiAgICogQHR5cGUge1N0cmluZ09yQm9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgd3JhcHBlcjogU3RyaW5nT3JCb29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY29sb3Igb2YgdGhlIHdyYXBwZXIuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgY29sb3IgdGhlbWUgdG8gYmUgYXBwbGllZCB0byB0aGUgd3JhcHBlciBjb250YWluZXIsIGlmIHByZXNlbnQuXG4gICAqIEB0eXBlIHtQcmVkZWZpbmVkQ29sb3JzfVxuICAgKiBAZGVmYXVsdCBcInByaW1hcnlcIlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICB3cmFwcGVyQ29sb3I6IFByZWRlZmluZWRDb2xvcnMgPSBcInByaW1hcnlcIjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gZW1pdCBldmVudHMgdG8gdGhlIHdpbmRvdy5cbiAgICogQHN1bW1hcnkgQ29udHJvbHMgd2hldGhlciBzZWFyY2ggZXZlbnRzIHNob3VsZCBiZSBlbWl0dGVkIGFzIHdpbmRvdyBldmVudHMuXG4gICAqIEB0eXBlIHtTdHJpbmdPckJvb2xlYW59XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZW1pdEV2ZW50VG9XaW5kb3c6IFN0cmluZ09yQm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VhcmNoYmFyLlxuICAgKiBAc3VtbWFyeSBTdG9yZXMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlYXJjaGJhciBpbnB1dCBmb3IgaW50ZXJuYWwgc3RhdGUgbWFuYWdlbWVudCBhbmQgcHJvY2Vzc2luZy5cbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIHRyYWNrIHRoZSBzZWFyY2ggdGVybSB0aHJvdWdob3V0IHRoZSBjb21wb25lbnQncyBsaWZlY3ljbGUgYW5kXG4gICAqIGNvb3JkaW5hdGUgYmV0d2VlbiBkaWZmZXJlbnQgZXZlbnQgaGFuZGxlcnMgYW5kIG1ldGhvZHMuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGN1cnJlbnRWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgZW1pdHRlciBmb3Igc2VhcmNoIGV2ZW50cy5cbiAgICogQHN1bW1hcnkgRW1pdHMgc2VhcmNoIGV2ZW50cyB3aGVuIHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIHRoZSBzZWFyY2hiYXIsIHByb3ZpZGluZyBhIHJlYWN0aXZlXG4gICAqIGludGVyZmFjZSBmb3IgcGFyZW50IGNvbXBvbmVudHMgdG8gcmVzcG9uZCB0byBzZWFyY2ggYWN0aW9ucy4gVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgYnlcbiAgICogdmFyaW91cyB1c2VyIGludGVyYWN0aW9ucyBpbmNsdWRpbmcgdHlwaW5nLCBjbGVhcmluZywgYW5kIGV4cGxpY2l0IHNlYXJjaCBhY3Rpb25zLlxuICAgKlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHN0cmluZz59XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBzZWFyY2hFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU2VhcmNoYmFyQ29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgU2VhcmNoYmFyQ29tcG9uZW50IHdpdGggYWxsIG5lY2Vzc2FyeSBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb25zLlxuICAgKiBEdXJpbmcgaW5pdGlhbGl6YXRpb24sIGl0IGFkZHMgYWxsIGF2YWlsYWJsZSBJb25pY29ucyB0byB0aGUgYXBwbGljYXRpb24ncyBpY29uIHJlZ2lzdHJ5LFxuICAgKiBlbnN1cmluZyB0aGF0IHNlYXJjaCBhbmQgY2xlYXIgaWNvbnMgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIHRocm91Z2hvdXQgdGhlIGNvbXBvbmVudCdzIGxpZmVjeWNsZS5cbiAgICpcbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1NlYXJjaGJhckNvbXBvbmVudCcpO1xuICAgIGFkZEljb25zKGFsbEljb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50IGFmdGVyIEFuZ3VsYXIgZmlyc3QgZGlzcGxheXMgdGhlIGRhdGEtYm91bmQgcHJvcGVydGllcy5cbiAgICogQHN1bW1hcnkgUGVyZm9ybXMgZXNzZW50aWFsIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbiBieSBjb252ZXJ0aW5nIHN0cmluZy1iYXNlZCBib29sZWFuIGlucHV0c1xuICAgKiB0byBwcm9wZXIgYm9vbGVhbiB2YWx1ZXMgdXNpbmcgdGhlIHN0cmluZ1RvQm9vbGVhbiB1dGlsaXR5LiBUaGlzIGVuc3VyZXMgdGhhdCBhbGwgYm9vbGVhblxuICAgKiBwcm9wZXJ0aWVzIHdvcmsgY29ycmVjdGx5IHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgd2VyZSBwYXNzZWQgZnJvbSBwYXJlbnQgY29tcG9uZW50cyBvciB0ZW1wbGF0ZXMuXG4gICAqXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEEgYXMgQW5ndWxhciBMaWZlY3ljbGVcbiAgICogICBwYXJ0aWNpcGFudCBTIGFzIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXRpbGl0eSBGdW5jdGlvbnNcbiAgICpcbiAgICogICBBLT4+UzogbmdPbkluaXQoKVxuICAgKiAgIFMtPj5VOiBzdHJpbmdUb0Jvb2xlYW4oZW1pdEV2ZW50VG9XaW5kb3cpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbih3cmFwcGVyKVxuICAgKiAgIFUtLT4+UzogYm9vbGVhbiB2YWx1ZVxuICAgKiAgIFMtPj5VOiBzdHJpbmdUb0Jvb2xlYW4oaXNWaXNpYmxlKVxuICAgKiAgIFUtLT4+UzogYm9vbGVhbiB2YWx1ZVxuICAgKiAgIFMtPj5VOiBzdHJpbmdUb0Jvb2xlYW4oZGlzYWJsZWQpXG4gICAqICAgVS0tPj5TOiBib29sZWFuIHZhbHVlXG4gICAqICAgUy0+PlU6IHN0cmluZ1RvQm9vbGVhbihhbmltYXRlZClcbiAgICogICBVLS0+PlM6IGJvb2xlYW4gdmFsdWVcbiAgICogICBOb3RlIG92ZXIgUzogQ29tcG9uZW50IHJlYWR5IGZvciBpbnRlcmFjdGlvblxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRFdmVudFRvV2luZG93ID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMuZW1pdEV2ZW50VG9XaW5kb3cpO1xuICAgIHRoaXMud3JhcHBlciA9IHN0cmluZ1RvQm9vbGVhbih0aGlzLndyYXBwZXIpO1xuICAgIHRoaXMuaXNWaXNpYmxlID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMuaXNWaXNpYmxlKTtcbiAgICB0aGlzLmRpc2FibGVkID0gc3RyaW5nVG9Cb29sZWFuKHRoaXMuZGlzYWJsZWQpO1xuICAgIHRoaXMuYW5pbWF0ZWQgPSBzdHJpbmdUb0Jvb2xlYW4odGhpcy5hbmltYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgdGhlIHZpc2liaWxpdHkgdG9nZ2xlIG9mIHRoZSBzZWFyY2hiYXIgY29tcG9uZW50LlxuICAgKiBAc3VtbWFyeSBMaXN0ZW5zIGZvciBnbG9iYWwgd2luZG93IGV2ZW50cyB0byB0b2dnbGUgdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHNlYXJjaGJhci5cbiAgICogV2hlbiB0aGUgc2VhcmNoYmFyIGJlY29tZXMgdmlzaWJsZSwgaXQgYXV0b21hdGljYWxseSBmb2N1c2VzIG9uIHRoZSBpbnB1dCBmaWVsZCBhZnRlciBhIGJyaWVmXG4gICAqIGRlbGF5IHRvIGVuc3VyZSBzbW9vdGggYW5pbWF0aW9uIGNvbXBsZXRpb24uIFRoaXMgcHJvdmlkZXMgYSBzZWFtbGVzcyB1c2VyIGV4cGVyaWVuY2UgZm9yXG4gICAqIHNlYXJjaCBhY3RpdmF0aW9uIHRocm91Z2gga2V5Ym9hcmQgc2hvcnRjdXRzIG9yIHByb2dyYW1tYXRpYyB0cmlnZ2Vycy5cbiAgICpcbiAgICogQHBhcmFtIHtDdXN0b21FdmVudH0gZXZlbnQgLSBUaGUgY3VzdG9tIGV2ZW50IHRyaWdnZXJpbmcgdGhlIHZpc2liaWxpdHkgdG9nZ2xlICh1bnVzZWQgYnV0IHJlcXVpcmVkIGJ5IEhvc3RMaXN0ZW5lcilcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVyBhcyBXaW5kb3dcbiAgICogICBwYXJ0aWNpcGFudCBTIGFzIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IEUgYXMgRE9NIEVsZW1lbnRcbiAgICpcbiAgICogICBXLT4+UzogdG9nZ2xlU2VhcmNoYmFyVmlzaWJpbGl0eSBldmVudFxuICAgKiAgIFMtPj5TOiBoYW5kbGVUb2dnbGVWaXNpYmlsaXR5KClcbiAgICogICBTLT4+UzogVG9nZ2xlIGlzVmlzaWJsZSBzdGF0ZVxuICAgKiAgIGFsdCBpc1Zpc2libGUgaXMgdHJ1ZSBBTkQgY29tcG9uZW50IGV4aXN0c1xuICAgKiAgICAgUy0+PlM6IHNldFRpbWVvdXQoMTI1bXMpXG4gICAqICAgICBTLT4+RTogc2V0Rm9jdXMoKSBvbiBpb24tc2VhcmNoYmFyXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6dG9nZ2xlU2VhcmNoYmFyVmlzaWJpbGl0eVwiLCBbJyRldmVudCddKVxuICBoYW5kbGVUb2dnbGVWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlO1xuICAgIGlmKHRoaXMuaXNWaXNpYmxlICYmICEhdGhpcy5jb21wb25lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJb25TZWFyY2hiYXJFbGVtZW50KS5zZXRGb2N1cygpO1xuICAgICAgfSwgMTI1KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRyaWdnZXJzIGEgbWFudWFsIHNlYXJjaCBldmVudCB3aXRoIHRoZSBjdXJyZW50IHNlYXJjaGJhciB2YWx1ZS5cbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBjdXJyZW50IHZhbHVlIGZyb20gdGhlIHNlYXJjaGJhcidzIG5hdGl2ZSBlbGVtZW50IGFuZCBlbWl0cyBpdCBhcyBhIHNlYXJjaCBldmVudC5cbiAgICogVGhpcyBtZXRob2QgcHJvdmlkZXMgYSBwcm9ncmFtbWF0aWMgd2F5IHRvIHRyaWdnZXIgc2VhcmNoIGZ1bmN0aW9uYWxpdHksIHVzZWZ1bCBmb3IgZXh0ZXJuYWxcbiAgICogY29tcG9uZW50cyBvciBrZXlib2FyZCBzaG9ydGN1dHMgdGhhdCBuZWVkIHRvIGV4ZWN1dGUgc2VhcmNoIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzZWFyY2hiYXIgaXRzZWxmLlxuICAgKlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBzZWFyY2goKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElvblNlYXJjaGJhckVsZW1lbnQ7XG4gICAgdGhpcy5zZWFyY2hFdmVudC5lbWl0KGVsZW1lbnQudmFsdWUgfHwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyB2YWx1ZSBjaGFuZ2VzIGluIHRoZSBzZWFyY2hiYXIgaW5wdXQgZmllbGQuXG4gICAqIEBzdW1tYXJ5IFByb2Nlc3NlcyBjaGFuZ2UgZXZlbnRzIGZyb20gdGhlIElvbmljIHNlYXJjaGJhciBjb21wb25lbnQgYW5kIGV4dHJhY3RzIHRoZSBuZXcgdmFsdWVcbiAgICogdG8gZW1pdCBhcyBhIHNlYXJjaCBldmVudC4gVGhpcyBtZXRob2QgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgZmluaXNoZXMgZWRpdGluZyB0aGUgc2VhcmNoYmFyXG4gICAqIHZhbHVlLCBwcm92aWRpbmcgYSB3YXkgdG8gcmVhY3QgdG8gY29tcGxldGVkIGlucHV0IGNoYW5nZXMgcmF0aGVyIHRoYW4gcmVhbC10aW1lIHR5cGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtDdXN0b21FdmVudH0gZXZlbnQgLSBUaGUgY2hhbmdlIGV2ZW50IGZyb20gdGhlIElvbmljIHNlYXJjaGJhciBjb250YWluaW5nIHRoZSBuZXcgdmFsdWVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQG1lbWJlck9mIFNlYXJjaGJhckNvbXBvbmVudFxuICAgKi9cbiAgaGFuZGxlQ2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdEV2ZW50KGV2ZW50Py5kZXRhaWw/LnZhbHVlID8/IHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgY2xlYXJpbmcgb2YgdGhlIHNlYXJjaGJhciBpbnB1dCBmaWVsZC5cbiAgICogQHN1bW1hcnkgRW1pdHMgYW4gdW5kZWZpbmVkIHZhbHVlIGFzIGEgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHNlYXJjaGJhciBpcyBjbGVhcmVkIGJ5IHRoZSB1c2VyLlxuICAgKiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBjbGVhciBidXR0b24gb3IgdXNlcyBvdGhlclxuICAgKiBjbGVhciBtZWNoYW5pc21zLCBzaWduYWxpbmcgdGhhdCB0aGUgc2VhcmNoIHNob3VsZCBiZSByZXNldCBvciBjbGVhcmVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBoYW5kbGVDbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRFdmVudCh1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIHJlYWwtdGltZSBpbnB1dCBldmVudHMgb24gdGhlIHNlYXJjaGJhci5cbiAgICogQHN1bW1hcnkgUHJvY2Vzc2VzIGlucHV0IGV2ZW50cyBhcyB0aGUgdXNlciB0eXBlcywgcHJvdmlkaW5nIGltbWVkaWF0ZSBmZWVkYmFjayBmb3Igc2VhcmNoIGZ1bmN0aW9uYWxpdHkuXG4gICAqIFRoaXMgbWV0aG9kIGltcGxlbWVudHMgc21hcnQgY2xlYXJpbmcgYmVoYXZpb3IgLSBpZiB0aGUgaW5wdXQgYmVjb21lcyBlbXB0eSwgaXQgYXV0b21hdGljYWxseVxuICAgKiB0cmlnZ2VycyB0aGUgY2xlYXIgaGFuZGxlci4gT3RoZXJ3aXNlLCBpdCBlbWl0cyB0aGUgY3VycmVudCB2YWx1ZSBmb3IgcmVhbC10aW1lIHNlYXJjaCBzdWdnZXN0aW9uc1xuICAgKiBvciBmaWx0ZXJpbmcuIFRoaXMgZW5hYmxlcyByZXNwb25zaXZlIHNlYXJjaCBleHBlcmllbmNlcyB3aXRoIGRlYm91bmNlZCBldmVudCBoYW5kbGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtDdXN0b21FdmVudH0gZXZlbnQgLSBUaGUgaW5wdXQgZXZlbnQgZnJvbSB0aGUgSW9uaWMgc2VhcmNoYmFyIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgdmFsdWVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICpcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgVSBhcyBVc2VyXG4gICAqICAgcGFydGljaXBhbnQgUyBhcyBTZWFyY2hiYXJDb21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBFIGFzIEV2ZW50IFN5c3RlbVxuICAgKlxuICAgKiAgIFUtPj5TOiBUeXBlIGluIHNlYXJjaGJhclxuICAgKiAgIFMtPj5TOiBoYW5kbGVJbnB1dChldmVudClcbiAgICogICBTLT4+UzogRXh0cmFjdCB2YWx1ZSBmcm9tIGV2ZW50XG4gICAqICAgYWx0IHZhbHVlIGlzIGVtcHR5IG9yIG51bGxcbiAgICogICAgIFMtPj5TOiBoYW5kbGVDbGVhcigpXG4gICAqICAgICBTLT4+RTogRW1pdCB1bmRlZmluZWRcbiAgICogICBlbHNlIHZhbHVlIGhhcyBjb250ZW50XG4gICAqICAgICBTLT4+UzogZW1pdEV2ZW50KHZhbHVlKVxuICAgKiAgICAgUy0+PkU6IEVtaXQgc2VhcmNoIHZhbHVlXG4gICAqICAgZW5kXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIGhhbmRsZUlucHV0KGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQ/LmRldGFpbD8udmFsdWU7XG4gICAgaWYoIXZhbHVlIHx8ICF2YWx1ZT8ubGVuZ3RoKVxuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ2xlYXIoKTtcbiAgICB0aGlzLmVtaXRFdmVudCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgYmx1ciBldmVudHMgb24gdGhlIHNlYXJjaGJhci5cbiAgICogQHN1bW1hcnkgQ3VycmVudGx5IGFuIGVtcHR5IG1ldGhvZCwgY2FuIGJlIGltcGxlbWVudGVkIGZvciBzcGVjaWZpYyBibHVyIGJlaGF2aW9yLlxuICAgKiBAcGFyYW0ge0N1c3RvbUV2ZW50fSBldmVudCAtIFRoZSBibHVyIGV2ZW50IGZyb20gdGhlIHNlYXJjaGJhclxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgLy8gaGFuZGxlQmx1cihldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFbWl0cyBzZWFyY2ggZXZlbnRzIHRocm91Z2ggbXVsdGlwbGUgY2hhbm5lbHMuXG4gICAqIEBzdW1tYXJ5IE9yY2hlc3RyYXRlcyB0aGUgZW1pc3Npb24gb2Ygc2VhcmNoIGV2ZW50cyBib3RoIGFzIGNvbXBvbmVudCBvdXRwdXQgZXZlbnRzIGFuZCBvcHRpb25hbGx5XG4gICAqIGFzIGdsb2JhbCB3aW5kb3cgZXZlbnRzLiBUaGlzIGR1YWwtY2hhbm5lbCBhcHByb2FjaCBlbmFibGVzIGJvdGggZGlyZWN0IHBhcmVudC1jaGlsZCBjb21tdW5pY2F0aW9uXG4gICAqIGFuZCBhcHBsaWNhdGlvbi13aWRlIGV2ZW50IGJyb2FkY2FzdGluZywgc3VwcG9ydGluZyBmbGV4aWJsZSBpbnRlZ3JhdGlvbiBwYXR0ZXJucyBhbmQgbG9vc2UgY291cGxpbmdcbiAgICogYmV0d2VlbiBjb21wb25lbnRzIHRoYXQgbmVlZCB0byByZXNwb25kIHRvIHNlYXJjaCBhY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IHVuZGVmaW5lZH0gdmFsdWUgLSBUaGUgc2VhcmNoIHZhbHVlIHRvIGVtaXQgYWNyb3NzIGFsbCBjb25maWd1cmVkIGNoYW5uZWxzXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgUCBhcyBQYXJlbnQgQ29tcG9uZW50XG4gICAqICAgcGFydGljaXBhbnQgVyBhcyBXaW5kb3cgRXZlbnQgU3lzdGVtXG4gICAqXG4gICAqICAgUy0+PlM6IGVtaXRFdmVudCh2YWx1ZSlcbiAgICogICBTLT4+UDogc2VhcmNoRXZlbnQuZW1pdCh2YWx1ZSlcbiAgICogICBhbHQgZW1pdEV2ZW50VG9XaW5kb3cgaXMgdHJ1ZVxuICAgKiAgICAgUy0+Plc6IHdpbmRvd0V2ZW50RW1pdHRlcignc2VhcmNoYmFyRXZlbnQnLCB7dmFsdWV9KVxuICAgKiAgIGVuZFxuICAgKlxuICAgKiBAbWVtYmVyT2YgU2VhcmNoYmFyQ29tcG9uZW50XG4gICAqL1xuICBlbWl0RXZlbnQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRXZlbnQuZW1pdCh2YWx1ZSk7XG4gICAgaWYodGhpcy5lbWl0RXZlbnRUb1dpbmRvdylcbiAgICAgIHdpbmRvd0V2ZW50RW1pdHRlcignc2VhcmNoYmFyRXZlbnQnLCB7dmFsdWU6IHZhbHVlfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJldmVudHMgZGVmYXVsdCBiZWhhdmlvciBvZiBET00gZXZlbnRzLlxuICAgKiBAc3VtbWFyeSBVdGlsaXR5IG1ldGhvZCB0byBwcmV2ZW50IHVud2FudGVkIGRlZmF1bHQgYWN0aW9ucyBvbiBET00gZXZlbnRzLCBzdWNoIGFzIGZvcm0gc3VibWlzc2lvbnNcbiAgICogb3IgbmF2aWdhdGlvbiB0cmlnZ2Vycy4gVGhpcyBpcyBjb21tb25seSB1c2VkIGluIGV2ZW50IGhhbmRsZXJzIHdoZXJlIHRoZSBkZWZhdWx0IGJyb3dzZXIgYmVoYXZpb3JcbiAgICogd291bGQgaW50ZXJmZXJlIHdpdGggdGhlIGNvbXBvbmVudCdzIGN1c3RvbSBsb2dpYyBvciB1c2VyIGV4cGVyaWVuY2UgZGVzaWduLlxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIFRoZSBET00gZXZlbnQgd2hvc2UgZGVmYXVsdCBiZWhhdmlvciBzaG91bGQgYmUgcHJldmVudGVkXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBTZWFyY2hiYXJDb21wb25lbnRcbiAgICovXG4gIHByZXZlbnRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxpb24tc2VhcmNoYmFyXG4gIFtpZF09XCJ1aWRcIlxuICBuZ0NsYXNzPVwiZGNmLXNlYXJjaGJhclwiXG4gIG5hbWU9XCJzZWFyY2hcIlxuICBtb2RlPVwiaW9zXCJcbiAgKGtleXVwLmVudGVyKT1cInByZXZlbnRDaGFuZ2UoJGV2ZW50KVwiXG4gIChpb25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAoaW9uSW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gIChpb25DbGVhcik9XCJoYW5kbGVDbGVhcigpXCJcbiAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJzaG93Q2FuY2VsQnV0dG9uXCJcbiAgW2NhbmNlbEJ1dHRvblRleHRdPVwiYnV0dG9uQ2FuY2VsVGV4dFwiXG4gIFtjbGVhckljb25dPVwiY2xlYXJJY29uXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgW2RlYm91bmNlXT1cImRlYm91bmNlXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2VudGVya2V5aGludF09XCJlbnRlcmtleWhpbnRcIlxuICBbaW5wdXRtb2RlXT1cImlucHV0bW9kZVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtzZWFyY2hJY29uXT1cInNlYXJjaEljb25cIlxuICBbc2hvd0NsZWFyQnV0dG9uXT1cInNob3dDbGVhckJ1dHRvblwiXG4gIFtzcGVsbGNoZWNrXT1cInNwZWxsY2hlY2tcIlxuICBbdHlwZV09XCJ0eXBlXCJcbiAgI2NvbXBvbmVudFxuIC8+XG4iXX0=
|
|
@@ -16,10 +16,10 @@ export class CollapsableDirective {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
20
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CollapsableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CollapsableDirective, isStandalone: true, selector: "[decafCollapsable]", ngImport: i0 }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CollapsableDirective, decorators: [{
|
|
23
23
|
type: Directive,
|
|
24
24
|
args: [{
|
|
25
25
|
selector: '[decafCollapsable]',
|