@ks89/angular-modal-gallery 11.0.0 → 11.1.0-rc.1
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/CHANGELOG.md +7 -0
- package/README.md +1 -0
- package/esm2022/lib/components/carousel/carousel-previews/carousel-previews.component.mjs +3 -3
- package/esm2022/lib/components/carousel/carousel.component.mjs +3 -3
- package/esm2022/lib/components/current-image/current-image.component.mjs +3 -3
- package/esm2022/lib/components/plain-gallery/plain-gallery.component.mjs +3 -3
- package/esm2022/lib/components/previews/previews.component.mjs +3 -3
- package/esm2022/lib/model/image.class.mjs +4 -2
- package/fesm2022/ks89-angular-modal-gallery.mjs +13 -11
- package/fesm2022/ks89-angular-modal-gallery.mjs.map +1 -1
- package/lib/model/image.class.d.ts +11 -1
- package/package.json +1 -1
|
@@ -232,12 +232,12 @@ class PlainGalleryComponent extends AccessibleComponent {
|
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PlainGalleryComponent, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
235
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: PlainGalleryComponent, selector: "ks-plain-gallery", inputs: { id: "id", images: "images", config: "config" }, outputs: { clickImage: "clickImage" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"plain-container\"\n ksWrap [wrap]=\"wrapStyle\" [width]=\"widthStyle\"\n ksDirection [direction]=\"directionStyle\" [justify]=\"justifyStyle\"\n [attr.aria-label]=\"accessibilityConfig?.plainGalleryContentAriaLabel\"\n [title]=\"accessibilityConfig?.plainGalleryContentTitle\">\n\n <ng-container *ngFor=\"let imgRow of imageGrid; let i = index\">\n <ng-container *ngFor=\"let imgCol of imgRow; let j = index\">\n\n <ng-container *ngIf=\"!plainGalleryConfig?.advanced?.aTags; else aTags\">\n <img *ngIf=\"imgCol?.modal?.img\"\n [src]=\"imgCol.plain?.img! ? imgCol.plain?.img! : imgCol.modal.img\"\n ksFallbackImage [fallbackImg]=\"imgCol.plain?.fallbackImg ? imgCol.plain?.fallbackImg : imgCol.modal.fallbackImg\"\n class=\"image\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n alt=\"{{imgCol.plain?.alt! ? imgCol.plain?.alt! : getAltPlainDescriptionByImage(imgCol)}}\"\n [tabIndex]=\"0\" role=\"img\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"/>\n </ng-container>\n\n <!-- Add directive to set background with the image url as param to pass thumb or img-->\n <!-- to do something like this <a style=\"background: url('path to image') 50% 50%/cover\">.-->\n <ng-template #aTags>\n <a *ngIf=\"imgCol?.modal?.img\"\n class=\"a-tag-image\"\n ksATagBgImage [image]=\"imgCol\" [style]=\"plainGalleryConfig?.advanced?.additionalBackground\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n [tabIndex]=\"0\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"></a>\n </ng-template>\n\n </ng-container>\n </ng-container>\n\n</div>\n\n", styles: [".plain-container{align-items:center;display:flex}.plain-container .image{cursor:pointer;height:auto;margin:2px;width:50px}.plain-container .a-tag-image{cursor:pointer;margin:2px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.SizeDirective, selector: "[ksSize]", inputs: ["sizeConfig"] }, { kind: "directive", type: i4.WrapDirective, selector: "[ksWrap]", inputs: ["wrap", "width"] }, { kind: "directive", type: i5.DirectionDirective, selector: "[ksDirection]", inputs: ["direction", "justify"] }, { kind: "directive", type: i6.ATagBgImageDirective, selector: "[ksATagBgImage]", inputs: ["image", "style"] }, { kind: "directive", type: i7.FallbackImageDirective, selector: "[ksFallbackImage]", inputs: ["fallbackImg"], outputs: ["fallbackApplied"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
235
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: PlainGalleryComponent, selector: "ks-plain-gallery", inputs: { id: "id", images: "images", config: "config" }, outputs: { clickImage: "clickImage" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"plain-container\"\n ksWrap [wrap]=\"wrapStyle\" [width]=\"widthStyle\"\n ksDirection [direction]=\"directionStyle\" [justify]=\"justifyStyle\"\n [attr.aria-label]=\"accessibilityConfig?.plainGalleryContentAriaLabel\"\n [title]=\"accessibilityConfig?.plainGalleryContentTitle\">\n\n <ng-container *ngFor=\"let imgRow of imageGrid; let i = index\">\n <ng-container *ngFor=\"let imgCol of imgRow; let j = index\">\n\n <ng-container *ngIf=\"!plainGalleryConfig?.advanced?.aTags; else aTags\">\n <img *ngIf=\"imgCol?.modal?.img\"\n [loading]=\"imgCol.loading\"\n [attr.fetchpriority]=\"imgCol.fetchpriority\"\n [src]=\"imgCol.plain?.img! ? imgCol.plain?.img! : imgCol.modal.img\"\n ksFallbackImage [fallbackImg]=\"imgCol.plain?.fallbackImg ? imgCol.plain?.fallbackImg : imgCol.modal.fallbackImg\"\n class=\"image\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n alt=\"{{imgCol.plain?.alt! ? imgCol.plain?.alt! : getAltPlainDescriptionByImage(imgCol)}}\"\n [tabIndex]=\"0\" role=\"img\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"/>\n </ng-container>\n\n <!-- Add directive to set background with the image url as param to pass thumb or img-->\n <!-- to do something like this <a style=\"background: url('path to image') 50% 50%/cover\">.-->\n <ng-template #aTags>\n <a *ngIf=\"imgCol?.modal?.img\"\n class=\"a-tag-image\"\n ksATagBgImage [image]=\"imgCol\" [style]=\"plainGalleryConfig?.advanced?.additionalBackground\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n [tabIndex]=\"0\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"></a>\n </ng-template>\n\n </ng-container>\n </ng-container>\n\n</div>\n\n", styles: [".plain-container{align-items:center;display:flex}.plain-container .image{cursor:pointer;height:auto;margin:2px;width:50px}.plain-container .a-tag-image{cursor:pointer;margin:2px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.SizeDirective, selector: "[ksSize]", inputs: ["sizeConfig"] }, { kind: "directive", type: i4.WrapDirective, selector: "[ksWrap]", inputs: ["wrap", "width"] }, { kind: "directive", type: i5.DirectionDirective, selector: "[ksDirection]", inputs: ["direction", "justify"] }, { kind: "directive", type: i6.ATagBgImageDirective, selector: "[ksATagBgImage]", inputs: ["image", "style"] }, { kind: "directive", type: i7.FallbackImageDirective, selector: "[ksFallbackImage]", inputs: ["fallbackImg"], outputs: ["fallbackApplied"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
236
236
|
}
|
|
237
237
|
export { PlainGalleryComponent };
|
|
238
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PlainGalleryComponent, decorators: [{
|
|
239
239
|
type: Component,
|
|
240
|
-
args: [{ selector: 'ks-plain-gallery', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"plain-container\"\n ksWrap [wrap]=\"wrapStyle\" [width]=\"widthStyle\"\n ksDirection [direction]=\"directionStyle\" [justify]=\"justifyStyle\"\n [attr.aria-label]=\"accessibilityConfig?.plainGalleryContentAriaLabel\"\n [title]=\"accessibilityConfig?.plainGalleryContentTitle\">\n\n <ng-container *ngFor=\"let imgRow of imageGrid; let i = index\">\n <ng-container *ngFor=\"let imgCol of imgRow; let j = index\">\n\n <ng-container *ngIf=\"!plainGalleryConfig?.advanced?.aTags; else aTags\">\n <img *ngIf=\"imgCol?.modal?.img\"\n [src]=\"imgCol.plain?.img! ? imgCol.plain?.img! : imgCol.modal.img\"\n ksFallbackImage [fallbackImg]=\"imgCol.plain?.fallbackImg ? imgCol.plain?.fallbackImg : imgCol.modal.fallbackImg\"\n class=\"image\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n alt=\"{{imgCol.plain?.alt! ? imgCol.plain?.alt! : getAltPlainDescriptionByImage(imgCol)}}\"\n [tabIndex]=\"0\" role=\"img\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"/>\n </ng-container>\n\n <!-- Add directive to set background with the image url as param to pass thumb or img-->\n <!-- to do something like this <a style=\"background: url('path to image') 50% 50%/cover\">.-->\n <ng-template #aTags>\n <a *ngIf=\"imgCol?.modal?.img\"\n class=\"a-tag-image\"\n ksATagBgImage [image]=\"imgCol\" [style]=\"plainGalleryConfig?.advanced?.additionalBackground\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n [tabIndex]=\"0\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"></a>\n </ng-template>\n\n </ng-container>\n </ng-container>\n\n</div>\n\n", styles: [".plain-container{align-items:center;display:flex}.plain-container .image{cursor:pointer;height:auto;margin:2px;width:50px}.plain-container .a-tag-image{cursor:pointer;margin:2px}\n"] }]
|
|
240
|
+
args: [{ selector: 'ks-plain-gallery', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"plain-container\"\n ksWrap [wrap]=\"wrapStyle\" [width]=\"widthStyle\"\n ksDirection [direction]=\"directionStyle\" [justify]=\"justifyStyle\"\n [attr.aria-label]=\"accessibilityConfig?.plainGalleryContentAriaLabel\"\n [title]=\"accessibilityConfig?.plainGalleryContentTitle\">\n\n <ng-container *ngFor=\"let imgRow of imageGrid; let i = index\">\n <ng-container *ngFor=\"let imgCol of imgRow; let j = index\">\n\n <ng-container *ngIf=\"!plainGalleryConfig?.advanced?.aTags; else aTags\">\n <img *ngIf=\"imgCol?.modal?.img\"\n [loading]=\"imgCol.loading\"\n [attr.fetchpriority]=\"imgCol.fetchpriority\"\n [src]=\"imgCol.plain?.img! ? imgCol.plain?.img! : imgCol.modal.img\"\n ksFallbackImage [fallbackImg]=\"imgCol.plain?.fallbackImg ? imgCol.plain?.fallbackImg : imgCol.modal.fallbackImg\"\n class=\"image\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n alt=\"{{imgCol.plain?.alt! ? imgCol.plain?.alt! : getAltPlainDescriptionByImage(imgCol)}}\"\n [tabIndex]=\"0\" role=\"img\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"/>\n </ng-container>\n\n <!-- Add directive to set background with the image url as param to pass thumb or img-->\n <!-- to do something like this <a style=\"background: url('path to image') 50% 50%/cover\">.-->\n <ng-template #aTags>\n <a *ngIf=\"imgCol?.modal?.img\"\n class=\"a-tag-image\"\n ksATagBgImage [image]=\"imgCol\" [style]=\"plainGalleryConfig?.advanced?.additionalBackground\"\n ksSize [sizeConfig]=\"{width: size?.width!, height: size?.height!}\"\n [attr.aria-label]=\"imgCol.plain?.ariaLabel\"\n [title]=\"(imgCol.plain?.title || imgCol.plain?.title === '') ? imgCol.plain?.title : getTitleDisplay(imgCol)\"\n [tabIndex]=\"0\"\n (click)=\"showModalGalleryByImage(imgCol)\" (keyup)=\"onNavigationEvent($event, imgCol)\"></a>\n </ng-template>\n\n </ng-container>\n </ng-container>\n\n</div>\n\n", styles: [".plain-container{align-items:center;display:flex}.plain-container .image{cursor:pointer;height:auto;margin:2px;width:50px}.plain-container .a-tag-image{cursor:pointer;margin:2px}\n"] }]
|
|
241
241
|
}], ctorParameters: function () { return [{ type: i1.ConfigService }]; }, propDecorators: { id: [{
|
|
242
242
|
type: Input
|
|
243
243
|
}], images: [{
|
|
@@ -247,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
247
247
|
}], clickImage: [{
|
|
248
248
|
type: Output
|
|
249
249
|
}] } });
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rczg5L2FuZ3VsYXItbW9kYWwtZ2FsbGVyeS9zcmMvbGliL2NvbXBvbmVudHMvcGxhaW4tZ2FsbGVyeS9wbGFpbi1nYWxsZXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tzODkvYW5ndWxhci1tb2RhbC1nYWxsZXJ5L3NyYy9saWIvY29tcG9uZW50cy9wbGFpbi1nYWxsZXJ5L3BsYWluLWdhbGxlcnkuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUtoSixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU5SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFHOUQ7Ozs7OztHQU1HO0FBQ0gsTUFNYSxxQkFBc0IsU0FBUSxtQkFBbUI7SUFtRTVELFlBQW9CLGFBQTRCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzRGhEOztXQUVHO1FBRUgsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQU9yQjs7V0FFRztRQUVILGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWE5RDs7O1dBR0c7UUFDSCxjQUFTLEdBQWMsRUFBRSxDQUFDO1FBSzFCOzs7O1dBSUc7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TSxNQUFNLEdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRTVELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3pFLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFFekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDN0I7SUFDSCxDQUFDOzhHQWhRVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixxTUNsRGxDLDBzRUF3Q0E7O1NEVWEscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07b0dBUS9DLEVBQUU7c0JBREQsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBTU4sTUFBTTtzQkFETCxLQUFLO2dCQU9OLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMyBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvYWNjZXNzaWJpbGl0eS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tICcuLi8uLi9tb2RlbC9pbWFnZS5jbGFzcyc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2l6ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZExheW91dCwgTGluZUxheW91dCwgUGxhaW5HYWxsZXJ5Q29uZmlnLCBQbGFpbkdhbGxlcnlTdHJhdGVneSB9IGZyb20gJy4uLy4uL21vZGVsL3BsYWluLWdhbGxlcnktY29uZmlnLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IGdldEluZGV4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaW1hZ2UudXRpbCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTkVYVCB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZXItaW5wdXQudXRpbCc7XG5pbXBvcnQgeyBBY2Nlc3NpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjZXNzaWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhaW5MaWJDb25maWcsIExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL2xpYi1jb25maWcuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgd2l0aCB0aGUgZ2FsbGVyeSBvZiB0aHVtYnMuXG4gKiBJbiByZWNlaXZlcyBhbiBhcnJheSBvZiBJbWFnZXMsIGEgYm9vbGVhbiB0byBzaG93L2hpZGVcbiAqIHRoZSBnYWxsZXJ5IChmZWF0dXJlIHVzZWQgYnkgaW1hZ2VQb2ludGVyKSBhbmQgYSBjb25maWdcbiAqIG9iamVjdCB0byBjdXN0b21pemUgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGNvbXBvbmVudC5cbiAqIEFsc28sIGl0IGVtaXRzIGNsaWNrIGV2ZW50cyBhcyBvdXRwdXRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrcy1wbGFpbi1nYWxsZXJ5JyxcbiAgc3R5bGVVcmxzOiBbJ3BsYWluLWdhbGxlcnkuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJ3BsYWluLWdhbGxlcnkuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBsYWluR2FsbGVyeUNvbXBvbmVudCBleHRlbmRzIEFjY2Vzc2libGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWQgKD49MCkgb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgdGhpcyBsaWJyYXJ5LiBUaGlzIGlzIHJlcXVpcmVkIHdoZW4geW91IGFyZSB1c2luZ1xuICAgKiB0aGUgc2VydmljZSB0byBjYWxsIG1vZGFsIGdhbGxlcnkuXG4gICAqL1xuICBASW5wdXQoKVxuICBpZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBgSW1hZ2VgIHRoYXQgcmVwcmVzZW50IHRoZSBtb2RlbCBvZiB0aGlzIGxpYnJhcnkgd2l0aCBhbGwgaW1hZ2VzLCB0aHVtYnMgYW5kIHNvIG9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgaW1hZ2VzOiBJbWFnZVtdID0gW107XG4gIC8qKlxuICAgKiBQbGFpbkxpYkNvbmZpZyBvYmplY3QgdG8gY29uZmlndXJlIHBsYWluLWdhbGxlcnkuXG4gICAqL1xuICBASW5wdXQoKVxuICBjb25maWc6IFBsYWluTGliQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgdG8gZW1pdCBhbiBldmVudCB3aGVuIGFuIGltYWdlIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgY2xpY2tJbWFnZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYFBsYWluR2FsbGVyeUNvbmZpZ2AgdG8gY29uZmlndXJlIHRoZSBwbGFpbiBnYWxsZXJ5LlxuICAgKi9cbiAgcGxhaW5HYWxsZXJ5Q29uZmlnOiBQbGFpbkdhbGxlcnlDb25maWcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE9iamVjdCBvZiB0eXBlIGBBY2Nlc3NpYmlsaXR5Q29uZmlnYCB0byBpbml0IGN1c3RvbSBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGl0IGNvbnRhaW5zIHRpdGxlcywgYWx0IHRleHRzLCBhcmlhLWxhYmVscyBhbmQgc28gb24uXG4gICAqL1xuICBhY2Nlc3NpYmlsaXR5Q29uZmlnOiBBY2Nlc3NpYmlsaXR5Q29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBCaS1kaW1lbnNpb25hbCBhcnJheSBvZiBgSW1hZ2VgIG9iamVjdCB0byBzdG9yZSBpbWFnZXMgdG8gZGlzcGxheSBhcyBwbGFpbiBnYWxsZXJ5LlxuICAgKiBbXSBieSBkZWZhdWx0LlxuICAgKi9cbiAgaW1hZ2VHcmlkOiBJbWFnZVtdW10gPSBbXTtcbiAgLyoqXG4gICAqIFNpemUgb2JqZWN0IHVzZWQgaW4gdGhlIHRlbXBsYXRlIHRvIHJlc2l6ZSBpbWFnZXMuXG4gICAqL1xuICBzaXplOiBTaXplIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQm9vbGVhbiBwYXNzZWQgYXMgaW5wdXQgdG8gYGtzLXdyYXBgIGRpcmVjdGl2ZSB0byBjb25maWd1cmUgZmxleC13cmFwIGNzcyBwcm9wZXJ0eS5cbiAgICogSG93ZXZlciBpdCdzIG5vdCBlbm91Z2gsIGJlY2F1c2UgeW91IG5lZWQgdG8gbGltaXQgdGhlIHdpZHRoIHVzaW5nIGB3aWR0aFN0eWxlYCBwdWJsaWMgdmFyaWFibGUuXG4gICAqIEZvciBtb3JlIGluZm8gY2hlY2sgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvaXQvZG9jcy9XZWIvQ1NTL2ZsZXgtd3JhcFxuICAgKi9cbiAgd3JhcFN0eWxlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTdHJpbmcgcGFzc2VkIGFzIGlucHV0IHRvIGBrcy13cmFwYCBkaXJlY3RpdmUgdG8gc2V0IHdpZHRoIHRvIGJlIGFibGUgdG8gZm9yY2Ugb3ZlcmZsb3cuXG4gICAqIEluIHRoaXMgd2F5LCBgd3JhcFN0eWxlYCAoZmxleC13cmFwIGNzcyBwcm9wZXJ0eSkgd2lsbCBiZSB1c2VkIGFzIHJlcXVlc3RlZC5cbiAgICovXG4gIHdpZHRoU3R5bGUgPSAnJztcbiAgLyoqXG4gICAqIFN0cmluZyBwYXNzZWQgYXMgaW5wdXQgdG8gYGtzLWRpcmVjdGlvbmAgZGlyZWN0aXZlIHRvIHNldCB0aGUgZmxleC1kaXJlY3Rpb24gY3NzIHByb3BlcnR5LlxuICAgKiBGb3IgbW9yZSBpbmZvIGNoZWNrIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2l0L2RvY3MvV2ViL0NTUy9mbGV4LWRpcmVjdGlvblxuICAgKi9cbiAgZGlyZWN0aW9uU3R5bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFN0cmluZyBwYXNzZWQgYXMgaW5wdXQgdG8gYGtzLWRpcmVjdGlvbmAgZGlyZWN0aXZlIHRvIHNldCB0aGUganVzdGlmeS1jb250ZW50IGNzcyBwcm9wZXJ0eS5cbiAgICogRm9yIG1vcmUgaW5mbyBjaGVjayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9pdC9kb2NzL1dlYi9DU1MvanVzdGlmeS1jb250ZW50XG4gICAqL1xuICBqdXN0aWZ5U3R5bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCDCtG5nT25Jbml0wrQgdG8gaW5pdCBib3RoIGBjb25maWdQbGFpbkdhbGxlcnlgIGNhbGxpbmcgYGluaXRQbGFpbkdhbGxlcnlDb25maWcoKWBcbiAgICogYW5kIGBpbWFnZUdyaWQgaW52b2tpbmcgYGluaXRJbWFnZUdyaWQoKWAuXG4gICAqIFRoaXMgaXMgYW4gYW5ndWxhciBsaWZlY3ljbGUgaG9vaywgc28gaXRzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IEFuZ3VsYXIgaXRzZWxmLlxuICAgKiBJbiBwYXJ0aWN1bGFyLCBpdCdzIGNhbGxlZCBvbmx5IG9uZSB0aW1lISEhXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pZCA9PT0gbnVsbCB8fCB0aGlzLmlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJuYWwgbGlicmFyeSBlcnJvciAtIGlkIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKHRoaXMuaWQsIHRoaXMuY29uZmlnKTtcblxuICAgIGNvbnN0IGxpYkNvbmZpZzogTGliQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcbiAgICBpZiAoIWxpYkNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gbGliQ29uZmlnIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cbiAgICB0aGlzLmFjY2Vzc2liaWxpdHlDb25maWcgPSBsaWJDb25maWcuYWNjZXNzaWJpbGl0eUNvbmZpZztcbiAgICB0aGlzLnBsYWluR2FsbGVyeUNvbmZpZyA9IGxpYkNvbmZpZy5wbGFpbkdhbGxlcnlDb25maWc7XG4gICAgdGhpcy5pbml0SW1hZ2VHcmlkKCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIMK0bmdPbkNoYW5nZXPCtCB0byB1cGRhdGUgYm90aCBgaW1hZ2VHcmlkYCBhbmRgcGxhaW5HYWxsZXJ5Q29uZmlnYC5cbiAgICogVGhpcyBpcyBhbiBhbmd1bGFyIGxpZmVjeWNsZSBob29rLCBzbyBpdHMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgQW5ndWxhciBpdHNlbGYuXG4gICAqIEluIHBhcnRpY3VsYXIsIGl0J3MgY2FsbGVkIHdoZW4gYW55IGRhdGEtYm91bmQgcHJvcGVydHkgb2YgYSBkaXJlY3RpdmUgY2hhbmdlcyEhIVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlkID09PSBudWxsIHx8IHRoaXMuaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gaWQgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGxpYkNvbmZpZzogTGliQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcbiAgICBpZiAoIWxpYkNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gbGliQ29uZmlnIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlc0NoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5pbWFnZXM7XG4gICAgY29uc3QgY29uZmlnQ2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLnBsYWluR2FsbGVyeUNvbmZpZztcblxuICAgIC8vIEknbSB1c2luZyAhY2hhbmdlLmZpcnN0Q2hhbmdlIGJlY2F1c2UgdGhlIGZpcnN0IHRpbWUgd2lsbCBiZSBjYWxsZWQgYm90aCBvbkluaXQgYW5kIG9uQ2hhbmdlIGFuZCBJIGRvbid0XG4gICAgLy8gd2FudCB0byBleGVjdXRlIGluaXRpYWxpemF0aW9uIHR3byB0aW1lcy5cbiAgICBpZiAoXG4gICAgICBjb25maWdDaGFuZ2UgJiZcbiAgICAgICFjb25maWdDaGFuZ2UuZmlyc3RDaGFuZ2UgJiZcbiAgICAgIChjb25maWdDaGFuZ2UucHJldmlvdXNWYWx1ZSAhPT0gY29uZmlnQ2hhbmdlLmN1cnJlbnRWYWx1ZSB8fCAoIWNvbmZpZ0NoYW5nZS5wcmV2aW91c1ZhbHVlICYmICFjb25maWdDaGFuZ2UuY3VycmVudFZhbHVlKSlcbiAgICApIHtcbiAgICAgIHRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnID0gbGliQ29uZmlnLnBsYWluR2FsbGVyeUNvbmZpZztcbiAgICAgIC8vIHRoaXMuY29uZmlnUGxhaW5HYWxsZXJ5ID0gdGhpcy5pbml0UGxhaW5HYWxsZXJ5Q29uZmlnKCk7XG4gICAgfVxuICAgIGlmIChpbWFnZXNDaGFuZ2UgJiYgIWltYWdlc0NoYW5nZS5maXJzdENoYW5nZSAmJiBpbWFnZXNDaGFuZ2UucHJldmlvdXNWYWx1ZSAhPT0gaW1hZ2VzQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5pbml0SW1hZ2VHcmlkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBjYWxsZWQgd2hlbiB5b3UgY2xpY2sgb24gYW4gaW1hZ2Ugb2YgdGhlIHBsYWluIChvciBpbmxpbmUpIGdhbGxlcnkuXG4gICAqIFRoaXMgd2lsbCBlbWl0IHRoZSBzaG93IGV2ZW50IHdpdGggdGhlIGltYWdlIGFzIHBheWxvYWQuXG4gICAqIEBwYXJhbSBJbWFnZSBpbWcgaXMgdGhlIEltYWdlIHRvIHNob3dcbiAgICovXG4gIHNob3dNb2RhbEdhbGxlcnlCeUltYWdlKGltZzogSW1hZ2UpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5pbWFnZXMuZmluZEluZGV4KCh2YWw6IEltYWdlKSA9PiB2YWwgJiYgaW1nICYmIHZhbC5pZCA9PT0gaW1nLmlkKTtcbiAgICB0aGlzLnNob3dNb2RhbEdhbGxlcnkoaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBjYWxsZWQgd2hlbiB5b3UgbmF2aWdhdGUgYmV0d2VlbiBpbWFnZXMuXG4gICAqIFRoaXMgd2lsbCBlbWl0IHRoZSBzaG93IGV2ZW50IHdpdGggdGhlIGltYWdlIGFzIHBheWxvYWQuXG4gICAqIEBwYXJhbSBLZXlib2FyZEV2ZW50IGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBuYXZpZ2F0aW9uXG4gICAqIEBwYXJhbSBJbWFnZSBpbWcgaXMgdGhlIEltYWdlIHRvIHNob3dcbiAgICovXG4gIG9uTmF2aWdhdGlvbkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbWc6IEltYWdlKTogdm9pZCB7XG4gICAgY29uc3QgcmVzdWx0OiBudW1iZXIgPSBzdXBlci5oYW5kbGVJbWFnZUV2ZW50KGV2ZW50KTtcbiAgICBpZiAocmVzdWx0ID09PSBORVhUKSB7XG4gICAgICB0aGlzLnNob3dNb2RhbEdhbGxlcnlCeUltYWdlKGltZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBnZXQgYGFsdCBhdHRyaWJ1dGVgLlxuICAgKiBgYWx0YCBzcGVjaWZpZXMgYW4gYWx0ZXJuYXRlIHRleHQgZm9yIGFuIGltYWdlLCBpZiB0aGUgaW1hZ2UgY2Fubm90IGJlIGRpc3BsYXllZC5cbiAgICogQHBhcmFtIEltYWdlIGltYWdlIHRvIGdldCBpdHMgYWx0IGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyBzdHJpbmcgYWx0IGRlc2NyaXB0aW9uIG9mIHRoZSBpbWFnZVxuICAgKi9cbiAgZ2V0QWx0UGxhaW5EZXNjcmlwdGlvbkJ5SW1hZ2UoaW1hZ2U6IEltYWdlKTogc3RyaW5nIHtcbiAgICBpZiAoIWltYWdlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBpbWFnZS5wbGFpbiAmJiBpbWFnZS5wbGFpbi5kZXNjcmlwdGlvbiA/IGltYWdlLnBsYWluLmRlc2NyaXB0aW9uIDogYEltYWdlICR7Z2V0SW5kZXgoaW1hZ2UsIHRoaXMuaW1hZ2VzKSArIDF9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZ2V0IHRoZSB0aXRsZSBmb3IgYW4gaW1hZ2UuXG4gICAqIEBwYXJhbSBJbWFnZSBpbWFnZSB0byBnZXQgaXRzIHRpdGxlXG4gICAqIEByZXR1cm5zIHN0cmluZyB0aGUgdGl0bGUgb2YgdGhlIGlucHV0IGltYWdlXG4gICAqL1xuICBnZXRUaXRsZURpc3BsYXkoaW1hZ2U6IEltYWdlKTogc3RyaW5nIHtcbiAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcblxuICAgIGlmIChpbWFnZS5wbGFpbiAmJiBpbWFnZS5wbGFpbi5kZXNjcmlwdGlvbikge1xuICAgICAgZGVzY3JpcHRpb24gPSBpbWFnZS5wbGFpbi5kZXNjcmlwdGlvbjtcbiAgICB9IGVsc2UgaWYgKGltYWdlLm1vZGFsICYmIGltYWdlLm1vZGFsLmRlc2NyaXB0aW9uKSB7XG4gICAgICBkZXNjcmlwdGlvbiA9IGltYWdlLm1vZGFsLmRlc2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRJbmRleDogbnVtYmVyID0gZ2V0SW5kZXgoaW1hZ2UsIHRoaXMuaW1hZ2VzKTtcbiAgICBjb25zdCBwcmV2RGVzY3JpcHRpb246IHN0cmluZyA9ICdJbWFnZSAnICsgKGN1cnJlbnRJbmRleCArIDEpICsgJy8nICsgdGhpcy5pbWFnZXMubGVuZ3RoO1xuICAgIGxldCBjdXJySW1nRGVzY3JpcHRpb246IHN0cmluZyA9IGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb24gOiAnJztcblxuICAgIGlmIChjdXJySW1nRGVzY3JpcHRpb24gIT09ICcnKSB7XG4gICAgICBjdXJySW1nRGVzY3JpcHRpb24gPSAnIC0gJyArIGN1cnJJbWdEZXNjcmlwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHByZXZEZXNjcmlwdGlvbiArIGN1cnJJbWdEZXNjcmlwdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBpbiB0aGUgdGVtcGxhdGUgdG8gdHJhY2sgaWRzIGluIG5nRm9yLlxuICAgKiBAcGFyYW0gbnVtYmVyIGluZGV4IG9mIHRoZSBhcnJheVxuICAgKiBAcGFyYW0gSW1hZ2UgaXRlbSBvZiB0aGUgYXJyYXlcbiAgICogQHJldHVybnMgbnVtYmVyIHRoZSBpZCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGl0ZW06IEltYWdlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgY2FsbGVkIHdoZW4geW91IGNsaWNrIG9uIGFuIGltYWdlIG9mIHRoZSBwbGFpbiAob3IgaW5saW5lKSBnYWxsZXJ5LlxuICAgKiBUaGlzIHdpbGwgZW1pdCB0aGUgc2hvdyBldmVudCB3aXRoIHRoZSBpbmRleCBudW1iZXIgYXMgcGF5bG9hZC5cbiAgICogQHBhcmFtIG51bWJlciBpbmRleCBvZiB0aGUgY2xpY2tlZCBpbWFnZVxuICAgKi9cbiAgcHJpdmF0ZSBzaG93TW9kYWxHYWxsZXJ5KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrSW1hZ2UuZW1pdChpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogUHJpdmF0ZSBtZXRob2QgdG8gaW5pdCBib3RoIGBpbWFnZUdyaWRgIGFuZCBvdGhlciBzdHlsZSB2YXJpYWJsZXMsXG4gICAqIGJhc2VkIG9uIHRoZSBsYXlvdXQgdHlwZS5cbiAgICovXG4gIHByaXZhdGUgaW5pdEltYWdlR3JpZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVybmFsIGxpYnJhcnkgZXJyb3IgLSBwbGFpbkdhbGxlcnlDb25maWcgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgLy8gcmVzZXQgdGhlIGFycmF5IHRvIHByZXZlbnQgaXNzdWVzIGluIGNhc2Ugb2YgR3JpZExheW91dFxuICAgIHRoaXMuaW1hZ2VHcmlkID0gW107XG5cbiAgICBpZiAodGhpcy5wbGFpbkdhbGxlcnlDb25maWcubGF5b3V0IGluc3RhbmNlb2YgTGluZUxheW91dCkge1xuICAgICAgY29uc3QgbGF5b3V0OiBMaW5lTGF5b3V0ID0gdGhpcy5wbGFpbkdhbGxlcnlDb25maWcubGF5b3V0O1xuICAgICAgY29uc3Qgcm93OiBJbWFnZVtdID0gdGhpcy5pbWFnZXMuZmlsdGVyKCh2YWw6IEltYWdlLCBpOiBudW1iZXIpID0+IGkgPCBsYXlvdXQuYnJlYWtDb25maWcubGVuZ3RoIHx8IGxheW91dC5icmVha0NvbmZpZy5sZW5ndGggPT09IC0xKTtcbiAgICAgIHRoaXMuaW1hZ2VHcmlkID0gW3Jvd107XG5cbiAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnLmxheW91dC5zaXplO1xuXG4gICAgICBzd2l0Y2ggKHRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnLnN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgUGxhaW5HYWxsZXJ5U3RyYXRlZ3kuUk9XOlxuICAgICAgICAgIHRoaXMuZGlyZWN0aW9uU3R5bGUgPSAncm93JztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQbGFpbkdhbGxlcnlTdHJhdGVneS5DT0xVTU46XG4gICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdHlsZSA9ICdjb2x1bW4nO1xuICAgICAgICAgIHRoaXMud3JhcFN0eWxlID0gbGF5b3V0LmJyZWFrQ29uZmlnLndyYXA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmp1c3RpZnlTdHlsZSA9IGxheW91dC5qdXN0aWZ5O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBsYWluR2FsbGVyeUNvbmZpZy5sYXlvdXQgaW5zdGFuY2VvZiBHcmlkTGF5b3V0KSB7XG4gICAgICBjb25zdCBsYXlvdXQ6IEdyaWRMYXlvdXQgPSB0aGlzLnBsYWluR2FsbGVyeUNvbmZpZy5sYXlvdXQ7XG4gICAgICBjb25zdCBjb3VudDogbnVtYmVyID0gTWF0aC5jZWlsKHRoaXMuaW1hZ2VzLmxlbmd0aCAvIGxheW91dC5icmVha0NvbmZpZy5sZW5ndGgpO1xuICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgIGxldCBlbmQ6IG51bWJlciA9IGxheW91dC5icmVha0NvbmZpZy5sZW5ndGggLSAxO1xuXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvdW50OyBqKyspIHtcbiAgICAgICAgY29uc3Qgcm93OiBJbWFnZVtdID0gdGhpcy5pbWFnZXMuZmlsdGVyKCh2YWw6IEltYWdlLCBpOiBudW1iZXIpID0+IGkgPj0gc3RhcnQgJiYgaSA8PSBlbmQpO1xuICAgICAgICB0aGlzLmltYWdlR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIHN0YXJ0ID0gZW5kICsgMTtcbiAgICAgICAgZW5kID0gc3RhcnQgKyBsYXlvdXQuYnJlYWtDb25maWcubGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zaXplID0gdGhpcy5wbGFpbkdhbGxlcnlDb25maWcubGF5b3V0LnNpemU7XG5cbiAgICAgIGNvbnN0IHBpeGVsczogbnVtYmVyID0gK2xheW91dC5zaXplLndpZHRoLnJlcGxhY2UoJ3B4JywgJycpO1xuXG4gICAgICB0aGlzLndpZHRoU3R5bGUgPSBwaXhlbHMgKiBsYXlvdXQuYnJlYWtDb25maWcubGVuZ3RoICsgcGl4ZWxzIC8gMiArICdweCc7XG4gICAgICB0aGlzLndyYXBTdHlsZSA9IGxheW91dC5icmVha0NvbmZpZy53cmFwO1xuXG4gICAgICB0aGlzLmRpcmVjdGlvblN0eWxlID0gJ3Jvdyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGxhaW4tY29udGFpbmVyXCJcbiAgICAga3NXcmFwIFt3cmFwXT1cIndyYXBTdHlsZVwiIFt3aWR0aF09XCJ3aWR0aFN0eWxlXCJcbiAgICAga3NEaXJlY3Rpb24gW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25TdHlsZVwiIFtqdXN0aWZ5XT1cImp1c3RpZnlTdHlsZVwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWNjZXNzaWJpbGl0eUNvbmZpZz8ucGxhaW5HYWxsZXJ5Q29udGVudEFyaWFMYWJlbFwiXG4gICAgIFt0aXRsZV09XCJhY2Nlc3NpYmlsaXR5Q29uZmlnPy5wbGFpbkdhbGxlcnlDb250ZW50VGl0bGVcIj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWdSb3cgb2YgaW1hZ2VHcmlkOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1nQ29sIG9mIGltZ1JvdzsgbGV0IGogPSBpbmRleFwiPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBsYWluR2FsbGVyeUNvbmZpZz8uYWR2YW5jZWQ/LmFUYWdzOyBlbHNlIGFUYWdzXCI+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJpbWdDb2w/Lm1vZGFsPy5pbWdcIlxuICAgICAgICAgICAgIFtzcmNdPVwiaW1nQ29sLnBsYWluPy5pbWchID8gaW1nQ29sLnBsYWluPy5pbWchIDogaW1nQ29sLm1vZGFsLmltZ1wiXG4gICAgICAgICAgICAga3NGYWxsYmFja0ltYWdlIFtmYWxsYmFja0ltZ109XCJpbWdDb2wucGxhaW4/LmZhbGxiYWNrSW1nID8gaW1nQ29sLnBsYWluPy5mYWxsYmFja0ltZyA6IGltZ0NvbC5tb2RhbC5mYWxsYmFja0ltZ1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJpbWFnZVwiXG4gICAgICAgICAgICAga3NTaXplIFtzaXplQ29uZmlnXT1cInt3aWR0aDogc2l6ZT8ud2lkdGghLCBoZWlnaHQ6IHNpemU/LmhlaWdodCF9XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImltZ0NvbC5wbGFpbj8uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICBbdGl0bGVdPVwiKGltZ0NvbC5wbGFpbj8udGl0bGUgfHwgaW1nQ29sLnBsYWluPy50aXRsZSA9PT0gJycpID8gaW1nQ29sLnBsYWluPy50aXRsZSA6IGdldFRpdGxlRGlzcGxheShpbWdDb2wpXCJcbiAgICAgICAgICAgICBhbHQ9XCJ7e2ltZ0NvbC5wbGFpbj8uYWx0ISA/IGltZ0NvbC5wbGFpbj8uYWx0ISA6IGdldEFsdFBsYWluRGVzY3JpcHRpb25CeUltYWdlKGltZ0NvbCl9fVwiXG4gICAgICAgICAgICAgW3RhYkluZGV4XT1cIjBcIiByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwic2hvd01vZGFsR2FsbGVyeUJ5SW1hZ2UoaW1nQ29sKVwiIChrZXl1cCk9XCJvbk5hdmlnYXRpb25FdmVudCgkZXZlbnQsIGltZ0NvbClcIi8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBBZGQgZGlyZWN0aXZlIHRvIHNldCBiYWNrZ3JvdW5kIHdpdGggdGhlIGltYWdlIHVybCBhcyBwYXJhbSB0byBwYXNzIHRodW1iIG9yIGltZy0tPlxuICAgICAgPCEtLSB0byBkbyBzb21ldGhpbmcgbGlrZSB0aGlzIDxhIHN0eWxlPVwiYmFja2dyb3VuZDogdXJsKCdwYXRoIHRvIGltYWdlJykgNTAlIDUwJS9jb3ZlclwiPi4tLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjYVRhZ3M+XG4gICAgICAgIDxhICpuZ0lmPVwiaW1nQ29sPy5tb2RhbD8uaW1nXCJcbiAgICAgICAgICAgY2xhc3M9XCJhLXRhZy1pbWFnZVwiXG4gICAgICAgICAgIGtzQVRhZ0JnSW1hZ2UgW2ltYWdlXT1cImltZ0NvbFwiIFtzdHlsZV09XCJwbGFpbkdhbGxlcnlDb25maWc/LmFkdmFuY2VkPy5hZGRpdGlvbmFsQmFja2dyb3VuZFwiXG4gICAgICAgICAgIGtzU2l6ZSBbc2l6ZUNvbmZpZ109XCJ7d2lkdGg6IHNpemU/LndpZHRoISwgaGVpZ2h0OiBzaXplPy5oZWlnaHQhfVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaW1nQ29sLnBsYWluPy5hcmlhTGFiZWxcIlxuICAgICAgICAgICBbdGl0bGVdPVwiKGltZ0NvbC5wbGFpbj8udGl0bGUgfHwgaW1nQ29sLnBsYWluPy50aXRsZSA9PT0gJycpID8gaW1nQ29sLnBsYWluPy50aXRsZSA6IGdldFRpdGxlRGlzcGxheShpbWdDb2wpXCJcbiAgICAgICAgICAgW3RhYkluZGV4XT1cIjBcIlxuICAgICAgICAgICAoY2xpY2spPVwic2hvd01vZGFsR2FsbGVyeUJ5SW1hZ2UoaW1nQ29sKVwiIChrZXl1cCk9XCJvbk5hdmlnYXRpb25FdmVudCgkZXZlbnQsIGltZ0NvbClcIj48L2E+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cblxuIl19
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rczg5L2FuZ3VsYXItbW9kYWwtZ2FsbGVyeS9zcmMvbGliL2NvbXBvbmVudHMvcGxhaW4tZ2FsbGVyeS9wbGFpbi1nYWxsZXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tzODkvYW5ndWxhci1tb2RhbC1nYWxsZXJ5L3NyYy9saWIvY29tcG9uZW50cy9wbGFpbi1nYWxsZXJ5L3BsYWluLWdhbGxlcnkuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUtoSixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU5SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFHOUQ7Ozs7OztHQU1HO0FBQ0gsTUFNYSxxQkFBc0IsU0FBUSxtQkFBbUI7SUFtRTVELFlBQW9CLGFBQTRCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzRGhEOztXQUVHO1FBRUgsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQU9yQjs7V0FFRztRQUVILGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWE5RDs7O1dBR0c7UUFDSCxjQUFTLEdBQWMsRUFBRSxDQUFDO1FBSzFCOzs7O1dBSUc7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TSxNQUFNLEdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRTVELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3pFLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFFekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDN0I7SUFDSCxDQUFDOzhHQWhRVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixxTUNsRGxDLGl6RUEwQ0E7O1NEUWEscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07b0dBUS9DLEVBQUU7c0JBREQsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBTU4sTUFBTTtzQkFETCxLQUFLO2dCQU9OLFVBQVU7c0JBRFQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMyBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvYWNjZXNzaWJpbGl0eS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tICcuLi8uLi9tb2RlbC9pbWFnZS5jbGFzcyc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2l6ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZExheW91dCwgTGluZUxheW91dCwgUGxhaW5HYWxsZXJ5Q29uZmlnLCBQbGFpbkdhbGxlcnlTdHJhdGVneSB9IGZyb20gJy4uLy4uL21vZGVsL3BsYWluLWdhbGxlcnktY29uZmlnLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IGdldEluZGV4IH0gZnJvbSAnLi4vLi4vdXRpbHMvaW1hZ2UudXRpbCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTkVYVCB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZXItaW5wdXQudXRpbCc7XG5pbXBvcnQgeyBBY2Nlc3NpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjZXNzaWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhaW5MaWJDb25maWcsIExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL2xpYi1jb25maWcuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgd2l0aCB0aGUgZ2FsbGVyeSBvZiB0aHVtYnMuXG4gKiBJbiByZWNlaXZlcyBhbiBhcnJheSBvZiBJbWFnZXMsIGEgYm9vbGVhbiB0byBzaG93L2hpZGVcbiAqIHRoZSBnYWxsZXJ5IChmZWF0dXJlIHVzZWQgYnkgaW1hZ2VQb2ludGVyKSBhbmQgYSBjb25maWdcbiAqIG9iamVjdCB0byBjdXN0b21pemUgdGhlIGJlaGF2aW91ciBvZiB0aGlzIGNvbXBvbmVudC5cbiAqIEFsc28sIGl0IGVtaXRzIGNsaWNrIGV2ZW50cyBhcyBvdXRwdXRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrcy1wbGFpbi1nYWxsZXJ5JyxcbiAgc3R5bGVVcmxzOiBbJ3BsYWluLWdhbGxlcnkuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJ3BsYWluLWdhbGxlcnkuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBsYWluR2FsbGVyeUNvbXBvbmVudCBleHRlbmRzIEFjY2Vzc2libGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWQgKD49MCkgb2YgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgdGhpcyBsaWJyYXJ5LiBUaGlzIGlzIHJlcXVpcmVkIHdoZW4geW91IGFyZSB1c2luZ1xuICAgKiB0aGUgc2VydmljZSB0byBjYWxsIG1vZGFsIGdhbGxlcnkuXG4gICAqL1xuICBASW5wdXQoKVxuICBpZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiBgSW1hZ2VgIHRoYXQgcmVwcmVzZW50IHRoZSBtb2RlbCBvZiB0aGlzIGxpYnJhcnkgd2l0aCBhbGwgaW1hZ2VzLCB0aHVtYnMgYW5kIHNvIG9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgaW1hZ2VzOiBJbWFnZVtdID0gW107XG4gIC8qKlxuICAgKiBQbGFpbkxpYkNvbmZpZyBvYmplY3QgdG8gY29uZmlndXJlIHBsYWluLWdhbGxlcnkuXG4gICAqL1xuICBASW5wdXQoKVxuICBjb25maWc6IFBsYWluTGliQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgdG8gZW1pdCBhbiBldmVudCB3aGVuIGFuIGltYWdlIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgY2xpY2tJbWFnZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYFBsYWluR2FsbGVyeUNvbmZpZ2AgdG8gY29uZmlndXJlIHRoZSBwbGFpbiBnYWxsZXJ5LlxuICAgKi9cbiAgcGxhaW5HYWxsZXJ5Q29uZmlnOiBQbGFpbkdhbGxlcnlDb25maWcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE9iamVjdCBvZiB0eXBlIGBBY2Nlc3NpYmlsaXR5Q29uZmlnYCB0byBpbml0IGN1c3RvbSBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGl0IGNvbnRhaW5zIHRpdGxlcywgYWx0IHRleHRzLCBhcmlhLWxhYmVscyBhbmQgc28gb24uXG4gICAqL1xuICBhY2Nlc3NpYmlsaXR5Q29uZmlnOiBBY2Nlc3NpYmlsaXR5Q29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBCaS1kaW1lbnNpb25hbCBhcnJheSBvZiBgSW1hZ2VgIG9iamVjdCB0byBzdG9yZSBpbWFnZXMgdG8gZGlzcGxheSBhcyBwbGFpbiBnYWxsZXJ5LlxuICAgKiBbXSBieSBkZWZhdWx0LlxuICAgKi9cbiAgaW1hZ2VHcmlkOiBJbWFnZVtdW10gPSBbXTtcbiAgLyoqXG4gICAqIFNpemUgb2JqZWN0IHVzZWQgaW4gdGhlIHRlbXBsYXRlIHRvIHJlc2l6ZSBpbWFnZXMuXG4gICAqL1xuICBzaXplOiBTaXplIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQm9vbGVhbiBwYXNzZWQgYXMgaW5wdXQgdG8gYGtzLXdyYXBgIGRpcmVjdGl2ZSB0byBjb25maWd1cmUgZmxleC13cmFwIGNzcyBwcm9wZXJ0eS5cbiAgICogSG93ZXZlciBpdCdzIG5vdCBlbm91Z2gsIGJlY2F1c2UgeW91IG5lZWQgdG8gbGltaXQgdGhlIHdpZHRoIHVzaW5nIGB3aWR0aFN0eWxlYCBwdWJsaWMgdmFyaWFibGUuXG4gICAqIEZvciBtb3JlIGluZm8gY2hlY2sgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvaXQvZG9jcy9XZWIvQ1NTL2ZsZXgtd3JhcFxuICAgKi9cbiAgd3JhcFN0eWxlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTdHJpbmcgcGFzc2VkIGFzIGlucHV0IHRvIGBrcy13cmFwYCBkaXJlY3RpdmUgdG8gc2V0IHdpZHRoIHRvIGJlIGFibGUgdG8gZm9yY2Ugb3ZlcmZsb3cuXG4gICAqIEluIHRoaXMgd2F5LCBgd3JhcFN0eWxlYCAoZmxleC13cmFwIGNzcyBwcm9wZXJ0eSkgd2lsbCBiZSB1c2VkIGFzIHJlcXVlc3RlZC5cbiAgICovXG4gIHdpZHRoU3R5bGUgPSAnJztcbiAgLyoqXG4gICAqIFN0cmluZyBwYXNzZWQgYXMgaW5wdXQgdG8gYGtzLWRpcmVjdGlvbmAgZGlyZWN0aXZlIHRvIHNldCB0aGUgZmxleC1kaXJlY3Rpb24gY3NzIHByb3BlcnR5LlxuICAgKiBGb3IgbW9yZSBpbmZvIGNoZWNrIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2l0L2RvY3MvV2ViL0NTUy9mbGV4LWRpcmVjdGlvblxuICAgKi9cbiAgZGlyZWN0aW9uU3R5bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFN0cmluZyBwYXNzZWQgYXMgaW5wdXQgdG8gYGtzLWRpcmVjdGlvbmAgZGlyZWN0aXZlIHRvIHNldCB0aGUganVzdGlmeS1jb250ZW50IGNzcyBwcm9wZXJ0eS5cbiAgICogRm9yIG1vcmUgaW5mbyBjaGVjayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9pdC9kb2NzL1dlYi9DU1MvanVzdGlmeS1jb250ZW50XG4gICAqL1xuICBqdXN0aWZ5U3R5bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCDCtG5nT25Jbml0wrQgdG8gaW5pdCBib3RoIGBjb25maWdQbGFpbkdhbGxlcnlgIGNhbGxpbmcgYGluaXRQbGFpbkdhbGxlcnlDb25maWcoKWBcbiAgICogYW5kIGBpbWFnZUdyaWQgaW52b2tpbmcgYGluaXRJbWFnZUdyaWQoKWAuXG4gICAqIFRoaXMgaXMgYW4gYW5ndWxhciBsaWZlY3ljbGUgaG9vaywgc28gaXRzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IEFuZ3VsYXIgaXRzZWxmLlxuICAgKiBJbiBwYXJ0aWN1bGFyLCBpdCdzIGNhbGxlZCBvbmx5IG9uZSB0aW1lISEhXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pZCA9PT0gbnVsbCB8fCB0aGlzLmlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJuYWwgbGlicmFyeSBlcnJvciAtIGlkIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKHRoaXMuaWQsIHRoaXMuY29uZmlnKTtcblxuICAgIGNvbnN0IGxpYkNvbmZpZzogTGliQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcbiAgICBpZiAoIWxpYkNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gbGliQ29uZmlnIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cbiAgICB0aGlzLmFjY2Vzc2liaWxpdHlDb25maWcgPSBsaWJDb25maWcuYWNjZXNzaWJpbGl0eUNvbmZpZztcbiAgICB0aGlzLnBsYWluR2FsbGVyeUNvbmZpZyA9IGxpYkNvbmZpZy5wbGFpbkdhbGxlcnlDb25maWc7XG4gICAgdGhpcy5pbml0SW1hZ2VHcmlkKCk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIMK0bmdPbkNoYW5nZXPCtCB0byB1cGRhdGUgYm90aCBgaW1hZ2VHcmlkYCBhbmRgcGxhaW5HYWxsZXJ5Q29uZmlnYC5cbiAgICogVGhpcyBpcyBhbiBhbmd1bGFyIGxpZmVjeWNsZSBob29rLCBzbyBpdHMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgQW5ndWxhciBpdHNlbGYuXG4gICAqIEluIHBhcnRpY3VsYXIsIGl0J3MgY2FsbGVkIHdoZW4gYW55IGRhdGEtYm91bmQgcHJvcGVydHkgb2YgYSBkaXJlY3RpdmUgY2hhbmdlcyEhIVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlkID09PSBudWxsIHx8IHRoaXMuaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gaWQgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGxpYkNvbmZpZzogTGliQ29uZmlnIHwgdW5kZWZpbmVkID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcbiAgICBpZiAoIWxpYkNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gbGliQ29uZmlnIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlc0NoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5pbWFnZXM7XG4gICAgY29uc3QgY29uZmlnQ2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLnBsYWluR2FsbGVyeUNvbmZpZztcblxuICAgIC8vIEknbSB1c2luZyAhY2hhbmdlLmZpcnN0Q2hhbmdlIGJlY2F1c2UgdGhlIGZpcnN0IHRpbWUgd2lsbCBiZSBjYWxsZWQgYm90aCBvbkluaXQgYW5kIG9uQ2hhbmdlIGFuZCBJIGRvbid0XG4gICAgLy8gd2FudCB0byBleGVjdXRlIGluaXRpYWxpemF0aW9uIHR3byB0aW1lcy5cbiAgICBpZiAoXG4gICAgICBjb25maWdDaGFuZ2UgJiZcbiAgICAgICFjb25maWdDaGFuZ2UuZmlyc3RDaGFuZ2UgJiZcbiAgICAgIChjb25maWdDaGFuZ2UucHJldmlvdXNWYWx1ZSAhPT0gY29uZmlnQ2hhbmdlLmN1cnJlbnRWYWx1ZSB8fCAoIWNvbmZpZ0NoYW5nZS5wcmV2aW91c1ZhbHVlICYmICFjb25maWdDaGFuZ2UuY3VycmVudFZhbHVlKSlcbiAgICApIHtcbiAgICAgIHRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnID0gbGliQ29uZmlnLnBsYWluR2FsbGVyeUNvbmZpZztcbiAgICAgIC8vIHRoaXMuY29uZmlnUGxhaW5HYWxsZXJ5ID0gdGhpcy5pbml0UGxhaW5HYWxsZXJ5Q29uZmlnKCk7XG4gICAgfVxuICAgIGlmIChpbWFnZXNDaGFuZ2UgJiYgIWltYWdlc0NoYW5nZS5maXJzdENoYW5nZSAmJiBpbWFnZXNDaGFuZ2UucHJldmlvdXNWYWx1ZSAhPT0gaW1hZ2VzQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5pbml0SW1hZ2VHcmlkKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBjYWxsZWQgd2hlbiB5b3UgY2xpY2sgb24gYW4gaW1hZ2Ugb2YgdGhlIHBsYWluIChvciBpbmxpbmUpIGdhbGxlcnkuXG4gICAqIFRoaXMgd2lsbCBlbWl0IHRoZSBzaG93IGV2ZW50IHdpdGggdGhlIGltYWdlIGFzIHBheWxvYWQuXG4gICAqIEBwYXJhbSBJbWFnZSBpbWcgaXMgdGhlIEltYWdlIHRvIHNob3dcbiAgICovXG4gIHNob3dNb2RhbEdhbGxlcnlCeUltYWdlKGltZzogSW1hZ2UpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5pbWFnZXMuZmluZEluZGV4KCh2YWw6IEltYWdlKSA9PiB2YWwgJiYgaW1nICYmIHZhbC5pZCA9PT0gaW1nLmlkKTtcbiAgICB0aGlzLnNob3dNb2RhbEdhbGxlcnkoaW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBjYWxsZWQgd2hlbiB5b3UgbmF2aWdhdGUgYmV0d2VlbiBpbWFnZXMuXG4gICAqIFRoaXMgd2lsbCBlbWl0IHRoZSBzaG93IGV2ZW50IHdpdGggdGhlIGltYWdlIGFzIHBheWxvYWQuXG4gICAqIEBwYXJhbSBLZXlib2FyZEV2ZW50IGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBuYXZpZ2F0aW9uXG4gICAqIEBwYXJhbSBJbWFnZSBpbWcgaXMgdGhlIEltYWdlIHRvIHNob3dcbiAgICovXG4gIG9uTmF2aWdhdGlvbkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbWc6IEltYWdlKTogdm9pZCB7XG4gICAgY29uc3QgcmVzdWx0OiBudW1iZXIgPSBzdXBlci5oYW5kbGVJbWFnZUV2ZW50KGV2ZW50KTtcbiAgICBpZiAocmVzdWx0ID09PSBORVhUKSB7XG4gICAgICB0aGlzLnNob3dNb2RhbEdhbGxlcnlCeUltYWdlKGltZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBnZXQgYGFsdCBhdHRyaWJ1dGVgLlxuICAgKiBgYWx0YCBzcGVjaWZpZXMgYW4gYWx0ZXJuYXRlIHRleHQgZm9yIGFuIGltYWdlLCBpZiB0aGUgaW1hZ2UgY2Fubm90IGJlIGRpc3BsYXllZC5cbiAgICogQHBhcmFtIEltYWdlIGltYWdlIHRvIGdldCBpdHMgYWx0IGRlc2NyaXB0aW9uLlxuICAgKiBAcmV0dXJucyBzdHJpbmcgYWx0IGRlc2NyaXB0aW9uIG9mIHRoZSBpbWFnZVxuICAgKi9cbiAgZ2V0QWx0UGxhaW5EZXNjcmlwdGlvbkJ5SW1hZ2UoaW1hZ2U6IEltYWdlKTogc3RyaW5nIHtcbiAgICBpZiAoIWltYWdlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBpbWFnZS5wbGFpbiAmJiBpbWFnZS5wbGFpbi5kZXNjcmlwdGlvbiA/IGltYWdlLnBsYWluLmRlc2NyaXB0aW9uIDogYEltYWdlICR7Z2V0SW5kZXgoaW1hZ2UsIHRoaXMuaW1hZ2VzKSArIDF9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZ2V0IHRoZSB0aXRsZSBmb3IgYW4gaW1hZ2UuXG4gICAqIEBwYXJhbSBJbWFnZSBpbWFnZSB0byBnZXQgaXRzIHRpdGxlXG4gICAqIEByZXR1cm5zIHN0cmluZyB0aGUgdGl0bGUgb2YgdGhlIGlucHV0IGltYWdlXG4gICAqL1xuICBnZXRUaXRsZURpc3BsYXkoaW1hZ2U6IEltYWdlKTogc3RyaW5nIHtcbiAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcblxuICAgIGlmIChpbWFnZS5wbGFpbiAmJiBpbWFnZS5wbGFpbi5kZXNjcmlwdGlvbikge1xuICAgICAgZGVzY3JpcHRpb24gPSBpbWFnZS5wbGFpbi5kZXNjcmlwdGlvbjtcbiAgICB9IGVsc2UgaWYgKGltYWdlLm1vZGFsICYmIGltYWdlLm1vZGFsLmRlc2NyaXB0aW9uKSB7XG4gICAgICBkZXNjcmlwdGlvbiA9IGltYWdlLm1vZGFsLmRlc2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRJbmRleDogbnVtYmVyID0gZ2V0SW5kZXgoaW1hZ2UsIHRoaXMuaW1hZ2VzKTtcbiAgICBjb25zdCBwcmV2RGVzY3JpcHRpb246IHN0cmluZyA9ICdJbWFnZSAnICsgKGN1cnJlbnRJbmRleCArIDEpICsgJy8nICsgdGhpcy5pbWFnZXMubGVuZ3RoO1xuICAgIGxldCBjdXJySW1nRGVzY3JpcHRpb246IHN0cmluZyA9IGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb24gOiAnJztcblxuICAgIGlmIChjdXJySW1nRGVzY3JpcHRpb24gIT09ICcnKSB7XG4gICAgICBjdXJySW1nRGVzY3JpcHRpb24gPSAnIC0gJyArIGN1cnJJbWdEZXNjcmlwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHByZXZEZXNjcmlwdGlvbiArIGN1cnJJbWdEZXNjcmlwdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBpbiB0aGUgdGVtcGxhdGUgdG8gdHJhY2sgaWRzIGluIG5nRm9yLlxuICAgKiBAcGFyYW0gbnVtYmVyIGluZGV4IG9mIHRoZSBhcnJheVxuICAgKiBAcGFyYW0gSW1hZ2UgaXRlbSBvZiB0aGUgYXJyYXlcbiAgICogQHJldHVybnMgbnVtYmVyIHRoZSBpZCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGl0ZW06IEltYWdlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgY2FsbGVkIHdoZW4geW91IGNsaWNrIG9uIGFuIGltYWdlIG9mIHRoZSBwbGFpbiAob3IgaW5saW5lKSBnYWxsZXJ5LlxuICAgKiBUaGlzIHdpbGwgZW1pdCB0aGUgc2hvdyBldmVudCB3aXRoIHRoZSBpbmRleCBudW1iZXIgYXMgcGF5bG9hZC5cbiAgICogQHBhcmFtIG51bWJlciBpbmRleCBvZiB0aGUgY2xpY2tlZCBpbWFnZVxuICAgKi9cbiAgcHJpdmF0ZSBzaG93TW9kYWxHYWxsZXJ5KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrSW1hZ2UuZW1pdChpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogUHJpdmF0ZSBtZXRob2QgdG8gaW5pdCBib3RoIGBpbWFnZUdyaWRgIGFuZCBvdGhlciBzdHlsZSB2YXJpYWJsZXMsXG4gICAqIGJhc2VkIG9uIHRoZSBsYXlvdXQgdHlwZS5cbiAgICovXG4gIHByaXZhdGUgaW5pdEltYWdlR3JpZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVybmFsIGxpYnJhcnkgZXJyb3IgLSBwbGFpbkdhbGxlcnlDb25maWcgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgLy8gcmVzZXQgdGhlIGFycmF5IHRvIHByZXZlbnQgaXNzdWVzIGluIGNhc2Ugb2YgR3JpZExheW91dFxuICAgIHRoaXMuaW1hZ2VHcmlkID0gW107XG5cbiAgICBpZiAodGhpcy5wbGFpbkdhbGxlcnlDb25maWcubGF5b3V0IGluc3RhbmNlb2YgTGluZUxheW91dCkge1xuICAgICAgY29uc3QgbGF5b3V0OiBMaW5lTGF5b3V0ID0gdGhpcy5wbGFpbkdhbGxlcnlDb25maWcubGF5b3V0O1xuICAgICAgY29uc3Qgcm93OiBJbWFnZVtdID0gdGhpcy5pbWFnZXMuZmlsdGVyKCh2YWw6IEltYWdlLCBpOiBudW1iZXIpID0+IGkgPCBsYXlvdXQuYnJlYWtDb25maWcubGVuZ3RoIHx8IGxheW91dC5icmVha0NvbmZpZy5sZW5ndGggPT09IC0xKTtcbiAgICAgIHRoaXMuaW1hZ2VHcmlkID0gW3Jvd107XG5cbiAgICAgIHRoaXMuc2l6ZSA9IHRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnLmxheW91dC5zaXplO1xuXG4gICAgICBzd2l0Y2ggKHRoaXMucGxhaW5HYWxsZXJ5Q29uZmlnLnN0cmF0ZWd5KSB7XG4gICAgICAgIGNhc2UgUGxhaW5HYWxsZXJ5U3RyYXRlZ3kuUk9XOlxuICAgICAgICAgIHRoaXMuZGlyZWN0aW9uU3R5bGUgPSAncm93JztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQbGFpbkdhbGxlcnlTdHJhdGVneS5DT0xVTU46XG4gICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdHlsZSA9ICdjb2x1bW4nO1xuICAgICAgICAgIHRoaXMud3JhcFN0eWxlID0gbGF5b3V0LmJyZWFrQ29uZmlnLndyYXA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmp1c3RpZnlTdHlsZSA9IGxheW91dC5qdXN0aWZ5O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBsYWluR2FsbGVyeUNvbmZpZy5sYXlvdXQgaW5zdGFuY2VvZiBHcmlkTGF5b3V0KSB7XG4gICAgICBjb25zdCBsYXlvdXQ6IEdyaWRMYXlvdXQgPSB0aGlzLnBsYWluR2FsbGVyeUNvbmZpZy5sYXlvdXQ7XG4gICAgICBjb25zdCBjb3VudDogbnVtYmVyID0gTWF0aC5jZWlsKHRoaXMuaW1hZ2VzLmxlbmd0aCAvIGxheW91dC5icmVha0NvbmZpZy5sZW5ndGgpO1xuICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgIGxldCBlbmQ6IG51bWJlciA9IGxheW91dC5icmVha0NvbmZpZy5sZW5ndGggLSAxO1xuXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvdW50OyBqKyspIHtcbiAgICAgICAgY29uc3Qgcm93OiBJbWFnZVtdID0gdGhpcy5pbWFnZXMuZmlsdGVyKCh2YWw6IEltYWdlLCBpOiBudW1iZXIpID0+IGkgPj0gc3RhcnQgJiYgaSA8PSBlbmQpO1xuICAgICAgICB0aGlzLmltYWdlR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIHN0YXJ0ID0gZW5kICsgMTtcbiAgICAgICAgZW5kID0gc3RhcnQgKyBsYXlvdXQuYnJlYWtDb25maWcubGVuZ3RoIC0gMTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zaXplID0gdGhpcy5wbGFpbkdhbGxlcnlDb25maWcubGF5b3V0LnNpemU7XG5cbiAgICAgIGNvbnN0IHBpeGVsczogbnVtYmVyID0gK2xheW91dC5zaXplLndpZHRoLnJlcGxhY2UoJ3B4JywgJycpO1xuXG4gICAgICB0aGlzLndpZHRoU3R5bGUgPSBwaXhlbHMgKiBsYXlvdXQuYnJlYWtDb25maWcubGVuZ3RoICsgcGl4ZWxzIC8gMiArICdweCc7XG4gICAgICB0aGlzLndyYXBTdHlsZSA9IGxheW91dC5icmVha0NvbmZpZy53cmFwO1xuXG4gICAgICB0aGlzLmRpcmVjdGlvblN0eWxlID0gJ3Jvdyc7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGxhaW4tY29udGFpbmVyXCJcbiAgICAga3NXcmFwIFt3cmFwXT1cIndyYXBTdHlsZVwiIFt3aWR0aF09XCJ3aWR0aFN0eWxlXCJcbiAgICAga3NEaXJlY3Rpb24gW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25TdHlsZVwiIFtqdXN0aWZ5XT1cImp1c3RpZnlTdHlsZVwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWNjZXNzaWJpbGl0eUNvbmZpZz8ucGxhaW5HYWxsZXJ5Q29udGVudEFyaWFMYWJlbFwiXG4gICAgIFt0aXRsZV09XCJhY2Nlc3NpYmlsaXR5Q29uZmlnPy5wbGFpbkdhbGxlcnlDb250ZW50VGl0bGVcIj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpbWdSb3cgb2YgaW1hZ2VHcmlkOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaW1nQ29sIG9mIGltZ1JvdzsgbGV0IGogPSBpbmRleFwiPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBsYWluR2FsbGVyeUNvbmZpZz8uYWR2YW5jZWQ/LmFUYWdzOyBlbHNlIGFUYWdzXCI+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJpbWdDb2w/Lm1vZGFsPy5pbWdcIlxuICAgICAgICAgICAgIFtsb2FkaW5nXT1cImltZ0NvbC5sb2FkaW5nXCJcbiAgICAgICAgICAgICBbYXR0ci5mZXRjaHByaW9yaXR5XT1cImltZ0NvbC5mZXRjaHByaW9yaXR5XCJcbiAgICAgICAgICAgICBbc3JjXT1cImltZ0NvbC5wbGFpbj8uaW1nISA/IGltZ0NvbC5wbGFpbj8uaW1nISA6IGltZ0NvbC5tb2RhbC5pbWdcIlxuICAgICAgICAgICAgIGtzRmFsbGJhY2tJbWFnZSBbZmFsbGJhY2tJbWddPVwiaW1nQ29sLnBsYWluPy5mYWxsYmFja0ltZyA/IGltZ0NvbC5wbGFpbj8uZmFsbGJhY2tJbWcgOiBpbWdDb2wubW9kYWwuZmFsbGJhY2tJbWdcIlxuICAgICAgICAgICAgIGNsYXNzPVwiaW1hZ2VcIlxuICAgICAgICAgICAgIGtzU2l6ZSBbc2l6ZUNvbmZpZ109XCJ7d2lkdGg6IHNpemU/LndpZHRoISwgaGVpZ2h0OiBzaXplPy5oZWlnaHQhfVwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpbWdDb2wucGxhaW4/LmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgW3RpdGxlXT1cIihpbWdDb2wucGxhaW4/LnRpdGxlIHx8IGltZ0NvbC5wbGFpbj8udGl0bGUgPT09ICcnKSA/IGltZ0NvbC5wbGFpbj8udGl0bGUgOiBnZXRUaXRsZURpc3BsYXkoaW1nQ29sKVwiXG4gICAgICAgICAgICAgYWx0PVwie3tpbWdDb2wucGxhaW4/LmFsdCEgPyBpbWdDb2wucGxhaW4/LmFsdCEgOiBnZXRBbHRQbGFpbkRlc2NyaXB0aW9uQnlJbWFnZShpbWdDb2wpfX1cIlxuICAgICAgICAgICAgIFt0YWJJbmRleF09XCIwXCIgcm9sZT1cImltZ1wiXG4gICAgICAgICAgICAgKGNsaWNrKT1cInNob3dNb2RhbEdhbGxlcnlCeUltYWdlKGltZ0NvbClcIiAoa2V5dXApPVwib25OYXZpZ2F0aW9uRXZlbnQoJGV2ZW50LCBpbWdDb2wpXCIvPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQWRkIGRpcmVjdGl2ZSB0byBzZXQgYmFja2dyb3VuZCB3aXRoIHRoZSBpbWFnZSB1cmwgYXMgcGFyYW0gdG8gcGFzcyB0aHVtYiBvciBpbWctLT5cbiAgICAgIDwhLS0gdG8gZG8gc29tZXRoaW5nIGxpa2UgdGhpcyA8YSBzdHlsZT1cImJhY2tncm91bmQ6IHVybCgncGF0aCB0byBpbWFnZScpIDUwJSA1MCUvY292ZXJcIj4uLS0+XG4gICAgICA8bmctdGVtcGxhdGUgI2FUYWdzPlxuICAgICAgICA8YSAqbmdJZj1cImltZ0NvbD8ubW9kYWw/LmltZ1wiXG4gICAgICAgICAgIGNsYXNzPVwiYS10YWctaW1hZ2VcIlxuICAgICAgICAgICBrc0FUYWdCZ0ltYWdlIFtpbWFnZV09XCJpbWdDb2xcIiBbc3R5bGVdPVwicGxhaW5HYWxsZXJ5Q29uZmlnPy5hZHZhbmNlZD8uYWRkaXRpb25hbEJhY2tncm91bmRcIlxuICAgICAgICAgICBrc1NpemUgW3NpemVDb25maWddPVwie3dpZHRoOiBzaXplPy53aWR0aCEsIGhlaWdodDogc2l6ZT8uaGVpZ2h0IX1cIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImltZ0NvbC5wbGFpbj8uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgW3RpdGxlXT1cIihpbWdDb2wucGxhaW4/LnRpdGxlIHx8IGltZ0NvbC5wbGFpbj8udGl0bGUgPT09ICcnKSA/IGltZ0NvbC5wbGFpbj8udGl0bGUgOiBnZXRUaXRsZURpc3BsYXkoaW1nQ29sKVwiXG4gICAgICAgICAgIFt0YWJJbmRleF09XCIwXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNob3dNb2RhbEdhbGxlcnlCeUltYWdlKGltZ0NvbClcIiAoa2V5dXApPVwib25OYXZpZ2F0aW9uRXZlbnQoJGV2ZW50LCBpbWdDb2wpXCI+PC9hPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -244,12 +244,12 @@ class PreviewsComponent extends AccessibleComponent {
|
|
|
244
244
|
this.previews = this.images.filter((img, i) => i >= this.start && i < this.end);
|
|
245
245
|
}
|
|
246
246
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PreviewsComponent, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
247
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: PreviewsComponent, selector: "ks-previews", inputs: { id: "id", currentImage: "currentImage", images: "images", customTemplate: "customTemplate" }, outputs: { clickPreview: "clickPreview" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<nav class=\"previews-container\"\n [class.mobile-visible]=\"previewConfig?.mobileVisible\"\n [attr.aria-label]=\"accessibilityConfig?.previewsContainerAriaLabel\"\n [title]=\"accessibilityConfig?.previewsContainerTitle\">\n\n <ng-container *ngIf=\"previewConfig?.visible\">\n <a class=\"nav-left\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollPrevAriaLabel\"\n [tabIndex]=\"displayLeftPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('left', $event)\" (keyup)=\"onNavigationEvent('left', $event)\">\n <div class=\"inside {{ displayLeftPreviewsArrow() ? 'left-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollPrevTitle\"></div>\n </a>\n\n <ng-container *ngFor=\"let preview of previews; trackBy: trackById; let index = index\">\n\n <div class=\"preview-container {{!previewConfig?.clickable ? ' unclickable' : ''}}\"\n (click)=\"onImageEvent(preview, $event, clickAction)\"\n (keyup)=\"onImageEvent(preview, $event, keyboardAction)\"\n >\n <ng-container \n *ngTemplateOutlet=\"!customTemplate ? defaultTemplate : customTemplate ; context:{preview, defaultTemplate}\">\n </ng-container>\n <ng-template #defaultTemplate>\n <img *ngIf=\"preview?.modal?.img\"\n class=\"inside preview-image {{isActive(preview) ? 'active' : ''}}\"\n [src]=\"preview.plain?.img ? preview.plain?.img! : preview.modal.img\"\n ksFallbackImage [fallbackImg]=\"preview.plain?.fallbackImg ? preview.plain?.fallbackImg : preview.modal.fallbackImg\"\n ksSize [sizeConfig]=\"{width: previewConfig?.size ? previewConfig?.size?.width! : defaultPreviewSize.width,\n height: previewConfig?.size ? previewConfig?.size?.height! : defaultPreviewSize.height}\"\n [attr.aria-label]=\"preview.modal.ariaLabel ? preview.modal.ariaLabel : ''\"\n [title]=\"(preview.modal.title || preview.modal.title === '') ? preview.modal.title : ''\"\n alt=\"{{preview.modal.alt ? preview.modal.alt : ''}}\"\n [tabIndex]=\"0\" role=\"img\"\n />\n </ng-template>\n </div>\n\n </ng-container>\n\n\n <a class=\"nav-right\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollNextAriaLabel\"\n [tabIndex]=\"displayRightPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('right', $event)\" (keyup)=\"onNavigationEvent('right', $event)\">\n <div class=\"inside {{ displayRightPreviewsArrow() ? 'right-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollNextTitle\"></div>\n </a>\n </ng-container>\n\n</nav>\n", styles: ["@media only screen and (max-width: 767px),only screen and (max-device-width: 767px){.previews-container{display:none}.previews-container>.preview-image{display:none}.previews-container>.nav-left{display:none}.previews-container>.nav-right{display:none}.previews-container.mobile-visible{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container.mobile-visible>.nav-left{display:flex}.previews-container.mobile-visible>.nav-right{display:flex}.previews-container.mobile-visible>.preview-image{cursor:pointer;display:flex;margin-left:2px;margin-right:2px;opacity:.7;height:50px}.previews-container.mobile-visible>.preview-image.active{opacity:1}.previews-container.mobile-visible>.preview-image.unclickable{cursor:not-allowed}.previews-container.mobile-visible>.preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}}@media only screen and (min-device-width: 768px){.previews-container{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container .preview-container{margin-left:2px;margin-right:2px;cursor:pointer}.previews-container .preview-container.unclickable{cursor:not-allowed}.previews-container .preview-container .preview-image{opacity:.7;height:50px}.previews-container .preview-container .preview-image.active{opacity:1}.previews-container .preview-container .preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}.previews-container .nav,.previews-container>.nav-right,.previews-container>.nav-left{color:#919191;cursor:pointer;transition:all .5s}.previews-container .nav:hover,.previews-container>.nav-right:hover,.previews-container>.nav-left:hover{transform:scale(1.1)}.previews-container>.nav-left{margin-right:10px}.previews-container>.nav-right{margin-left:10px}}@keyframes fadein-visible{0%{opacity:0}to{opacity:1}}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}@keyframes fadein-semi-visible08{0%{opacity:0}to{opacity:.8}}@keyframes fadein-semi-visible09{0%{opacity:0}to{opacity:.9}}\n", ".arrow-preview-image,.right-arrow-preview-image,.left-arrow-preview-image,.empty-arrow-preview-image{width:15px;height:15px;opacity:.5}.empty-arrow-preview-image{background:black;opacity:0}.left-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.left-arrow-preview-image:hover{transform:scale(1.2)}.right-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.right-arrow-preview-image:hover{transform:scale(1.2)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.SizeDirective, selector: "[ksSize]", inputs: ["sizeConfig"] }, { kind: "directive", type: i4.FallbackImageDirective, selector: "[ksFallbackImage]", inputs: ["fallbackImg"], outputs: ["fallbackApplied"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
247
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: PreviewsComponent, selector: "ks-previews", inputs: { id: "id", currentImage: "currentImage", images: "images", customTemplate: "customTemplate" }, outputs: { clickPreview: "clickPreview" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<nav class=\"previews-container\"\n [class.mobile-visible]=\"previewConfig?.mobileVisible\"\n [attr.aria-label]=\"accessibilityConfig?.previewsContainerAriaLabel\"\n [title]=\"accessibilityConfig?.previewsContainerTitle\">\n\n <ng-container *ngIf=\"previewConfig?.visible\">\n <a class=\"nav-left\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollPrevAriaLabel\"\n [tabIndex]=\"displayLeftPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('left', $event)\" (keyup)=\"onNavigationEvent('left', $event)\">\n <div class=\"inside {{ displayLeftPreviewsArrow() ? 'left-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollPrevTitle\"></div>\n </a>\n\n <ng-container *ngFor=\"let preview of previews; trackBy: trackById; let index = index\">\n\n <div class=\"preview-container {{!previewConfig?.clickable ? ' unclickable' : ''}}\"\n (click)=\"onImageEvent(preview, $event, clickAction)\"\n (keyup)=\"onImageEvent(preview, $event, keyboardAction)\"\n >\n <ng-container \n *ngTemplateOutlet=\"!customTemplate ? defaultTemplate : customTemplate ; context:{preview, defaultTemplate}\">\n </ng-container>\n <ng-template #defaultTemplate>\n <img *ngIf=\"preview?.modal?.img\"\n class=\"inside preview-image {{isActive(preview) ? 'active' : ''}}\"\n [loading]=\"preview.loading\"\n [attr.fetchpriority]=\"preview.fetchpriority\"\n [src]=\"preview.plain?.img ? preview.plain?.img! : preview.modal.img\"\n ksFallbackImage [fallbackImg]=\"preview.plain?.fallbackImg ? preview.plain?.fallbackImg : preview.modal.fallbackImg\"\n ksSize [sizeConfig]=\"{width: previewConfig?.size ? previewConfig?.size?.width! : defaultPreviewSize.width,\n height: previewConfig?.size ? previewConfig?.size?.height! : defaultPreviewSize.height}\"\n [attr.aria-label]=\"preview.modal.ariaLabel ? preview.modal.ariaLabel : ''\"\n [title]=\"(preview.modal.title || preview.modal.title === '') ? preview.modal.title : ''\"\n alt=\"{{preview.modal.alt ? preview.modal.alt : ''}}\"\n [tabIndex]=\"0\" role=\"img\"\n />\n </ng-template>\n </div>\n\n </ng-container>\n\n\n <a class=\"nav-right\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollNextAriaLabel\"\n [tabIndex]=\"displayRightPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('right', $event)\" (keyup)=\"onNavigationEvent('right', $event)\">\n <div class=\"inside {{ displayRightPreviewsArrow() ? 'right-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollNextTitle\"></div>\n </a>\n </ng-container>\n\n</nav>\n", styles: ["@media only screen and (max-width: 767px),only screen and (max-device-width: 767px){.previews-container{display:none}.previews-container>.preview-image{display:none}.previews-container>.nav-left{display:none}.previews-container>.nav-right{display:none}.previews-container.mobile-visible{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container.mobile-visible>.nav-left{display:flex}.previews-container.mobile-visible>.nav-right{display:flex}.previews-container.mobile-visible>.preview-image{cursor:pointer;display:flex;margin-left:2px;margin-right:2px;opacity:.7;height:50px}.previews-container.mobile-visible>.preview-image.active{opacity:1}.previews-container.mobile-visible>.preview-image.unclickable{cursor:not-allowed}.previews-container.mobile-visible>.preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}}@media only screen and (min-device-width: 768px){.previews-container{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container .preview-container{margin-left:2px;margin-right:2px;cursor:pointer}.previews-container .preview-container.unclickable{cursor:not-allowed}.previews-container .preview-container .preview-image{opacity:.7;height:50px}.previews-container .preview-container .preview-image.active{opacity:1}.previews-container .preview-container .preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}.previews-container .nav,.previews-container>.nav-right,.previews-container>.nav-left{color:#919191;cursor:pointer;transition:all .5s}.previews-container .nav:hover,.previews-container>.nav-right:hover,.previews-container>.nav-left:hover{transform:scale(1.1)}.previews-container>.nav-left{margin-right:10px}.previews-container>.nav-right{margin-left:10px}}@keyframes fadein-visible{0%{opacity:0}to{opacity:1}}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}@keyframes fadein-semi-visible08{0%{opacity:0}to{opacity:.8}}@keyframes fadein-semi-visible09{0%{opacity:0}to{opacity:.9}}\n", ".arrow-preview-image,.right-arrow-preview-image,.left-arrow-preview-image,.empty-arrow-preview-image{width:15px;height:15px;opacity:.5}.empty-arrow-preview-image{background:black;opacity:0}.left-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.left-arrow-preview-image:hover{transform:scale(1.2)}.right-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.right-arrow-preview-image:hover{transform:scale(1.2)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.SizeDirective, selector: "[ksSize]", inputs: ["sizeConfig"] }, { kind: "directive", type: i4.FallbackImageDirective, selector: "[ksFallbackImage]", inputs: ["fallbackImg"], outputs: ["fallbackApplied"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
248
248
|
}
|
|
249
249
|
export { PreviewsComponent };
|
|
250
250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PreviewsComponent, decorators: [{
|
|
251
251
|
type: Component,
|
|
252
|
-
args: [{ selector: 'ks-previews', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"previews-container\"\n [class.mobile-visible]=\"previewConfig?.mobileVisible\"\n [attr.aria-label]=\"accessibilityConfig?.previewsContainerAriaLabel\"\n [title]=\"accessibilityConfig?.previewsContainerTitle\">\n\n <ng-container *ngIf=\"previewConfig?.visible\">\n <a class=\"nav-left\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollPrevAriaLabel\"\n [tabIndex]=\"displayLeftPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('left', $event)\" (keyup)=\"onNavigationEvent('left', $event)\">\n <div class=\"inside {{ displayLeftPreviewsArrow() ? 'left-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollPrevTitle\"></div>\n </a>\n\n <ng-container *ngFor=\"let preview of previews; trackBy: trackById; let index = index\">\n\n <div class=\"preview-container {{!previewConfig?.clickable ? ' unclickable' : ''}}\"\n (click)=\"onImageEvent(preview, $event, clickAction)\"\n (keyup)=\"onImageEvent(preview, $event, keyboardAction)\"\n >\n <ng-container \n *ngTemplateOutlet=\"!customTemplate ? defaultTemplate : customTemplate ; context:{preview, defaultTemplate}\">\n </ng-container>\n <ng-template #defaultTemplate>\n <img *ngIf=\"preview?.modal?.img\"\n class=\"inside preview-image {{isActive(preview) ? 'active' : ''}}\"\n [src]=\"preview.plain?.img ? preview.plain?.img! : preview.modal.img\"\n ksFallbackImage [fallbackImg]=\"preview.plain?.fallbackImg ? preview.plain?.fallbackImg : preview.modal.fallbackImg\"\n ksSize [sizeConfig]=\"{width: previewConfig?.size ? previewConfig?.size?.width! : defaultPreviewSize.width,\n height: previewConfig?.size ? previewConfig?.size?.height! : defaultPreviewSize.height}\"\n [attr.aria-label]=\"preview.modal.ariaLabel ? preview.modal.ariaLabel : ''\"\n [title]=\"(preview.modal.title || preview.modal.title === '') ? preview.modal.title : ''\"\n alt=\"{{preview.modal.alt ? preview.modal.alt : ''}}\"\n [tabIndex]=\"0\" role=\"img\"\n />\n </ng-template>\n </div>\n\n </ng-container>\n\n\n <a class=\"nav-right\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollNextAriaLabel\"\n [tabIndex]=\"displayRightPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('right', $event)\" (keyup)=\"onNavigationEvent('right', $event)\">\n <div class=\"inside {{ displayRightPreviewsArrow() ? 'right-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollNextTitle\"></div>\n </a>\n </ng-container>\n\n</nav>\n", styles: ["@media only screen and (max-width: 767px),only screen and (max-device-width: 767px){.previews-container{display:none}.previews-container>.preview-image{display:none}.previews-container>.nav-left{display:none}.previews-container>.nav-right{display:none}.previews-container.mobile-visible{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container.mobile-visible>.nav-left{display:flex}.previews-container.mobile-visible>.nav-right{display:flex}.previews-container.mobile-visible>.preview-image{cursor:pointer;display:flex;margin-left:2px;margin-right:2px;opacity:.7;height:50px}.previews-container.mobile-visible>.preview-image.active{opacity:1}.previews-container.mobile-visible>.preview-image.unclickable{cursor:not-allowed}.previews-container.mobile-visible>.preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}}@media only screen and (min-device-width: 768px){.previews-container{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container .preview-container{margin-left:2px;margin-right:2px;cursor:pointer}.previews-container .preview-container.unclickable{cursor:not-allowed}.previews-container .preview-container .preview-image{opacity:.7;height:50px}.previews-container .preview-container .preview-image.active{opacity:1}.previews-container .preview-container .preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}.previews-container .nav,.previews-container>.nav-right,.previews-container>.nav-left{color:#919191;cursor:pointer;transition:all .5s}.previews-container .nav:hover,.previews-container>.nav-right:hover,.previews-container>.nav-left:hover{transform:scale(1.1)}.previews-container>.nav-left{margin-right:10px}.previews-container>.nav-right{margin-left:10px}}@keyframes fadein-visible{0%{opacity:0}to{opacity:1}}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}@keyframes fadein-semi-visible08{0%{opacity:0}to{opacity:.8}}@keyframes fadein-semi-visible09{0%{opacity:0}to{opacity:.9}}\n", ".arrow-preview-image,.right-arrow-preview-image,.left-arrow-preview-image,.empty-arrow-preview-image{width:15px;height:15px;opacity:.5}.empty-arrow-preview-image{background:black;opacity:0}.left-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.left-arrow-preview-image:hover{transform:scale(1.2)}.right-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.right-arrow-preview-image:hover{transform:scale(1.2)}\n"] }]
|
|
252
|
+
args: [{ selector: 'ks-previews', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"previews-container\"\n [class.mobile-visible]=\"previewConfig?.mobileVisible\"\n [attr.aria-label]=\"accessibilityConfig?.previewsContainerAriaLabel\"\n [title]=\"accessibilityConfig?.previewsContainerTitle\">\n\n <ng-container *ngIf=\"previewConfig?.visible\">\n <a class=\"nav-left\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollPrevAriaLabel\"\n [tabIndex]=\"displayLeftPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('left', $event)\" (keyup)=\"onNavigationEvent('left', $event)\">\n <div class=\"inside {{ displayLeftPreviewsArrow() ? 'left-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollPrevTitle\"></div>\n </a>\n\n <ng-container *ngFor=\"let preview of previews; trackBy: trackById; let index = index\">\n\n <div class=\"preview-container {{!previewConfig?.clickable ? ' unclickable' : ''}}\"\n (click)=\"onImageEvent(preview, $event, clickAction)\"\n (keyup)=\"onImageEvent(preview, $event, keyboardAction)\"\n >\n <ng-container \n *ngTemplateOutlet=\"!customTemplate ? defaultTemplate : customTemplate ; context:{preview, defaultTemplate}\">\n </ng-container>\n <ng-template #defaultTemplate>\n <img *ngIf=\"preview?.modal?.img\"\n class=\"inside preview-image {{isActive(preview) ? 'active' : ''}}\"\n [loading]=\"preview.loading\"\n [attr.fetchpriority]=\"preview.fetchpriority\"\n [src]=\"preview.plain?.img ? preview.plain?.img! : preview.modal.img\"\n ksFallbackImage [fallbackImg]=\"preview.plain?.fallbackImg ? preview.plain?.fallbackImg : preview.modal.fallbackImg\"\n ksSize [sizeConfig]=\"{width: previewConfig?.size ? previewConfig?.size?.width! : defaultPreviewSize.width,\n height: previewConfig?.size ? previewConfig?.size?.height! : defaultPreviewSize.height}\"\n [attr.aria-label]=\"preview.modal.ariaLabel ? preview.modal.ariaLabel : ''\"\n [title]=\"(preview.modal.title || preview.modal.title === '') ? preview.modal.title : ''\"\n alt=\"{{preview.modal.alt ? preview.modal.alt : ''}}\"\n [tabIndex]=\"0\" role=\"img\"\n />\n </ng-template>\n </div>\n\n </ng-container>\n\n\n <a class=\"nav-right\"\n [attr.aria-label]=\"accessibilityConfig?.previewScrollNextAriaLabel\"\n [tabIndex]=\"displayRightPreviewsArrow() ? 0 : -1\" role=\"button\"\n (click)=\"onNavigationEvent('right', $event)\" (keyup)=\"onNavigationEvent('right', $event)\">\n <div class=\"inside {{ displayRightPreviewsArrow() ? 'right-arrow-preview-image' : 'empty-arrow-preview-image'}}\"\n aria-hidden=\"true\"\n [title]=\"accessibilityConfig?.previewScrollNextTitle\"></div>\n </a>\n </ng-container>\n\n</nav>\n", styles: ["@media only screen and (max-width: 767px),only screen and (max-device-width: 767px){.previews-container{display:none}.previews-container>.preview-image{display:none}.previews-container>.nav-left{display:none}.previews-container>.nav-right{display:none}.previews-container.mobile-visible{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container.mobile-visible>.nav-left{display:flex}.previews-container.mobile-visible>.nav-right{display:flex}.previews-container.mobile-visible>.preview-image{cursor:pointer;display:flex;margin-left:2px;margin-right:2px;opacity:.7;height:50px}.previews-container.mobile-visible>.preview-image.active{opacity:1}.previews-container.mobile-visible>.preview-image.unclickable{cursor:not-allowed}.previews-container.mobile-visible>.preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}}@media only screen and (min-device-width: 768px){.previews-container{align-items:center;animation:fadein-semi-visible08 .8s;display:flex;flex-direction:row;justify-content:center;margin-bottom:15px}.previews-container .preview-container{margin-left:2px;margin-right:2px;cursor:pointer}.previews-container .preview-container.unclickable{cursor:not-allowed}.previews-container .preview-container .preview-image{opacity:.7;height:50px}.previews-container .preview-container .preview-image.active{opacity:1}.previews-container .preview-container .preview-image:hover{opacity:1;transition:all .5s ease;transition-property:opacity}.previews-container .nav,.previews-container>.nav-right,.previews-container>.nav-left{color:#919191;cursor:pointer;transition:all .5s}.previews-container .nav:hover,.previews-container>.nav-right:hover,.previews-container>.nav-left:hover{transform:scale(1.1)}.previews-container>.nav-left{margin-right:10px}.previews-container>.nav-right{margin-left:10px}}@keyframes fadein-visible{0%{opacity:0}to{opacity:1}}@keyframes fadein-semi-visible05{0%{opacity:0}to{opacity:.5}}@keyframes fadein-semi-visible08{0%{opacity:0}to{opacity:.8}}@keyframes fadein-semi-visible09{0%{opacity:0}to{opacity:.9}}\n", ".arrow-preview-image,.right-arrow-preview-image,.left-arrow-preview-image,.empty-arrow-preview-image{width:15px;height:15px;opacity:.5}.empty-arrow-preview-image{background:black;opacity:0}.left-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMTQ1LjE4OCwyMzguNTc1bDIxNS41LTIxNS41YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xcy0xMy44LTUuMy0xOS4xLDBsLTIyNS4xLDIyNS4xYy01LjMsNS4zLTUuMywxMy44LDAsMTkuMWwyMjUuMSwyMjUgICBjMi42LDIuNiw2LjEsNCw5LjUsNHM2LjktMS4zLDkuNS00YzUuMy01LjMsNS4zLTEzLjgsMC0xOS4xTDE0NS4xODgsMjM4LjU3NXoiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.left-arrow-preview-image:hover{transform:scale(1.2)}.right-arrow-preview-image{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ3Ny4xNzUgNDc3LjE3NSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDc3LjE3NSA0NzcuMTc1OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjUxMnB4IiBoZWlnaHQ9IjUxMnB4Ij48Zz48cGF0aCBkPSJNMzYwLjczMSwyMjkuMDc1bC0yMjUuMS0yMjUuMWMtNS4zLTUuMy0xMy44LTUuMy0xOS4xLDBzLTUuMywxMy44LDAsMTkuMWwyMTUuNSwyMTUuNWwtMjE1LjUsMjE1LjUgICBjLTUuMyw1LjMtNS4zLDEzLjgsMCwxOS4xYzIuNiwyLjYsNi4xLDQsOS41LDRjMy40LDAsNi45LTEuMyw5LjUtNGwyMjUuMS0yMjUuMUMzNjUuOTMxLDI0Mi44NzUsMzY1LjkzMSwyMzQuMjc1LDM2MC43MzEsMjI5LjA3NXogICAiIGZpbGw9IiNGRkZGRkYiLz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PGc+PC9nPjxnPjwvZz48Zz48L2c+PC9zdmc+);background-size:15px;transition:all .5s}.right-arrow-preview-image:hover{transform:scale(1.2)}\n"] }]
|
|
253
253
|
}], ctorParameters: function () { return [{ type: i1.ConfigService }]; }, propDecorators: { id: [{
|
|
254
254
|
type: Input
|
|
255
255
|
}], currentImage: [{
|
|
@@ -261,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
261
261
|
}], clickPreview: [{
|
|
262
262
|
type: Output
|
|
263
263
|
}] } });
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9jb21wb25lbnRzL3ByZXZpZXdzL3ByZXZpZXdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tzODkvYW5ndWxhci1tb2RhbC1nYWxsZXJ5L3NyYy9saWIvY29tcG9uZW50cy9wcmV2aWV3cy9wcmV2aWV3cy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQUUzSyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzdFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQUlwRjs7R0FFRztBQUNILE1BTWEsaUJBQWtCLFNBQVEsbUJBQW1CO0lBNEV4RCxZQUFvQixhQUE0QjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBaERoRDs7V0FFRztRQUVILGlCQUFZLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFnQnhFOzs7V0FHRztRQUNILGdCQUFXLEdBQVcsTUFBTSxDQUFDLEtB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LENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ1o7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBcUIsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUcsQ0FBQzs4R0EvUVUsaUJBQWlCO2tHQUFqQixpQkFBaUIsa1BDbEQ5QixnMUZBcURBOztTREhhLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTtvR0FRL0MsRUFBRTtzQkFERCxLQUFLO2dCQU1OLFlBQVk7c0JBRFgsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBVU4sY0FBYztzQkFEYixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMyBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjZXNzaWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvYWNjZXNzaWJpbGl0eS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2UsIEltYWdlRXZlbnQsIEltYWdlTW9kYWxFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2ltYWdlLmNsYXNzJztcbmltcG9ydCB7IEludGVybmFsTGliSW1hZ2UgfSBmcm9tICcuLi8uLi9tb2RlbC9pbWFnZS1pbnRlcm5hbC5jbGFzcyc7XG5pbXBvcnQgeyBQcmV2aWV3Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvcHJldmlldy1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNsaWRlQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2xpZGUtY29uZmlnLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IE5FWFQsIFBSRVYgfSBmcm9tICcuLi8uLi91dGlscy91c2VyLWlucHV0LnV0aWwnO1xuaW1wb3J0IHsgZ2V0SW5kZXggfSBmcm9tICcuLi8uLi91dGlscy9pbWFnZS51dGlsJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi5lbnVtJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIERFRkFVTFRfUFJFVklFV19TSVpFIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4uLy4uL21vZGVsL3NpemUuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL2xpYi1jb25maWcuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgd2l0aCBpbWFnZSBwcmV2aWV3c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrcy1wcmV2aWV3cycsXG4gIHN0eWxlVXJsczogWydwcmV2aWV3cy5zY3NzJywgJy4uL3ByZXZpZXdzLWFycm93cy5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAncHJldmlld3MuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFByZXZpZXdzQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZCAoPj0wKSBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGlzIGxpYnJhcnkuIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiB5b3UgYXJlIHVzaW5nXG4gICAqIHRoZSBzZXJ2aWNlIHRvIGNhbGwgbW9kYWwgZ2FsbGVyeS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGlkITogbnVtYmVyO1xuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYEludGVybmFsTGliSW1hZ2VgIHRoYXQgcmVwcmVzZW50IHRoZSB2aXNpYmxlIGltYWdlLlxuICAgKi9cbiAgQElucHV0KClcbiAgY3VycmVudEltYWdlITogSW50ZXJuYWxMaWJJbWFnZTtcbiAgLyoqXG4gICAqIEFycmF5IG9mIGBJbnRlcm5hbExpYkltYWdlYCB0aGF0IHJlcHJlc2VudCB0aGUgbW9kZWwgb2YgdGhpcyBsaWJyYXJ5IHdpdGggYWxsIGltYWdlcyxcbiAgICogdGh1bWJzIGFuZCBzbyBvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGltYWdlcyE6IEludGVybmFsTGliSW1hZ2VbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUgcmVuZGVyaW5nIG9mIHByZXZpZXdzLlxuICAgKiBUZW1wbGF0ZSBtYXkgYWNjZXNzIGZvbGxvd2luZyBjb250ZXh0IHZhcmlhYmxlczpcbiAgICogLSBwcmV2aWV3OiB0aGUgYEltYWdlYCBvYmplY3RcbiAgICogLSBkZWZhdWx0VGVtcGxhdGU6IHRoZSB0ZW1wbGF0ZSB1c2VkIGJ5IGRlZmF1bHQgdG8gcmVuZGVyIHRoZSBwcmV2aWV3IChpbiBjYXNlIHRoZSBuZWVkIGlzIHRvIHdyYXAgaXQpXG4gICAqL1xuICBASW5wdXQoKVxuICBjdXN0b21UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAvKipcbiAgICogT3V0cHV0IHRvIGVtaXQgdGhlIGNsaWNrZWQgcHJldmlldy4gVGhlIHBheWxvYWQgY29udGFpbnMgdGhlIGBJbWFnZUV2ZW50YCBhc3NvY2lhdGVkIHRvIHRoZSBjbGlja2VkIHByZXZpZXcuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgY2xpY2tQcmV2aWV3OiBFdmVudEVtaXR0ZXI8SW1hZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEltYWdlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIE9iamVjdCBvZiB0eXBlIGBBY2Nlc3NpYmlsaXR5Q29uZmlnYCB0byBpbml0IGN1c3RvbSBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGl0IGNvbnRhaW5zIHRpdGxlcywgYWx0IHRleHRzLCBhcmlhLWxhYmVscyBhbmQgc28gb24uXG4gICAqL1xuICBhY2Nlc3NpYmlsaXR5Q29uZmlnOiBBY2Nlc3NpYmlsaXR5Q29uZmlnIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYFNsaWRlQ29uZmlnYCB0byBnZXQgYGluZmluaXRlIHNsaWRpbmdgLlxuICAgKi9cbiAgc2xpZGVDb25maWc6IFNsaWRlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYFByZXZpZXdDb25maWdgIHRvIGluaXQgUHJldmlld3NDb21wb25lbnQncyBmZWF0dXJlcy5cbiAgICogRm9yIGluc3RhbmNlLCBpdCBjb250YWlucyBhIHBhcmFtIHRvIHNob3cvaGlkZSB0aGlzIGNvbXBvbmVudCwgc2l6ZXMuXG4gICAqL1xuICBwcmV2aWV3Q29uZmlnOiBQcmV2aWV3Q29uZmlnIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogRW51bSBvZiB0eXBlIGBBY3Rpb25gIHRoYXQgcmVwcmVzZW50cyBhIG1vdXNlIGNsaWNrIG9uIGEgYnV0dG9uLlxuICAgKiBEZWNsYXJlZCBoZXJlIHRvIGJlIHVzZWQgaW5zaWRlIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIGNsaWNrQWN0aW9uOiBBY3Rpb24gPSBBY3Rpb24uQ0xJQ0s7XG4gIC8qKlxuICAgKiBFbnVtIG9mIHR5cGUgYEFjdGlvbmAgdGhhdCByZXByZXNlbnRzIGEga2V5Ym9hcmQgYWN0aW9uLlxuICAgKiBEZWNsYXJlZCBoZXJlIHRvIGJlIHVzZWQgaW5zaWRlIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIGtleWJvYXJkQWN0aW9uOiBBY3Rpb24gPSBBY3Rpb24uS0VZQk9BUkQ7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBgSW50ZXJuYWxMaWJJbWFnZWAgZXhwb3NlZCB0byB0aGUgdGVtcGxhdGUuIFRoaXMgZmllbGQgaXMgaW5pdGlhbGl6ZWRcbiAgICogYXBwbHlpbmcgdHJhbnNmb3JtYXRpb25zLCBkZWZhdWx0IHZhbHVlcyBhbmQgc28gb24gdG8gdGhlIGlucHV0IG9mIHRoZSBzYW1lIHR5cGUuXG4gICAqL1xuICBwcmV2aWV3czogSW50ZXJuYWxMaWJJbWFnZVtdID0gW107XG4gIC8qKlxuICAgKiBTdGFydCBpbmRleCAoaW5jbHVkZWQpIG9mIHRoZSBpbnB1dCBpbWFnZXMgdXNlZCB0byBkaXNwbGF5IHByZXZpZXdzLlxuICAgKi9cbiAgICAvLyBAdHMtaWdub3JlXG4gIHN0YXJ0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFbmQgaW5kZXggKGV4Y2x1ZGVkKSBvZiB0aGUgaW5wdXQgaW1hZ2VzIHVzZWQgdG8gZGlzcGxheSBwcmV2aWV3cy5cbiAgICovXG4gICAgLy8gQHRzLWlnbm9yZVxuICBlbmQ6IG51bWJlcjtcblxuICBkZWZhdWx0UHJldmlld1NpemU6IFNpemUgPSBERUZBVUxUX1BSRVZJRVdfU0laRTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCDCtG5nT25Jbml0wrQgdG8gYnVpbGQgYGNvbmZpZ1ByZXZpZXdgIGFwcGx5aW5nIGEgZGVmYXVsdCB2YWx1ZSBhbmQgYWxzbyB0b1xuICAgKiBpbml0IHRoZSBgcHJldmlld3NgIGFycmF5LlxuICAgKiBUaGlzIGlzIGFuIGFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2ssIHNvIGl0cyBjYWxsZWQgYXV0b21hdGljYWxseSBieSBBbmd1bGFyIGl0c2VsZi5cbiAgICogSW4gcGFydGljdWxhciwgaXQncyBjYWxsZWQgb25seSBvbmUgdGltZSEhIVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbGliQ29uZmlnOiBMaWJDb25maWcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKHRoaXMuaWQpO1xuICAgIGlmICghbGliQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVybmFsIGxpYnJhcnkgZXJyb3IgLSBsaWJDb25maWcgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHRoaXMuYWNjZXNzaWJpbGl0eUNvbmZpZyA9IGxpYkNvbmZpZy5hY2Nlc3NpYmlsaXR5Q29uZmlnO1xuICAgIHRoaXMuc2xpZGVDb25maWcgPSBsaWJDb25maWcuc2xpZGVDb25maWc7XG4gICAgdGhpcy5wcmV2aWV3Q29uZmlnID0gbGliQ29uZmlnLnByZXZpZXdDb25maWc7XG4gICAgdGhpcy5pbml0UHJldmlld3ModGhpcy5jdXJyZW50SW1hZ2UsIHRoaXMuaW1hZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gY2hlY2sgaWYgYW4gaW1hZ2UgaXMgYWN0aXZlIChpLmUuIGEgcHJldmlldyBpbWFnZSkuXG4gICAqIEBwYXJhbSBJbnRlcm5hbExpYkltYWdlIHByZXZpZXcgaXMgYW4gaW1hZ2UgdG8gY2hlY2sgaWYgaXQncyBhY3RpdmUgb3Igbm90XG4gICAqIEByZXR1cm5zIGJvb2xlYW4gdHJ1ZSBpZiBpcyBhY3RpdmUsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaXNBY3RpdmUocHJldmlldzogSW50ZXJuYWxMaWJJbWFnZSk6IGJvb2xlYW4ge1xuICAgIGlmICghcHJldmlldykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcHJldmlldy5pZCA9PT0gdGhpcy5jdXJyZW50SW1hZ2UuaWQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIMK0bmdPbkNoYW5nZXPCtCB0byB1cGRhdGUgYHByZXZpZXdzYCBhcnJheS5cbiAgICogQWxzbywgYm90aCBgc3RhcnRgIGFuZCBgZW5kYCBsb2NhbCB2YXJpYWJsZXMgd2lsbCBiZSB1cGRhdGVkIGFjY29yZGluZ2x5LlxuICAgKiBUaGlzIGlzIGFuIGFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2ssIHNvIGl0cyBjYWxsZWQgYXV0b21hdGljYWxseSBieSBBbmd1bGFyIGl0c2VsZi5cbiAgICogSW4gcGFydGljdWxhciwgaXQncyBjYWxsZWQgd2hlbiBhbnkgZGF0YS1ib3VuZCBwcm9wZXJ0eSBvZiBhIGRpcmVjdGl2ZSBjaGFuZ2VzISEhXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBsZXQgY3VycmVudEltYWdlID0gY2hhbmdlcy5jdXJyZW50SW1hZ2U/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLmN1cnJlbnRJbWFnZTtcbiAgICBsZXQgaW1hZ2VzID0gY2hhbmdlcy5pbWFnZXM/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLmltYWdlcztcblxuICAgIGlmKHRoaXMucHJldmlld0NvbmZpZyAmJiBjdXJyZW50SW1hZ2UgJiYgaW1hZ2VzKSB7XG4gICAgICB0aGlzLmluaXRQcmV2aWV3cyggY3VycmVudEltYWdlLCBpbWFnZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgY2FsbGVkIGJ5IGV2ZW50cyBmcm9tIGJvdGgga2V5Ym9hcmQgYW5kIG1vdXNlIG9uIGEgcHJldmlldy5cbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgdGhlIGBjbGlja3ByZXZpZXdgIG91dHB1dCB3aXRoIHRoZSBpbnB1dCBwcmV2aWV3IGFzIGl0cyBwYXlsb2FkLlxuICAgKiBAcGFyYW0gSW50ZXJuYWxMaWJJbWFnZSBwcmV2aWV3IHRoYXQgdHJpZ2dlcmVkIHRoaXMgbWV0aG9kXG4gICAqIEBwYXJhbSBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCBldmVudCBwYXlsb2FkXG4gICAqIEBwYXJhbSBBY3Rpb24gYWN0aW9uIHRoYXQgdHJpZ2dlcmVkIHRoZSBzb3VyY2UgZXZlbnQgb3IgYEFjdGlvbi5OT1JNQUxgIGlmIG5vdCBzcGVjaWZpZWRcbiAgICovXG4gIG9uSW1hZ2VFdmVudChwcmV2aWV3OiBJbnRlcm5hbExpYkltYWdlLCBldmVudDogS2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQsIGFjdGlvbjogQWN0aW9uID0gQWN0aW9uLk5PUk1BTCk6IHZvaWQge1xuICAgIC8vIEl0J3Mgc3VnZ2VzdGVkIHRvIHN0b3AgcHJvcGFnYXRpb24gb2YgdGhlIGV2ZW50LCBzbyB0aGVcbiAgICAvLyBDZGsgYmFja2dyb3VuZCB3aWxsIG5vdCBjYXRjaCBhIGNsaWNrIGFuZCBjbG9zZSB0aGUgbW9kYWwgKGxpa2UgaXQgZG9lcyBvbiBXaW5kb3dzIENocm9tZS9GRikuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5wcmV2aWV3Q29uZmlnIHx8ICF0aGlzLnByZXZpZXdDb25maWcuY2xpY2thYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdDogbnVtYmVyID0gc3VwZXIuaGFuZGxlSW1hZ2VFdmVudChldmVudCk7XG4gICAgaWYgKHJlc3VsdCA9PT0gTkVYVCB8fCByZXN1bHQgPT09IFBSRVYpIHtcbiAgICAgIHRoaXMuY2xpY2tQcmV2aWV3LmVtaXQobmV3IEltYWdlTW9kYWxFdmVudCh0aGlzLmlkLCBhY3Rpb24sIGdldEluZGV4KHByZXZpZXcsIHRoaXMuaW1hZ2VzKSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgY2FsbGVkIGJ5IGV2ZW50cyBmcm9tIGJvdGgga2V5Ym9hcmQgYW5kIG1vdXNlIG9uIGEgbmF2aWdhdGlvbiBhcnJvdy5cbiAgICogSXQgYWxzbyBlbWl0cyBhbiBldmVudCB0byBzcGVjaWZ5IHdoaWNoIGFycm93LlxuICAgKiBAcGFyYW0gc3RyaW5nIGRpcmVjdGlvbiBvZiB0aGUgbmF2aWdhdGlvbiB0aGF0IGNhbiBiZSBlaXRoZXIgJ25leHQnIG9yICdwcmV2J1xuICAgKiBAcGFyYW0gS2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQgZXZlbnQgcGF5bG9hZFxuICAgKiBAcGFyYW0gQWN0aW9uIGFjdGlvbiB0aGF0IHRyaWdnZXJlZCB0aGUgc291cmNlIGV2ZW50IG9yIGBBY3Rpb24uTk9STUFMYCBpZiBub3Qgc3BlY2lmaWVkXG4gICAqL1xuICBvbk5hdmlnYXRpb25FdmVudChkaXJlY3Rpb246IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50LCBhY3Rpb246IEFjdGlvbiA9IEFjdGlvbi5OT1JNQUwpOiB2b2lkIHtcbiAgICBjb25zdCByZXN1bHQ6IG51bWJlciA9IHN1cGVyLmhhbmRsZU5hdmlnYXRpb25FdmVudChkaXJlY3Rpb24sIGV2ZW50KTtcbiAgICBpZiAocmVzdWx0ID09PSBORVhUKSB7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gUFJFVikge1xuICAgICAgdGhpcy5wcmV2aW91cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBpbiB0aGUgdGVtcGxhdGUgdG8gdHJhY2sgaWRzIGluIG5nRm9yLlxuICAgKiBAcGFyYW0gbnVtYmVyIGluZGV4IG9mIHRoZSBhcnJheVxuICAgKiBAcGFyYW0gSW1hZ2UgaXRlbSBvZiB0aGUgYXJyYXlcbiAgICogQHJldHVybnMgbnVtYmVyIHRoZSBpZCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGl0ZW06IEltYWdlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHByZXZpZXdzICdsZWZ0IGFycm93JyBzaG91bGQgYmUgZGlzcGxheWVkIG9yIG5vdC5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGRpc3BsYXlMZWZ0UHJldmlld3NBcnJvdygpOiBib29sZWFuIHtcbiAgICAvLyBEb24ndCBzaG93IGFycm93cyBpZiByZXF1ZXN0ZWQgcHJldmlld3MgbnVtYmVyIGVxdWFscyBvciBpcyBncmVhdGVkIHRoYW4gdG90YWwgbnVtYmVyIG9mIGltZ2Flc1xuICAgIGlmKHRoaXMucHJldmlld0NvbmZpZz8ubnVtYmVyICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pbWFnZXMgJiYgdGhpcy5wcmV2aWV3Q29uZmlnPy5udW1iZXIgPj0gdGhpcy5pbWFnZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMucHJldmlld0NvbmZpZz8uYXJyb3dzICYmIHRoaXMuc3RhcnQgPiAwKSB8fCAhIXRoaXMuc2xpZGVDb25maWc/LmluZmluaXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgcHJldmlld3MgJ3JpZ2h0IGFycm93JyBzaG91bGQgYmUgZGlzcGxheWVkIG9yIG5vdC5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGRpc3BsYXlSaWdodFByZXZpZXdzQXJyb3coKTogYm9vbGVhbiB7XG4gICAgLy8gRG9uJ3Qgc2hvdyBhcnJvd3MgaWYgcmVxdWVzdGVkIHByZXZpZXdzIG51bWJlciBlcXVhbHMgb3IgaXMgZ3JlYXRlZCB0aGFuIHRvdGFsIG51bWJlciBvZiBpbWdhZXNcbiAgICBpZih0aGlzLnByZXZpZXdDb25maWc/Lm51bWJlciAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaW1hZ2VzICYmIHRoaXMucHJldmlld0NvbmZpZz8ubnVtYmVyID49IHRoaXMuaW1hZ2VzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLnByZXZpZXdDb25maWc/LmFycm93cyAmJiB0aGlzLmltYWdlcyAmJiB0aGlzLmVuZCA8IHRoaXMuaW1hZ2VzLmxlbmd0aCkgfHwgISF0aGlzLnNsaWRlQ29uZmlnPy5pbmZpbml0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byBpbml0IHByZXZpZXdzIGJhc2VkIG9uIHRoZSBjdXJyZW50SW1hZ2UgYW5kIHRoZSBmdWxsIGFycmF5IG9mIGltYWdlcy5cbiAgICogVGhlIGN1cnJlbnQgaW1hZ2UgaW4gbWFuZGF0b3J5IHRvIHNob3cgYWx3YXlzIHRoZSBjdXJyZW50IHByZXZpZXcgKGFzIGhpZ2hsaWdodGVkKS5cbiAgICogQHBhcmFtIEludGVybmFsTGliSW1hZ2UgY3VycmVudEltYWdlIHRvIGRlY2lkZSBob3cgdG8gc2hvdyBwcmV2aWV3cywgYmVjYXVzZSBJIGFsd2F5cyB3YW50IHRvIHNlZSB0aGUgY3VycmVudCBpbWFnZSBhcyBoaWdobGlnaHRlZFxuICAgKiBAcGFyYW0gSW50ZXJuYWxMaWJJbWFnZVtdIGltYWdlcyBpcyB0aGUgYXJyYXkgb2YgYWxsIGltYWdlcy5cbiAgICovXG4gIHByaXZhdGUgaW5pdFByZXZpZXdzKGN1cnJlbnRJbWFnZTogSW50ZXJuYWxMaWJJbWFnZSwgaW1hZ2VzOiBJbnRlcm5hbExpYkltYWdlW10pOiB2b2lkIHtcbiAgICB0aGlzLnNldEluZGV4ZXNQcmV2aWV3cyhjdXJyZW50SW1hZ2UsIGltYWdlcyk7XG4gICAgdGhpcy5wcmV2aWV3cyA9IGltYWdlcy5maWx0ZXIoKGltZzogSW50ZXJuYWxMaWJJbWFnZSwgaTogbnVtYmVyKSA9PiBpID49IHRoaXMuc3RhcnQgJiYgaSA8IHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byB1cGRhdGUgYm90aCBgc3RhcnRgIGFuZCBgZW5kYCBiYXNlZCBvbiB0aGUgY3VycmVudEltYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRJbmRleGVzUHJldmlld3MoY3VycmVudEltYWdlOiBJbnRlcm5hbExpYkltYWdlLCBpbWFnZXM6IEludGVybmFsTGliSW1hZ2VbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmV2aWV3Q29uZmlnIHx8ICFpbWFnZXMgfHwgIWN1cnJlbnRJbWFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gcHJldmlld0NvbmZpZywgY3VycmVudEltYWdlIGFuZCBpbWFnZXMgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHByZXZpZXdzTnVtYmVyID0gdGhpcy5wcmV2aWV3Q29uZmlnLm51bWJlciBhcyBudW1iZXI7XG4gICAgbGV0IHN0YXJ0ID0gZ2V0SW5kZXgoY3VycmVudEltYWdlLCBpbWFnZXMpIC0gTWF0aC5mbG9vcihwcmV2aWV3c051bWJlciAvIDIpO1xuICAgIC8vIHN0YXJ0IGlzLCBhdCBhIG1pbmltdW0sIHRoZSBmaXJzdCBpbmRleFxuICAgIGlmKHN0YXJ0IDwgMCkgc3RhcnQgPSAwO1xuICAgIC8vIGVuZCBpbmRleFxuICAgIGxldCBlbmQgPSBzdGFydCArIHByZXZpZXdzTnVtYmVyO1xuICAgIC8vIGVuZCBpcywgYXQgYSBtYXhpbXVtLCB0aGUgbGFzdCBpbmRleFxuICAgIGlmKGVuZCA+IGltYWdlcy5sZW5ndGgpIHtcbiAgICAgIHN0YXJ0IC09IGVuZCAtIGltYWdlcy5sZW5ndGg7XG4gICAgICBpZihzdGFydCA8IDApIHN0YXJ0ID0gMDsgLy8gc3RhcnQgaXMsIGF0IGEgbWluaW11bSwgdGhlIGZpcnN0IGluZGV4XG4gICAgICBlbmQgPSBpbWFnZXMubGVuZ3RoO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgdGhpcy5lbmQgPSBlbmQ7XG4gIH1cblxuICAvKipcbiAgICogUHJpdmF0ZSBtZXRob2QgdG8gdXBkYXRlIHRoZSB2aXNpYmxlIHByZXZpZXdzIG5hdmlnYXRpbmcgdG8gdGhlIHJpZ2h0IChuZXh0KS5cbiAgICovXG4gIHByaXZhdGUgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJldmlld0NvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gcHJldmlld0NvbmZpZyBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYodGhpcy5lbmQgPj0gdGhpcy5pbWFnZXMubGVuZ3RoKSB7XG4gICAgICAvLyBjaGVjayBpZiBuZXh0SW1hZ2Ugc2hvdWxkIGJlIGJsb2NrZWRcbiAgICAgIGNvbnN0IHByZXZlbnRTbGlkaW5nID0gISF0aGlzLnNsaWRlQ29uZmlnICYmIHRoaXMuc2xpZGVDb25maWcuaW5maW5pdGUgPT09IGZhbHNlO1xuICAgICAgaWYocHJldmVudFNsaWRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zdGFydCA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhcnQrKztcbiAgICB9XG4gICAgdGhpcy5lbmQgPSB0aGlzLnN0YXJ0ICsgTWF0aC5taW4oKHRoaXMucHJldmlld0NvbmZpZy5udW1iZXIgYXMgbnVtYmVyKSwgdGhpcy5pbWFnZXMubGVuZ3RoKTtcblxuICAgIHRoaXMucHJldmlld3MgPSB0aGlzLmltYWdlcy5maWx0ZXIoKGltZzogSW50ZXJuYWxMaWJJbWFnZSwgaTogbnVtYmVyKSA9PiBpID49IHRoaXMuc3RhcnQgJiYgaSA8IHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byB1cGRhdGUgdGhlIHZpc2libGUgcHJldmlld3MgbmF2aWdhdGluZyB0byB0aGUgbGVmdCAocHJldmlvdXMpLlxuICAgKi9cbiAgcHJpdmF0ZSBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJldmlld0NvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gcHJldmlld0NvbmZpZyBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYodGhpcy5zdGFydCA8PSAwKSB7XG4gICAgICAvLyBjaGVjayBpZiBwcmV2SW1hZ2Ugc2hvdWxkIGJlIGJsb2NrZWRcbiAgICAgIGNvbnN0IHByZXZlbnRTbGlkaW5nID0gISF0aGlzLnNsaWRlQ29uZmlnICYmIHRoaXMuc2xpZGVDb25maWcuaW5maW5pdGUgPT09IGZhbHNlO1xuICAgICAgaWYocHJldmVudFNsaWRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5lbmQgPSB0aGlzLmltYWdlcy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kLS07XG4gICAgfVxuICAgIHRoaXMuc3RhcnQgPSB0aGlzLmVuZCAtIE1hdGgubWluKCh0aGlzLnByZXZpZXdDb25maWcubnVtYmVyIGFzIG51bWJlciksIHRoaXMuaW1hZ2VzLmxlbmd0aCk7XG5cbiAgICB0aGlzLnByZXZpZXdzID0gdGhpcy5pbWFnZXMuZmlsdGVyKChpbWc6IEludGVybmFsTGliSW1hZ2UsIGk6IG51bWJlcikgPT4gaSA+PSB0aGlzLnN0YXJ0ICYmIGkgPCB0aGlzLmVuZCk7XG4gIH1cblxufVxuIiwiPG5hdiBjbGFzcz1cInByZXZpZXdzLWNvbnRhaW5lclwiXG4gICAgIFtjbGFzcy5tb2JpbGUtdmlzaWJsZV09XCJwcmV2aWV3Q29uZmlnPy5tb2JpbGVWaXNpYmxlXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY2Nlc3NpYmlsaXR5Q29uZmlnPy5wcmV2aWV3c0NvbnRhaW5lckFyaWFMYWJlbFwiXG4gICAgIFt0aXRsZV09XCJhY2Nlc3NpYmlsaXR5Q29uZmlnPy5wcmV2aWV3c0NvbnRhaW5lclRpdGxlXCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByZXZpZXdDb25maWc/LnZpc2libGVcIj5cbiAgICA8YSBjbGFzcz1cIm5hdi1sZWZ0XCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjY2Vzc2liaWxpdHlDb25maWc/LnByZXZpZXdTY3JvbGxQcmV2QXJpYUxhYmVsXCJcbiAgICAgICBbdGFiSW5kZXhdPVwiZGlzcGxheUxlZnRQcmV2aWV3c0Fycm93KCkgPyAwIDogLTFcIiByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAoY2xpY2spPVwib25OYXZpZ2F0aW9uRXZlbnQoJ2xlZnQnLCAkZXZlbnQpXCIgKGtleXVwKT1cIm9uTmF2aWdhdGlvbkV2ZW50KCdsZWZ0JywgJGV2ZW50KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImluc2lkZSB7eyBkaXNwbGF5TGVmdFByZXZpZXdzQXJyb3coKSA/ICdsZWZ0LWFycm93LXByZXZpZXctaW1hZ2UnIDogJ2VtcHR5LWFycm93LXByZXZpZXctaW1hZ2UnfX1cIlxuICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICBbdGl0bGVdPVwiYWNjZXNzaWJpbGl0eUNvbmZpZz8ucHJldmlld1Njcm9sbFByZXZUaXRsZVwiPjwvZGl2PlxuICAgIDwvYT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByZXZpZXcgb2YgcHJldmlld3M7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGluZGV4ID0gaW5kZXhcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctY29udGFpbmVyIHt7IXByZXZpZXdDb25maWc/LmNsaWNrYWJsZSA/ICcgdW5jbGlja2FibGUnIDogJyd9fVwiXG4gICAgICAgIChjbGljayk9XCJvbkltYWdlRXZlbnQocHJldmlldywgJGV2ZW50LCBjbGlja0FjdGlvbilcIlxuICAgICAgICAoa2V5dXApPVwib25JbWFnZUV2ZW50KHByZXZpZXcsICRldmVudCwga2V5Ym9hcmRBY3Rpb24pXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIiFjdXN0b21UZW1wbGF0ZSA/IGRlZmF1bHRUZW1wbGF0ZSA6IGN1c3RvbVRlbXBsYXRlIDsgY29udGV4dDp7cHJldmlldywgZGVmYXVsdFRlbXBsYXRlfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgICAgICAgPGltZyAqbmdJZj1cInByZXZpZXc/Lm1vZGFsPy5pbWdcIlxuICAgICAgICAgICAgICBjbGFzcz1cImluc2lkZSBwcmV2aWV3LWltYWdlIHt7aXNBY3RpdmUocHJldmlldykgPyAnYWN0aXZlJyA6ICcnfX1cIlxuICAgICAgICAgICAgICBbc3JjXT1cInByZXZpZXcucGxhaW4/LmltZyA/IHByZXZpZXcucGxhaW4/LmltZyEgOiBwcmV2aWV3Lm1vZGFsLmltZ1wiXG4gICAgICAgICAgICAgIGtzRmFsbGJhY2tJbWFnZSBbZmFsbGJhY2tJbWddPVwicHJldmlldy5wbGFpbj8uZmFsbGJhY2tJbWcgPyBwcmV2aWV3LnBsYWluPy5mYWxsYmFja0ltZyA6IHByZXZpZXcubW9kYWwuZmFsbGJhY2tJbWdcIlxuICAgICAgICAgICAgICBrc1NpemUgW3NpemVDb25maWddPVwie3dpZHRoOiBwcmV2aWV3Q29uZmlnPy5zaXplID8gcHJldmlld0NvbmZpZz8uc2l6ZT8ud2lkdGghIDogZGVmYXVsdFByZXZpZXdTaXplLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBwcmV2aWV3Q29uZmlnPy5zaXplID8gcHJldmlld0NvbmZpZz8uc2l6ZT8uaGVpZ2h0ISA6IGRlZmF1bHRQcmV2aWV3U2l6ZS5oZWlnaHR9XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2aWV3Lm1vZGFsLmFyaWFMYWJlbCA/IHByZXZpZXcubW9kYWwuYXJpYUxhYmVsIDogJydcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiKHByZXZpZXcubW9kYWwudGl0bGUgfHwgcHJldmlldy5tb2RhbC50aXRsZSA9PT0gJycpID8gcHJldmlldy5tb2RhbC50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgICAgYWx0PVwie3twcmV2aWV3Lm1vZGFsLmFsdCA/IHByZXZpZXcubW9kYWwuYWx0IDogJyd9fVwiXG4gICAgICAgICAgICAgIFt0YWJJbmRleF09XCIwXCIgcm9sZT1cImltZ1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgIDxhIGNsYXNzPVwibmF2LXJpZ2h0XCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjY2Vzc2liaWxpdHlDb25maWc/LnByZXZpZXdTY3JvbGxOZXh0QXJpYUxhYmVsXCJcbiAgICAgICBbdGFiSW5kZXhdPVwiZGlzcGxheVJpZ2h0UHJldmlld3NBcnJvdygpID8gMCA6IC0xXCIgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgKGNsaWNrKT1cIm9uTmF2aWdhdGlvbkV2ZW50KCdyaWdodCcsICRldmVudClcIiAoa2V5dXApPVwib25OYXZpZ2F0aW9uRXZlbnQoJ3JpZ2h0JywgJGV2ZW50KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImluc2lkZSB7eyBkaXNwbGF5UmlnaHRQcmV2aWV3c0Fycm93KCkgPyAncmlnaHQtYXJyb3ctcHJldmlldy1pbWFnZScgOiAnZW1wdHktYXJyb3ctcHJldmlldy1pbWFnZSd9fVwiXG4gICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgIFt0aXRsZV09XCJhY2Nlc3NpYmlsaXR5Q29uZmlnPy5wcmV2aWV3U2Nyb2xsTmV4dFRpdGxlXCI+PC9kaXY+XG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cblxuPC9uYXY+XG4iXX0=
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3M4OS9hbmd1bGFyLW1vZGFsLWdhbGxlcnkvc3JjL2xpYi9jb21wb25lbnRzL3ByZXZpZXdzL3ByZXZpZXdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tzODkvYW5ndWxhci1tb2RhbC1nYWxsZXJ5L3NyYy9saWIvY29tcG9uZW50cy9wcmV2aWV3cy9wcmV2aWV3cy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQUUzSyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxPQUFPLEVBQXFCLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzdFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQUlwRjs7R0FFRztBQUNILE1BTWEsaUJBQWtCLFNBQVEsbUJBQW1CO0lBNEV4RCxZQUFvQixhQUE0QjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBaERoRDs7V0FFRztRQUVILGlCQUFZLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFnQnhFOzs7V0FHRztRQUNILGdCQUFXLEdBQVcsTUFBTSxDQUFDLEtB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LENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUMvQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ1o7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBcUIsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUcsQ0FBQzs4R0EvUVUsaUJBQWlCO2tHQUFqQixpQkFBaUIsa1BDbEQ5QiwyN0ZBdURBOztTRExhLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTtvR0FRL0MsRUFBRTtzQkFERCxLQUFLO2dCQU1OLFlBQVk7c0JBRFgsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBVU4sY0FBYztzQkFEYixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMyBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjZXNzaWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvYWNjZXNzaWJpbGl0eS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2UsIEltYWdlRXZlbnQsIEltYWdlTW9kYWxFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2ltYWdlLmNsYXNzJztcbmltcG9ydCB7IEludGVybmFsTGliSW1hZ2UgfSBmcm9tICcuLi8uLi9tb2RlbC9pbWFnZS1pbnRlcm5hbC5jbGFzcyc7XG5pbXBvcnQgeyBQcmV2aWV3Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvcHJldmlldy1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNsaWRlQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2xpZGUtY29uZmlnLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IE5FWFQsIFBSRVYgfSBmcm9tICcuLi8uLi91dGlscy91c2VyLWlucHV0LnV0aWwnO1xuaW1wb3J0IHsgZ2V0SW5kZXggfSBmcm9tICcuLi8uLi91dGlscy9pbWFnZS51dGlsJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2FjdGlvbi5lbnVtJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIERFRkFVTFRfUFJFVklFV19TSVpFIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4uLy4uL21vZGVsL3NpemUuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpYkNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL2xpYi1jb25maWcuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgd2l0aCBpbWFnZSBwcmV2aWV3c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrcy1wcmV2aWV3cycsXG4gIHN0eWxlVXJsczogWydwcmV2aWV3cy5zY3NzJywgJy4uL3ByZXZpZXdzLWFycm93cy5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAncHJldmlld3MuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFByZXZpZXdzQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZCAoPj0wKSBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBvZiB0aGlzIGxpYnJhcnkuIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiB5b3UgYXJlIHVzaW5nXG4gICAqIHRoZSBzZXJ2aWNlIHRvIGNhbGwgbW9kYWwgZ2FsbGVyeS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGlkITogbnVtYmVyO1xuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYEludGVybmFsTGliSW1hZ2VgIHRoYXQgcmVwcmVzZW50IHRoZSB2aXNpYmxlIGltYWdlLlxuICAgKi9cbiAgQElucHV0KClcbiAgY3VycmVudEltYWdlITogSW50ZXJuYWxMaWJJbWFnZTtcbiAgLyoqXG4gICAqIEFycmF5IG9mIGBJbnRlcm5hbExpYkltYWdlYCB0aGF0IHJlcHJlc2VudCB0aGUgbW9kZWwgb2YgdGhpcyBsaWJyYXJ5IHdpdGggYWxsIGltYWdlcyxcbiAgICogdGh1bWJzIGFuZCBzbyBvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGltYWdlcyE6IEludGVybmFsTGliSW1hZ2VbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUgcmVuZGVyaW5nIG9mIHByZXZpZXdzLlxuICAgKiBUZW1wbGF0ZSBtYXkgYWNjZXNzIGZvbGxvd2luZyBjb250ZXh0IHZhcmlhYmxlczpcbiAgICogLSBwcmV2aWV3OiB0aGUgYEltYWdlYCBvYmplY3RcbiAgICogLSBkZWZhdWx0VGVtcGxhdGU6IHRoZSB0ZW1wbGF0ZSB1c2VkIGJ5IGRlZmF1bHQgdG8gcmVuZGVyIHRoZSBwcmV2aWV3IChpbiBjYXNlIHRoZSBuZWVkIGlzIHRvIHdyYXAgaXQpXG4gICAqL1xuICBASW5wdXQoKVxuICBjdXN0b21UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAvKipcbiAgICogT3V0cHV0IHRvIGVtaXQgdGhlIGNsaWNrZWQgcHJldmlldy4gVGhlIHBheWxvYWQgY29udGFpbnMgdGhlIGBJbWFnZUV2ZW50YCBhc3NvY2lhdGVkIHRvIHRoZSBjbGlja2VkIHByZXZpZXcuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgY2xpY2tQcmV2aWV3OiBFdmVudEVtaXR0ZXI8SW1hZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEltYWdlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIE9iamVjdCBvZiB0eXBlIGBBY2Nlc3NpYmlsaXR5Q29uZmlnYCB0byBpbml0IGN1c3RvbSBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLlxuICAgKiBGb3IgaW5zdGFuY2UsIGl0IGNvbnRhaW5zIHRpdGxlcywgYWx0IHRleHRzLCBhcmlhLWxhYmVscyBhbmQgc28gb24uXG4gICAqL1xuICBhY2Nlc3NpYmlsaXR5Q29uZmlnOiBBY2Nlc3NpYmlsaXR5Q29uZmlnIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYFNsaWRlQ29uZmlnYCB0byBnZXQgYGluZmluaXRlIHNsaWRpbmdgLlxuICAgKi9cbiAgc2xpZGVDb25maWc6IFNsaWRlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT2JqZWN0IG9mIHR5cGUgYFByZXZpZXdDb25maWdgIHRvIGluaXQgUHJldmlld3NDb21wb25lbnQncyBmZWF0dXJlcy5cbiAgICogRm9yIGluc3RhbmNlLCBpdCBjb250YWlucyBhIHBhcmFtIHRvIHNob3cvaGlkZSB0aGlzIGNvbXBvbmVudCwgc2l6ZXMuXG4gICAqL1xuICBwcmV2aWV3Q29uZmlnOiBQcmV2aWV3Q29uZmlnIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogRW51bSBvZiB0eXBlIGBBY3Rpb25gIHRoYXQgcmVwcmVzZW50cyBhIG1vdXNlIGNsaWNrIG9uIGEgYnV0dG9uLlxuICAgKiBEZWNsYXJlZCBoZXJlIHRvIGJlIHVzZWQgaW5zaWRlIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIGNsaWNrQWN0aW9uOiBBY3Rpb24gPSBBY3Rpb24uQ0xJQ0s7XG4gIC8qKlxuICAgKiBFbnVtIG9mIHR5cGUgYEFjdGlvbmAgdGhhdCByZXByZXNlbnRzIGEga2V5Ym9hcmQgYWN0aW9uLlxuICAgKiBEZWNsYXJlZCBoZXJlIHRvIGJlIHVzZWQgaW5zaWRlIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIGtleWJvYXJkQWN0aW9uOiBBY3Rpb24gPSBBY3Rpb24uS0VZQk9BUkQ7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBgSW50ZXJuYWxMaWJJbWFnZWAgZXhwb3NlZCB0byB0aGUgdGVtcGxhdGUuIFRoaXMgZmllbGQgaXMgaW5pdGlhbGl6ZWRcbiAgICogYXBwbHlpbmcgdHJhbnNmb3JtYXRpb25zLCBkZWZhdWx0IHZhbHVlcyBhbmQgc28gb24gdG8gdGhlIGlucHV0IG9mIHRoZSBzYW1lIHR5cGUuXG4gICAqL1xuICBwcmV2aWV3czogSW50ZXJuYWxMaWJJbWFnZVtdID0gW107XG4gIC8qKlxuICAgKiBTdGFydCBpbmRleCAoaW5jbHVkZWQpIG9mIHRoZSBpbnB1dCBpbWFnZXMgdXNlZCB0byBkaXNwbGF5IHByZXZpZXdzLlxuICAgKi9cbiAgICAvLyBAdHMtaWdub3JlXG4gIHN0YXJ0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFbmQgaW5kZXggKGV4Y2x1ZGVkKSBvZiB0aGUgaW5wdXQgaW1hZ2VzIHVzZWQgdG8gZGlzcGxheSBwcmV2aWV3cy5cbiAgICovXG4gICAgLy8gQHRzLWlnbm9yZVxuICBlbmQ6IG51bWJlcjtcblxuICBkZWZhdWx0UHJldmlld1NpemU6IFNpemUgPSBERUZBVUxUX1BSRVZJRVdfU0laRTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldGhvZCDCtG5nT25Jbml0wrQgdG8gYnVpbGQgYGNvbmZpZ1ByZXZpZXdgIGFwcGx5aW5nIGEgZGVmYXVsdCB2YWx1ZSBhbmQgYWxzbyB0b1xuICAgKiBpbml0IHRoZSBgcHJldmlld3NgIGFycmF5LlxuICAgKiBUaGlzIGlzIGFuIGFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2ssIHNvIGl0cyBjYWxsZWQgYXV0b21hdGljYWxseSBieSBBbmd1bGFyIGl0c2VsZi5cbiAgICogSW4gcGFydGljdWxhciwgaXQncyBjYWxsZWQgb25seSBvbmUgdGltZSEhIVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbGliQ29uZmlnOiBMaWJDb25maWcgfCB1bmRlZmluZWQgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKHRoaXMuaWQpO1xuICAgIGlmICghbGliQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVybmFsIGxpYnJhcnkgZXJyb3IgLSBsaWJDb25maWcgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuICAgIHRoaXMuYWNjZXNzaWJpbGl0eUNvbmZpZyA9IGxpYkNvbmZpZy5hY2Nlc3NpYmlsaXR5Q29uZmlnO1xuICAgIHRoaXMuc2xpZGVDb25maWcgPSBsaWJDb25maWcuc2xpZGVDb25maWc7XG4gICAgdGhpcy5wcmV2aWV3Q29uZmlnID0gbGliQ29uZmlnLnByZXZpZXdDb25maWc7XG4gICAgdGhpcy5pbml0UHJldmlld3ModGhpcy5jdXJyZW50SW1hZ2UsIHRoaXMuaW1hZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gY2hlY2sgaWYgYW4gaW1hZ2UgaXMgYWN0aXZlIChpLmUuIGEgcHJldmlldyBpbWFnZSkuXG4gICAqIEBwYXJhbSBJbnRlcm5hbExpYkltYWdlIHByZXZpZXcgaXMgYW4gaW1hZ2UgdG8gY2hlY2sgaWYgaXQncyBhY3RpdmUgb3Igbm90XG4gICAqIEByZXR1cm5zIGJvb2xlYW4gdHJ1ZSBpZiBpcyBhY3RpdmUsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaXNBY3RpdmUocHJldmlldzogSW50ZXJuYWxMaWJJbWFnZSk6IGJvb2xlYW4ge1xuICAgIGlmICghcHJldmlldykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcHJldmlldy5pZCA9PT0gdGhpcy5jdXJyZW50SW1hZ2UuaWQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIMK0bmdPbkNoYW5nZXPCtCB0byB1cGRhdGUgYHByZXZpZXdzYCBhcnJheS5cbiAgICogQWxzbywgYm90aCBgc3RhcnRgIGFuZCBgZW5kYCBsb2NhbCB2YXJpYWJsZXMgd2lsbCBiZSB1cGRhdGVkIGFjY29yZGluZ2x5LlxuICAgKiBUaGlzIGlzIGFuIGFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2ssIHNvIGl0cyBjYWxsZWQgYXV0b21hdGljYWxseSBieSBBbmd1bGFyIGl0c2VsZi5cbiAgICogSW4gcGFydGljdWxhciwgaXQncyBjYWxsZWQgd2hlbiBhbnkgZGF0YS1ib3VuZCBwcm9wZXJ0eSBvZiBhIGRpcmVjdGl2ZSBjaGFuZ2VzISEhXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBsZXQgY3VycmVudEltYWdlID0gY2hhbmdlcy5jdXJyZW50SW1hZ2U/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLmN1cnJlbnRJbWFnZTtcbiAgICBsZXQgaW1hZ2VzID0gY2hhbmdlcy5pbWFnZXM/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLmltYWdlcztcblxuICAgIGlmKHRoaXMucHJldmlld0NvbmZpZyAmJiBjdXJyZW50SW1hZ2UgJiYgaW1hZ2VzKSB7XG4gICAgICB0aGlzLmluaXRQcmV2aWV3cyggY3VycmVudEltYWdlLCBpbWFnZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgY2FsbGVkIGJ5IGV2ZW50cyBmcm9tIGJvdGgga2V5Ym9hcmQgYW5kIG1vdXNlIG9uIGEgcHJldmlldy5cbiAgICogVGhpcyB3aWxsIHRyaWdnZXIgdGhlIGBjbGlja3ByZXZpZXdgIG91dHB1dCB3aXRoIHRoZSBpbnB1dCBwcmV2aWV3IGFzIGl0cyBwYXlsb2FkLlxuICAgKiBAcGFyYW0gSW50ZXJuYWxMaWJJbWFnZSBwcmV2aWV3IHRoYXQgdHJpZ2dlcmVkIHRoaXMgbWV0aG9kXG4gICAqIEBwYXJhbSBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCBldmVudCBwYXlsb2FkXG4gICAqIEBwYXJhbSBBY3Rpb24gYWN0aW9uIHRoYXQgdHJpZ2dlcmVkIHRoZSBzb3VyY2UgZXZlbnQgb3IgYEFjdGlvbi5OT1JNQUxgIGlmIG5vdCBzcGVjaWZpZWRcbiAgICovXG4gIG9uSW1hZ2VFdmVudChwcmV2aWV3OiBJbnRlcm5hbExpYkltYWdlLCBldmVudDogS2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQsIGFjdGlvbjogQWN0aW9uID0gQWN0aW9uLk5PUk1BTCk6IHZvaWQge1xuICAgIC8vIEl0J3Mgc3VnZ2VzdGVkIHRvIHN0b3AgcHJvcGFnYXRpb24gb2YgdGhlIGV2ZW50LCBzbyB0aGVcbiAgICAvLyBDZGsgYmFja2dyb3VuZCB3aWxsIG5vdCBjYXRjaCBhIGNsaWNrIGFuZCBjbG9zZSB0aGUgbW9kYWwgKGxpa2UgaXQgZG9lcyBvbiBXaW5kb3dzIENocm9tZS9GRikuXG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5wcmV2aWV3Q29uZmlnIHx8ICF0aGlzLnByZXZpZXdDb25maWcuY2xpY2thYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdDogbnVtYmVyID0gc3VwZXIuaGFuZGxlSW1hZ2VFdmVudChldmVudCk7XG4gICAgaWYgKHJlc3VsdCA9PT0gTkVYVCB8fCByZXN1bHQgPT09IFBSRVYpIHtcbiAgICAgIHRoaXMuY2xpY2tQcmV2aWV3LmVtaXQobmV3IEltYWdlTW9kYWxFdmVudCh0aGlzLmlkLCBhY3Rpb24sIGdldEluZGV4KHByZXZpZXcsIHRoaXMuaW1hZ2VzKSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgY2FsbGVkIGJ5IGV2ZW50cyBmcm9tIGJvdGgga2V5Ym9hcmQgYW5kIG1vdXNlIG9uIGEgbmF2aWdhdGlvbiBhcnJvdy5cbiAgICogSXQgYWxzbyBlbWl0cyBhbiBldmVudCB0byBzcGVjaWZ5IHdoaWNoIGFycm93LlxuICAgKiBAcGFyYW0gc3RyaW5nIGRpcmVjdGlvbiBvZiB0aGUgbmF2aWdhdGlvbiB0aGF0IGNhbiBiZSBlaXRoZXIgJ25leHQnIG9yICdwcmV2J1xuICAgKiBAcGFyYW0gS2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQgZXZlbnQgcGF5bG9hZFxuICAgKiBAcGFyYW0gQWN0aW9uIGFjdGlvbiB0aGF0IHRyaWdnZXJlZCB0aGUgc291cmNlIGV2ZW50IG9yIGBBY3Rpb24uTk9STUFMYCBpZiBub3Qgc3BlY2lmaWVkXG4gICAqL1xuICBvbk5hdmlnYXRpb25FdmVudChkaXJlY3Rpb246IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50LCBhY3Rpb246IEFjdGlvbiA9IEFjdGlvbi5OT1JNQUwpOiB2b2lkIHtcbiAgICBjb25zdCByZXN1bHQ6IG51bWJlciA9IHN1cGVyLmhhbmRsZU5hdmlnYXRpb25FdmVudChkaXJlY3Rpb24sIGV2ZW50KTtcbiAgICBpZiAocmVzdWx0ID09PSBORVhUKSB7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gUFJFVikge1xuICAgICAgdGhpcy5wcmV2aW91cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBpbiB0aGUgdGVtcGxhdGUgdG8gdHJhY2sgaWRzIGluIG5nRm9yLlxuICAgKiBAcGFyYW0gbnVtYmVyIGluZGV4IG9mIHRoZSBhcnJheVxuICAgKiBAcGFyYW0gSW1hZ2UgaXRlbSBvZiB0aGUgYXJyYXlcbiAgICogQHJldHVybnMgbnVtYmVyIHRoZSBpZCBvZiB0aGUgaXRlbVxuICAgKi9cbiAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGl0ZW06IEltYWdlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHByZXZpZXdzICdsZWZ0IGFycm93JyBzaG91bGQgYmUgZGlzcGxheWVkIG9yIG5vdC5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGRpc3BsYXlMZWZ0UHJldmlld3NBcnJvdygpOiBib29sZWFuIHtcbiAgICAvLyBEb24ndCBzaG93IGFycm93cyBpZiByZXF1ZXN0ZWQgcHJldmlld3MgbnVtYmVyIGVxdWFscyBvciBpcyBncmVhdGVkIHRoYW4gdG90YWwgbnVtYmVyIG9mIGltZ2Flc1xuICAgIGlmKHRoaXMucHJldmlld0NvbmZpZz8ubnVtYmVyICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pbWFnZXMgJiYgdGhpcy5wcmV2aWV3Q29uZmlnPy5udW1iZXIgPj0gdGhpcy5pbWFnZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMucHJldmlld0NvbmZpZz8uYXJyb3dzICYmIHRoaXMuc3RhcnQgPiAwKSB8fCAhIXRoaXMuc2xpZGVDb25maWc/LmluZmluaXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgcHJldmlld3MgJ3JpZ2h0IGFycm93JyBzaG91bGQgYmUgZGlzcGxheWVkIG9yIG5vdC5cbiAgICogQHJldHVybnNcbiAgICovXG4gIGRpc3BsYXlSaWdodFByZXZpZXdzQXJyb3coKTogYm9vbGVhbiB7XG4gICAgLy8gRG9uJ3Qgc2hvdyBhcnJvd3MgaWYgcmVxdWVzdGVkIHByZXZpZXdzIG51bWJlciBlcXVhbHMgb3IgaXMgZ3JlYXRlZCB0aGFuIHRvdGFsIG51bWJlciBvZiBpbWdhZXNcbiAgICBpZih0aGlzLnByZXZpZXdDb25maWc/Lm51bWJlciAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaW1hZ2VzICYmIHRoaXMucHJldmlld0NvbmZpZz8ubnVtYmVyID49IHRoaXMuaW1hZ2VzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLnByZXZpZXdDb25maWc/LmFycm93cyAmJiB0aGlzLmltYWdlcyAmJiB0aGlzLmVuZCA8IHRoaXMuaW1hZ2VzLmxlbmd0aCkgfHwgISF0aGlzLnNsaWRlQ29uZmlnPy5pbmZpbml0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byBpbml0IHByZXZpZXdzIGJhc2VkIG9uIHRoZSBjdXJyZW50SW1hZ2UgYW5kIHRoZSBmdWxsIGFycmF5IG9mIGltYWdlcy5cbiAgICogVGhlIGN1cnJlbnQgaW1hZ2UgaW4gbWFuZGF0b3J5IHRvIHNob3cgYWx3YXlzIHRoZSBjdXJyZW50IHByZXZpZXcgKGFzIGhpZ2hsaWdodGVkKS5cbiAgICogQHBhcmFtIEludGVybmFsTGliSW1hZ2UgY3VycmVudEltYWdlIHRvIGRlY2lkZSBob3cgdG8gc2hvdyBwcmV2aWV3cywgYmVjYXVzZSBJIGFsd2F5cyB3YW50IHRvIHNlZSB0aGUgY3VycmVudCBpbWFnZSBhcyBoaWdobGlnaHRlZFxuICAgKiBAcGFyYW0gSW50ZXJuYWxMaWJJbWFnZVtdIGltYWdlcyBpcyB0aGUgYXJyYXkgb2YgYWxsIGltYWdlcy5cbiAgICovXG4gIHByaXZhdGUgaW5pdFByZXZpZXdzKGN1cnJlbnRJbWFnZTogSW50ZXJuYWxMaWJJbWFnZSwgaW1hZ2VzOiBJbnRlcm5hbExpYkltYWdlW10pOiB2b2lkIHtcbiAgICB0aGlzLnNldEluZGV4ZXNQcmV2aWV3cyhjdXJyZW50SW1hZ2UsIGltYWdlcyk7XG4gICAgdGhpcy5wcmV2aWV3cyA9IGltYWdlcy5maWx0ZXIoKGltZzogSW50ZXJuYWxMaWJJbWFnZSwgaTogbnVtYmVyKSA9PiBpID49IHRoaXMuc3RhcnQgJiYgaSA8IHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byB1cGRhdGUgYm90aCBgc3RhcnRgIGFuZCBgZW5kYCBiYXNlZCBvbiB0aGUgY3VycmVudEltYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXRJbmRleGVzUHJldmlld3MoY3VycmVudEltYWdlOiBJbnRlcm5hbExpYkltYWdlLCBpbWFnZXM6IEludGVybmFsTGliSW1hZ2VbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmV2aWV3Q29uZmlnIHx8ICFpbWFnZXMgfHwgIWN1cnJlbnRJbWFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gcHJldmlld0NvbmZpZywgY3VycmVudEltYWdlIGFuZCBpbWFnZXMgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHByZXZpZXdzTnVtYmVyID0gdGhpcy5wcmV2aWV3Q29uZmlnLm51bWJlciBhcyBudW1iZXI7XG4gICAgbGV0IHN0YXJ0ID0gZ2V0SW5kZXgoY3VycmVudEltYWdlLCBpbWFnZXMpIC0gTWF0aC5mbG9vcihwcmV2aWV3c051bWJlciAvIDIpO1xuICAgIC8vIHN0YXJ0IGlzLCBhdCBhIG1pbmltdW0sIHRoZSBmaXJzdCBpbmRleFxuICAgIGlmKHN0YXJ0IDwgMCkgc3RhcnQgPSAwO1xuICAgIC8vIGVuZCBpbmRleFxuICAgIGxldCBlbmQgPSBzdGFydCArIHByZXZpZXdzTnVtYmVyO1xuICAgIC8vIGVuZCBpcywgYXQgYSBtYXhpbXVtLCB0aGUgbGFzdCBpbmRleFxuICAgIGlmKGVuZCA+IGltYWdlcy5sZW5ndGgpIHtcbiAgICAgIHN0YXJ0IC09IGVuZCAtIGltYWdlcy5sZW5ndGg7XG4gICAgICBpZihzdGFydCA8IDApIHN0YXJ0ID0gMDsgLy8gc3RhcnQgaXMsIGF0IGEgbWluaW11bSwgdGhlIGZpcnN0IGluZGV4XG4gICAgICBlbmQgPSBpbWFnZXMubGVuZ3RoO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgdGhpcy5lbmQgPSBlbmQ7XG4gIH1cblxuICAvKipcbiAgICogUHJpdmF0ZSBtZXRob2QgdG8gdXBkYXRlIHRoZSB2aXNpYmxlIHByZXZpZXdzIG5hdmlnYXRpbmcgdG8gdGhlIHJpZ2h0IChuZXh0KS5cbiAgICovXG4gIHByaXZhdGUgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJldmlld0NvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gcHJldmlld0NvbmZpZyBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYodGhpcy5lbmQgPj0gdGhpcy5pbWFnZXMubGVuZ3RoKSB7XG4gICAgICAvLyBjaGVjayBpZiBuZXh0SW1hZ2Ugc2hvdWxkIGJlIGJsb2NrZWRcbiAgICAgIGNvbnN0IHByZXZlbnRTbGlkaW5nID0gISF0aGlzLnNsaWRlQ29uZmlnICYmIHRoaXMuc2xpZGVDb25maWcuaW5maW5pdGUgPT09IGZhbHNlO1xuICAgICAgaWYocHJldmVudFNsaWRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zdGFydCA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhcnQrKztcbiAgICB9XG4gICAgdGhpcy5lbmQgPSB0aGlzLnN0YXJ0ICsgTWF0aC5taW4oKHRoaXMucHJldmlld0NvbmZpZy5udW1iZXIgYXMgbnVtYmVyKSwgdGhpcy5pbWFnZXMubGVuZ3RoKTtcblxuICAgIHRoaXMucHJldmlld3MgPSB0aGlzLmltYWdlcy5maWx0ZXIoKGltZzogSW50ZXJuYWxMaWJJbWFnZSwgaTogbnVtYmVyKSA9PiBpID49IHRoaXMuc3RhcnQgJiYgaSA8IHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcml2YXRlIG1ldGhvZCB0byB1cGRhdGUgdGhlIHZpc2libGUgcHJldmlld3MgbmF2aWdhdGluZyB0byB0aGUgbGVmdCAocHJldmlvdXMpLlxuICAgKi9cbiAgcHJpdmF0ZSBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJldmlld0NvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBsaWJyYXJ5IGVycm9yIC0gcHJldmlld0NvbmZpZyBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICB9XG4gICAgaWYodGhpcy5zdGFydCA8PSAwKSB7XG4gICAgICAvLyBjaGVjayBpZiBwcmV2SW1hZ2Ugc2hvdWxkIGJlIGJsb2NrZWRcbiAgICAgIGNvbnN0IHByZXZlbnRTbGlkaW5nID0gISF0aGlzLnNsaWRlQ29uZmlnICYmIHRoaXMuc2xpZGVDb25maWcuaW5maW5pdGUgPT09IGZhbHNlO1xuICAgICAgaWYocHJldmVudFNsaWRpbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5lbmQgPSB0aGlzLmltYWdlcy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5kLS07XG4gICAgfVxuICAgIHRoaXMuc3RhcnQgPSB0aGlzLmVuZCAtIE1hdGgubWluKCh0aGlzLnByZXZpZXdDb25maWcubnVtYmVyIGFzIG51bWJlciksIHRoaXMuaW1hZ2VzLmxlbmd0aCk7XG5cbiAgICB0aGlzLnByZXZpZXdzID0gdGhpcy5pbWFnZXMuZmlsdGVyKChpbWc6IEludGVybmFsTGliSW1hZ2UsIGk6IG51bWJlcikgPT4gaSA+PSB0aGlzLnN0YXJ0ICYmIGkgPCB0aGlzLmVuZCk7XG4gIH1cblxufVxuIiwiPG5hdiBjbGFzcz1cInByZXZpZXdzLWNvbnRhaW5lclwiXG4gICAgIFtjbGFzcy5tb2JpbGUtdmlzaWJsZV09XCJwcmV2aWV3Q29uZmlnPy5tb2JpbGVWaXNpYmxlXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY2Nlc3NpYmlsaXR5Q29uZmlnPy5wcmV2aWV3c0NvbnRhaW5lckFyaWFMYWJlbFwiXG4gICAgIFt0aXRsZV09XCJhY2Nlc3NpYmlsaXR5Q29uZmlnPy5wcmV2aWV3c0NvbnRhaW5lclRpdGxlXCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByZXZpZXdDb25maWc/LnZpc2libGVcIj5cbiAgICA8YSBjbGFzcz1cIm5hdi1sZWZ0XCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjY2Vzc2liaWxpdHlDb25maWc/LnByZXZpZXdTY3JvbGxQcmV2QXJpYUxhYmVsXCJcbiAgICAgICBbdGFiSW5kZXhdPVwiZGlzcGxheUxlZnRQcmV2aWV3c0Fycm93KCkgPyAwIDogLTFcIiByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAoY2xpY2spPVwib25OYXZpZ2F0aW9uRXZlbnQoJ2xlZnQnLCAkZXZlbnQpXCIgKGtleXVwKT1cIm9uTmF2aWdhdGlvbkV2ZW50KCdsZWZ0JywgJGV2ZW50KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImluc2lkZSB7eyBkaXNwbGF5TGVmdFByZXZpZXdzQXJyb3coKSA/ICdsZWZ0LWFycm93LXByZXZpZXctaW1hZ2UnIDogJ2VtcHR5LWFycm93LXByZXZpZXctaW1hZ2UnfX1cIlxuICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICBbdGl0bGVdPVwiYWNjZXNzaWJpbGl0eUNvbmZpZz8ucHJldmlld1Njcm9sbFByZXZUaXRsZVwiPjwvZGl2PlxuICAgIDwvYT5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHByZXZpZXcgb2YgcHJldmlld3M7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGluZGV4ID0gaW5kZXhcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cInByZXZpZXctY29udGFpbmVyIHt7IXByZXZpZXdDb25maWc/LmNsaWNrYWJsZSA/ICcgdW5jbGlja2FibGUnIDogJyd9fVwiXG4gICAgICAgIChjbGljayk9XCJvbkltYWdlRXZlbnQocHJldmlldywgJGV2ZW50LCBjbGlja0FjdGlvbilcIlxuICAgICAgICAoa2V5dXApPVwib25JbWFnZUV2ZW50KHByZXZpZXcsICRldmVudCwga2V5Ym9hcmRBY3Rpb24pXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIiFjdXN0b21UZW1wbGF0ZSA/IGRlZmF1bHRUZW1wbGF0ZSA6IGN1c3RvbVRlbXBsYXRlIDsgY29udGV4dDp7cHJldmlldywgZGVmYXVsdFRlbXBsYXRlfVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgICAgICAgPGltZyAqbmdJZj1cInByZXZpZXc/Lm1vZGFsPy5pbWdcIlxuICAgICAgICAgICAgICBjbGFzcz1cImluc2lkZSBwcmV2aWV3LWltYWdlIHt7aXNBY3RpdmUocHJldmlldykgPyAnYWN0aXZlJyA6ICcnfX1cIlxuICAgICAgICAgICAgICBbbG9hZGluZ109XCJwcmV2aWV3LmxvYWRpbmdcIlxuICAgICAgICAgICAgICBbYXR0ci5mZXRjaHByaW9yaXR5XT1cInByZXZpZXcuZmV0Y2hwcmlvcml0eVwiXG4gICAgICAgICAgICAgIFtzcmNdPVwicHJldmlldy5wbGFpbj8uaW1nID8gcHJldmlldy5wbGFpbj8uaW1nISA6IHByZXZpZXcubW9kYWwuaW1nXCJcbiAgICAgICAgICAgICAga3NGYWxsYmFja0ltYWdlIFtmYWxsYmFja0ltZ109XCJwcmV2aWV3LnBsYWluPy5mYWxsYmFja0ltZyA/IHByZXZpZXcucGxhaW4/LmZhbGxiYWNrSW1nIDogcHJldmlldy5tb2RhbC5mYWxsYmFja0ltZ1wiXG4gICAgICAgICAgICAgIGtzU2l6ZSBbc2l6ZUNvbmZpZ109XCJ7d2lkdGg6IHByZXZpZXdDb25maWc/LnNpemUgPyBwcmV2aWV3Q29uZmlnPy5zaXplPy53aWR0aCEgOiBkZWZhdWx0UHJldmlld1NpemUud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHByZXZpZXdDb25maWc/LnNpemUgPyBwcmV2aWV3Q29uZmlnPy5zaXplPy5oZWlnaHQhIDogZGVmYXVsdFByZXZpZXdTaXplLmhlaWdodH1cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByZXZpZXcubW9kYWwuYXJpYUxhYmVsID8gcHJldmlldy5tb2RhbC5hcmlhTGFiZWwgOiAnJ1wiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCIocHJldmlldy5tb2RhbC50aXRsZSB8fCBwcmV2aWV3Lm1vZGFsLnRpdGxlID09PSAnJykgPyBwcmV2aWV3Lm1vZGFsLnRpdGxlIDogJydcIlxuICAgICAgICAgICAgICBhbHQ9XCJ7e3ByZXZpZXcubW9kYWwuYWx0ID8gcHJldmlldy5tb2RhbC5hbHQgOiAnJ319XCJcbiAgICAgICAgICAgICAgW3RhYkluZGV4XT1cIjBcIiByb2xlPVwiaW1nXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuXG4gICAgPGEgY2xhc3M9XCJuYXYtcmlnaHRcIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWNjZXNzaWJpbGl0eUNvbmZpZz8ucHJldmlld1Njcm9sbE5leHRBcmlhTGFiZWxcIlxuICAgICAgIFt0YWJJbmRleF09XCJkaXNwbGF5UmlnaHRQcmV2aWV3c0Fycm93KCkgPyAwIDogLTFcIiByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAoY2xpY2spPVwib25OYXZpZ2F0aW9uRXZlbnQoJ3JpZ2h0JywgJGV2ZW50KVwiIChrZXl1cCk9XCJvbk5hdmlnYXRpb25FdmVudCgncmlnaHQnLCAkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5zaWRlIHt7IGRpc3BsYXlSaWdodFByZXZpZXdzQXJyb3coKSA/ICdyaWdodC1hcnJvdy1wcmV2aWV3LWltYWdlJyA6ICdlbXB0eS1hcnJvdy1wcmV2aWV3LWltYWdlJ319XCJcbiAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgW3RpdGxlXT1cImFjY2Vzc2liaWxpdHlDb25maWc/LnByZXZpZXdTY3JvbGxOZXh0VGl0bGVcIj48L2Rpdj5cbiAgICA8L2E+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L25hdj5cbiJdfQ==
|
|
@@ -26,10 +26,12 @@
|
|
|
26
26
|
* Both image `id` and `modal` are mandatory, instead `plain` is optional.
|
|
27
27
|
*/
|
|
28
28
|
export class Image {
|
|
29
|
-
constructor(id, modal, plain) {
|
|
29
|
+
constructor(id, modal, plain, loading = 'lazy', fetchpriority = 'auto') {
|
|
30
30
|
this.id = id;
|
|
31
31
|
this.modal = modal;
|
|
32
32
|
this.plain = plain;
|
|
33
|
+
this.loading = loading;
|
|
34
|
+
this.fetchpriority = fetchpriority;
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
@@ -51,4 +53,4 @@ export class ImageModalEvent extends ImageEvent {
|
|
|
51
53
|
super(galleryId, action, result);
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rczg5L2FuZ3VsYXItbW9kYWwtZ2FsbGVyeS9zcmMvbGliL21vZGVsL2ltYWdlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBTUg7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFPaEIsWUFBWSxFQUFVLEVBQUUsS0FBaUIsRUFBRSxLQUFrQixFQUFFLFVBQTRCLE1BQU0sRUFBRSxnQkFBeUMsTUFBTTtRQUNoSixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO0lBQ3BDLENBQUM7Q0FDRjtBQStCRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUtyQixZQUFZLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE1BQXdCO1FBQ3JFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQUM3QyxZQUFZLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE1BQXdCO1FBQ3JFLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMyBTdGVmYW5vIENhcHBhIChLczg5KVxuXG4gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cbiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04gSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4vc2l6ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbi8qKlxuICogQ2xhc3MgYEltYWdlYCB0aGF0IHJlcHJlc2VudHMgYW4gaW1hZ2Ugd2l0aCBib3RoIGBtb2RhbGAgYW5kIGBwbGFpbmAgY29uZmlndXJhdGlvbnMuXG4gKiBCb3RoIGltYWdlIGBpZGAgYW5kIGBtb2RhbGAgYXJlIG1hbmRhdG9yeSwgaW5zdGVhZCBgcGxhaW5gIGlzIG9wdGlvbmFsLlxuICovXG5leHBvcnQgY2xhc3MgSW1hZ2Uge1xuICBpZDogbnVtYmVyO1xuICBsb2FkaW5nOiAnZWFnZXInIHwgJ2xhenknO1xuICBmZXRjaHByaW9yaXR5OiAnaGlnaCcgfCAnbG93JyB8ICdhdXRvJztcbiAgbW9kYWw6IE1vZGFsSW1hZ2U7XG4gIHBsYWluPzogUGxhaW5JbWFnZTtcblxuICBjb25zdHJ1Y3RvcihpZDogbnVtYmVyLCBtb2RhbDogTW9kYWxJbWFnZSwgcGxhaW4/OiBQbGFpbkltYWdlLCBsb2FkaW5nOiAnZWFnZXInIHwgJ2xhenknID0gJ2xhenknLCBmZXRjaHByaW9yaXR5OiAnaGlnaCcgfCAnbG93JyB8ICdhdXRvJyA9ICdhdXRvJykge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLm1vZGFsID0gbW9kYWw7XG4gICAgdGhpcy5wbGFpbiA9IHBsYWluO1xuICAgIHRoaXMubG9hZGluZyA9IGxvYWRpbmc7XG4gICAgdGhpcy5mZXRjaHByaW9yaXR5ID0gZmV0Y2hwcmlvcml0eVxuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGBJbWFnZURhdGFgIHRvIGNvbmZpZ3VyZSBhbiBpbWFnZSwgYnV0IGl0IGlzbid0IHVzZWQgZGlyZWN0bHkuXG4gKiBQbGVhc2UsIHJlZmVycyB0byBgUGxhaW5JbWFnZWAgb3IgYE1vZGFsSW1hZ2VgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlRGF0YSB7XG4gIGltZzogc3RyaW5nIHwgU2FmZVJlc291cmNlVXJsO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGFsdD86IHN0cmluZztcbiAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICBmYWxsYmFja0ltZz86IHN0cmluZyB8IFNhZmVSZXNvdXJjZVVybDtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgYE1vZGFsSW1hZ2VgIHRvIGNvbmZpZ3VyZSB0aGUgbW9kYWwgaW1hZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxJbWFnZSBleHRlbmRzIEltYWdlRGF0YSB7XG4gIGV4dFVybD86IHN0cmluZztcbiAgZG93bmxvYWRGaWxlTmFtZT86IHN0cmluZztcbiAgc291cmNlcz86IFNvdXJjZVtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBgUGxhaW5JbWFnZWAgdG8gY29uZmlndXJlIHRoZSBwbGFpbiBpbWFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFpbkltYWdlIGV4dGVuZHMgSW1hZ2VEYXRhIHtcbiAgc2l6ZT86IFNpemU7XG59XG5cbi8qKlxuICogQ2xhc3MgYEltYWdlRXZlbnRgIHRoYXQgcmVwcmVzZW50cyB0aGUgZXZlbnQgcGF5bG9hZCB3aXRoIHRoZSByZXN1bHQgYW5kIHRoZSB0cmlnZ2VyZWQgYWN0aW9uLlxuICogSXQgYWxzbyBjb250YWlucyB0aGUgc291cmNlIGlkIG9mIHRoZSBnYWxsZXJ5IHRoYXQgZW1pdHRlZCB0aGlzIGV2ZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBJbWFnZUV2ZW50IHtcbiAgZ2FsbGVyeUlkOiBudW1iZXI7XG4gIGFjdGlvbjogQWN0aW9uO1xuICByZXN1bHQ6IG51bWJlciB8IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZ2FsbGVyeUlkOiBudW1iZXIsIGFjdGlvbjogQWN0aW9uLCByZXN1bHQ6IG51bWJlciB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLmdhbGxlcnlJZCA9IGdhbGxlcnlJZDtcbiAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICB0aGlzLnJlc3VsdCA9IHJlc3VsdDtcbiAgfVxufVxuXG4vKipcbiAqIENsYXNzIGBJbWFnZU1vZGFsRXZlbnRgIHRoYXQgcmVwcmVzZW50cyB0aGUgZXZlbnQgcGF5bG9hZCB3aXRoIGdhbGxlcnlJZCwgcmVzdWx0IGFuZCB0aGUgdHJpZ2dlcmVkIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEltYWdlTW9kYWxFdmVudCBleHRlbmRzIEltYWdlRXZlbnQge1xuICBjb25zdHJ1Y3RvcihnYWxsZXJ5SWQ6IG51bWJlciwgYWN0aW9uOiBBY3Rpb24sIHJlc3VsdDogbnVtYmVyIHwgYm9vbGVhbikge1xuICAgIHN1cGVyKGdhbGxlcnlJZCwgYWN0aW9uLCByZXN1bHQpO1xuICB9XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGBTb3VyY2VgIHRvIGNvbmZpZ3VyZSBzb3VyY2VzIG9mIHBpY3R1cmUgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb3VyY2Uge1xuICBzcmNzZXQ6IHN0cmluZztcbiAgbWVkaWE6IHN0cmluZztcbn0iXX0=
|