zek 17.3.48 → 17.3.50
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/esm2022/lib/modules/index.mjs +2 -1
- package/esm2022/lib/modules/modal/modal/modal.component.mjs +5 -5
- package/esm2022/lib/modules/tag/index.mjs +2 -0
- package/esm2022/lib/modules/tag/tag.mjs +112 -0
- package/esm2022/lib/services/web.api.mjs +8 -7
- package/fesm2022/zek.mjs +132 -27
- package/fesm2022/zek.mjs.map +1 -1
- package/lib/modules/index.d.ts +1 -0
- package/lib/modules/modal/modal/modal.component.d.ts +0 -1
- package/lib/modules/tag/index.d.ts +1 -0
- package/lib/modules/tag/tag.d.ts +26 -0
- package/lib/services/web.api.d.ts +1 -1
- package/package.json +1 -1
|
@@ -28,6 +28,7 @@ export * from './select';
|
|
|
28
28
|
export * from './select2';
|
|
29
29
|
export * from './select2-multiple';
|
|
30
30
|
export * from './sort';
|
|
31
|
+
export * from './tag';
|
|
31
32
|
export * from './time';
|
|
32
33
|
export * from './tooltip';
|
|
33
34
|
export * from './utc-to-local';
|
|
@@ -35,4 +36,4 @@ export * from './validator';
|
|
|
35
36
|
export * from './validators';
|
|
36
37
|
export * from './wizard';
|
|
37
38
|
// export * from './'
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUV6QixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWxlcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmInO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvdW50ZG93bic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsbGJhY2snO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtYWdvJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlcGlja2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9lZGl0LXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdmlld2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbG9naW4tYnV0dG9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpc3QtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL251bWVyaWMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2UtdGl0bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZ3Jlc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JhZGlvJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZWFkb25seSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVjYXB0Y2hhL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDInO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDItbXVsdGlwbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RhZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGltZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHRpcCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXRjLXRvLWxvY2FsJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dpemFyZCc7XHJcblxyXG4vLyBleHBvcnQgKiBmcm9tICcuLyciXX0=
|
|
@@ -9,7 +9,7 @@ import * as i2 from "@ngx-translate/core";
|
|
|
9
9
|
let uniqueId = 0;
|
|
10
10
|
export class ZekModal extends CoreComponent {
|
|
11
11
|
constructor() {
|
|
12
|
-
super();
|
|
12
|
+
super(...arguments);
|
|
13
13
|
this.translate = inject(TranslateService);
|
|
14
14
|
this._uniqueId = `zek-modal-${++uniqueId}`;
|
|
15
15
|
/** The unique ID for the radio button. */
|
|
@@ -18,6 +18,7 @@ export class ZekModal extends CoreComponent {
|
|
|
18
18
|
this.lableId = `${this.id}-lable`;
|
|
19
19
|
this.cancelButtonId = `${this.id}-cancel-button`;
|
|
20
20
|
this.okButtonId = `${this.id}-ok-button`;
|
|
21
|
+
this.elementId = RandomHelper.randomHex();
|
|
21
22
|
this._showOk = true;
|
|
22
23
|
this._disabledOk = false;
|
|
23
24
|
this._showCancel = true;
|
|
@@ -32,7 +33,6 @@ export class ZekModal extends CoreComponent {
|
|
|
32
33
|
this._showHeader = true;
|
|
33
34
|
this._showFooter = true;
|
|
34
35
|
this.onValidating = new EventEmitter(false);
|
|
35
|
-
this.elementId = RandomHelper.randomHex();
|
|
36
36
|
}
|
|
37
37
|
async destroy() {
|
|
38
38
|
await super.destroy();
|
|
@@ -201,13 +201,13 @@ export class ZekModal extends CoreComponent {
|
|
|
201
201
|
e.preventDefault();
|
|
202
202
|
this.ok();
|
|
203
203
|
}
|
|
204
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekModal, deps:
|
|
204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekModal, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
205
205
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekModal, selector: "zek-modal", inputs: { id: "id", model: "model", showOk: "showOk", disabledOk: "disabledOk", showCancel: "showCancel", autoHide: "autoHide", title: "title", text: "text", icon: "icon", okButtonText: "okButtonText", componentType: "componentType", size: "size", large: "large", xl: "xl", scrollable: "scrollable", fullscreen: "fullscreen", showHeader: "showHeader", showFooter: "showFooter" }, outputs: { onShown: "onShown", onHidden: "onHidden", onOk: "onOk", onValidating: "onValidating" }, usesInheritance: true, ngImport: i0, template: "<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"{{modalId}}\" tabindex=\"-1\" attr.aria-labelledby=\"{{lableId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [ngClass]=\"{\r\n 'modal-sm': size === 'sm',\r\n 'modal-lg': size === 'lg', \r\n 'modal-xl': size === 'xl'\r\n }\" [class.modal-dialog-scrollable]=\"scrollable\" [class.modal-fullscreen]=\"fullscreen\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" *ngIf=\"showHeader\">\r\n <ng-content select=\"header\"></ng-content>\r\n <h5 class=\"modal-title\" id=\"{{lableId}}\">{{title}}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n {{text}}\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"footer\"></ng-content>\r\n <button [class.visually-hidden]=\"!showOk\" [disabled]=\"disabledOk\" type=\"button\" class=\"btn {{cssButton()}}\" id=\"{{okButtonId}}\" (click)=\"ok()\">\r\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i> {{ okButtonText }}\r\n </button>\r\n <button [class.visually-hidden]=\"!showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"{{cancelButtonId}}\" data-bs-dismiss=\"modal\">\r\n <i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
206
206
|
}
|
|
207
207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekModal, decorators: [{
|
|
208
208
|
type: Component,
|
|
209
209
|
args: [{ selector: 'zek-modal', template: "<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"{{modalId}}\" tabindex=\"-1\" attr.aria-labelledby=\"{{lableId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [ngClass]=\"{\r\n 'modal-sm': size === 'sm',\r\n 'modal-lg': size === 'lg', \r\n 'modal-xl': size === 'xl'\r\n }\" [class.modal-dialog-scrollable]=\"scrollable\" [class.modal-fullscreen]=\"fullscreen\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" *ngIf=\"showHeader\">\r\n <ng-content select=\"header\"></ng-content>\r\n <h5 class=\"modal-title\" id=\"{{lableId}}\">{{title}}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n {{text}}\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"footer\"></ng-content>\r\n <button [class.visually-hidden]=\"!showOk\" [disabled]=\"disabledOk\" type=\"button\" class=\"btn {{cssButton()}}\" id=\"{{okButtonId}}\" (click)=\"ok()\">\r\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i> {{ okButtonText }}\r\n </button>\r\n <button [class.visually-hidden]=\"!showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"{{cancelButtonId}}\" data-bs-dismiss=\"modal\">\r\n <i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
210
|
-
}],
|
|
210
|
+
}], propDecorators: { id: [{
|
|
211
211
|
type: Input
|
|
212
212
|
}], model: [{
|
|
213
213
|
type: Input
|
|
@@ -342,4 +342,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
342
342
|
type: Component,
|
|
343
343
|
args: [{ selector: 'zek-restore-modal', template: "<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"{{modalId}}\" tabindex=\"-1\" attr.aria-labelledby=\"{{lableId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [ngClass]=\"{\r\n 'modal-sm': size === 'sm',\r\n 'modal-lg': size === 'lg', \r\n 'modal-xl': size === 'xl'\r\n }\" [class.modal-dialog-scrollable]=\"scrollable\" [class.modal-fullscreen]=\"fullscreen\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" *ngIf=\"showHeader\">\r\n <ng-content select=\"header\"></ng-content>\r\n <h5 class=\"modal-title\" id=\"{{lableId}}\">{{title}}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n {{text}}\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"footer\"></ng-content>\r\n <button [class.visually-hidden]=\"!showOk\" [disabled]=\"disabledOk\" type=\"button\" class=\"btn {{cssButton()}}\" id=\"{{okButtonId}}\" (click)=\"ok()\">\r\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i> {{ okButtonText }}\r\n </button>\r\n <button [class.visually-hidden]=\"!showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"{{cancelButtonId}}\" data-bs-dismiss=\"modal\">\r\n <i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
|
|
344
344
|
}], ctorParameters: () => [] });
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUFJeEUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBTWpCLE1BQU0sT0FBTyxRQUFTLFNBQVEsYUFBYTtJQUd2QztRQUNJLEtBQUssRUFBRSxDQUFDO1FBSE8sY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBd0NoRCxjQUFTLEdBQVcsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3RELDBDQUEwQztRQUNqQyxPQUFFLEdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxZQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDN0IsWUFBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQzdCLG1CQUFjLEdBQUcsR0FBRyxJQUFJLENB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QUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDOUMsQ0FBQzs4R0FQUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtRkNyVi9CLDRzREEyQk07OzJGRDBUTyxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0ksc0JBQXNCOztBQWNwQzs7R0FFRztBQUtILE1BQU0sT0FBTyxlQUFnQixTQUFRLFFBQVE7SUFDekM7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBQy9DLENBQUM7OEdBUFEsZUFBZTtrR0FBZixlQUFlLGdGQ3ZXNUIsNHNEQTJCTTs7MkZENFVPLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0ksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgQ29yZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBCb290c3RyYXBIZWxwZXIsIENvbXBvbmVudFR5cGUsIENvbnZlcnQsIGhhbmRsZXIsIFJhbmRvbUhlbHBlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgVmFsaWRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdmFsaWQtZXZlbnQtYXJncy5tb2RlbCc7XHJcbmltcG9ydCB7IE1vZGFsU2l6ZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcblxyXG5kZWNsYXJlIGxldCBib290c3RyYXA6IGFueTtcclxubGV0IHVuaXF1ZUlkID0gMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd6ZWstbW9kYWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrTW9kYWwgZXh0ZW5kcyBDb3JlQ29tcG9uZW50IHtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRJZCA9IFJhbmRvbUhlbHBlci5yYW5kb21IZXgoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgYXdhaXQgc3VwZXIuZGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuX21vZGFsPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgdGhpcy5fbW9kYWwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5oaWRkZW5IYW5kbGVyKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZXIucmVtb3ZlTGlzdGVuZXIodGhpcy5oaWRkZW5IYW5kbGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd25IYW5kbGVyKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZXIucmVtb3ZlTGlzdGVuZXIodGhpcy5zaG93bkhhbmRsZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCgpXHJcbiAgICAgICAgaWYgKCF0aGlzLm9rQnV0dG9uVGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FjdGlvbi5PaycpLnN1YnNjcmliZSh0ZXh0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub2tCdXR0b25UZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxFbCA9IHRoaXMuZ2V0TW9kYWxFbGVtZW50KCk7XHJcbiAgICAgICAgICAgIGlmIChtb2RhbEVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3duSGFuZGxlciA9IGhhbmRsZXIuYWRkTGlzdGVuZXIobW9kYWxFbCwgJ3Nob3duLmJzLm1vZGFsJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TaG93bi5lbWl0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGRlbkhhbmRsZXIgPSBoYW5kbGVyLmFkZExpc3RlbmVyKG1vZGFsRWwsICdoaWRkZW4uYnMubW9kYWwnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkhpZGRlbi5lbWl0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3VuaXF1ZUlkOiBzdHJpbmcgPSBgemVrLW1vZGFsLSR7Kyt1bmlxdWVJZH1gO1xyXG4gICAgLyoqIFRoZSB1bmlxdWUgSUQgZm9yIHRoZSByYWRpbyBidXR0b24uICovXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gdGhpcy5fdW5pcXVlSWQ7XHJcbiAgICBtb2RhbElkID0gYCR7dGhpcy5pZH0tbW9kYWxgO1xyXG4gICAgbGFibGVJZCA9IGAke3RoaXMuaWR9LWxhYmxlYDtcclxuICAgIGNhbmNlbEJ1dHRvbklkID0gYCR7dGhpcy5pZH0tY2FuY2VsLWJ1dHRvbmA7XHJcbiAgICBva0J1dHRvbklkID0gYCR7dGhpcy5pZH0tb2stYnV0dG9uYDtcclxuXHJcbiAgICBzaG93bkhhbmRsZXI/OiBudW1iZXIgfCBudWxsO1xyXG4gICAgaGlkZGVuSGFuZGxlcj86IG51bWJlciB8IG51bGw7XHJcblxyXG4gICAgQElucHV0KCkgbW9kZWw6IGFueTtcclxuICAgIHJlYWRvbmx5IGVsZW1lbnRJZDogc3RyaW5nO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIF9zaG93T2sgPSB0cnVlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93T2soKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dPaztcclxuICAgIH1cclxuICAgIHNldCBzaG93T2sodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd09rID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9kaXNhYmxlZE9rID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGRpc2FibGVkT2soKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkT2s7XHJcbiAgICB9XHJcbiAgICBzZXQgZGlzYWJsZWRPayh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9kaXNhYmxlZE9rID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zaG93Q2FuY2VsID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2hvd0NhbmNlbCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd0NhbmNlbDtcclxuICAgIH1cclxuICAgIHNldCBzaG93Q2FuY2VsKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3Nob3dDYW5jZWwgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9hdXRvSGlkZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGF1dG9IaWRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRvSGlkZTtcclxuICAgIH1cclxuICAgIHNldCBhdXRvSGlkZSh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9hdXRvSGlkZSA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICBASW5wdXQoKSB0ZXh0Pzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICBASW5wdXQoKSBpY29uPzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICBASW5wdXQoKSBva0J1dHRvblRleHQ/OiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvblNob3duID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpIG9uSGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpIG9uT2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBjb21wb25lbnRUeXBlID0gQ29tcG9uZW50VHlwZS5QcmltYXJ5O1xyXG5cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc2l6ZTogTW9kYWxTaXplID0gJyc7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNpemUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XHJcbiAgICB9XHJcbiAgICBzZXQgc2l6ZSh2OiBNb2RhbFNpemUpIHtcclxuICAgICAgICB0aGlzLl9zaXplID0gdjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2Ugc2l6ZSBwcm9wZXJ0eVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGxhcmdlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplID09PSAnbGcnO1xyXG4gICAgfVxyXG4gICAgc2V0IGxhcmdlKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3NpemUgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpID8gJ2xnJyA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBzaXplIHByb3BlcnR5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgeGwoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemUgPT09ICd4bCc7XHJcbiAgICB9XHJcbiAgICBzZXQgeGwodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodikgPyAneGwnIDogJyc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX3Njcm9sbGFibGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2Nyb2xsYWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2Nyb2xsYWJsZTtcclxuICAgIH1cclxuICAgIHNldCBzY3JvbGxhYmxlKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbGFibGUgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2Z1bGxzY3JlZW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZnVsbHNjcmVlbigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZnVsbHNjcmVlbjtcclxuICAgIH1cclxuICAgIHNldCBmdWxsc2NyZWVuKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX2Z1bGxzY3JlZW4gPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Nob3dIZWFkZXIgPSB0cnVlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93SGVhZGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93SGVhZGVyO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dIZWFkZXIodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd0hlYWRlciA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvd0Zvb3RlciA9IHRydWU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNob3dGb290ZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dGb290ZXI7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hvd0Zvb3Rlcih2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaG93Rm9vdGVyID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuXHJcbiAgICBAT3V0cHV0KCkgb25WYWxpZGF0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxWYWxpZEV2ZW50QXJncz4oZmFsc2UpO1xyXG4gICAgLy8gQElucHV0KCkgeHhsOiBib29sZWFuO1xyXG5cclxuICAgIHByaXZhdGUgX21vZGFsOiBhbnk7XHJcbiAgICAvLyBwdWJsaWMgZ2V0IG1vZGFsKCk6IGFueSB7XHJcbiAgICAvLyAgICAgaWYgKCF0aGlzLl9tb2RhbCkge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmdldE1vZGFsKCk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9tb2RhbDtcclxuICAgIC8vIH1cclxuICAgIC8vIHB1YmxpYyBzZXQgbW9kYWwodjogYW55KSB7XHJcbiAgICAvLyAgICAgdGhpcy5fbW9kYWwgPSB2O1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRNb2RhbEVsZW1lbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMubW9kYWxJZCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgZ2V0TW9kYWwoKSB7XHJcbiAgICAgICAgY29uc3QgbW9kYWxFbCA9IHRoaXMuZ2V0TW9kYWxFbGVtZW50KCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBib290c3RyYXAuTW9kYWwobW9kYWxFbCwgeyBiYWNrZHJvcDogJ3N0YXRpYycgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgY3NzQnV0dG9uKCkge1xyXG4gICAgICAgIHJldHVybiBCb290c3RyYXBIZWxwZXIuY3NzQnV0dG9uKHRoaXMuY29tcG9uZW50VHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcHJpdmF0ZSBpc1Nob3duID0gZmFsc2U7XHJcbiAgICBzaG93KG1vZGVsPzogYW55KSB7XHJcbiAgICAgICAgaWYgKCFtb2RlbCkgbW9kZWwgPSB7fTtcclxuICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgICAgIC8vIHRoaXMubW9kYWw/LnNob3coKTtcclxuXHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fbW9kYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5fbW9kYWwgPSB0aGlzLmdldE1vZGFsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9tb2RhbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tb2RhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuaXNTaG93biA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhpZGUoKSB7XHJcbiAgICAgICAgLy8gdGhpcy5tb2RhbD8uaGlkZSgpO1xyXG5cclxuICAgICAgICAvLyBpZiAodGhpcy5pc1Nob3duKSB7XHJcbiAgICAgICAgLy8gICAgIGlmICh0aGlzLl9tb2RhbCkge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5fbW9kYWwuaGlkZSgpO1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5pc1Nob3duID0gZmFsc2U7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9IGVsc2Uge1xyXG5cclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tb2RhbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmNhbmNlbEJ1dHRvbklkKTtcclxuICAgICAgICAgICAgaWYgKGJ0bikge1xyXG4gICAgICAgICAgICAgICAgYnRuLmNsaWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb2soKSB7XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgVmFsaWRFdmVudEFyZ3MoKTtcclxuICAgICAgICB0aGlzLm9uVmFsaWRhdGluZy5lbWl0KGV2ZW50KTtcclxuICAgICAgICBpZiAoIWV2ZW50LnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmF1dG9IaWRlKVxyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbk9rLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAga2V5RG93bihlOiBFdmVudCkge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB0aGlzLm9rKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFpla01vZGFsXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnemVrLWRlbGV0ZS1tb2RhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtEZWxldGVNb2RhbCBleHRlbmRzIFpla01vZGFsIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ2ZhLXNvbGlkIGZhLXRyYXNoJztcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FjdGlvbi5EZWxldGUnKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB0aGlzLnRpdGxlID0gcmVzKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FsZXJ0LkRlbGV0ZVF1ZXN0aW9uJykuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4gdGhpcy50ZXh0ID0gcmVzKTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGUgPSBDb21wb25lbnRUeXBlLkRlbGV0ZTtcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgWmVrTW9kYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd6ZWstYXBwcm92ZS1tb2RhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtBcHByb3ZlTW9kYWwgZXh0ZW5kcyBaZWtNb2RhbCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdmYS1zb2xpZCBmYS10aHVtYnMtdXAnO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnQWN0aW9uLkFwcHJvdmUnKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB0aGlzLnRpdGxlID0gcmVzKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FsZXJ0LkFwcHJvdmVRdWVzdGlvbicpLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHRoaXMudGV4dCA9IHJlcyk7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gQ29tcG9uZW50VHlwZS5TdWNjZXNzO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBaZWtNb2RhbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3play1zdWJtaXQtbW9kYWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrU3VibWl0TW9kYWwgZXh0ZW5kcyBaZWtNb2RhbCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdmYS1zb2xpZCBmYS10aHVtYnMtdXAnO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnQWN0aW9uLlN1Ym1pdCcpLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHRoaXMudGl0bGUgPSByZXMpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnQWxlcnQuU3VibWl0UXVlc3Rpb24nKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB0aGlzLnRleHQgPSByZXMpO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50VHlwZSA9IENvbXBvbmVudFR5cGUuU3VjY2VzcztcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgWmVrTW9kYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd6ZWstZGlzYXBwcm92ZS1tb2RhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtEaXNhcHByb3ZlTW9kYWwgZXh0ZW5kcyBaZWtNb2RhbCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdmYS1zb2xpZCBmYS10aHVtYnMtZG93bic7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdBY3Rpb24uRGlzYXBwcm92ZScpLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHRoaXMudGl0bGUgPSByZXMpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnQWxlcnQuRGlzYXBwcm92ZVF1ZXN0aW9uJykuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4gdGhpcy50ZXh0ID0gcmVzKTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGUgPSBDb21wb25lbnRUeXBlLkRlbGV0ZTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFpla01vZGFsXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnemVrLXJlc3RvcmUtbW9kYWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrUmVzdG9yZU1vZGFsIGV4dGVuZHMgWmVrTW9kYWwge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmljb24gPSAnZmEtc29saWQgZmEtcm90YXRlLXJpZ2h0JztcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FjdGlvbi5SZXN0b3JlJykuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4gdGhpcy50aXRsZSA9IHJlcyk7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdBY3Rpb24uUmVzdG9yZVF1ZXN0aW9uJykuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4gdGhpcy50ZXh0ID0gcmVzKTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGUgPSBDb21wb25lbnRUeXBlLlN1Y2Nlc3M7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IChrZXlkb3duLmVudGVyKT1cImtleURvd24oJGV2ZW50KVwiIGNsYXNzPVwibW9kYWwgZmFkZVwiIGRhdGEtYnMtYmFja2Ryb3A9XCJzdGF0aWNcIiBpZD1cInt7bW9kYWxJZH19XCIgdGFiaW5kZXg9XCItMVwiIGF0dHIuYXJpYS1sYWJlbGxlZGJ5PVwie3tsYWJsZUlkfX1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgJ21vZGFsLXNtJzogc2l6ZSA9PT0gJ3NtJyxcclxuICAgICAgICAnbW9kYWwtbGcnOiBzaXplID09PSAnbGcnLCBcclxuICAgICAgICAnbW9kYWwteGwnOiBzaXplID09PSAneGwnXHJcbiAgICB9XCIgW2NsYXNzLm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlXT1cInNjcm9sbGFibGVcIiBbY2xhc3MubW9kYWwtZnVsbHNjcmVlbl09XCJmdWxsc2NyZWVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiICpuZ0lmPVwic2hvd0hlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaGVhZGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cInt7bGFibGVJZH19XCI+e3t0aXRsZX19PC9oNT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICB7e3RleHR9fVxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZm9vdGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MudmlzdWFsbHktaGlkZGVuXT1cIiFzaG93T2tcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRPa1wiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biB7e2Nzc0J1dHRvbigpfX1cIiBpZD1cInt7b2tCdXR0b25JZH19XCIgKGNsaWNrKT1cIm9rKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImljb25cIiBjbGFzcz1cInt7IGljb24gfX1cIj48L2k+IHt7IG9rQnV0dG9uVGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIFtjbGFzcy52aXN1YWxseS1oaWRkZW5dPVwiIXNob3dDYW5jZWxcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGlkPVwie3tjYW5jZWxCdXR0b25JZH19XCIgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWJhblwiPjwvaT4ge3sgJ0FjdGlvbi5DYW5jZWwnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBZ0IsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUFJeEUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBTWpCLE1BQU0sT0FBTyxRQUFTLFNBQVEsYUFBYTtJQUozQzs7UUFLdUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBb0NoRCxjQUFTLEdBQVcsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3RELDBDQUEwQztRQUNqQyxPQUFFLEdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxZQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDN0IsWUFBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQzdCLG1CQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztRQUM1QyxlQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxZQUFZLENBQUM7UUFNM0IsY0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUd0QyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBU2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFTcEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFVbkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQWtCZixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVuQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFJdkMsVUFBSyxHQUFjLEVBQUUsQ0FBQztRQWdDdEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFTcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFTcEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFTbkIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFZakIsaUJBQVksR0FBRyxJQUFJLFlBQVksQ0FBaUIsS0FBSyxDQUFDLENBQUM7S0FvRnBFO0lBcFFZLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0lBQ1EsSUFBSTtRQUNULEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7b0JBQ3BFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO29CQUN0RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBa0JELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsQ0FBZTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBR0QsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxDQUFlO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFHRCxJQUNJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLENBQWU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUlELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBZTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBc0JELElBQ0ksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsQ0FBWTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFlO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLEVBQUU7UUFDRixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFlO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBSUQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxDQUFlO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFHRCxJQUNJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLENBQWU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUdELElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsQ0FBZTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBR0QsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxDQUFlO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFTRCw0QkFBNEI7SUFDNUIsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixRQUFRO0lBQ1IsMEJBQTBCO0lBQzFCLElBQUk7SUFDSiw2QkFBNkI7SUFDN0IsdUJBQXVCO0lBQ3ZCLElBQUk7SUFFTSxlQUFlO1FBQ3JCLE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNTLFFBQVE7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUtELFNBQVM7UUFDTCxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBSSxDQUFDLEtBQVc7UUFDWixJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsc0JBQXNCO1FBR3RCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLHVCQUF1QjtRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDQSxzQkFBc0I7UUFFdEIsc0JBQXNCO1FBQ3RCLHlCQUF5QjtRQUN6Qiw4QkFBOEI7UUFDOUIsZ0NBQWdDO1FBQ2hDLFFBQVE7UUFDUixXQUFXO1FBRVgsSUFBSTtRQUVKLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQ0ksQ0FBQztZQUNGLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3pELElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELEVBQUU7UUFDRSxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUFFLE9BQU87UUFFekIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFRO1FBQ1osQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBdFFRLFFBQVE7a0dBQVIsUUFBUSx1aUJDZHJCLDRzREEyQk07OzJGRGJPLFFBQVE7a0JBSnBCLFNBQVM7K0JBQ0ksV0FBVzs4QkEwQ1osRUFBRTtzQkFBVixLQUFLO2dCQVNHLEtBQUs7c0JBQWIsS0FBSztnQkFNRixNQUFNO3NCQURULEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFVBQVU7c0JBRGIsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsSUFBSTtzQkFBYixNQUFNO2dCQUVFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUYsSUFBSTtzQkFEUCxLQUFLO2dCQVlGLEtBQUs7c0JBRFIsS0FBSztnQkFZRixFQUFFO3NCQURMLEtBQUs7Z0JBV0YsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFVBQVU7c0JBRGIsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO2dCQVdJLFlBQVk7c0JBQXJCLE1BQU07O0FBc0ZYOztHQUVHO0FBS0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxRQUFRO0lBQ3hDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDOUMsQ0FBQzs4R0FQUSxjQUFjO2tHQUFkLGNBQWMsK0VDOVIzQiw0c0RBMkJNOzsyRkRtUU8sY0FBYztrQkFKMUIsU0FBUzsrQkFDSSxrQkFBa0I7O0FBYWhDOztHQUVHO0FBS0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsUUFBUTtJQUN6QztRQUNJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyx1QkFBdUIsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDL0MsQ0FBQzs4R0FQUSxlQUFlO2tHQUFmLGVBQWUsZ0ZDL1M1Qiw0c0RBMkJNOzsyRkRvUk8sZUFBZTtrQkFKM0IsU0FBUzsrQkFDSSxtQkFBbUI7O0FBYWpDOztHQUVHO0FBS0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxRQUFRO0lBQ3hDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDL0MsQ0FBQzs4R0FQUSxjQUFjO2tHQUFkLGNBQWMsK0VDaFUzQiw0c0RBMkJNOzsyRkRxU08sY0FBYztrQkFKMUIsU0FBUzsrQkFDSSxrQkFBa0I7O0FBYWhDOztHQUVHO0FBS0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFFBQVE7SUFDNUM7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7OEdBUFEsa0JBQWtCO2tHQUFsQixrQkFBa0IsbUZDalYvQiw0c0RBMkJNOzsyRkRzVE8sa0JBQWtCO2tCQUo5QixTQUFTOytCQUNJLHNCQUFzQjs7QUFjcEM7O0dBRUc7QUFLSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxRQUFRO0lBQ3pDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLDBCQUEwQixDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUMvQyxDQUFDOzhHQVBRLGVBQWU7a0dBQWYsZUFBZSxnRkNuVzVCLDRzREEyQk07OzJGRHdVTyxlQUFlO2tCQUozQixTQUFTOytCQUNJLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIENvcmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQm9vdHN0cmFwSGVscGVyLCBDb21wb25lbnRUeXBlLCBDb252ZXJ0LCBoYW5kbGVyLCBSYW5kb21IZWxwZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IFZhbGlkRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3ZhbGlkLWV2ZW50LWFyZ3MubW9kZWwnO1xyXG5pbXBvcnQgeyBNb2RhbFNpemUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5cclxuZGVjbGFyZSBsZXQgYm9vdHN0cmFwOiBhbnk7XHJcbmxldCB1bmlxdWVJZCA9IDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnemVrLW1vZGFsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla01vZGFsIGV4dGVuZHMgQ29yZUNvbXBvbmVudCB7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuICAgIG92ZXJyaWRlIGFzeW5jIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgYXdhaXQgc3VwZXIuZGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuX21vZGFsPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgdGhpcy5fbW9kYWwgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5oaWRkZW5IYW5kbGVyKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZXIucmVtb3ZlTGlzdGVuZXIodGhpcy5oaWRkZW5IYW5kbGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd25IYW5kbGVyKSB7XHJcbiAgICAgICAgICAgIGhhbmRsZXIucmVtb3ZlTGlzdGVuZXIodGhpcy5zaG93bkhhbmRsZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCgpXHJcbiAgICAgICAgaWYgKCF0aGlzLm9rQnV0dG9uVGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FjdGlvbi5PaycpLnN1YnNjcmliZSh0ZXh0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub2tCdXR0b25UZXh0ID0gdGV4dDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxFbCA9IHRoaXMuZ2V0TW9kYWxFbGVtZW50KCk7XHJcbiAgICAgICAgICAgIGlmIChtb2RhbEVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3duSGFuZGxlciA9IGhhbmRsZXIuYWRkTGlzdGVuZXIobW9kYWxFbCwgJ3Nob3duLmJzLm1vZGFsJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TaG93bi5lbWl0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGRlbkhhbmRsZXIgPSBoYW5kbGVyLmFkZExpc3RlbmVyKG1vZGFsRWwsICdoaWRkZW4uYnMubW9kYWwnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkhpZGRlbi5lbWl0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3VuaXF1ZUlkOiBzdHJpbmcgPSBgemVrLW1vZGFsLSR7Kyt1bmlxdWVJZH1gO1xyXG4gICAgLyoqIFRoZSB1bmlxdWUgSUQgZm9yIHRoZSByYWRpbyBidXR0b24uICovXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gdGhpcy5fdW5pcXVlSWQ7XHJcbiAgICBtb2RhbElkID0gYCR7dGhpcy5pZH0tbW9kYWxgO1xyXG4gICAgbGFibGVJZCA9IGAke3RoaXMuaWR9LWxhYmxlYDtcclxuICAgIGNhbmNlbEJ1dHRvbklkID0gYCR7dGhpcy5pZH0tY2FuY2VsLWJ1dHRvbmA7XHJcbiAgICBva0J1dHRvbklkID0gYCR7dGhpcy5pZH0tb2stYnV0dG9uYDtcclxuXHJcbiAgICBzaG93bkhhbmRsZXI/OiBudW1iZXIgfCBudWxsO1xyXG4gICAgaGlkZGVuSGFuZGxlcj86IG51bWJlciB8IG51bGw7XHJcblxyXG4gICAgQElucHV0KCkgbW9kZWw6IGFueTtcclxuICAgIHJlYWRvbmx5IGVsZW1lbnRJZCA9IFJhbmRvbUhlbHBlci5yYW5kb21IZXgoKTtcclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvd09rID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2hvd09rKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93T2s7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hvd09rKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3Nob3dPayA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWRPayA9IGZhbHNlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkaXNhYmxlZE9rKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZE9rO1xyXG4gICAgfVxyXG4gICAgc2V0IGRpc2FibGVkT2sodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRPayA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvd0NhbmNlbCA9IHRydWU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNob3dDYW5jZWwoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dDYW5jZWw7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hvd0NhbmNlbCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaG93Q2FuY2VsID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfYXV0b0hpZGUgPSB0cnVlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBhdXRvSGlkZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b0hpZGU7XHJcbiAgICB9XHJcbiAgICBzZXQgYXV0b0hpZGUodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fYXV0b0hpZGUgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASW5wdXQoKSB0aXRsZT86IHN0cmluZyB8IG51bGw7XHJcblxyXG4gICAgQElucHV0KCkgdGV4dD86IHN0cmluZyB8IG51bGw7XHJcblxyXG4gICAgQElucHV0KCkgaWNvbj86IHN0cmluZyB8IG51bGw7XHJcblxyXG4gICAgQElucHV0KCkgb2tCdXR0b25UZXh0Pzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25TaG93biA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvbkhpZGRlbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvbk9rID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQElucHV0KCkgY29tcG9uZW50VHlwZSA9IENvbXBvbmVudFR5cGUuUHJpbWFyeTtcclxuXHJcblxyXG5cclxuICAgIHByaXZhdGUgX3NpemU6IE1vZGFsU2l6ZSA9ICcnO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaXplKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gICAgfVxyXG4gICAgc2V0IHNpemUodjogTW9kYWxTaXplKSB7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIHNpemUgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBsYXJnZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2l6ZSA9PT0gJ2xnJztcclxuICAgIH1cclxuICAgIHNldCBsYXJnZSh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaXplID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KSA/ICdsZycgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2Ugc2l6ZSBwcm9wZXJ0eVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHhsKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplID09PSAneGwnO1xyXG4gICAgfVxyXG4gICAgc2V0IHhsKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3NpemUgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpID8gJ3hsJyA6ICcnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9zY3JvbGxhYmxlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNjcm9sbGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbGFibGU7XHJcbiAgICB9XHJcbiAgICBzZXQgc2Nyb2xsYWJsZSh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zY3JvbGxhYmxlID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9mdWxsc2NyZWVuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGZ1bGxzY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Z1bGxzY3JlZW47XHJcbiAgICB9XHJcbiAgICBzZXQgZnVsbHNjcmVlbih2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9mdWxsc2NyZWVuID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zaG93SGVhZGVyID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2hvd0hlYWRlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd0hlYWRlcjtcclxuICAgIH1cclxuICAgIHNldCBzaG93SGVhZGVyKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX3Nob3dIZWFkZXIgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Nob3dGb290ZXIgPSB0cnVlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93Rm9vdGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Rm9vdGVyO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dGb290ZXIodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd0Zvb3RlciA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgQE91dHB1dCgpIG9uVmFsaWRhdGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8VmFsaWRFdmVudEFyZ3M+KGZhbHNlKTtcclxuICAgIC8vIEBJbnB1dCgpIHh4bDogYm9vbGVhbjtcclxuXHJcbiAgICBwcml2YXRlIF9tb2RhbDogYW55O1xyXG4gICAgLy8gcHVibGljIGdldCBtb2RhbCgpOiBhbnkge1xyXG4gICAgLy8gICAgIGlmICghdGhpcy5fbW9kYWwpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5nZXRNb2RhbCgpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICByZXR1cm4gdGhpcy5fbW9kYWw7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBwdWJsaWMgc2V0IG1vZGFsKHY6IGFueSkge1xyXG4gICAgLy8gICAgIHRoaXMuX21vZGFsID0gdjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0TW9kYWxFbGVtZW50KCkge1xyXG4gICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm1vZGFsSWQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIGdldE1vZGFsKCkge1xyXG4gICAgICAgIGNvbnN0IG1vZGFsRWwgPSB0aGlzLmdldE1vZGFsRWxlbWVudCgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgYm9vdHN0cmFwLk1vZGFsKG1vZGFsRWwsIHsgYmFja2Ryb3A6ICdzdGF0aWMnIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgIGNzc0J1dHRvbigpIHtcclxuICAgICAgICByZXR1cm4gQm9vdHN0cmFwSGVscGVyLmNzc0J1dHRvbih0aGlzLmNvbXBvbmVudFR5cGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHByaXZhdGUgaXNTaG93biA9IGZhbHNlO1xyXG4gICAgc2hvdyhtb2RlbD86IGFueSkge1xyXG4gICAgICAgIGlmICghbW9kZWwpIG1vZGVsID0ge307XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xyXG5cclxuICAgICAgICAvLyB0aGlzLm1vZGFsPy5zaG93KCk7XHJcblxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX21vZGFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21vZGFsID0gdGhpcy5nZXRNb2RhbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fbW9kYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5fbW9kYWwuc2hvdygpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLmlzU2hvd24gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoaWRlKCkge1xyXG4gICAgICAgIC8vIHRoaXMubW9kYWw/LmhpZGUoKTtcclxuXHJcbiAgICAgICAgLy8gaWYgKHRoaXMuaXNTaG93bikge1xyXG4gICAgICAgIC8vICAgICBpZiAodGhpcy5fbW9kYWwpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuX21vZGFsLmhpZGUoKTtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuXHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fbW9kYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5fbW9kYWwuaGlkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5jYW5jZWxCdXR0b25JZCk7XHJcbiAgICAgICAgICAgIGlmIChidG4pIHtcclxuICAgICAgICAgICAgICAgIGJ0bi5jbGljaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9rKCkge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IFZhbGlkRXZlbnRBcmdzKCk7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRpbmcuZW1pdChldmVudCk7XHJcbiAgICAgICAgaWYgKCFldmVudC52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hdXRvSGlkZSlcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcblxyXG4gICAgICAgIHRoaXMub25Pay5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGtleURvd24oZTogRXZlbnQpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5vaygpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBaZWtNb2RhbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3play1kZWxldGUtbW9kYWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrRGVsZXRlTW9kYWwgZXh0ZW5kcyBaZWtNb2RhbCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdmYS1zb2xpZCBmYS10cmFzaCc7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdBY3Rpb24uRGVsZXRlJykuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4gdGhpcy50aXRsZSA9IHJlcyk7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5EZWxldGVRdWVzdGlvbicpLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHRoaXMudGV4dCA9IHJlcyk7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gQ29tcG9uZW50VHlwZS5EZWxldGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFpla01vZGFsXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnemVrLWFwcHJvdmUtbW9kYWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrQXBwcm92ZU1vZGFsIGV4dGVuZHMgWmVrTW9kYWwge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmljb24gPSAnZmEtc29saWQgZmEtdGh1bWJzLXVwJztcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FjdGlvbi5BcHByb3ZlJykuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4gdGhpcy50aXRsZSA9IHJlcyk7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5BcHByb3ZlUXVlc3Rpb24nKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB0aGlzLnRleHQgPSByZXMpO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50VHlwZSA9IENvbXBvbmVudFR5cGUuU3VjY2VzcztcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgWmVrTW9kYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd6ZWstc3VibWl0LW1vZGFsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla1N1Ym1pdE1vZGFsIGV4dGVuZHMgWmVrTW9kYWwge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmljb24gPSAnZmEtc29saWQgZmEtdGh1bWJzLXVwJztcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FjdGlvbi5TdWJtaXQnKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB0aGlzLnRpdGxlID0gcmVzKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FsZXJ0LlN1Ym1pdFF1ZXN0aW9uJykuc3Vic2NyaWJlKChyZXM6IHN0cmluZykgPT4gdGhpcy50ZXh0ID0gcmVzKTtcclxuICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGUgPSBDb21wb25lbnRUeXBlLlN1Y2Nlc3M7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIFpla01vZGFsXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnemVrLWRpc2FwcHJvdmUtbW9kYWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrRGlzYXBwcm92ZU1vZGFsIGV4dGVuZHMgWmVrTW9kYWwge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmljb24gPSAnZmEtc29saWQgZmEtdGh1bWJzLWRvd24nO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnQWN0aW9uLkRpc2FwcHJvdmUnKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB0aGlzLnRpdGxlID0gcmVzKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FsZXJ0LkRpc2FwcHJvdmVRdWVzdGlvbicpLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHRoaXMudGV4dCA9IHJlcyk7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gQ29tcG9uZW50VHlwZS5EZWxldGU7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBaZWtNb2RhbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3play1yZXN0b3JlLW1vZGFsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla1Jlc3RvcmVNb2RhbCBleHRlbmRzIFpla01vZGFsIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ2ZhLXNvbGlkIGZhLXJvdGF0ZS1yaWdodCc7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdBY3Rpb24uUmVzdG9yZScpLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHRoaXMudGl0bGUgPSByZXMpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnQWN0aW9uLlJlc3RvcmVRdWVzdGlvbicpLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHRoaXMudGV4dCA9IHJlcyk7XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRUeXBlID0gQ29tcG9uZW50VHlwZS5TdWNjZXNzO1xyXG4gICAgfVxyXG59IiwiPGRpdiAoa2V5ZG93bi5lbnRlcik9XCJrZXlEb3duKCRldmVudClcIiBjbGFzcz1cIm1vZGFsIGZhZGVcIiBkYXRhLWJzLWJhY2tkcm9wPVwic3RhdGljXCIgaWQ9XCJ7e21vZGFsSWR9fVwiIHRhYmluZGV4PVwiLTFcIiBhdHRyLmFyaWEtbGFiZWxsZWRieT1cInt7bGFibGVJZH19XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdtb2RhbC1zbSc6IHNpemUgPT09ICdzbScsXHJcbiAgICAgICAgJ21vZGFsLWxnJzogc2l6ZSA9PT0gJ2xnJywgXHJcbiAgICAgICAgJ21vZGFsLXhsJzogc2l6ZSA9PT0gJ3hsJ1xyXG4gICAgfVwiIFtjbGFzcy5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlXCIgW2NsYXNzLm1vZGFsLWZ1bGxzY3JlZW5dPVwiZnVsbHNjcmVlblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIiAqbmdJZj1cInNob3dIZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImhlYWRlclwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJ7e2xhYmxlSWR9fVwiPnt7dGl0bGV9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGRhdGEtYnMtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAge3t0ZXh0fX1cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIiAqbmdJZj1cInNob3dGb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZvb3RlclwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gW2NsYXNzLnZpc3VhbGx5LWhpZGRlbl09XCIhc2hvd09rXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkT2tcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4ge3tjc3NCdXR0b24oKX19XCIgaWQ9XCJ7e29rQnV0dG9uSWR9fVwiIChjbGljayk9XCJvaygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpY29uXCIgY2xhc3M9XCJ7eyBpY29uIH19XCI+PC9pPiB7eyBva0J1dHRvblRleHQgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MudmlzdWFsbHktaGlkZGVuXT1cIiFzaG93Q2FuY2VsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBpZD1cInt7Y2FuY2VsQnV0dG9uSWR9fVwiIGRhdGEtYnMtZGlzbWlzcz1cIm1vZGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1iYW5cIj48L2k+IHt7ICdBY3Rpb24uQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './tag';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL3RhZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFnJzsiXX0=
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { CoreUiComponent } from '../../components';
|
|
5
|
+
import { Convert, MathHelper } from '../../utils';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@angular/forms";
|
|
9
|
+
let uniqueId = 0;
|
|
10
|
+
export class ZekTag extends CoreUiComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.modelChange = new EventEmitter();
|
|
14
|
+
this._max = 1000000000;
|
|
15
|
+
this._maxlength = null;
|
|
16
|
+
this._duplicate = false;
|
|
17
|
+
this.text = null;
|
|
18
|
+
this._uniqueId = `zek-tag-${++uniqueId}`;
|
|
19
|
+
/** The unique ID for the tag. */
|
|
20
|
+
this.id = this._uniqueId;
|
|
21
|
+
}
|
|
22
|
+
get max() {
|
|
23
|
+
return this._max;
|
|
24
|
+
}
|
|
25
|
+
set max(v) {
|
|
26
|
+
const tmp = MathHelper.clamp(Convert.toNumber(v) || 0, 0, 1000000000);
|
|
27
|
+
if (this._max !== tmp) {
|
|
28
|
+
this._max = tmp;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
get maxlength() {
|
|
32
|
+
return this._maxlength;
|
|
33
|
+
}
|
|
34
|
+
set maxlength(v) {
|
|
35
|
+
const tmp = Convert.parseNumber(v);
|
|
36
|
+
if (tmp !== null) {
|
|
37
|
+
const num = MathHelper.clamp(tmp, 0, 1000000000);
|
|
38
|
+
if (this._maxlength !== num) {
|
|
39
|
+
this._maxlength = num;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
this._maxlength = tmp;
|
|
43
|
+
}
|
|
44
|
+
get duplicate() {
|
|
45
|
+
return this._duplicate;
|
|
46
|
+
}
|
|
47
|
+
set duplicate(v) {
|
|
48
|
+
this._duplicate = Convert.toBooleanProperty(v);
|
|
49
|
+
}
|
|
50
|
+
onKeyEnter(e) {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
e.stopPropagation();
|
|
53
|
+
if (this.add(this.text)) {
|
|
54
|
+
this.text = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
get inputId() {
|
|
58
|
+
return `${this.id || this._uniqueId}-input`;
|
|
59
|
+
}
|
|
60
|
+
add(text) {
|
|
61
|
+
if (!text)
|
|
62
|
+
return false;
|
|
63
|
+
let emitModel = false;
|
|
64
|
+
if (!this.model) {
|
|
65
|
+
this.model = [];
|
|
66
|
+
emitModel = true;
|
|
67
|
+
}
|
|
68
|
+
const maxlength = (this.maxlength || 0);
|
|
69
|
+
if (maxlength > 0 && text.length > maxlength) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (!this.duplicate && this.model.includes(text)) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
if (this.model.length >= this.max) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
this.model.push(text);
|
|
79
|
+
if (emitModel)
|
|
80
|
+
this.modelChange.emit(this.model);
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
remove(item) {
|
|
84
|
+
if (!this.model)
|
|
85
|
+
return;
|
|
86
|
+
const index = this.model.indexOf(item);
|
|
87
|
+
if (index !== -1) {
|
|
88
|
+
this.model.splice(index, 1);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekTag, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekTag, isStandalone: true, selector: "zek-tag", inputs: { model: "model", max: "max", maxlength: "maxlength", duplicate: "duplicate", id: "id" }, outputs: { modelChange: "modelChange" }, host: { properties: { "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-wrap align-items-center gap-1 form-control\">\r\n <ng-container *ngIf=\"model\">\r\n <button *ngFor=\"let item of model\" type=\"button\" (click)=\"remove(item)\" class=\"align-items-center gap-1 d-inline-flex py-0 border-0 btn btn-primary\">{{item}}<span class=\"d-inline-flex\" role=\"button\" tabindex=\"-1\"><i class=\"fa-solid fa-xmark\"></i></span></button>\r\n </ng-container>\r\n <div class=\"input-wrapper\"><span>i</span><input type=\"text\"\r\n [id]=\"inputId\"\r\n [name]=\"inputId\"\r\n [(ngModel)]=\"text\"\r\n [maxlength]=\"maxlength\"\r\n (keydown.enter)=\"onKeyEnter($event)\"></div>\r\n</div>", styles: [".input-wrapper{position:relative;min-width:4px;flex-grow:1;white-space:nowrap}.input-wrapper>span{visibility:hidden}.input-wrapper input[type=text]{position:absolute;top:0;left:0;padding:0;outline:0;border:0;width:100%;background-color:transparent}.input-wrapper input[type=text]::placeholder{color:#212529bf;opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekTag, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{ standalone: true, imports: [CommonModule, FormsModule], selector: 'zek-tag', host: {
|
|
97
|
+
'[attr.id]': 'id',
|
|
98
|
+
}, template: "<div class=\"d-flex flex-wrap align-items-center gap-1 form-control\">\r\n <ng-container *ngIf=\"model\">\r\n <button *ngFor=\"let item of model\" type=\"button\" (click)=\"remove(item)\" class=\"align-items-center gap-1 d-inline-flex py-0 border-0 btn btn-primary\">{{item}}<span class=\"d-inline-flex\" role=\"button\" tabindex=\"-1\"><i class=\"fa-solid fa-xmark\"></i></span></button>\r\n </ng-container>\r\n <div class=\"input-wrapper\"><span>i</span><input type=\"text\"\r\n [id]=\"inputId\"\r\n [name]=\"inputId\"\r\n [(ngModel)]=\"text\"\r\n [maxlength]=\"maxlength\"\r\n (keydown.enter)=\"onKeyEnter($event)\"></div>\r\n</div>", styles: [".input-wrapper{position:relative;min-width:4px;flex-grow:1;white-space:nowrap}.input-wrapper>span{visibility:hidden}.input-wrapper input[type=text]{position:absolute;top:0;left:0;padding:0;outline:0;border:0;width:100%;background-color:transparent}.input-wrapper input[type=text]::placeholder{color:#212529bf;opacity:1}\n"] }]
|
|
99
|
+
}], propDecorators: { model: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], modelChange: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}], max: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], maxlength: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], duplicate: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], id: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}] } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy90YWcvdGFnLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy90YWcvdGFnLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBZ0IsZUFBZSxFQUFlLE1BQU0sa0JBQWtCLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFFbEQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBWWpCLE1BQU0sT0FBTyxNQUFPLFNBQVEsZUFBZTtJQVYzQzs7UUFZdUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBWTlELFNBQUksR0FBVyxVQUFVLENBQUM7UUFJMUIsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFrQnpCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFXM0IsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFXbkIsY0FBUyxHQUFXLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNwRCxpQ0FBaUM7UUFDeEIsT0FBRSxHQUFXLElBQUksQ0FBQyxTQUFTLENBQUM7S0F5Q3hDO0lBakdHLElBQ0ksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsQ0FBYztRQUNsQixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxR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QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDOzhHQXBHUSxNQUFNO2tHQUFOLE1BQU0sZ1JDbEJuQixvc0JBVU0sMFhEQVEsWUFBWSwrUEFBRSxXQUFXOzsyRkFRMUIsTUFBTTtrQkFWbEIsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQzFCLFNBQVMsUUFHYjt3QkFDRixXQUFXLEVBQUUsSUFBSTtxQkFDcEI7OEJBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNhLFdBQVc7c0JBQTdCLE1BQU07Z0JBR0gsR0FBRztzQkFETixLQUFLO2dCQWdCRixTQUFTO3NCQURaLEtBQUs7Z0JBbUJGLFNBQVM7c0JBRFosS0FBSztnQkF1QkcsRUFBRTtzQkFBVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgQ29yZVVpQ29tcG9uZW50LCBOdW1iZXJJbnB1dCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDb252ZXJ0LCBNYXRoSGVscGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxubGV0IHVuaXF1ZUlkID0gMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICAgIHNlbGVjdG9yOiAnemVrLXRhZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3RhZy5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAndGFnLnNjc3MnLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQnLFxyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrVGFnIGV4dGVuZHMgQ29yZVVpQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIG1vZGVsITogc3RyaW5nW10gfCBudWxsO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1heCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XHJcbiAgICB9XHJcbiAgICBzZXQgbWF4KHY6IE51bWJlcklucHV0KSB7XHJcbiAgICAgICAgY29uc3QgdG1wID0gTWF0aEhlbHBlci5jbGFtcChDb252ZXJ0LnRvTnVtYmVyKHYpIHx8IDAsIDAsIDEwMDAwMDAwMDApO1xyXG4gICAgICAgIGlmICh0aGlzLl9tYXggIT09IHRtcCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tYXggPSB0bXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgX21heDogbnVtYmVyID0gMTAwMDAwMDAwMDtcclxuXHJcblxyXG5cclxuICAgIF9tYXhsZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBtYXhsZW5ndGgoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heGxlbmd0aDtcclxuICAgIH1cclxuICAgIHNldCBtYXhsZW5ndGgodjogTnVtYmVySW5wdXQpIHtcclxuICAgICAgICBjb25zdCB0bXAgPSBDb252ZXJ0LnBhcnNlTnVtYmVyKHYpO1xyXG4gICAgICAgIGlmICh0bXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgY29uc3QgbnVtID0gTWF0aEhlbHBlci5jbGFtcCh0bXAsIDAsIDEwMDAwMDAwMDApO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fbWF4bGVuZ3RoICE9PSBudW0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX21heGxlbmd0aCA9IG51bTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9tYXhsZW5ndGggPSB0bXA7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9kdXBsaWNhdGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZHVwbGljYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kdXBsaWNhdGU7XHJcbiAgICB9XHJcbiAgICBzZXQgZHVwbGljYXRlKHY6IEJvb2xlYW5JbnB1dCkge1xyXG4gICAgICAgIHRoaXMuX2R1cGxpY2F0ZSA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICB0ZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIG9uS2V5RW50ZXIoZTogRXZlbnQpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFkZCh0aGlzLnRleHQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3VuaXF1ZUlkOiBzdHJpbmcgPSBgemVrLXRhZy0keysrdW5pcXVlSWR9YDtcclxuICAgIC8qKiBUaGUgdW5pcXVlIElEIGZvciB0aGUgdGFnLiAqL1xyXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9IHRoaXMuX3VuaXF1ZUlkO1xyXG5cclxuICAgIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuaWQgfHwgdGhpcy5fdW5pcXVlSWR9LWlucHV0YDtcclxuICAgIH1cclxuXHJcbiAgICBhZGQodGV4dDogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghdGV4dCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICBsZXQgZW1pdE1vZGVsID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbXTtcclxuICAgICAgICAgICAgZW1pdE1vZGVsID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG1heGxlbmd0aCA9ICh0aGlzLm1heGxlbmd0aCB8fCAwKTtcclxuICAgICAgICBpZiAobWF4bGVuZ3RoID4gMCAmJiB0ZXh0Lmxlbmd0aCA+IG1heGxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZHVwbGljYXRlICYmIHRoaXMubW9kZWwuaW5jbHVkZXModGV4dCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwubGVuZ3RoID49IHRoaXMubWF4KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbC5wdXNoKHRleHQpO1xyXG4gICAgICAgIGlmIChlbWl0TW9kZWwpIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUoaXRlbTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb2RlbC5pbmRleE9mKGl0ZW0pO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBmb3JtLWNvbnRyb2xcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbFwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWxcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZShpdGVtKVwiIGNsYXNzPVwiYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIGQtaW5saW5lLWZsZXggcHktMCBib3JkZXItMCBidG4gYnRuLXByaW1hcnlcIj57e2l0ZW19fTxzcGFuIGNsYXNzPVwiZC1pbmxpbmUtZmxleFwiIHJvbGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS14bWFya1wiPjwvaT48L3NwYW4+PC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCI+PHNwYW4+aTwvc3Bhbj48aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgICAgIFtuYW1lXT1cImlucHV0SWRcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRleHRcIlxyXG4gICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uS2V5RW50ZXIoJGV2ZW50KVwiPjwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -76,30 +76,31 @@ export class WebApiClient {
|
|
|
76
76
|
// return undefined;
|
|
77
77
|
//}
|
|
78
78
|
post(url, body) {
|
|
79
|
-
return this.http.post(this.baseUrl + url, body, { headers: this.getHeaders() });
|
|
79
|
+
return this.http.post(this.baseUrl + url, body, { headers: this.getHeaders(body) });
|
|
80
80
|
//.pipe(
|
|
81
81
|
//catchError(this.handleError(url))
|
|
82
82
|
//);
|
|
83
83
|
}
|
|
84
84
|
put(url, body) {
|
|
85
|
-
return this.http.put(this.baseUrl + url, body, { headers: this.getHeaders() });
|
|
85
|
+
return this.http.put(this.baseUrl + url, body, { headers: this.getHeaders(body) });
|
|
86
86
|
//.pipe(
|
|
87
87
|
//catchError(this.handleError(url))
|
|
88
88
|
//);
|
|
89
89
|
}
|
|
90
90
|
delete(url, body) {
|
|
91
|
-
return this.http.request('delete', this.baseUrl + url, { body, headers: this.getHeaders() });
|
|
91
|
+
return this.http.request('delete', this.baseUrl + url, { body, headers: this.getHeaders(body) });
|
|
92
92
|
//return this.http.delete(environment.url + url, { headers: this.getHeaders() });
|
|
93
93
|
//.pipe(
|
|
94
94
|
//catchError(this.handleError(url))
|
|
95
95
|
//);
|
|
96
96
|
}
|
|
97
97
|
patch(url, body) {
|
|
98
|
-
return this.http.patch(this.baseUrl + url, body, { headers: this.getHeaders() });
|
|
98
|
+
return this.http.patch(this.baseUrl + url, body, { headers: this.getHeaders(body) });
|
|
99
99
|
}
|
|
100
|
-
getHeaders() {
|
|
100
|
+
getHeaders(body) {
|
|
101
101
|
let httpHeaders = new HttpHeaders();
|
|
102
|
-
|
|
102
|
+
if (!(body instanceof FormData))
|
|
103
|
+
httpHeaders = httpHeaders.set('Content-Type', 'application/json');
|
|
103
104
|
const tmp = this.auth.user;
|
|
104
105
|
const token = tmp ? tmp.token : undefined;
|
|
105
106
|
if (token)
|
|
@@ -129,4 +130,4 @@ export class CustomHttpParamEncoder {
|
|
|
129
130
|
return decodeURIComponent(value);
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3NlcnZpY2VzL3dlYi5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLENBQUEsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBT3pDLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQ3VCLElBQWdCLEVBQ2hCLElBQWlCLEVBQ0csT0FBZTtRQUZuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDRyxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQzFELENBQUM7SUFFRCxHQUFHLENBQVUsR0FBVyxFQUFFLE1BQVk7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9HOzs7Ozs7Ozs7TUFTRjtJQUNGLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVyxFQUFFLE1BQWU7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEksQ0FB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a0JBRHhCLFVBQVU7OzBCQUtGLE1BQU07MkJBQUMsWUFBWTs7QUFtSTVCLE1BQU0sT0FBTyxzQkFBc0I7SUFDL0IsU0FBUyxDQUFDLEdBQVc7UUFDakIsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQWE7UUFDckIsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQVc7UUFDakIsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQWE7UUFDckIsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMvKiwgSHR0cEVycm9yUmVzcG9uc2UqLyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG4vL2ltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9vYnNlcnZhYmxlL29mJztcclxuLy9pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbi8vaW1wb3J0IHsgZGVsZXRlTnVsbFByb3BlcnRpZXMgfSBmcm9tICcuLi91dGlscyc7XHJcbi8vaW1wb3J0IHsgSHR0cEVycm9ySGFuZGxlciwgSGFuZGxlRXJyb3IgfSBmcm9tICcuL2h0dHAtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cFBhcmFtZXRlckNvZGVjIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUElfQkFTRV9VUkwgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXZWJBcGlDb25maWcge1xyXG4gICAgYmFzZVVybDogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBXZWJBcGlDbGllbnQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGg6IEF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQVBJX0JBU0VfVVJMKSBwcml2YXRlIHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZykge1xyXG4gICAgfVxyXG5cclxuICAgIGdldDxUID0gYW55Pih1cmw6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5iYXNlVXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICAgICAgLyouY2F0Y2goY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHVybCkpKVxyXG4gICAgICAgIC5kbygocmVzOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAvLyBIYW5kbGUgc3VjY2VzcywgbWF5YmUgZGlzcGxheSBub3RpZmljYXRpb25cclxuICAgICAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvLyBIYW5kbGUgZXJyb3JzXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZmluYWxseSgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIFJlcXVlc3QgY29tcGxldGVkXHJcbiAgICAgICAgfSk7XHJcbiAgICAqL1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0cmluZyh1cmw6IHN0cmluZywgcGFyYW1zPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5iYXNlVXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCByZXNwb25zZVR5cGU6ICd0ZXh0JywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG4gICAgZ2V0Qnl0ZXModXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QXJyYXlCdWZmZXI+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG4gICAgZ2V0QmxvYih1cmw6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxCbG9iPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5iYXNlVXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpLCByZXNwb25zZVR5cGU6ICdibG9iJywgcGFyYW1zOiB0aGlzLnRvSHR0cFBhcmFtcyhwYXJhbXMpIH0pO1xyXG4gICAgfVxyXG4gICAgcG9zdEJsb2IodXJsOiBzdHJpbmcsIGJvZHk6IGFueSk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmJhc2VVcmwgKyB1cmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgdG9IdHRwUGFyYW1zKG9iajogYW55KSB7XHJcbiAgICAgICAgaWYgKCFvYmopXHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBDdXN0b21IdHRwUGFyYW1FbmNvZGVyKCkgfSk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IG9ialtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQgfHwgZmllbGQgPT09IG51bGwgfHwgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID09PSAwKSlcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWVsZDtcclxuICAgICAgICAgICAgLy8gaWYgKHR5cGVvZiBmaWVsZCA9PT0gJ3N0cmluZycgJiYgZmllbGQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAvLyAgICAgdmFsdWUgPSBmaWVsZC5yZXBsYWNlKC9cXCsvZ2ksICclMkInKTtcclxuICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcclxuICAgICAgICAgICAgLy8gaWYgKGZpZWxkIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgLy8gICAgIGZpZWxkLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoYCR7a2V5fVtdYCwgaXRlbSk7XHJcbiAgICAgICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCBmaWVsZCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuXHJcblxyXG4gICAgICAgIC8vZGVsZXRlTnVsbFByb3BlcnRpZXMob2JqKTtcclxuICAgICAgICAvL2NvbW1lbnQgYmVjYXVzZSBpbnRbXSBub3Qgc2VuZGluZyBpbiBjIyBpdCBzZW5kIFwiMSwyLDMsNFwiXHJcbiAgICAgICAgLy8gcmV0dXJuIG9ialxyXG4gICAgICAgIC8vICAgICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikucmVkdWNlKChwLCBrZXkpID0+IHAuc2V0KGtleSwgb2JqW2tleV0pLCBuZXcgSHR0cFBhcmFtcygpKVxyXG4gICAgICAgIC8vICAgICA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvL3RvS2V5UGFpcnMob2JqOiBhbnkpOiBLZXlQYWlyW10gfCB1bmRlZmluZWQge1xyXG4gICAgLy8gICAgaWYgKG9iaiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopO1xyXG4gICAgLy8gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBcnJheTxLZXlQYWlyPigpO1xyXG4gICAgLy8gICAgICAgIGZvciAobGV0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgIC8vICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmpbcHJvcGVydHldO1xyXG4gICAgLy8gICAgICAgICAgICByZXN1bHQucHVzaCh7IGtleTogcHJvcGVydHksIHZhbHVlOiB2YWx1ZSB9KTtcclxuICAgIC8vICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAvL31cclxuXHJcbiAgICBwb3N0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmJhc2VVcmwgKyB1cmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICAgICAgLy8ucGlwZShcclxuICAgICAgICAvL2NhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKVxyXG4gICAgICAgIC8vKTtcclxuICAgIH1cclxuICAgIHB1dDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih0aGlzLmJhc2VVcmwgKyB1cmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICAgICAgLy8ucGlwZShcclxuICAgICAgICAvL2NhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKVxyXG4gICAgICAgIC8vKTtcclxuICAgIH1cclxuICAgIGRlbGV0ZSh1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdCgnZGVsZXRlJywgdGhpcy5iYXNlVXJsICsgdXJsLCB7IGJvZHksIGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgICAgIC8vcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoZW52aXJvbm1lbnQudXJsICsgdXJsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBwYXRjaDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPFQ+KHRoaXMuYmFzZVVybCArIHVybCwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xyXG4gICAgICAgIGxldCBodHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIGh0dHBIZWFkZXJzID0gaHR0cEhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgICAgIGNvbnN0IHRtcCA9IHRoaXMuYXV0aC51c2VyO1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gdG1wID8gdG1wLnRva2VuIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0b2tlbilcclxuICAgICAgICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCB0b2tlbik7XHJcbiAgICAgICAgcmV0dXJuIGh0dHBIZWFkZXJzO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy9wcml2YXRlIGdldFBhcmFtcyhwYXJhbXM/OiBLZXlQYWlyW10gfCBudWxsKSB7XHJcbiAgICAvLyAgICBpZiAoIXBhcmFtcyB8fCBwYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgIC8vICAgIGlmIChwYXJhbXMpIHtcclxuICAgIC8vICAgICAgICBmb3IgKGxldCBwYXJhbSBvZiBwYXJhbXMpIHtcclxuICAgIC8vICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KHBhcmFtLmtleSwgcGFyYW0udmFsdWUpO1xyXG4gICAgLy8gICAgICAgIH1cclxuICAgIC8vICAgIH1cclxuICAgIC8vICAgIHJldHVybiBodHRwUGFyYW1zO1xyXG4gICAgLy99XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUh0dHBQYXJhbUVuY29kZXIgaW1wbGVtZW50cyBIdHRwUGFyYW1ldGVyQ29kZWMge1xyXG4gICAgZW5jb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgICB9XHJcbiAgICBlbmNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICAgIH1cclxuICAgIGRlY29kZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChrZXkpO1xyXG4gICAgfVxyXG4gICAgZGVjb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3NlcnZpY2VzL3dlYi5hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLENBQUEsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBT3pDLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFlBQ3VCLElBQWdCLEVBQ2hCLElBQWlCLEVBQ0csT0FBZTtRQUZuQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDRyxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQzFELENBQUM7SUFFRCxHQUFHLENBQVUsR0FBVyxFQUFFLE1BQVk7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9HOzs7Ozs7Ozs7TUFTRjtJQUNGLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVyxFQUFFLE1BQWU7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEksQ0FB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QUFLLENBQUMsQ0FBQztRQUMxRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOzhHQXBIUSxZQUFZLHVFQUlULFlBQVk7a0hBSmYsWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsVUFBVTs7MEJBS0YsTUFBTTsyQkFBQyxZQUFZOztBQW9JNUIsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixTQUFTLENBQUMsR0FBVztRQUNqQixPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUNyQixPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBVztRQUNqQixPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUNyQixPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcy8qLCBIdHRwRXJyb3JSZXNwb25zZSovIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbi8vaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzL29ic2VydmFibGUvb2YnO1xyXG4vL2ltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuLy9pbXBvcnQgeyBkZWxldGVOdWxsUHJvcGVydGllcyB9IGZyb20gJy4uL3V0aWxzJztcclxuLy9pbXBvcnQgeyBIdHRwRXJyb3JIYW5kbGVyLCBIYW5kbGVFcnJvciB9IGZyb20gJy4vaHR0cC1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1ldGVyQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQSV9CQVNFX1VSTCB9IGZyb20gJy4uL3Rva2Vucyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdlYkFwaUNvbmZpZyB7XHJcbiAgICBiYXNlVXJsOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFdlYkFwaUNsaWVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aDogQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBUElfQkFTRV9VUkwpIHByaXZhdGUgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0PFQgPSBhbnk+KHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHBhcmFtczogdGhpcy50b0h0dHBQYXJhbXMocGFyYW1zKSB9KTtcclxuICAgICAgICAvKi5jYXRjaChjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSkpXHJcbiAgICAgICAgLmRvKChyZXM6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEhhbmRsZSBzdWNjZXNzLCBtYXliZSBkaXNwbGF5IG5vdGlmaWNhdGlvblxyXG4gICAgICAgIH0sIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvcnNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgICAgLy8gUmVxdWVzdCBjb21wbGV0ZWRcclxuICAgICAgICB9KTtcclxuICAgICovXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RyaW5nKHVybDogc3RyaW5nLCBwYXJhbXM/OiBvYmplY3QpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ3RleHQnLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRCeXRlcyh1cmw6IHN0cmluZywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxBcnJheUJ1ZmZlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuYmFzZVVybCArIHVybCwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRCbG9iKHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmJhc2VVcmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCksIHJlc3BvbnNlVHlwZTogJ2Jsb2InLCBwYXJhbXM6IHRoaXMudG9IdHRwUGFyYW1zKHBhcmFtcykgfSk7XHJcbiAgICB9XHJcbiAgICBwb3N0QmxvYih1cmw6IHN0cmluZywgYm9keTogYW55KTogT2JzZXJ2YWJsZTxCbG9iPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYmFzZVVybCArIHVybCwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoKSwgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByb3RlY3RlZCB0b0h0dHBQYXJhbXMob2JqOiBhbnkpIHtcclxuICAgICAgICBpZiAoIW9iailcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlcjogbmV3IEN1c3RvbUh0dHBQYXJhbUVuY29kZXIoKSB9KTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvYmopKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gb2JqW2tleV07XHJcblxyXG4gICAgICAgICAgICBpZiAoZmllbGQgPT09IHVuZGVmaW5lZCB8fCBmaWVsZCA9PT0gbnVsbCB8fCAodHlwZW9mIGZpZWxkID09PSAnc3RyaW5nJyAmJiBmaWVsZC5sZW5ndGggPT09IDApKVxyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZpZWxkO1xyXG4gICAgICAgICAgICAvLyBpZiAodHlwZW9mIGZpZWxkID09PSAnc3RyaW5nJyAmJiBmaWVsZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB2YWx1ZSA9IGZpZWxkLnJlcGxhY2UoL1xcKy9naSwgJyUyQicpO1xyXG4gICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICAvLyBpZiAoZmllbGQgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICAvLyAgICAgZmllbGQuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChgJHtrZXl9W11gLCBpdGVtKTtcclxuICAgICAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChrZXksIGZpZWxkKTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG5cclxuXHJcbiAgICAgICAgLy9kZWxldGVOdWxsUHJvcGVydGllcyhvYmopO1xyXG4gICAgICAgIC8vY29tbWVudCBiZWNhdXNlIGludFtdIG5vdCBzZW5kaW5nIGluIGMjIGl0IHNlbmQgXCIxLDIsMyw0XCJcclxuICAgICAgICAvLyByZXR1cm4gb2JqXHJcbiAgICAgICAgLy8gICAgID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5yZWR1Y2UoKHAsIGtleSkgPT4gcC5zZXQoa2V5LCBvYmpba2V5XSksIG5ldyBIdHRwUGFyYW1zKCkpXHJcbiAgICAgICAgLy8gICAgIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vdG9LZXlQYWlycyhvYmo6IGFueSk6IEtleVBhaXJbXSB8IHVuZGVmaW5lZCB7XHJcbiAgICAvLyAgICBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAvLyAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaik7XHJcbiAgICAvLyAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PEtleVBhaXI+KCk7XHJcbiAgICAvLyAgICAgICAgZm9yIChsZXQgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xyXG4gICAgLy8gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9ialtwcm9wZXJ0eV07XHJcbiAgICAvLyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsga2V5OiBwcm9wZXJ0eSwgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgLy8gICAgICAgIH1cclxuICAgIC8vICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgLy8gICAgfVxyXG4gICAgLy8gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIC8vfVxyXG5cclxuICAgIHBvc3Q8VCA9IGFueT4odXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMuYmFzZVVybCArIHVybCwgYm9keSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoYm9keSkgfSk7XHJcbiAgICAgICAgLy8ucGlwZShcclxuICAgICAgICAvL2NhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKVxyXG4gICAgICAgIC8vKTtcclxuICAgIH1cclxuICAgIHB1dDxUID0gYW55Pih1cmw6IHN0cmluZywgYm9keT86IGFueSB8IG51bGwpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPih0aGlzLmJhc2VVcmwgKyB1cmwsIGJvZHksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKGJvZHkpIH0pO1xyXG4gICAgICAgIC8vLnBpcGUoXHJcbiAgICAgICAgLy9jYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodXJsKSlcclxuICAgICAgICAvLyk7XHJcbiAgICB9XHJcbiAgICBkZWxldGUodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnkgfCBudWxsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnJlcXVlc3QoJ2RlbGV0ZScsIHRoaXMuYmFzZVVybCArIHVybCwgeyBib2R5LCBoZWFkZXJzOiB0aGlzLmdldEhlYWRlcnMoYm9keSkgfSk7XHJcbiAgICAgICAgLy9yZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShlbnZpcm9ubWVudC51cmwgKyB1cmwsIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSk7XHJcbiAgICAgICAgLy8ucGlwZShcclxuICAgICAgICAvL2NhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih1cmwpKVxyXG4gICAgICAgIC8vKTtcclxuICAgIH1cclxuICAgIHBhdGNoPFQgPSBhbnk+KHVybDogc3RyaW5nLCBib2R5PzogYW55IHwgbnVsbCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8VD4odGhpcy5iYXNlVXJsICsgdXJsLCBib2R5LCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycyhib2R5KSB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEhlYWRlcnMoYm9keT86IGFueSB8IG51bGwpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgICAgaWYgKCEoYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSlcclxuICAgICAgICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgY29uc3QgdG1wID0gdGhpcy5hdXRoLnVzZXI7XHJcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0bXAgPyB0bXAudG9rZW4gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRva2VuKVxyXG4gICAgICAgICAgICBodHRwSGVhZGVycyA9IGh0dHBIZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIHRva2VuKTtcclxuICAgICAgICByZXR1cm4gaHR0cEhlYWRlcnM7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICAvL3ByaXZhdGUgZ2V0UGFyYW1zKHBhcmFtcz86IEtleVBhaXJbXSB8IG51bGwpIHtcclxuICAgIC8vICAgIGlmICghcGFyYW1zIHx8IHBhcmFtcy5sZW5ndGggPT09IDApIHtcclxuICAgIC8vICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgLy8gICAgfVxyXG4gICAgLy8gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgLy8gICAgaWYgKHBhcmFtcykge1xyXG4gICAgLy8gICAgICAgIGZvciAobGV0IHBhcmFtIG9mIHBhcmFtcykge1xyXG4gICAgLy8gICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQocGFyYW0ua2V5LCBwYXJhbS52YWx1ZSk7XHJcbiAgICAvLyAgICAgICAgfVxyXG4gICAgLy8gICAgfVxyXG4gICAgLy8gICAgcmV0dXJuIGh0dHBQYXJhbXM7XHJcbiAgICAvL31cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tSHR0cFBhcmFtRW5jb2RlciBpbXBsZW1lbnRzIEh0dHBQYXJhbWV0ZXJDb2RlYyB7XHJcbiAgICBlbmNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcclxuICAgIH1cclxuICAgIGVuY29kZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgZGVjb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgICB9XHJcbiAgICBkZWNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICAgIH1cclxufSJdfQ==
|