ngx-image-cropper 9.1.2 → 9.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/component/cropper.state.mjs +11 -2
- package/esm2022/lib/component/image-cropper.component.mjs +7 -7
- package/esm2022/lib/interfaces/crop-input.interface.mjs +2 -0
- package/esm2022/lib/interfaces/cropper-options.interface.mjs +1 -1
- package/esm2022/lib/interfaces/index.mjs +1 -1
- package/esm2022/lib/interfaces/load-image-options.interface.mjs +2 -0
- package/esm2022/lib/services/crop.service.mjs +51 -54
- package/esm2022/lib/services/load-image.service.mjs +27 -27
- package/fesm2022/ngx-image-cropper.mjs +92 -86
- package/fesm2022/ngx-image-cropper.mjs.map +1 -1
- package/lib/component/cropper.state.d.ts +2 -2
- package/lib/interfaces/crop-input.interface.d.ts +23 -0
- package/lib/interfaces/cropper-options.interface.d.ts +1 -1
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/load-image-options.interface.d.ts +8 -0
- package/lib/services/crop.service.d.ts +12 -6
- package/lib/services/load-image.service.d.ts +5 -6
- package/package.json +1 -1
|
@@ -24,7 +24,7 @@ export class CropperState {
|
|
|
24
24
|
roundCropper: false,
|
|
25
25
|
onlyScaleDown: false,
|
|
26
26
|
imageQuality: 92,
|
|
27
|
-
backgroundColor:
|
|
27
|
+
backgroundColor: undefined,
|
|
28
28
|
containWithinAspectRatio: false,
|
|
29
29
|
hideResizeSquares: false,
|
|
30
30
|
alignImage: 'center',
|
|
@@ -185,5 +185,14 @@ export class CropperState {
|
|
|
185
185
|
y2: this.maxSize().height
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
+
toCropInput() {
|
|
189
|
+
return {
|
|
190
|
+
cropper: this.cropper(),
|
|
191
|
+
maxSize: this.maxSize(),
|
|
192
|
+
transform: this.transform,
|
|
193
|
+
loadedImage: this.loadedImage,
|
|
194
|
+
options: { ...this.options }
|
|
195
|
+
};
|
|
196
|
+
}
|
|
188
197
|
}
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcHBlci5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbWFnZS1jcm9wcGVyL3NyYy9saWIvY29tcG9uZW50L2Nyb3BwZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdkUsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFFVyxZQUFPLEdBQUcsTUFBTSxDQUFrQixFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBR3pFLFlBQU8sR0FBRyxNQUFNLENBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELGNBQVMsR0FBbUIsRUFBRSxDQUFDO1FBQy9CLFlBQU8sR0FBbUI7WUFDeEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixXQUFXLEVBQUUsQ0FBQztZQUNkLDRCQUE0QixFQUFFLElBQUk7WUFDbEMsYUFBYSxFQUFFLENBQUM7WUFDaEIsY0FBYyxFQUFFLENBQUM7WUFDakIsZUFBZSxFQUFFLENBQUM7WUFDbEIsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLGtCQUFrQixFQUFFLENBQUM7WUFDckIsbUJBQW1CLEVBQUUsQ0FBQztZQUN0QixjQUFjLEVBQUUsQ0FBQztZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixhQUFhLEVBQUUsS0FBSztZQUNwQixZ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O2dCQUM5QixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLO2dCQUN4RCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLO2dCQUN4RCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNO2dCQUMxRCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNO2FBQzNELENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTztZQUNMLEVBQUUsRUFBRSxDQUFDO1lBQ0wsRUFBRSxFQUFFLENBQUM7WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUs7WUFDeEIsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNO1NBQzFCLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcm9wcGVyT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY3JvcHBlci1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDcm9wcGVyUG9zaXRpb24sIERpbWVuc2lvbnMsIEltYWdlVHJhbnNmb3JtLCBMb2FkZWRJbWFnZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgc2lnbmFsLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja0Nyb3BwZXJQb3NpdGlvbiB9IGZyb20gJy4uL3V0aWxzL2Nyb3BwZXItcG9zaXRpb24udXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ3JvcHBlclN0YXRlIHtcblxuICByZWFkb25seSBjcm9wcGVyID0gc2lnbmFsPENyb3BwZXJQb3NpdGlvbj4oe3gxOiAwLCB4MjogMCwgeTE6IDAsIHkyOiAwfSk7XG5cbiAgbG9hZGVkSW1hZ2U/OiBMb2FkZWRJbWFnZTtcbiAgbWF4U2l6ZSA9IHNpZ25hbDxEaW1lbnNpb25zPih7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSk7XG4gIHRyYW5zZm9ybTogSW1hZ2VUcmFuc2Zvcm0gPSB7fTtcbiAgb3B0aW9uczogQ3JvcHBlck9wdGlvbnMgPSB7XG4gICAgZm9ybWF0OiAncG5nJyxcbiAgICBvdXRwdXQ6ICdibG9iJyxcbiAgICBhdXRvQ3JvcDogdHJ1ZSxcbiAgICBtYWludGFpbkFzcGVjdFJhdGlvOiB0cnVlLFxuICAgIGFzcGVjdFJhdGlvOiAxLFxuICAgIHJlc2V0Q3JvcE9uQXNwZWN0UmF0aW9DaGFuZ2U6IHRydWUsXG4gICAgcmVzaXplVG9XaWR0aDogMCxcbiAgICByZXNpemVUb0hlaWdodDogMCxcbiAgICBjcm9wcGVyTWluV2lkdGg6IDAsXG4gICAgY3JvcHBlck1pbkhlaWdodDogMCxcbiAgICBjcm9wcGVyTWF4SGVpZ2h0OiAwLFxuICAgIGNyb3BwZXJNYXhXaWR0aDogMCxcbiAgICBjcm9wcGVyU3RhdGljV2lkdGg6IDAsXG4gICAgY3JvcHBlclN0YXRpY0hlaWdodDogMCxcbiAgICBjYW52YXNSb3RhdGlvbjogMCxcbiAgICByb3VuZENyb3BwZXI6IGZhbHNlLFxuICAgIG9ubHlTY2FsZURvd246IGZhbHNlLFxuICAgIGltYWdlUXVhbGl0eTogOTIsXG4gICAgYmFja2dyb3VuZENvbG9yOiBudWxsLFxuICAgIGNvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgaGlkZVJlc2l6ZVNxdWFyZXM6IGZhbHNlLFxuICAgIGFsaWduSW1hZ2U6ICdjZW50ZXInLFxuICAgIGNyb3BwZXJGcmFtZUFyaWFMYWJlbDogdW5kZWZpbmVkLFxuICAgIGNoZWNrSW1hZ2VUeXBlOiB0cnVlXG4gIH07XG5cbiAgLy8gSW50ZXJuYWxcbiAgY3JvcHBlclNjYWxlZE1pbldpZHRoID0gMjA7XG4gIGNyb3BwZXJTY2FsZWRNaW5IZWlnaHQgPSAyMDtcbiAgY3JvcHBlclNjYWxlZE1heFdpZHRoID0gMjA7XG4gIGNyb3BwZXJTY2FsZWRNYXhIZWlnaHQgPSAyMDtcbiAgc3RlcFNpemUgPSAzO1xuXG4gIHNldE9wdGlvbnNGcm9tQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNldE9wdGlvbnMoY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuZW50cmllcyhjaGFuZ2VzKVxuICAgICAgLmZpbHRlcigoW2tleV0pID0+IGtleSBpbiB0aGlzLm9wdGlvbnMpXG4gICAgICAucmVkdWNlKChhY2MsIFtrZXksIGNoYW5nZV0pID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2tleV06IGNoYW5nZS5jdXJyZW50VmFsdWVcbiAgICAgIH0pLCB7fSBhcyBQYXJ0aWFsPENyb3BwZXJPcHRpb25zPik7XG4gICAgaWYgKE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnM6IFBhcnRpYWw8Q3JvcHBlck9wdGlvbnM+KTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4uKG9wdGlvbnMgfHwge30pXG4gICAgfTtcbiAgICB0aGlzLnZhbGlkYXRlT3B0aW9ucygpO1xuXG4gICAgaWYgKCF0aGlzLmxvYWRlZEltYWdlPy50cmFuc2Zvcm1lZC5pbWFnZS5jb21wbGV0ZSB8fCAhdGhpcy5tYXhTaXplKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uUG9zc2libHlDaGFuZ2VkID0gZmFsc2U7XG4gICAgaWYgKCh0aGlzLm9wdGlvbnMubWFpbnRhaW5Bc3BlY3RSYXRpbyAmJiBvcHRpb25zWydhc3BlY3RSYXRpbyddKSB8fCAnbWFpbnRhaW5Bc3BlY3RSYXRpbycgaW4gb3B0aW9ucykge1xuICAgICAgdGhpcy5zZXRDcm9wcGVyU2NhbGVkTWluU2l6ZSgpO1xuICAgICAgdGhpcy5zZXRDcm9wcGVyU2NhbGVkTWF4U2l6ZSgpO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5tYWludGFpbkFzcGVjdFJhdGlvICYmICh0aGlzLm9wdGlvbnMucmVzZXRDcm9wT25Bc3BlY3RSYXRpb0NoYW5nZSB8fCAhdGhpcy5hc3BlY3RSYXRpb0lzQ29ycmVjdCgpKSkge1xuICAgICAgICB0aGlzLmNyb3BwZXIuc2V0KHRoaXMubWF4U2l6ZUNyb3BwZXJQb3NpdGlvbigpKTtcbiAgICAgICAgcG9zaXRpb25Qb3NzaWJseUNoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9uc1snY3JvcHBlck1pbldpZHRoJ10gfHwgb3B0aW9uc1snY3JvcHBlck1pbkhlaWdodCddKSB7XG4gICAgICAgIHRoaXMuc2V0Q3JvcHBlclNjYWxlZE1pblNpemUoKTtcbiAgICAgICAgcG9zaXRpb25Qb3NzaWJseUNoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnNbJ2Nyb3BwZXJNYXhXaWR0aCddIHx8IG9wdGlvbnNbJ2Nyb3BwZXJNYXhIZWlnaHQnXSkge1xuICAgICAgICB0aGlzLnNldENyb3BwZXJTY2FsZWRNYXhTaXplKCk7XG4gICAgICAgIHBvc2l0aW9uUG9zc2libHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zWydjcm9wcGVyU3RhdGljV2lkdGgnXSB8fCBvcHRpb25zWydjcm9wcGVyU3RhdGljSGVpZ2h0J10pIHtcbiAgICAgICAgcG9zaXRpb25Qb3NzaWJseUNoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwb3NpdGlvblBvc3NpYmx5Q2hhbmdlZCkge1xuICAgICAgdGhpcy5jcm9wcGVyLnVwZGF0ZSgoY3JvcHBlcikgPT4gY2hlY2tDcm9wcGVyUG9zaXRpb24oY3JvcHBlciwgdGhpcywgZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLm1haW50YWluQXNwZWN0UmF0aW8gJiYgIXRoaXMub3B0aW9ucy5hc3BlY3RSYXRpbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgYXNwZWN0UmF0aW9gIHNob3VsZCA+IDAgd2hlbiBgbWFpbnRhaW5Bc3BlY3RSYXRpb2AgaXMgZW5hYmxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIHNldE1heFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1heFNpemUuc2V0KHsgd2lkdGgsIGhlaWdodCB9KTtcbiAgICB0aGlzLnNldENyb3BwZXJTY2FsZWRNaW5TaXplKCk7XG4gICAgdGhpcy5zZXRDcm9wcGVyU2NhbGVkTWF4U2l6ZSgpO1xuICB9XG5cbiAgc2V0Q3JvcHBlclNjYWxlZE1pblNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGVkSW1hZ2U/LnRyYW5zZm9ybWVkLnNpemUpIHtcbiAgICAgIHRoaXMuc2V0Q3JvcHBlclNjYWxlZE1pbldpZHRoKCk7XG4gICAgICB0aGlzLnNldENyb3BwZXJTY2FsZWRNaW5IZWlnaHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWluV2lkdGggPSAyMDtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1pbkhlaWdodCA9IDIwO1xuICAgIH1cbiAgfVxuXG4gIHNldENyb3BwZXJTY2FsZWRNaW5XaWR0aCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyb3BwZXJTY2FsZWRNaW5XaWR0aCA9IHRoaXMub3B0aW9ucy5jcm9wcGVyTWluV2lkdGggPiAwXG4gICAgICA/IE1hdGgubWF4KDIwLCB0aGlzLm9wdGlvbnMuY3JvcHBlck1pbldpZHRoIC8gdGhpcy5sb2FkZWRJbWFnZSEudHJhbnNmb3JtZWQuc2l6ZS53aWR0aCAqIHRoaXMubWF4U2l6ZSgpLndpZHRoKVxuICAgICAgOiAyMDtcbiAgfVxuXG4gIHNldENyb3BwZXJTY2FsZWRNaW5IZWlnaHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5tYWludGFpbkFzcGVjdFJhdGlvKSB7XG4gICAgICB0aGlzLmNyb3BwZXJTY2FsZWRNaW5IZWlnaHQgPSBNYXRoLm1heCgyMCwgdGhpcy5jcm9wcGVyU2NhbGVkTWluV2lkdGggLyB0aGlzLm9wdGlvbnMuYXNwZWN0UmF0aW8pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmNyb3BwZXJNaW5IZWlnaHQgPiAwKSB7XG4gICAgICB0aGlzLmNyb3BwZXJTY2FsZWRNaW5IZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgMjAsXG4gICAgICAgIHRoaXMub3B0aW9ucy5jcm9wcGVyTWluSGVpZ2h0IC8gdGhpcy5sb2FkZWRJbWFnZSEudHJhbnNmb3JtZWQuc2l6ZS5oZWlnaHQgKiB0aGlzLm1heFNpemUoKS5oZWlnaHRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1pbkhlaWdodCA9IDIwO1xuICAgIH1cbiAgfVxuXG4gIHNldENyb3BwZXJTY2FsZWRNYXhTaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRlZEltYWdlPy50cmFuc2Zvcm1lZC5zaXplKSB7XG4gICAgICBjb25zdCByYXRpbyA9IHRoaXMubG9hZGVkSW1hZ2UudHJhbnNmb3JtZWQuc2l6ZS53aWR0aCAvIHRoaXMubWF4U2l6ZSgpLndpZHRoO1xuICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWF4V2lkdGggPSB0aGlzLm9wdGlvbnMuY3JvcHBlck1heFdpZHRoID4gMjAgPyB0aGlzLm9wdGlvbnMuY3JvcHBlck1heFdpZHRoIC8gcmF0aW8gOiB0aGlzLm1heFNpemUoKS53aWR0aDtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1heEhlaWdodCA9IHRoaXMub3B0aW9ucy5jcm9wcGVyTWF4SGVpZ2h0ID4gMjAgPyB0aGlzLm9wdGlvbnMuY3JvcHBlck1heEhlaWdodCAvIHJhdGlvIDogdGhpcy5tYXhTaXplKCkuaGVpZ2h0O1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5tYWludGFpbkFzcGVjdFJhdGlvKSB7XG4gICAgICAgIGlmICh0aGlzLmNyb3BwZXJTY2FsZWRNYXhXaWR0aCA+IHRoaXMuY3JvcHBlclNjYWxlZE1heEhlaWdodCAqIHRoaXMub3B0aW9ucy5hc3BlY3RSYXRpbykge1xuICAgICAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1heFdpZHRoID0gdGhpcy5jcm9wcGVyU2NhbGVkTWF4SGVpZ2h0ICogdGhpcy5vcHRpb25zLmFzcGVjdFJhdGlvO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcHBlclNjYWxlZE1heFdpZHRoIDwgdGhpcy5jcm9wcGVyU2NhbGVkTWF4SGVpZ2h0ICogdGhpcy5vcHRpb25zLmFzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWF4SGVpZ2h0ID0gdGhpcy5jcm9wcGVyU2NhbGVkTWF4V2lkdGggLyB0aGlzLm9wdGlvbnMuYXNwZWN0UmF0aW87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWF4V2lkdGggPSB0aGlzLm1heFNpemUoKS53aWR0aDtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1heEhlaWdodCA9IHRoaXMubWF4U2l6ZSgpLmhlaWdodDtcbiAgICB9XG4gIH1cblxuICBlcXVhbHNDcm9wcGVyUG9zaXRpb24oY3JvcHBlcj86IENyb3BwZXJQb3NpdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxvY2FsQ3JvcHBlciA9IHRoaXMuY3JvcHBlcigpO1xuICAgIHJldHVybiBsb2NhbENyb3BwZXIgPT0gbnVsbCAmJiBjcm9wcGVyID09IG51bGxcbiAgICAgIHx8IGxvY2FsQ3JvcHBlciAhPSBudWxsICYmIGNyb3BwZXIgIT0gbnVsbFxuICAgICAgJiYgbG9jYWxDcm9wcGVyLngxLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueDEudG9GaXhlZCgzKVxuICAgICAgJiYgbG9jYWxDcm9wcGVyLnkxLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueTEudG9GaXhlZCgzKVxuICAgICAgJiYgbG9jYWxDcm9wcGVyLngyLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueDIudG9GaXhlZCgzKVxuICAgICAgJiYgbG9jYWxDcm9wcGVyLnkyLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueTIudG9GaXhlZCgzKTtcbiAgfVxuXG4gIGVxdWFsc1RyYW5zZm9ybVRyYW5zbGF0ZSh0cmFuc2Zvcm06IEltYWdlVHJhbnNmb3JtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnRyYW5zZm9ybS50cmFuc2xhdGVIID8/IDApID09PSAodHJhbnNmb3JtLnRyYW5zbGF0ZUggPz8gMClcbiAgICAgICYmICh0aGlzLnRyYW5zZm9ybS50cmFuc2xhdGVWID8/IDApID09PSAodHJhbnNmb3JtLnRyYW5zbGF0ZVYgPz8gMCk7XG4gIH1cblxuICBlcXVhbHNUcmFuc2Zvcm0odHJhbnNmb3JtOiBJbWFnZVRyYW5zZm9ybSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVxdWFsc1RyYW5zZm9ybVRyYW5zbGF0ZSh0cmFuc2Zvcm0pXG4gICAgICAmJiAodGhpcy50cmFuc2Zvcm0uc2NhbGUgPz8gMSkgPT09ICh0cmFuc2Zvcm0uc2NhbGUgPz8gMSlcbiAgICAgICYmICh0aGlzLnRyYW5zZm9ybS5yb3RhdGUgPz8gMCkgPT09ICh0cmFuc2Zvcm0ucm90YXRlID8/IDApXG4gICAgICAmJiAodGhpcy50cmFuc2Zvcm0uZmxpcEggPz8gZmFsc2UpID09PSAodHJhbnNmb3JtLmZsaXBIID8/IGZhbHNlKVxuICAgICAgJiYgKHRoaXMudHJhbnNmb3JtLmZsaXBWID8/IGZhbHNlKSA9PT0gKHRyYW5zZm9ybS5mbGlwViA/PyBmYWxzZSk7XG4gIH1cblxuICBhc3BlY3RSYXRpb0lzQ29ycmVjdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsb2NhbENyb3BwZXIgPSB0aGlzLmNyb3BwZXIoKTtcbiAgICBjb25zdCBjdXJyZW50Q3JvcEFzcGVjdFJhdGlvID0gKGxvY2FsQ3JvcHBlci54MiAtIGxvY2FsQ3JvcHBlci54MSkgLyAobG9jYWxDcm9wcGVyLnkyIC0gbG9jYWxDcm9wcGVyLnkxKTtcbiAgICByZXR1cm4gY3VycmVudENyb3BBc3BlY3RSYXRpbyA9PT0gdGhpcy5vcHRpb25zLmFzcGVjdFJhdGlvO1xuICB9XG5cbiAgcmVzaXplQ3JvcHBlclBvc2l0aW9uKG9sZE1heFNpemU6IERpbWVuc2lvbnMpOiB2b2lkIHtcbiAgICBpZiAob2xkTWF4U2l6ZS53aWR0aCAhPT0gdGhpcy5tYXhTaXplKCkud2lkdGggfHwgb2xkTWF4U2l6ZS5oZWlnaHQgIT09IHRoaXMubWF4U2l6ZSgpLmhlaWdodCkge1xuICAgICAgdGhpcy5jcm9wcGVyLnVwZGF0ZShjcm9wcGVyID0+ICh7XG4gICAgICAgIHgxOiBjcm9wcGVyLngxICogdGhpcy5tYXhTaXplKCkud2lkdGggLyBvbGRNYXhTaXplLndpZHRoLFxuICAgICAgICB4MjogY3JvcHBlci54MiAqIHRoaXMubWF4U2l6ZSgpLndpZHRoIC8gb2xkTWF4U2l6ZS53aWR0aCxcbiAgICAgICAgeTE6IGNyb3BwZXIueTEgKiB0aGlzLm1heFNpemUoKS5oZWlnaHQgLyBvbGRNYXhTaXplLmhlaWdodCxcbiAgICAgICAgeTI6IGNyb3BwZXIueTIgKiB0aGlzLm1heFNpemUoKS5oZWlnaHQgLyBvbGRNYXhTaXplLmhlaWdodFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIG1heFNpemVDcm9wcGVyUG9zaXRpb24oKTogQ3JvcHBlclBvc2l0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDE6IDAsXG4gICAgICB5MTogMCxcbiAgICAgIHgyOiB0aGlzLm1heFNpemUoKS53aWR0aCxcbiAgICAgIHkyOiB0aGlzLm1heFNpemUoKS5oZWlnaHRcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcHBlci5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbWFnZS1jcm9wcGVyL3NyYy9saWIvY29tcG9uZW50L2Nyb3BwZXIuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdkUsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFFVyxZQUFPLEdBQUcsTUFBTSxDQUFrQixFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBR3pFLFlBQU8sR0FBRyxNQUFNLENBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELGNBQVMsR0FBbUIsRUFBRSxDQUFDO1FBQy9CLFlBQU8sR0FBbUI7WUFDeEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixXQUFXLEVBQUUsQ0FBQztZQUNkLDRCQUE0QixFQUFFLElBQUk7WUFDbEMsYUFBYSxFQUFFLENBQUM7WUFDaEIsY0FBYyxFQUFFLENBQUM7WUFDakIsZUFBZSxFQUFFLENBQUM7WUFDbEIsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQixnQkFBZ0IsRUFBRSxDQUFDO1lBQ25CLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLGtCQUFrQixFQUFFLENBQUM7WUFDckIsbUJBQW1CLEVBQUUsQ0FBQztZQUN0QixjQUFjLEVBQUUsQ0FBQztZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixhQUFhLEVBQUUsS0FBSztZQUNwQixZ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O2dCQUM5QixFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLO2dCQUN4RCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLO2dCQUN4RCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNO2dCQUMxRCxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNO2FBQzNELENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTztZQUNMLEVBQUUsRUFBRSxDQUFDO1lBQ0wsRUFBRSxFQUFFLENBQUM7WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUs7WUFDeEIsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFZO1lBQzlCLE9BQU8sRUFBRSxFQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQztTQUMzQixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JvcElucHV0LCBDcm9wcGVyT3B0aW9ucywgQ3JvcHBlclBvc2l0aW9uLCBEaW1lbnNpb25zLCBJbWFnZVRyYW5zZm9ybSwgTG9hZGVkSW1hZ2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHNpZ25hbCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2hlY2tDcm9wcGVyUG9zaXRpb24gfSBmcm9tICcuLi91dGlscy9jcm9wcGVyLXBvc2l0aW9uLnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIENyb3BwZXJTdGF0ZSB7XG5cbiAgcmVhZG9ubHkgY3JvcHBlciA9IHNpZ25hbDxDcm9wcGVyUG9zaXRpb24+KHt4MTogMCwgeDI6IDAsIHkxOiAwLCB5MjogMH0pO1xuXG4gIGxvYWRlZEltYWdlPzogTG9hZGVkSW1hZ2U7XG4gIG1heFNpemUgPSBzaWduYWw8RGltZW5zaW9ucz4oeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pO1xuICB0cmFuc2Zvcm06IEltYWdlVHJhbnNmb3JtID0ge307XG4gIG9wdGlvbnM6IENyb3BwZXJPcHRpb25zID0ge1xuICAgIGZvcm1hdDogJ3BuZycsXG4gICAgb3V0cHV0OiAnYmxvYicsXG4gICAgYXV0b0Nyb3A6IHRydWUsXG4gICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcbiAgICBhc3BlY3RSYXRpbzogMSxcbiAgICByZXNldENyb3BPbkFzcGVjdFJhdGlvQ2hhbmdlOiB0cnVlLFxuICAgIHJlc2l6ZVRvV2lkdGg6IDAsXG4gICAgcmVzaXplVG9IZWlnaHQ6IDAsXG4gICAgY3JvcHBlck1pbldpZHRoOiAwLFxuICAgIGNyb3BwZXJNaW5IZWlnaHQ6IDAsXG4gICAgY3JvcHBlck1heEhlaWdodDogMCxcbiAgICBjcm9wcGVyTWF4V2lkdGg6IDAsXG4gICAgY3JvcHBlclN0YXRpY1dpZHRoOiAwLFxuICAgIGNyb3BwZXJTdGF0aWNIZWlnaHQ6IDAsXG4gICAgY2FudmFzUm90YXRpb246IDAsXG4gICAgcm91bmRDcm9wcGVyOiBmYWxzZSxcbiAgICBvbmx5U2NhbGVEb3duOiBmYWxzZSxcbiAgICBpbWFnZVF1YWxpdHk6IDkyLFxuICAgIGJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICAgIGNvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgaGlkZVJlc2l6ZVNxdWFyZXM6IGZhbHNlLFxuICAgIGFsaWduSW1hZ2U6ICdjZW50ZXInLFxuICAgIGNyb3BwZXJGcmFtZUFyaWFMYWJlbDogdW5kZWZpbmVkLFxuICAgIGNoZWNrSW1hZ2VUeXBlOiB0cnVlXG4gIH07XG5cbiAgLy8gSW50ZXJuYWxcbiAgY3JvcHBlclNjYWxlZE1pbldpZHRoID0gMjA7XG4gIGNyb3BwZXJTY2FsZWRNaW5IZWlnaHQgPSAyMDtcbiAgY3JvcHBlclNjYWxlZE1heFdpZHRoID0gMjA7XG4gIGNyb3BwZXJTY2FsZWRNYXhIZWlnaHQgPSAyMDtcbiAgc3RlcFNpemUgPSAzO1xuXG4gIHNldE9wdGlvbnNGcm9tQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNldE9wdGlvbnMoY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuZW50cmllcyhjaGFuZ2VzKVxuICAgICAgLmZpbHRlcigoW2tleV0pID0+IGtleSBpbiB0aGlzLm9wdGlvbnMpXG4gICAgICAucmVkdWNlKChhY2MsIFtrZXksIGNoYW5nZV0pID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2tleV06IGNoYW5nZS5jdXJyZW50VmFsdWVcbiAgICAgIH0pLCB7fSBhcyBQYXJ0aWFsPENyb3BwZXJPcHRpb25zPik7XG4gICAgaWYgKE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnM6IFBhcnRpYWw8Q3JvcHBlck9wdGlvbnM+KTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4uKG9wdGlvbnMgfHwge30pXG4gICAgfTtcbiAgICB0aGlzLnZhbGlkYXRlT3B0aW9ucygpO1xuXG4gICAgaWYgKCF0aGlzLmxvYWRlZEltYWdlPy50cmFuc2Zvcm1lZC5pbWFnZS5jb21wbGV0ZSB8fCAhdGhpcy5tYXhTaXplKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uUG9zc2libHlDaGFuZ2VkID0gZmFsc2U7XG4gICAgaWYgKCh0aGlzLm9wdGlvbnMubWFpbnRhaW5Bc3BlY3RSYXRpbyAmJiBvcHRpb25zWydhc3BlY3RSYXRpbyddKSB8fCAnbWFpbnRhaW5Bc3BlY3RSYXRpbycgaW4gb3B0aW9ucykge1xuICAgICAgdGhpcy5zZXRDcm9wcGVyU2NhbGVkTWluU2l6ZSgpO1xuICAgICAgdGhpcy5zZXRDcm9wcGVyU2NhbGVkTWF4U2l6ZSgpO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5tYWludGFpbkFzcGVjdFJhdGlvICYmICh0aGlzLm9wdGlvbnMucmVzZXRDcm9wT25Bc3BlY3RSYXRpb0NoYW5nZSB8fCAhdGhpcy5hc3BlY3RSYXRpb0lzQ29ycmVjdCgpKSkge1xuICAgICAgICB0aGlzLmNyb3BwZXIuc2V0KHRoaXMubWF4U2l6ZUNyb3BwZXJQb3NpdGlvbigpKTtcbiAgICAgICAgcG9zaXRpb25Qb3NzaWJseUNoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9uc1snY3JvcHBlck1pbldpZHRoJ10gfHwgb3B0aW9uc1snY3JvcHBlck1pbkhlaWdodCddKSB7XG4gICAgICAgIHRoaXMuc2V0Q3JvcHBlclNjYWxlZE1pblNpemUoKTtcbiAgICAgICAgcG9zaXRpb25Qb3NzaWJseUNoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnNbJ2Nyb3BwZXJNYXhXaWR0aCddIHx8IG9wdGlvbnNbJ2Nyb3BwZXJNYXhIZWlnaHQnXSkge1xuICAgICAgICB0aGlzLnNldENyb3BwZXJTY2FsZWRNYXhTaXplKCk7XG4gICAgICAgIHBvc2l0aW9uUG9zc2libHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zWydjcm9wcGVyU3RhdGljV2lkdGgnXSB8fCBvcHRpb25zWydjcm9wcGVyU3RhdGljSGVpZ2h0J10pIHtcbiAgICAgICAgcG9zaXRpb25Qb3NzaWJseUNoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwb3NpdGlvblBvc3NpYmx5Q2hhbmdlZCkge1xuICAgICAgdGhpcy5jcm9wcGVyLnVwZGF0ZSgoY3JvcHBlcikgPT4gY2hlY2tDcm9wcGVyUG9zaXRpb24oY3JvcHBlciwgdGhpcywgZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLm1haW50YWluQXNwZWN0UmF0aW8gJiYgIXRoaXMub3B0aW9ucy5hc3BlY3RSYXRpbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgYXNwZWN0UmF0aW9gIHNob3VsZCA+IDAgd2hlbiBgbWFpbnRhaW5Bc3BlY3RSYXRpb2AgaXMgZW5hYmxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIHNldE1heFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1heFNpemUuc2V0KHsgd2lkdGgsIGhlaWdodCB9KTtcbiAgICB0aGlzLnNldENyb3BwZXJTY2FsZWRNaW5TaXplKCk7XG4gICAgdGhpcy5zZXRDcm9wcGVyU2NhbGVkTWF4U2l6ZSgpO1xuICB9XG5cbiAgc2V0Q3JvcHBlclNjYWxlZE1pblNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGVkSW1hZ2U/LnRyYW5zZm9ybWVkLnNpemUpIHtcbiAgICAgIHRoaXMuc2V0Q3JvcHBlclNjYWxlZE1pbldpZHRoKCk7XG4gICAgICB0aGlzLnNldENyb3BwZXJTY2FsZWRNaW5IZWlnaHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWluV2lkdGggPSAyMDtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1pbkhlaWdodCA9IDIwO1xuICAgIH1cbiAgfVxuXG4gIHNldENyb3BwZXJTY2FsZWRNaW5XaWR0aCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyb3BwZXJTY2FsZWRNaW5XaWR0aCA9IHRoaXMub3B0aW9ucy5jcm9wcGVyTWluV2lkdGggPiAwXG4gICAgICA/IE1hdGgubWF4KDIwLCB0aGlzLm9wdGlvbnMuY3JvcHBlck1pbldpZHRoIC8gdGhpcy5sb2FkZWRJbWFnZSEudHJhbnNmb3JtZWQuc2l6ZS53aWR0aCAqIHRoaXMubWF4U2l6ZSgpLndpZHRoKVxuICAgICAgOiAyMDtcbiAgfVxuXG4gIHNldENyb3BwZXJTY2FsZWRNaW5IZWlnaHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5tYWludGFpbkFzcGVjdFJhdGlvKSB7XG4gICAgICB0aGlzLmNyb3BwZXJTY2FsZWRNaW5IZWlnaHQgPSBNYXRoLm1heCgyMCwgdGhpcy5jcm9wcGVyU2NhbGVkTWluV2lkdGggLyB0aGlzLm9wdGlvbnMuYXNwZWN0UmF0aW8pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmNyb3BwZXJNaW5IZWlnaHQgPiAwKSB7XG4gICAgICB0aGlzLmNyb3BwZXJTY2FsZWRNaW5IZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgMjAsXG4gICAgICAgIHRoaXMub3B0aW9ucy5jcm9wcGVyTWluSGVpZ2h0IC8gdGhpcy5sb2FkZWRJbWFnZSEudHJhbnNmb3JtZWQuc2l6ZS5oZWlnaHQgKiB0aGlzLm1heFNpemUoKS5oZWlnaHRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1pbkhlaWdodCA9IDIwO1xuICAgIH1cbiAgfVxuXG4gIHNldENyb3BwZXJTY2FsZWRNYXhTaXplKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRlZEltYWdlPy50cmFuc2Zvcm1lZC5zaXplKSB7XG4gICAgICBjb25zdCByYXRpbyA9IHRoaXMubG9hZGVkSW1hZ2UudHJhbnNmb3JtZWQuc2l6ZS53aWR0aCAvIHRoaXMubWF4U2l6ZSgpLndpZHRoO1xuICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWF4V2lkdGggPSB0aGlzLm9wdGlvbnMuY3JvcHBlck1heFdpZHRoID4gMjAgPyB0aGlzLm9wdGlvbnMuY3JvcHBlck1heFdpZHRoIC8gcmF0aW8gOiB0aGlzLm1heFNpemUoKS53aWR0aDtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1heEhlaWdodCA9IHRoaXMub3B0aW9ucy5jcm9wcGVyTWF4SGVpZ2h0ID4gMjAgPyB0aGlzLm9wdGlvbnMuY3JvcHBlck1heEhlaWdodCAvIHJhdGlvIDogdGhpcy5tYXhTaXplKCkuaGVpZ2h0O1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5tYWludGFpbkFzcGVjdFJhdGlvKSB7XG4gICAgICAgIGlmICh0aGlzLmNyb3BwZXJTY2FsZWRNYXhXaWR0aCA+IHRoaXMuY3JvcHBlclNjYWxlZE1heEhlaWdodCAqIHRoaXMub3B0aW9ucy5hc3BlY3RSYXRpbykge1xuICAgICAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1heFdpZHRoID0gdGhpcy5jcm9wcGVyU2NhbGVkTWF4SGVpZ2h0ICogdGhpcy5vcHRpb25zLmFzcGVjdFJhdGlvO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcHBlclNjYWxlZE1heFdpZHRoIDwgdGhpcy5jcm9wcGVyU2NhbGVkTWF4SGVpZ2h0ICogdGhpcy5vcHRpb25zLmFzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWF4SGVpZ2h0ID0gdGhpcy5jcm9wcGVyU2NhbGVkTWF4V2lkdGggLyB0aGlzLm9wdGlvbnMuYXNwZWN0UmF0aW87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcm9wcGVyU2NhbGVkTWF4V2lkdGggPSB0aGlzLm1heFNpemUoKS53aWR0aDtcbiAgICAgIHRoaXMuY3JvcHBlclNjYWxlZE1heEhlaWdodCA9IHRoaXMubWF4U2l6ZSgpLmhlaWdodDtcbiAgICB9XG4gIH1cblxuICBlcXVhbHNDcm9wcGVyUG9zaXRpb24oY3JvcHBlcj86IENyb3BwZXJQb3NpdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxvY2FsQ3JvcHBlciA9IHRoaXMuY3JvcHBlcigpO1xuICAgIHJldHVybiBsb2NhbENyb3BwZXIgPT0gbnVsbCAmJiBjcm9wcGVyID09IG51bGxcbiAgICAgIHx8IGxvY2FsQ3JvcHBlciAhPSBudWxsICYmIGNyb3BwZXIgIT0gbnVsbFxuICAgICAgJiYgbG9jYWxDcm9wcGVyLngxLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueDEudG9GaXhlZCgzKVxuICAgICAgJiYgbG9jYWxDcm9wcGVyLnkxLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueTEudG9GaXhlZCgzKVxuICAgICAgJiYgbG9jYWxDcm9wcGVyLngyLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueDIudG9GaXhlZCgzKVxuICAgICAgJiYgbG9jYWxDcm9wcGVyLnkyLnRvRml4ZWQoMykgPT09IGNyb3BwZXIueTIudG9GaXhlZCgzKTtcbiAgfVxuXG4gIGVxdWFsc1RyYW5zZm9ybVRyYW5zbGF0ZSh0cmFuc2Zvcm06IEltYWdlVHJhbnNmb3JtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnRyYW5zZm9ybS50cmFuc2xhdGVIID8/IDApID09PSAodHJhbnNmb3JtLnRyYW5zbGF0ZUggPz8gMClcbiAgICAgICYmICh0aGlzLnRyYW5zZm9ybS50cmFuc2xhdGVWID8/IDApID09PSAodHJhbnNmb3JtLnRyYW5zbGF0ZVYgPz8gMCk7XG4gIH1cblxuICBlcXVhbHNUcmFuc2Zvcm0odHJhbnNmb3JtOiBJbWFnZVRyYW5zZm9ybSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVxdWFsc1RyYW5zZm9ybVRyYW5zbGF0ZSh0cmFuc2Zvcm0pXG4gICAgICAmJiAodGhpcy50cmFuc2Zvcm0uc2NhbGUgPz8gMSkgPT09ICh0cmFuc2Zvcm0uc2NhbGUgPz8gMSlcbiAgICAgICYmICh0aGlzLnRyYW5zZm9ybS5yb3RhdGUgPz8gMCkgPT09ICh0cmFuc2Zvcm0ucm90YXRlID8/IDApXG4gICAgICAmJiAodGhpcy50cmFuc2Zvcm0uZmxpcEggPz8gZmFsc2UpID09PSAodHJhbnNmb3JtLmZsaXBIID8/IGZhbHNlKVxuICAgICAgJiYgKHRoaXMudHJhbnNmb3JtLmZsaXBWID8/IGZhbHNlKSA9PT0gKHRyYW5zZm9ybS5mbGlwViA/PyBmYWxzZSk7XG4gIH1cblxuICBhc3BlY3RSYXRpb0lzQ29ycmVjdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsb2NhbENyb3BwZXIgPSB0aGlzLmNyb3BwZXIoKTtcbiAgICBjb25zdCBjdXJyZW50Q3JvcEFzcGVjdFJhdGlvID0gKGxvY2FsQ3JvcHBlci54MiAtIGxvY2FsQ3JvcHBlci54MSkgLyAobG9jYWxDcm9wcGVyLnkyIC0gbG9jYWxDcm9wcGVyLnkxKTtcbiAgICByZXR1cm4gY3VycmVudENyb3BBc3BlY3RSYXRpbyA9PT0gdGhpcy5vcHRpb25zLmFzcGVjdFJhdGlvO1xuICB9XG5cbiAgcmVzaXplQ3JvcHBlclBvc2l0aW9uKG9sZE1heFNpemU6IERpbWVuc2lvbnMpOiB2b2lkIHtcbiAgICBpZiAob2xkTWF4U2l6ZS53aWR0aCAhPT0gdGhpcy5tYXhTaXplKCkud2lkdGggfHwgb2xkTWF4U2l6ZS5oZWlnaHQgIT09IHRoaXMubWF4U2l6ZSgpLmhlaWdodCkge1xuICAgICAgdGhpcy5jcm9wcGVyLnVwZGF0ZShjcm9wcGVyID0+ICh7XG4gICAgICAgIHgxOiBjcm9wcGVyLngxICogdGhpcy5tYXhTaXplKCkud2lkdGggLyBvbGRNYXhTaXplLndpZHRoLFxuICAgICAgICB4MjogY3JvcHBlci54MiAqIHRoaXMubWF4U2l6ZSgpLndpZHRoIC8gb2xkTWF4U2l6ZS53aWR0aCxcbiAgICAgICAgeTE6IGNyb3BwZXIueTEgKiB0aGlzLm1heFNpemUoKS5oZWlnaHQgLyBvbGRNYXhTaXplLmhlaWdodCxcbiAgICAgICAgeTI6IGNyb3BwZXIueTIgKiB0aGlzLm1heFNpemUoKS5oZWlnaHQgLyBvbGRNYXhTaXplLmhlaWdodFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIG1heFNpemVDcm9wcGVyUG9zaXRpb24oKTogQ3JvcHBlclBvc2l0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgeDE6IDAsXG4gICAgICB5MTogMCxcbiAgICAgIHgyOiB0aGlzLm1heFNpemUoKS53aWR0aCxcbiAgICAgIHkyOiB0aGlzLm1heFNpemUoKS5oZWlnaHRcbiAgICB9O1xuICB9XG5cbiAgdG9Dcm9wSW5wdXQoKTogQ3JvcElucHV0IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3JvcHBlcjogdGhpcy5jcm9wcGVyKCksXG4gICAgICBtYXhTaXplOiB0aGlzLm1heFNpemUoKSxcbiAgICAgIHRyYW5zZm9ybTogdGhpcy50cmFuc2Zvcm0sXG4gICAgICBsb2FkZWRJbWFnZTogdGhpcy5sb2FkZWRJbWFnZSEsXG4gICAgICBvcHRpb25zOiB7Li4udGhpcy5vcHRpb25zfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -58,7 +58,7 @@ export class ImageCropperComponent {
|
|
|
58
58
|
}
|
|
59
59
|
if ((this.containWithinAspectRatio && changes['aspectRatio']) || changes['containWithinAspectRatio'] || changes['canvasRotation']) {
|
|
60
60
|
this.loadImageService
|
|
61
|
-
.transformLoadedImage(this.state.loadedImage, this.state)
|
|
61
|
+
.transformLoadedImage(this.state.loadedImage, this.state.options)
|
|
62
62
|
.then((res) => this.setLoadedImage(res))
|
|
63
63
|
.catch((err) => this.loadImageError(err));
|
|
64
64
|
return;
|
|
@@ -110,19 +110,19 @@ export class ImageCropperComponent {
|
|
|
110
110
|
}
|
|
111
111
|
loadImageFile(file) {
|
|
112
112
|
this.loadImageService
|
|
113
|
-
.loadImageFile(file, this.state)
|
|
113
|
+
.loadImageFile(file, this.state.options)
|
|
114
114
|
.then((res) => this.setLoadedImage(res))
|
|
115
115
|
.catch((err) => this.loadImageError(err));
|
|
116
116
|
}
|
|
117
117
|
loadBase64Image(imageBase64) {
|
|
118
118
|
this.loadImageService
|
|
119
|
-
.loadBase64Image(imageBase64, this.state)
|
|
119
|
+
.loadBase64Image(imageBase64, this.state.options)
|
|
120
120
|
.then((res) => this.setLoadedImage(res))
|
|
121
121
|
.catch((err) => this.loadImageError(err));
|
|
122
122
|
}
|
|
123
123
|
loadImageFromURL(url) {
|
|
124
124
|
this.loadImageService
|
|
125
|
-
.loadImageFromURL(url, this.state)
|
|
125
|
+
.loadImageFromURL(url, this.state.options)
|
|
126
126
|
.then((res) => this.setLoadedImage(res))
|
|
127
127
|
.catch((err) => this.loadImageError(err));
|
|
128
128
|
}
|
|
@@ -368,7 +368,7 @@ export class ImageCropperComponent {
|
|
|
368
368
|
}
|
|
369
369
|
cropToBlob() {
|
|
370
370
|
return new Promise(async (resolve, reject) => {
|
|
371
|
-
const result = await this.cropService.crop(this.state, 'blob');
|
|
371
|
+
const result = await this.cropService.crop(this.state.toCropInput(), 'blob');
|
|
372
372
|
if (result) {
|
|
373
373
|
this.imageCropped.emit(result);
|
|
374
374
|
resolve(result);
|
|
@@ -379,7 +379,7 @@ export class ImageCropperComponent {
|
|
|
379
379
|
});
|
|
380
380
|
}
|
|
381
381
|
cropToBase64() {
|
|
382
|
-
const result = this.cropService.crop(this.state, 'base64');
|
|
382
|
+
const result = this.cropService.crop(this.state.toCropInput(), 'base64');
|
|
383
383
|
if (result) {
|
|
384
384
|
this.imageCropped.emit(result);
|
|
385
385
|
return result;
|
|
@@ -490,4 +490,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
490
490
|
type: HostListener,
|
|
491
491
|
args: ['window:resize']
|
|
492
492
|
}] } });
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW1hZ2UtY3JvcHBlci9zcmMvbGliL2NvbXBvbmVudC9pbWFnZS1jcm9wcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbWFnZS1jcm9wcGVyL3NyYy9saWIvY29tcG9uZW50L2ltYWdlLWNyb3BwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFZdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLCtCQUErQixFQUMvQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxhQUFhLEVBQ2QsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBVXpDLE1B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d0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQURoQixXQUFXO3VCQUFDLGdCQUFnQjs7c0JBQzVCLEtBQUs7Z0JBRUcsTUFBTTtzQkFEZCxXQUFXO3VCQUFDLHFCQUFxQjs7c0JBQ2pDLEtBQUs7Z0JBV0YsZUFBZTtzQkFEbEIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBeUsvQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlU3R5bGUsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIENyb3BwZXJPcHRpb25zLFxuICBDcm9wcGVyUG9zaXRpb24sXG4gIERpbWVuc2lvbnMsXG4gIEltYWdlQ3JvcHBlZEV2ZW50LFxuICBJbWFnZVRyYW5zZm9ybSxcbiAgTG9hZGVkSW1hZ2UsXG4gIE1vdmVTdGFydFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE91dHB1dEZvcm1hdCwgT3V0cHV0VHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY3JvcHBlci1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDcm9wcGVyU3RhdGUgfSBmcm9tICcuL2Nyb3BwZXIuc3RhdGUnO1xuaW1wb3J0IHsgTW92ZVR5cGVzLCBQb3NpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbW92ZS1zdGFydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3JvcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jcm9wLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZEltYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvYWQtaW1hZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRFdmVudEZvcktleSwgZ2V0SW52ZXJ0ZWRQb3NpdGlvbkZvcktleSwgZ2V0UG9zaXRpb25Gb3JLZXkgfSBmcm9tICcuLi91dGlscy9rZXlib2FyZC51dGlscyc7XG5pbXBvcnQgeyBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCYXNpY0V2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9iYXNpYy1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgY2hlY2tDcm9wcGVyUG9zaXRpb24sXG4gIGNoZWNrQ3JvcHBlcldpdGhpbk1heFNpemVCb3VuZHMsXG4gIGdldENsaWVudFgsXG4gIGdldENsaWVudFksXG4gIG1vdmVDcm9wcGVyLFxuICByZXNpemVDcm9wcGVyXG59IGZyb20gJy4uL3V0aWxzL2Nyb3BwZXItcG9zaXRpb24udXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWFnZS1jcm9wcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWNyb3BwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1jcm9wcGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZl0sXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ3JvcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGluY2hTdGFydCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNyb3BTZXJ2aWNlID0gbmV3IENyb3BTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZEltYWdlU2VydmljZSA9IG5ldyBMb2FkSW1hZ2VTZXJ2aWNlKCk7XG5cbiAgcHJpdmF0ZSBzZXRJbWFnZU1heFNpemVSZXRyaWVzID0gMDtcbiAgcHJpdmF0ZSBtb3ZlU3RhcnQ/OiBNb3ZlU3RhcnQ7XG4gIHByaXZhdGUgcmVzaXplZFdoaWxlSGlkZGVuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1vdmVUeXBlcyA9IE1vdmVUeXBlcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YXRlID0gbmV3IENyb3BwZXJTdGF0ZSgpO1xuXG4gIHJlYWRvbmx5IHNhZmVJbWdEYXRhVXJsID0gc2lnbmFsPFNhZmVVcmwgfCBzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHNhZmVUcmFuc2Zvcm1TdHlsZSA9IHNpZ25hbDxTYWZlU3R5bGUgfCBzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIG1hcmdpbkxlZnQ6IFNhZmVTdHlsZSB8IHN0cmluZyA9ICcwcHgnO1xuICBpbWFnZVZpc2libGUgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCd3cmFwcGVyJywge3N0YXRpYzogdHJ1ZX0pIHdyYXBwZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnc291cmNlSW1hZ2UnLCB7c3RhdGljOiBmYWxzZX0pIHNvdXJjZUltYWdlITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQElucHV0KCkgaW1hZ2VDaGFuZ2VkRXZlbnQ/OiBFdmVudCB8IG51bGw7XG4gIEBJbnB1dCgpIGltYWdlVVJMPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbWFnZUJhc2U2ND86IHN0cmluZztcbiAgQElucHV0KCkgaW1hZ2VGaWxlPzogRmlsZTtcbiAgQElucHV0KCkgaW1hZ2VBbHRUZXh0Pzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBQYXJ0aWFsPENyb3BwZXJPcHRpb25zPjtcbiAgQElucHV0KCkgY3JvcHBlckZyYW1lQXJpYUxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBvdXRwdXQ/OiAnYmxvYicgfCAnYmFzZTY0JztcbiAgQElucHV0KCkgZm9ybWF0PzogT3V0cHV0Rm9ybWF0O1xuICBASW5wdXQoKSBhdXRvQ3JvcD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNyb3BwZXI/OiBDcm9wcGVyUG9zaXRpb247XG4gIEBJbnB1dCgpIHRyYW5zZm9ybT86IEltYWdlVHJhbnNmb3JtO1xuICBASW5wdXQoKSBtYWludGFpbkFzcGVjdFJhdGlvPzogYm9vbGVhbjtcbiAgQElucHV0KCkgYXNwZWN0UmF0aW8/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHJlc2V0Q3JvcE9uQXNwZWN0UmF0aW9DaGFuZ2U/OiBib29sZWFuO1xuICBASW5wdXQoKSByZXNpemVUb1dpZHRoPzogbnVtYmVyO1xuICBASW5wdXQoKSByZXNpemVUb0hlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgY3JvcHBlck1pbldpZHRoPzogbnVtYmVyO1xuICBASW5wdXQoKSBjcm9wcGVyTWluSGVpZ2h0PzogbnVtYmVyO1xuICBASW5wdXQoKSBjcm9wcGVyTWF4SGVpZ2h0PzogbnVtYmVyO1xuICBASW5wdXQoKSBjcm9wcGVyTWF4V2lkdGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNyb3BwZXJTdGF0aWNXaWR0aD86IG51bWJlcjtcbiAgQElucHV0KCkgY3JvcHBlclN0YXRpY0hlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgY2FudmFzUm90YXRpb24/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGluaXRpYWxTdGVwU2l6ZT86IG51bWJlcjtcbiAgQElucHV0KCkgcm91bmRDcm9wcGVyPzogYm9vbGVhbjtcbiAgQElucHV0KCkgb25seVNjYWxlRG93bj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGltYWdlUXVhbGl0eT86IG51bWJlcjtcbiAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBjb250YWluV2l0aGluQXNwZWN0UmF0aW8/OiBib29sZWFuO1xuICBASW5wdXQoKSBoaWRlUmVzaXplU3F1YXJlcz86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFsbG93TW92ZUltYWdlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrSW1hZ2VUeXBlID0gdHJ1ZTtcbiAgQElucHV0KCkgYWxpZ25JbWFnZT86ICdsZWZ0JyB8ICdjZW50ZXInO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQnKVxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5neC1pYy1oaWRkZW4nKVxuICBASW5wdXQoKSBoaWRkZW4gPSBmYWxzZTtcblxuICByZWFkb25seSBpbWFnZUNyb3BwZWQgPSBvdXRwdXQ8SW1hZ2VDcm9wcGVkRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IHN0YXJ0Q3JvcEltYWdlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGltYWdlTG9hZGVkID0gb3V0cHV0PExvYWRlZEltYWdlPigpO1xuICByZWFkb25seSBjcm9wcGVyUmVhZHkgPSBvdXRwdXQ8RGltZW5zaW9ucz4oKTtcbiAgcmVhZG9ubHkgbG9hZEltYWdlRmFpbGVkID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHRyYW5zZm9ybUNoYW5nZSA9IG91dHB1dDxJbWFnZVRyYW5zZm9ybT4oKTtcbiAgcmVhZG9ubHkgY3JvcHBlckNoYW5nZSA9IG91dHB1dDxDcm9wcGVyUG9zaXRpb24+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50ZXh0LWFsaWduJylcbiAgZ2V0IGFsaWduSW1hZ2VTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5vcHRpb25zLmFsaWduSW1hZ2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICkge1xuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUuc3RlcFNpemUgPSB0aGlzLmluaXRpYWxTdGVwU2l6ZSB8fCB0aGlzLnN0YXRlLnN0ZXBTaXplO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZpb3VzQ3JvcHBlclBvc2l0aW9uID0gdGhpcy5zdGF0ZS5jcm9wcGVyKCk7XG4gICAgY29uc3QgcHJldmlvdXNUcmFuc2Zvcm0gPSB0aGlzLnN0YXRlLnRyYW5zZm9ybTtcbiAgICBjb25zdCBwcmV2aW91c0JhY2tncm91bmRDb2xvciA9IHRoaXMuc3RhdGUub3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3I7XG5cbiAgICB0aGlzLnN0YXRlLnNldE9wdGlvbnNGcm9tQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICB0aGlzLm9uQ2hhbmdlc0lucHV0SW1hZ2UoY2hhbmdlcyk7XG5cbiAgICBpZiAoY2hhbmdlc1sndHJhbnNmb3JtJ10gJiYgdGhpcy50cmFuc2Zvcm0pIHtcbiAgICAgIHRoaXMuc3RhdGUudHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm07XG4gICAgICB0aGlzLnNldENzc1RyYW5zZm9ybSgpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zdGF0ZS5sb2FkZWRJbWFnZT8udHJhbnNmb3JtZWQuaW1hZ2UuY29tcGxldGUgfHwgIXRoaXMuc3RhdGUubWF4U2l6ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgodGhpcy5jb250YWluV2l0aGluQXNwZWN0UmF0aW8gJiYgY2hhbmdlc1snYXNwZWN0UmF0aW8nXSkgfHwgY2hhbmdlc1snY29udGFpbldpdGhpbkFzcGVjdFJhdGlvJ10gfHwgY2hhbmdlc1snY2FudmFzUm90YXRpb24nXSkge1xuICAgICAgdGhpcy5sb2FkSW1hZ2VTZXJ2aWNlXG4gICAgICAgIC50cmFuc2Zvcm1Mb2FkZWRJbWFnZSh0aGlzLnN0YXRlLmxvYWRlZEltYWdlLCB0aGlzLnN0YXRlKVxuICAgICAgICAudGhlbigocmVzKSA9PiB0aGlzLnNldExvYWRlZEltYWdlKHJlcykpXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB0aGlzLmxvYWRJbWFnZUVycm9yKGVycikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydjcm9wcGVyJ10gJiYgdGhpcy5jcm9wcGVyKSB7XG4gICAgICB0aGlzLnN0YXRlLmNyb3BwZXIuc2V0KGNoZWNrQ3JvcHBlclBvc2l0aW9uKHRoaXMuY3JvcHBlciwgdGhpcy5zdGF0ZSwgdHJ1ZSkpO1xuICAgIH1cbiAgICBjb25zdCBjcm9wcGVyQ2hhbmdlZCA9ICF0aGlzLnN0YXRlLmVxdWFsc0Nyb3BwZXJQb3NpdGlvbihwcmV2aW91c0Nyb3BwZXJQb3NpdGlvbik7XG4gICAgaWYgKGNyb3BwZXJDaGFuZ2VkICYmICghdGhpcy5jcm9wcGVyIHx8ICF0aGlzLnN0YXRlLmVxdWFsc0Nyb3BwZXJQb3NpdGlvbih0aGlzLmNyb3BwZXIpKSkge1xuICAgICAgdGhpcy5jcm9wcGVyQ2hhbmdlLmVtaXQodGhpcy5zdGF0ZS5jcm9wcGVyKCkpO1xuICAgIH1cbiAgICBpZiAoY3JvcHBlckNoYW5nZWRcbiAgICAgIHx8ICF0aGlzLnN0YXRlLmVxdWFsc1RyYW5zZm9ybShwcmV2aW91c1RyYW5zZm9ybSlcbiAgICAgIHx8IHRoaXMuc3RhdGUub3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IgIT09IHByZXZpb3VzQmFja2dyb3VuZENvbG9yKSB7XG4gICAgICB0aGlzLmRvQXV0b0Nyb3AoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snaGlkZGVuJ10gJiYgdGhpcy5yZXNpemVkV2hpbGVIaWRkZW4gJiYgIXRoaXMuaGlkZGVuKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5vblJlc2l6ZSgpO1xuICAgICAgICB0aGlzLnJlc2l6ZWRXaGlsZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZXNJbnB1dEltYWdlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaW1hZ2VDaGFuZ2VkRXZlbnQnXSB8fCBjaGFuZ2VzWydpbWFnZVVSTCddIHx8IGNoYW5nZXNbJ2ltYWdlQmFzZTY0J10gfHwgY2hhbmdlc1snaW1hZ2VGaWxlJ10pIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2ltYWdlQ2hhbmdlZEV2ZW50J10gJiYgdGhpcy5pc1ZhbGlkSW1hZ2VDaGFuZ2VkRXZlbnQoKSkge1xuICAgICAgdGhpcy5sb2FkSW1hZ2VGaWxlKHRoaXMuaW1hZ2VDaGFuZ2VkRXZlbnQudGFyZ2V0LmZpbGVzWzBdKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2ltYWdlVVJMJ10gJiYgdGhpcy5pbWFnZVVSTCkge1xuICAgICAgdGhpcy5sb2FkSW1hZ2VGcm9tVVJMKHRoaXMuaW1hZ2VVUkwpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snaW1hZ2VCYXNlNjQnXSAmJiB0aGlzLmltYWdlQmFzZTY0KSB7XG4gICAgICB0aGlzLmxvYWRCYXNlNjRJbWFnZSh0aGlzLmltYWdlQmFzZTY0KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2ltYWdlRmlsZSddICYmIHRoaXMuaW1hZ2VGaWxlKSB7XG4gICAgICB0aGlzLmxvYWRJbWFnZUZpbGUodGhpcy5pbWFnZUZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZEltYWdlQ2hhbmdlZEV2ZW50KCk6IHRoaXMgaXMge1xuICAgIGltYWdlQ2hhbmdlZEV2ZW50OiBFdmVudCAmIHtcbiAgICAgIHRhcmdldDogeyBmaWxlczogRmlsZUxpc3QgfTtcbiAgICB9XG4gIH0ge1xuICAgIGNvbnN0IGZpbGVzID0gKHRoaXMuaW1hZ2VDaGFuZ2VkRXZlbnQgYXMgYW55KT8udGFyZ2V0Py5maWxlcztcbiAgICByZXR1cm4gZmlsZXMgaW5zdGFuY2VvZiBGaWxlTGlzdCAmJiBmaWxlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmxvYWRlZEltYWdlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc3RhdGUubWF4U2l6ZS5zZXQoeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pO1xuICAgIHRoaXMuaW1hZ2VWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGxvYWRJbWFnZUZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIHRoaXMubG9hZEltYWdlU2VydmljZVxuICAgICAgLmxvYWRJbWFnZUZpbGUoZmlsZSwgdGhpcy5zdGF0ZSlcbiAgICAgIC50aGVuKChyZXMpID0+IHRoaXMuc2V0TG9hZGVkSW1hZ2UocmVzKSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB0aGlzLmxvYWRJbWFnZUVycm9yKGVycikpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQmFzZTY0SW1hZ2UoaW1hZ2VCYXNlNjQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9hZEltYWdlU2VydmljZVxuICAgICAgLmxvYWRCYXNlNjRJbWFnZShpbWFnZUJhc2U2NCwgdGhpcy5zdGF0ZSlcbiAgICAgIC50aGVuKChyZXMpID0+IHRoaXMuc2V0TG9hZGVkSW1hZ2UocmVzKSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB0aGlzLmxvYWRJbWFnZUVycm9yKGVycikpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkSW1hZ2VGcm9tVVJMKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkSW1hZ2VTZXJ2aWNlXG4gICAgICAubG9hZEltYWdlRnJvbVVSTCh1cmwsIHRoaXMuc3RhdGUpXG4gICAgICAudGhlbigocmVzKSA9PiB0aGlzLnNldExvYWRlZEltYWdlKHJlcykpXG4gICAgICAuY2F0Y2goKGVycikgPT4gdGhpcy5sb2FkSW1hZ2VFcnJvcihlcnIpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TG9hZGVkSW1hZ2UobG9hZGVkSW1hZ2U6IExvYWRlZEltYWdlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5sb2FkZWRJbWFnZSA9IGxvYWRlZEltYWdlO1xuICAgIHRoaXMuc2FmZUltZ0RhdGFVcmwuc2V0KHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChsb2FkZWRJbWFnZS50cmFuc2Zvcm1lZC5vYmplY3RVcmwpKTtcbiAgfVxuXG4gIGxvYWRJbWFnZUVycm9yKGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgdGhpcy5sb2FkSW1hZ2VGYWlsZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDc3NUcmFuc2Zvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgdHJhbnNsYXRlVW5pdCA9IHRoaXMuc3RhdGUudHJhbnNmb3JtPy50cmFuc2xhdGVVbml0IHx8ICclJztcbiAgICB0aGlzLnNhZmVUcmFuc2Zvcm1TdHlsZS5zZXQodGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgYHRyYW5zbGF0ZSgke3RoaXMuc3RhdGUudHJhbnNmb3JtLnRyYW5zbGF0ZUggfHwgMH0ke3RyYW5zbGF0ZVVuaXR9LCAke3RoaXMuc3RhdGUudHJhbnNmb3JtLnRyYW5zbGF0ZVYgfHwgMH0ke3RyYW5zbGF0ZVVuaXR9KWAgK1xuICAgICAgJyBzY2FsZVgoJyArICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5zY2FsZSB8fCAxKSAqICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5mbGlwSCA/IC0xIDogMSkgKyAnKScgK1xuICAgICAgJyBzY2FsZVkoJyArICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5zY2FsZSB8fCAxKSAqICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5mbGlwViA/IC0xIDogMSkgKyAnKScgK1xuICAgICAgJyByb3RhdGUoJyArICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5yb3RhdGUgfHwgMCkgKyAnZGVnKSdcbiAgICApKTtcbiAgfVxuXG4gIGltYWdlTG9hZGVkSW5WaWV3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlLmxvYWRlZEltYWdlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuaW1hZ2VMb2FkZWQuZW1pdCh0aGlzLnN0YXRlLmxvYWRlZEltYWdlKTtcbiAgICAgIHRoaXMuc2V0SW1hZ2VNYXhTaXplUmV0cmllcyA9IDA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tJbWFnZU1heFNpemVSZWN1cnNpdmVseSgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSW1hZ2VNYXhTaXplUmVjdXJzaXZlbHkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2V0SW1hZ2VNYXhTaXplUmV0cmllcyA+IDQwKSB7XG4gICAgICB0aGlzLmxvYWRJbWFnZUZhaWxlZC5lbWl0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvdXJjZUltYWdlTG9hZGVkKCkpIHtcbiAgICAgIHRoaXMuc2V0TWF4U2l6ZSgpO1xuICAgICAgaWYgKHRoaXMuY3JvcHBlciAmJiAoIXRoaXMubWFpbnRhaW5Bc3BlY3RSYXRpbyB8fCB0aGlzLnN0YXRlLmFzcGVjdFJhdGlvSXNDb3JyZWN0KCkpKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuY3JvcHBlci5zZXQoY2hlY2tDcm9wcGVyUG9zaXRpb24odGhpcy5jcm9wcGVyLCB0aGlzLnN0YXRlLCB0cnVlKSk7XG4gICAgICAgIHRoaXMuZW1pdENyb3BwZXJQb3NpdGlvbkNoYW5nZSh0aGlzLmNyb3BwZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5jcm9wcGVyLnNldChjaGVja0Nyb3BwZXJQb3NpdGlvbih0aGlzLnN0YXRlLm1heFNpemVDcm9wcGVyUG9zaXRpb24oKSwgdGhpcy5zdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB0aGlzLmNyb3BwZXJDaGFuZ2UuZW1pdCh0aGlzLnN0YXRlLmNyb3BwZXIoKSk7XG4gICAgICB9XG4gICAgICB0aGlzLmltYWdlVmlzaWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmNyb3BwZXJSZWFkeS5lbWl0KHRoaXMuc3RhdGUubWF4U2l6ZSgpKTtcbiAgICAgIHRoaXMuZG9BdXRvQ3JvcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEltYWdlTWF4U2l6ZVJldHJpZXMrKztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0ltYWdlTWF4U2l6ZVJlY3Vyc2l2ZWx5KCksIDUwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNvdXJjZUltYWdlTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZUltYWdlPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRXaWR0aCA+IDE7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZEltYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmhpZGRlbikge1xuICAgICAgdGhpcy5yZXNpemVkV2hpbGVIaWRkZW4gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvbGRNYXhTaXplID0gdGhpcy5zdGF0ZS5tYXhTaXplKCk7XG4gICAgICB0aGlzLnNldE1heFNpemUoKTtcbiAgICAgIHRoaXMuc3RhdGUucmVzaXplQ3JvcHBlclBvc2l0aW9uKG9sZE1heFNpemUpO1xuICAgIH1cbiAgfVxuXG4gIGtleWJvYXJkQWNjZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5jaGFuZ2VLZXlib2FyZFN0ZXBTaXplKGV2ZW50KTtcbiAgICB0aGlzLmtleWJvYXJkTW92ZUNyb3BwZXIoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VLZXlib2FyZFN0ZXBTaXplKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gK2V2ZW50LmtleTtcbiAgICBpZiAoa2V5ID49IDEgJiYga2V5IDw9IDkpIHtcbiAgICAgIHRoaXMuc3RhdGUuc3RlcFNpemUgPSBrZXk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBrZXlib2FyZE1vdmVDcm9wcGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Ym9hcmRXaGl0ZUxpc3Q6IHN0cmluZ1tdID0gWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCddO1xuICAgIGlmICghKGtleWJvYXJkV2hpdGVMaXN0LmluY2x1ZGVzKGV2ZW50LmtleSkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1vdmVUeXBlID0gZXZlbnQuc2hpZnRLZXkgPyBNb3ZlVHlwZXMuUmVzaXplIDogTW92ZVR5cGVzLk1vdmU7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC5hbHRLZXkgPyBnZXRJbnZlcnRlZFBvc2l0aW9uRm9yS2V5KGV2ZW50LmtleSkgOiBnZXRQb3NpdGlvbkZvcktleShldmVudC5rZXkpO1xuICAgIGNvbnN0IG1vdmVFdmVudCA9IGdldEV2ZW50Rm9yS2V5KGV2ZW50LmtleSwgdGhpcy5zdGF0ZS5zdGVwU2l6ZSk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm1vdmVTdGFydCA9IHtcbiAgICAgIHR5cGU6IG1vdmVUeXBlLFxuICAgICAgcG9zaXRpb24sXG4gICAgICBjbGllbnRYOiAwLFxuICAgICAgY2xpZW50WTogMCxcbiAgICAgIHRyYW5zZm9ybTogdGhpcy5zdGF0ZS50cmFuc2Zvcm0sXG4gICAgICBjcm9wcGVyOiB0aGlzLnN0YXRlLmNyb3BwZXIoKVxuICAgIH07XG4gICAgdGhpcy5oYW5kbGVNb3VzZU1vdmUobW92ZUV2ZW50KTtcbiAgICB0aGlzLmhhbmRsZU1vdXNlVXAoKTtcbiAgfVxuXG4gIHN0YXJ0TW92ZShldmVudDogRXZlbnQgfCBCYXNpY0V2ZW50LCBtb3ZlVHlwZTogTW92ZVR5cGVzLCBwb3NpdGlvbjogUG9zaXRpb24gfCBudWxsID0gbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkXG4gICAgICB8fCB0aGlzLm1vdmVTdGFydCAmJiB0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuUGluY2hcbiAgICAgIHx8IG1vdmVUeXBlID09PSBNb3ZlVHlwZXMuRHJhZyAmJiAhdGhpcy5hbGxvd01vdmVJbWFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoJ3ByZXZlbnREZWZhdWx0JyBpbiBldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgdGhpcy5tb3ZlU3RhcnQgPSB7XG4gICAgICB0eXBlOiBtb3ZlVHlwZSxcbiAgICAgIHBvc2l0aW9uLFxuICAgICAgY2xpZW50WDogZ2V0Q2xpZW50WChldmVudCksXG4gICAgICBjbGllbnRZOiBnZXRDbGllbnRZKGV2ZW50KSxcbiAgICAgIHRyYW5zZm9ybTogdGhpcy5zdGF0ZS50cmFuc2Zvcm0sXG4gICAgICBjcm9wcGVyOiB0aGlzLnN0YXRlLmNyb3BwZXIoKVxuICAgIH07XG4gICAgdGhpcy5pbml0TW91c2VNb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRNb3VzZU1vdmUoKTogdm9pZCB7XG4gICAgbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNobW92ZScpXG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKG1lcmdlKFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyksXG4gICAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJyksXG4gICAgICAgIHRoaXMucGluY2hTdGFydCRcbiAgICAgICkucGlwZShmaXJzdCgpKSlcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHRoaXMuaGFuZGxlTW91c2VNb3ZlKGV2ZW50KSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLmhhbmRsZU1vdXNlVXAoKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZU1vdmUoZXZlbnQ6IEV2ZW50IHwgQmFzaWNFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tb3ZlU3RhcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCdzdG9wUHJvcGFnYXRpb24nIGluIGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKCdwcmV2ZW50RGVmYXVsdCcgaW4gZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuTW92ZSkge1xuICAgICAgdGhpcy5zdGF0ZS5jcm9wcGVyLnNldChjaGVja0Nyb3BwZXJXaXRoaW5NYXhTaXplQm91bmRzKFxuICAgICAgICBtb3ZlQ3JvcHBlcihldmVudCwgdGhpcy5tb3ZlU3RhcnQpLFxuICAgICAgICB0aGlzLnN0YXRlLFxuICAgICAgICB0cnVlXG4gICAgICApKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW92ZVN0YXJ0LnR5cGUgPT09IE1vdmVUeXBlcy5SZXNpemUpIHtcbiAgICAgIGlmICghdGhpcy5jcm9wcGVyU3RhdGljV2lkdGggJiYgIXRoaXMuY3JvcHBlclN0YXRpY0hlaWdodCkge1xuICAgICAgICB0aGlzLnN0YXRlLmNyb3BwZXIuc2V0KGNoZWNrQ3JvcHBlcldpdGhpbk1heFNpemVCb3VuZHMoXG4gICAgICAgICAgcmVzaXplQ3JvcHBlcihldmVudCwgdGhpcy5tb3ZlU3RhcnQsIHRoaXMuc3RhdGUpLFxuICAgICAgICAgIHRoaXMuc3RhdGUsXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuRHJhZykge1xuICAgICAgY29uc3QgZGlmZlggPSBnZXRDbGllbnRYKGV2ZW50KSAtIHRoaXMubW92ZVN0YXJ0LmNsaWVudFg7XG4gICAgICBjb25zdCBkaWZmWSA9IGdldENsaWVudFkoZXZlbnQpIC0gdGhpcy5tb3ZlU3RhcnQuY2xpZW50WTtcbiAgICAgIHRoaXMuc3RhdGUudHJhbnNmb3JtID0ge1xuICAgICAgICAuLi50aGlzLnN0YXRlLnRyYW5zZm9ybSxcbiAgICAgICAgdHJhbnNsYXRlSDogKHRoaXMubW92ZVN0YXJ0LnRyYW5zZm9ybT8udHJhbnNsYXRlSCB8fCAwKSArIGRpZmZYLFxuICAgICAgICB0cmFuc2xhdGVWOiAodGhpcy5tb3ZlU3RhcnQudHJhbnNmb3JtPy50cmFuc2xhdGVWIHx8IDApICsgZGlmZllcbiAgICAgIH07XG4gICAgICB0aGlzLnNldENzc1RyYW5zZm9ybSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTW91c2VVcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubW92ZVN0YXJ0IHx8IHRoaXMubW92ZVN0YXJ0LnR5cGUgPT09IE1vdmVUeXBlcy5QaW5jaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3RhdGUuZXF1YWxzQ3JvcHBlclBvc2l0aW9uKHRoaXMubW92ZVN0YXJ0LmNyb3BwZXIpXG4gICAgICB8fCB0aGlzLm1vdmVTdGFydC50cmFuc2Zvcm0gJiYgIXRoaXMuc3RhdGUuZXF1YWxzVHJhbnNmb3JtKHRoaXMubW92ZVN0YXJ0LnRyYW5zZm9ybSkpIHtcbiAgICAgIGlmICh0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuRHJhZykge1xuICAgICAgICB0aGlzLnRyYW5zZm9ybUNoYW5nZS5lbWl0KHRoaXMuc3RhdGUudHJhbnNmb3JtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JvcHBlckNoYW5nZS5lbWl0KHRoaXMuc3RhdGUuY3JvcHBlcigpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZG9BdXRvQ3JvcCgpO1xuICAgIH1cbiAgICB0aGlzLm1vdmVTdGFydCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXJ0UGluY2goZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5zb3VyY2VJbWFnZUxvYWRlZCgpIHx8IGV2ZW50LnRvdWNoZXMubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoJ3ByZXZlbnREZWZhdWx0JyBpbiBldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgY29uc3QgY3JvcHBlciA9IHRoaXMuc3RhdGUuY3JvcHBlcigpO1xuICAgIHRoaXMubW92ZVN0YXJ0ID0ge1xuICAgICAgdHlwZTogTW92ZVR5cGVzLlBpbmNoLFxuICAgICAgcG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgY2xpZW50WDogY3JvcHBlci54MSArIChjcm9wcGVyLngyIC0gY3JvcHBlci54MSkgLyAyLFxuICAgICAgY2xpZW50WTogY3JvcHBlci55MSArIChjcm9wcGVyLnkyIC0gY3JvcHBlci55MSkgLyAyLFxuICAgICAgY3JvcHBlcjogY3JvcHBlclxuICAgIH07XG4gICAgdGhpcy5pbml0UGluY2goKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBpbmNoKCk6IHZvaWQge1xuICAgIHRoaXMucGluY2hTdGFydCQubmV4dCgpO1xuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNobW92ZScpXG4gICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB0aGlzLmhhbmRsZVBpbmNoTW92ZShldmVudCBhcyBUb3VjaEV2ZW50KSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHRoaXMuaGFuZGxlUGluY2hTdG9wKClcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQaW5jaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMubW92ZVN0YXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW92ZVN0YXJ0LnR5cGUgPT09IE1vdmVUeXBlcy5QaW5jaCkge1xuICAgICAgaWYgKCF0aGlzLmNyb3BwZXJTdGF0aWNXaWR0aCAmJiAhdGhpcy5jcm9wcGVyU3RhdGljSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuc3RhdGUuY3JvcHBlci5zZXQoY2hlY2tDcm9wcGVyV2l0aGluTWF4U2l6ZUJvdW5kcyhcbiAgICAgICAgICByZXNpemVDcm9wcGVyKGV2ZW50LCB0aGlzLm1vdmVTdGFydCwgdGhpcy5zdGF0ZSksXG4gICAgICAgICAgdGhpcy5zdGF0ZSxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVBpbmNoU3RvcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubW92ZVN0YXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5zdGF0ZS5lcXVhbHNDcm9wcGVyUG9zaXRpb24odGhpcy5tb3ZlU3RhcnQuY3JvcHBlcikpIHtcbiAgICAgIHRoaXMuZW1pdENyb3BwZXJQb3NpdGlvbkNoYW5nZSh0aGlzLm1vdmVTdGFydC5jcm9wcGVyKTtcbiAgICAgIHRoaXMuZG9BdXRvQ3JvcCgpO1xuICAgIH1cbiAgICB0aGlzLm1vdmVTdGFydCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TWF4U2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zb3VyY2VJbWFnZSkge1xuICAgICAgY29uc3Qgc291cmNlSW1hZ2VTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5zb3VyY2VJbWFnZS5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHRoaXMuc3RhdGUuc2V0TWF4U2l6ZShwYXJzZUZsb2F0KHNvdXJjZUltYWdlU3R5bGUud2lkdGgpLCBwYXJzZUZsb2F0KHNvdXJjZUltYWdlU3R5bGUuaGVpZ2h0KSk7XG4gICAgICB0aGlzLm1hcmdpbkxlZnQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoJ2NhbGMoNTAlIC0gJyArIHRoaXMuc3RhdGUubWF4U2l6ZSgpLndpZHRoIC8gMiArICdweCknKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRDcm9wcGVyUG9zaXRpb25DaGFuZ2UocHJldmlvdXNQb3NpdGlvbjogQ3JvcHBlclBvc2l0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmVxdWFsc0Nyb3BwZXJQb3NpdGlvbihwcmV2aW91c1Bvc2l0aW9uKSkge1xuICAgICAgdGhpcy5jcm9wcGVyQ2hhbmdlLmVtaXQodGhpcy5zdGF0ZS5jcm9wcGVyKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG9BdXRvQ3JvcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcHRpb25zLmF1dG9Dcm9wKSB7XG4gICAgICB2b2lkIHRoaXMuY3JvcCgpO1xuICAgIH1cbiAgfVxuXG4gIGNyb3AoKTogSW1hZ2VDcm9wcGVkRXZlbnQgfCBudWxsO1xuICBjcm9wKG91dHB1dDogJ2Jhc2U2NCcpOiBJbWFnZUNyb3BwZWRFdmVudCB8IG51bGw7XG4gIGNyb3Aob3V0cHV0OiAnYmxvYicpOiBQcm9taXNlPEltYWdlQ3JvcHBlZEV2ZW50PiB8IG51bGw7XG4gIGNyb3Aob3V0cHV0OiBPdXRwdXRUeXBlID0gdGhpcy5zdGF0ZS5vcHRpb25zLm91dHB1dCk6IFByb21pc2U8SW1hZ2VDcm9wcGVkRXZlbnQ+IHwgSW1hZ2VDcm9wcGVkRXZlbnQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5sb2FkZWRJbWFnZT8udHJhbnNmb3JtZWQ/LmltYWdlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3RhcnRDcm9wSW1hZ2UuZW1pdCgpO1xuICAgICAgaWYgKG91dHB1dCA9PT0gJ2Jsb2InKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyb3BUb0Jsb2IoKTtcbiAgICAgIH0gZWxzZSBpZiAob3V0cHV0ID09PSAnYmFzZTY0Jykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcm9wVG9CYXNlNjQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNyb3BUb0Jsb2IoKTogUHJvbWlzZTxJbWFnZUNyb3BwZWRFdmVudD4gfCBudWxsIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jcm9wU2VydmljZS5jcm9wKHRoaXMuc3RhdGUsICdibG9iJyk7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMuaW1hZ2VDcm9wcGVkLmVtaXQocmVzdWx0KTtcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVqZWN0KCdDcm9wIGltYWdlIGZhaWxlZCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcm9wVG9CYXNlNjQoKTogSW1hZ2VDcm9wcGVkRXZlbnQgfCBudWxsIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmNyb3BTZXJ2aWNlLmNyb3AodGhpcy5zdGF0ZSwgJ2Jhc2U2NCcpO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHRoaXMuaW1hZ2VDcm9wcGVkLmVtaXQocmVzdWx0KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVzZXRDcm9wcGVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5jcm9wcGVyLnNldChjaGVja0Nyb3BwZXJQb3NpdGlvbih0aGlzLnN0YXRlLm1heFNpemVDcm9wcGVyUG9zaXRpb24oKSwgdGhpcy5zdGF0ZSwgdHJ1ZSkpO1xuICAgIHRoaXMuY3JvcHBlckNoYW5nZS5lbWl0KHRoaXMuc3RhdGUuY3JvcHBlcigpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucGluY2hTdGFydCQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBbc3R5bGUuYmFja2dyb3VuZF09XCJpbWFnZVZpc2libGUgJiYgc3RhdGUub3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAodG91Y2hzdGFydCk9XCJzdGFydFBpbmNoKCRldmVudClcIlxuPlxuICA8aW1nXG4gICAgI3NvdXJjZUltYWdlXG4gICAgY2xhc3M9XCJuZ3gtaWMtc291cmNlLWltYWdlXCJcbiAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAqbmdJZj1cInNhZmVJbWdEYXRhVXJsKCkgYXMgc3JjXCJcbiAgICBbc3JjXT1cInNyY1wiXG4gICAgW3N0eWxlLnZpc2liaWxpdHldPVwiaW1hZ2VWaXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIlxuICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwic2FmZVRyYW5zZm9ybVN0eWxlKClcIlxuICAgIFtjbGFzcy5uZ3gtaWMtZHJhZ2dhYmxlXT1cIiFkaXNhYmxlZCAmJiBhbGxvd01vdmVJbWFnZVwiXG4gICAgW2F0dHIuYWx0XT1cImltYWdlQWx0VGV4dFwiXG4gICAgKGxvYWQpPVwiaW1hZ2VMb2FkZWRJblZpZXcoKVwiXG4gICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuRHJhZylcIlxuICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5EcmFnKVwiXG4gICAgKGVycm9yKT1cImxvYWRJbWFnZUVycm9yKCRldmVudClcIlxuICA+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm5neC1pYy1vdmVybGF5XCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic3RhdGUubWF4U2l6ZSgpLndpZHRoIHx8IDBcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwic3RhdGUubWF4U2l6ZSgpLmhlaWdodCB8fCAwXCJcbiAgICBbc3R5bGUubWFyZ2luLWxlZnRdPVwic3RhdGUub3B0aW9ucy5hbGlnbkltYWdlID09PSAnY2VudGVyJyA/IG1hcmdpbkxlZnQgOiBudWxsXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJuZ3gtaWMtY3JvcHBlclwiXG4gICAgKm5nSWY9XCJpbWFnZVZpc2libGVcIlxuICAgIFtjbGFzcy5uZ3gtaWMtcm91bmRdPVwic3RhdGUub3B0aW9ucy5yb3VuZENyb3BwZXJcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic3RhdGUub3B0aW9ucy5jcm9wcGVyRnJhbWVBcmlhTGFiZWxcIlxuICAgIFtzdHlsZS50b3AucHhdPVwic3RhdGUuY3JvcHBlcigpLnkxXCJcbiAgICBbc3R5bGUubGVmdC5weF09XCJzdGF0ZS5jcm9wcGVyKCkueDFcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzdGF0ZS5jcm9wcGVyKCkueDIgLSBzdGF0ZS5jcm9wcGVyKCkueDFcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwic3RhdGUuY3JvcHBlcigpLnkyIC0gc3RhdGUuY3JvcHBlcigpLnkxXCJcbiAgICBbc3R5bGUubWFyZ2luLWxlZnRdPVwic3RhdGUub3B0aW9ucy5hbGlnbkltYWdlID09PSAnY2VudGVyJyA/IG1hcmdpbkxlZnQgOiBudWxsXCJcbiAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJpbWFnZVZpc2libGUgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiXG4gICAgKGtleWRvd24pPVwia2V5Ym9hcmRBY2Nlc3MoJGV2ZW50KVwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLk1vdmUpXCJcbiAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5Nb3ZlKVwiXG4gICAgICBjbGFzcz1cIm5neC1pYy1tb3ZlXCJcbiAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIiFzdGF0ZS5vcHRpb25zLmhpZGVSZXNpemVTcXVhcmVzICYmICEoc3RhdGUub3B0aW9ucy5jcm9wcGVyU3RhdGljV2lkdGggJiYgc3RhdGUub3B0aW9ucy5jcm9wcGVyU3RhdGljSGVpZ2h0KVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplIG5neC1pYy10b3BsZWZ0XCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3RvcGxlZnQnKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICd0b3BsZWZ0JylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pYy1zcXVhcmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm5neC1pYy1yZXNpemUgbmd4LWljLXRvcHJpZ2h0XCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3RvcHJpZ2h0JylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAndG9wcmlnaHQnKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmd4LWljLXNxdWFyZVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZSBuZ3gtaWMtYm90dG9tcmlnaHRcIlxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnYm90dG9tcmlnaHQnKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdib3R0b21yaWdodCcpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuZ3gtaWMtc3F1YXJlXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplIG5neC1pYy1ib3R0b21sZWZ0XCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ2JvdHRvbWxlZnQnKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdib3R0b21sZWZ0JylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pYy1zcXVhcmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm5neC1pYy1yZXNpemUtYmFyIG5neC1pYy10b3BcIlxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAndG9wJylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAndG9wJylcIlxuICAgICAgPjwvc3Bhbj5cblxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplIG5neC1pYy10b3BcIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICd0b3AnKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICd0b3AnKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmd4LWljLXNxdWFyZVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZS1iYXIgbmd4LWljLXJpZ2h0XCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3JpZ2h0JylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAncmlnaHQnKVwiXG4gICAgICA+PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplIG5neC1pYy1yaWdodFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3JpZ2h0JylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAncmlnaHQnKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmd4LWljLXNxdWFyZVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZS1iYXIgbmd4LWljLWJvdHRvbVwiXG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdib3R0b20nKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdib3R0b20nKVwiXG4gICAgICA+PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplIG5neC1pYy1ib3R0b21cIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdib3R0b20nKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdib3R0b20nKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmd4LWljLXNxdWFyZVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZS1iYXIgbmd4LWljLWxlZnRcIlxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnbGVmdCcpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ2xlZnQnKVwiXG4gICAgICA+PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplIG5neC1pYy1sZWZ0XCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnbGVmdCcpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ2xlZnQnKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmd4LWljLXNxdWFyZVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW1hZ2UtY3JvcHBlci9zcmMvbGliL2NvbXBvbmVudC9pbWFnZS1jcm9wcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbWFnZS1jcm9wcGVyL3NyYy9saWIvY29tcG9uZW50L2ltYWdlLWNyb3BwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFZdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLCtCQUErQixFQUMvQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxhQUFhLEVBQ2QsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBVXpDLE1B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LGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csUUFBUTtzQkFEaEIsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUM1QixLQUFLO2dCQUVHLE1BQU07c0JBRGQsV0FBVzt1QkFBQyxxQkFBcUI7O3NCQUNqQyxLQUFLO2dCQVdGLGVBQWU7c0JBRGxCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQXlLL0IsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVN0eWxlLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1xuICBDcm9wcGVyT3B0aW9ucyxcbiAgQ3JvcHBlclBvc2l0aW9uLFxuICBEaW1lbnNpb25zLFxuICBJbWFnZUNyb3BwZWRFdmVudCxcbiAgSW1hZ2VUcmFuc2Zvcm0sXG4gIExvYWRlZEltYWdlLFxuICBNb3ZlU3RhcnRcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPdXRwdXRGb3JtYXQsIE91dHB1dFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Nyb3BwZXItb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3JvcHBlclN0YXRlIH0gZnJvbSAnLi9jcm9wcGVyLnN0YXRlJztcbmltcG9ydCB7IE1vdmVUeXBlcywgUG9zaXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL21vdmUtc3RhcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENyb3BTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY3JvcC5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRJbWFnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2FkLWltYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0RXZlbnRGb3JLZXksIGdldEludmVydGVkUG9zaXRpb25Gb3JLZXksIGdldFBvc2l0aW9uRm9yS2V5IH0gZnJvbSAnLi4vdXRpbHMva2V5Ym9hcmQudXRpbHMnO1xuaW1wb3J0IHsgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmFzaWNFdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzaWMtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGNoZWNrQ3JvcHBlclBvc2l0aW9uLFxuICBjaGVja0Nyb3BwZXJXaXRoaW5NYXhTaXplQm91bmRzLFxuICBnZXRDbGllbnRYLFxuICBnZXRDbGllbnRZLFxuICBtb3ZlQ3JvcHBlcixcbiAgcmVzaXplQ3JvcHBlclxufSBmcm9tICcuLi91dGlscy9jcm9wcGVyLXBvc2l0aW9uLnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1hZ2UtY3JvcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1jcm9wcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWZdLFxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUNyb3BwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBpbmNoU3RhcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjcm9wU2VydmljZSA9IG5ldyBDcm9wU2VydmljZSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRJbWFnZVNlcnZpY2UgPSBuZXcgTG9hZEltYWdlU2VydmljZSgpO1xuXG4gIHByaXZhdGUgc2V0SW1hZ2VNYXhTaXplUmV0cmllcyA9IDA7XG4gIHByaXZhdGUgbW92ZVN0YXJ0PzogTW92ZVN0YXJ0O1xuICBwcml2YXRlIHJlc2l6ZWRXaGlsZUhpZGRlbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBtb3ZlVHlwZXMgPSBNb3ZlVHlwZXM7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGF0ZSA9IG5ldyBDcm9wcGVyU3RhdGUoKTtcblxuICByZWFkb25seSBzYWZlSW1nRGF0YVVybCA9IHNpZ25hbDxTYWZlVXJsIHwgc3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBzYWZlVHJhbnNmb3JtU3R5bGUgPSBzaWduYWw8U2FmZVN0eWxlIHwgc3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBtYXJnaW5MZWZ0OiBTYWZlU3R5bGUgfCBzdHJpbmcgPSAnMHB4JztcbiAgaW1hZ2VWaXNpYmxlID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnd3JhcHBlcicsIHtzdGF0aWM6IHRydWV9KSB3cmFwcGVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3NvdXJjZUltYWdlJywge3N0YXRpYzogZmFsc2V9KSBzb3VyY2VJbWFnZSE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGltYWdlQ2hhbmdlZEV2ZW50PzogRXZlbnQgfCBudWxsO1xuICBASW5wdXQoKSBpbWFnZVVSTD86IHN0cmluZztcbiAgQElucHV0KCkgaW1hZ2VCYXNlNjQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGltYWdlRmlsZT86IEZpbGU7XG4gIEBJbnB1dCgpIGltYWdlQWx0VGV4dD86IHN0cmluZztcblxuICBASW5wdXQoKSBvcHRpb25zPzogUGFydGlhbDxDcm9wcGVyT3B0aW9ucz47XG4gIEBJbnB1dCgpIGNyb3BwZXJGcmFtZUFyaWFMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgb3V0cHV0PzogJ2Jsb2InIHwgJ2Jhc2U2NCc7XG4gIEBJbnB1dCgpIGZvcm1hdD86IE91dHB1dEZvcm1hdDtcbiAgQElucHV0KCkgYXV0b0Nyb3A/OiBib29sZWFuO1xuICBASW5wdXQoKSBjcm9wcGVyPzogQ3JvcHBlclBvc2l0aW9uO1xuICBASW5wdXQoKSB0cmFuc2Zvcm0/OiBJbWFnZVRyYW5zZm9ybTtcbiAgQElucHV0KCkgbWFpbnRhaW5Bc3BlY3RSYXRpbz86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xuICBASW5wdXQoKSByZXNldENyb3BPbkFzcGVjdFJhdGlvQ2hhbmdlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVzaXplVG9XaWR0aD86IG51bWJlcjtcbiAgQElucHV0KCkgcmVzaXplVG9IZWlnaHQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNyb3BwZXJNaW5XaWR0aD86IG51bWJlcjtcbiAgQElucHV0KCkgY3JvcHBlck1pbkhlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgY3JvcHBlck1heEhlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgY3JvcHBlck1heFdpZHRoPzogbnVtYmVyO1xuICBASW5wdXQoKSBjcm9wcGVyU3RhdGljV2lkdGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNyb3BwZXJTdGF0aWNIZWlnaHQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNhbnZhc1JvdGF0aW9uPzogbnVtYmVyO1xuICBASW5wdXQoKSBpbml0aWFsU3RlcFNpemU/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHJvdW5kQ3JvcHBlcj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9ubHlTY2FsZURvd24/OiBib29sZWFuO1xuICBASW5wdXQoKSBpbWFnZVF1YWxpdHk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgY29udGFpbldpdGhpbkFzcGVjdFJhdGlvPzogYm9vbGVhbjtcbiAgQElucHV0KCkgaGlkZVJlc2l6ZVNxdWFyZXM/OiBib29sZWFuO1xuICBASW5wdXQoKSBhbGxvd01vdmVJbWFnZSA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0ltYWdlVHlwZSA9IHRydWU7XG4gIEBJbnB1dCgpIGFsaWduSW1hZ2U/OiAnbGVmdCcgfCAnY2VudGVyJztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZ3gtaWMtaGlkZGVuJylcbiAgQElucHV0KCkgaGlkZGVuID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgaW1hZ2VDcm9wcGVkID0gb3V0cHV0PEltYWdlQ3JvcHBlZEV2ZW50PigpO1xuICByZWFkb25seSBzdGFydENyb3BJbWFnZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBpbWFnZUxvYWRlZCA9IG91dHB1dDxMb2FkZWRJbWFnZT4oKTtcbiAgcmVhZG9ubHkgY3JvcHBlclJlYWR5ID0gb3V0cHV0PERpbWVuc2lvbnM+KCk7XG4gIHJlYWRvbmx5IGxvYWRJbWFnZUZhaWxlZCA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSB0cmFuc2Zvcm1DaGFuZ2UgPSBvdXRwdXQ8SW1hZ2VUcmFuc2Zvcm0+KCk7XG4gIHJlYWRvbmx5IGNyb3BwZXJDaGFuZ2UgPSBvdXRwdXQ8Q3JvcHBlclBvc2l0aW9uPigpO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudGV4dC1hbGlnbicpXG4gIGdldCBhbGlnbkltYWdlU3R5bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUub3B0aW9ucy5hbGlnbkltYWdlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnN0ZXBTaXplID0gdGhpcy5pbml0aWFsU3RlcFNpemUgfHwgdGhpcy5zdGF0ZS5zdGVwU2l6ZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBwcmV2aW91c0Nyb3BwZXJQb3NpdGlvbiA9IHRoaXMuc3RhdGUuY3JvcHBlcigpO1xuICAgIGNvbnN0IHByZXZpb3VzVHJhbnNmb3JtID0gdGhpcy5zdGF0ZS50cmFuc2Zvcm07XG4gICAgY29uc3QgcHJldmlvdXNCYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLnN0YXRlLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yO1xuXG4gICAgdGhpcy5zdGF0ZS5zZXRPcHRpb25zRnJvbUNoYW5nZXMoY2hhbmdlcyk7XG4gICAgdGhpcy5vbkNoYW5nZXNJbnB1dEltYWdlKGNoYW5nZXMpO1xuXG4gICAgaWYgKGNoYW5nZXNbJ3RyYW5zZm9ybSddICYmIHRoaXMudHJhbnNmb3JtKSB7XG4gICAgICB0aGlzLnN0YXRlLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtO1xuICAgICAgdGhpcy5zZXRDc3NUcmFuc2Zvcm0oKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc3RhdGUubG9hZGVkSW1hZ2U/LnRyYW5zZm9ybWVkLmltYWdlLmNvbXBsZXRlIHx8ICF0aGlzLnN0YXRlLm1heFNpemUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKHRoaXMuY29udGFpbldpdGhpbkFzcGVjdFJhdGlvICYmIGNoYW5nZXNbJ2FzcGVjdFJhdGlvJ10pIHx8IGNoYW5nZXNbJ2NvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpbyddIHx8IGNoYW5nZXNbJ2NhbnZhc1JvdGF0aW9uJ10pIHtcbiAgICAgIHRoaXMubG9hZEltYWdlU2VydmljZVxuICAgICAgICAudHJhbnNmb3JtTG9hZGVkSW1hZ2UodGhpcy5zdGF0ZS5sb2FkZWRJbWFnZSwgdGhpcy5zdGF0ZS5vcHRpb25zKVxuICAgICAgICAudGhlbigocmVzKSA9PiB0aGlzLnNldExvYWRlZEltYWdlKHJlcykpXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB0aGlzLmxvYWRJbWFnZUVycm9yKGVycikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydjcm9wcGVyJ10gJiYgdGhpcy5jcm9wcGVyKSB7XG4gICAgICB0aGlzLnN0YXRlLmNyb3BwZXIuc2V0KGNoZWNrQ3JvcHBlclBvc2l0aW9uKHRoaXMuY3JvcHBlciwgdGhpcy5zdGF0ZSwgdHJ1ZSkpO1xuICAgIH1cbiAgICBjb25zdCBjcm9wcGVyQ2hhbmdlZCA9ICF0aGlzLnN0YXRlLmVxdWFsc0Nyb3BwZXJQb3NpdGlvbihwcmV2aW91c0Nyb3BwZXJQb3NpdGlvbik7XG4gICAgaWYgKGNyb3BwZXJDaGFuZ2VkICYmICghdGhpcy5jcm9wcGVyIHx8ICF0aGlzLnN0YXRlLmVxdWFsc0Nyb3BwZXJQb3NpdGlvbih0aGlzLmNyb3BwZXIpKSkge1xuICAgICAgdGhpcy5jcm9wcGVyQ2hhbmdlLmVtaXQodGhpcy5zdGF0ZS5jcm9wcGVyKCkpO1xuICAgIH1cbiAgICBpZiAoY3JvcHBlckNoYW5nZWRcbiAgICAgIHx8ICF0aGlzLnN0YXRlLmVxdWFsc1RyYW5zZm9ybShwcmV2aW91c1RyYW5zZm9ybSlcbiAgICAgIHx8IHRoaXMuc3RhdGUub3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IgIT09IHByZXZpb3VzQmFja2dyb3VuZENvbG9yKSB7XG4gICAgICB0aGlzLmRvQXV0b0Nyb3AoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snaGlkZGVuJ10gJiYgdGhpcy5yZXNpemVkV2hpbGVIaWRkZW4gJiYgIXRoaXMuaGlkZGVuKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5vblJlc2l6ZSgpO1xuICAgICAgICB0aGlzLnJlc2l6ZWRXaGlsZUhpZGRlbiA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZXNJbnB1dEltYWdlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaW1hZ2VDaGFuZ2VkRXZlbnQnXSB8fCBjaGFuZ2VzWydpbWFnZVVSTCddIHx8IGNoYW5nZXNbJ2ltYWdlQmFzZTY0J10gfHwgY2hhbmdlc1snaW1hZ2VGaWxlJ10pIHtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2ltYWdlQ2hhbmdlZEV2ZW50J10gJiYgdGhpcy5pc1ZhbGlkSW1hZ2VDaGFuZ2VkRXZlbnQoKSkge1xuICAgICAgdGhpcy5sb2FkSW1hZ2VGaWxlKHRoaXMuaW1hZ2VDaGFuZ2VkRXZlbnQudGFyZ2V0LmZpbGVzWzBdKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2ltYWdlVVJMJ10gJiYgdGhpcy5pbWFnZVVSTCkge1xuICAgICAgdGhpcy5sb2FkSW1hZ2VGcm9tVVJMKHRoaXMuaW1hZ2VVUkwpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snaW1hZ2VCYXNlNjQnXSAmJiB0aGlzLmltYWdlQmFzZTY0KSB7XG4gICAgICB0aGlzLmxvYWRCYXNlNjRJbWFnZSh0aGlzLmltYWdlQmFzZTY0KTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2ltYWdlRmlsZSddICYmIHRoaXMuaW1hZ2VGaWxlKSB7XG4gICAgICB0aGlzLmxvYWRJbWFnZUZpbGUodGhpcy5pbWFnZUZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZEltYWdlQ2hhbmdlZEV2ZW50KCk6IHRoaXMgaXMge1xuICAgIGltYWdlQ2hhbmdlZEV2ZW50OiBFdmVudCAmIHtcbiAgICAgIHRhcmdldDogeyBmaWxlczogRmlsZUxpc3QgfTtcbiAgICB9XG4gIH0ge1xuICAgIGNvbnN0IGZpbGVzID0gKHRoaXMuaW1hZ2VDaGFuZ2VkRXZlbnQgYXMgYW55KT8udGFyZ2V0Py5maWxlcztcbiAgICByZXR1cm4gZmlsZXMgaW5zdGFuY2VvZiBGaWxlTGlzdCAmJiBmaWxlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmxvYWRlZEltYWdlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc3RhdGUubWF4U2l6ZS5zZXQoeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pO1xuICAgIHRoaXMuaW1hZ2VWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGxvYWRJbWFnZUZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIHRoaXMubG9hZEltYWdlU2VydmljZVxuICAgICAgLmxvYWRJbWFnZUZpbGUoZmlsZSwgdGhpcy5zdGF0ZS5vcHRpb25zKVxuICAgICAgLnRoZW4oKHJlcykgPT4gdGhpcy5zZXRMb2FkZWRJbWFnZShyZXMpKVxuICAgICAgLmNhdGNoKChlcnIpID0+IHRoaXMubG9hZEltYWdlRXJyb3IoZXJyKSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRCYXNlNjRJbWFnZShpbWFnZUJhc2U2NDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkSW1hZ2VTZXJ2aWNlXG4gICAgICAubG9hZEJhc2U2NEltYWdlKGltYWdlQmFzZTY0LCB0aGlzLnN0YXRlLm9wdGlvbnMpXG4gICAgICAudGhlbigocmVzKSA9PiB0aGlzLnNldExvYWRlZEltYWdlKHJlcykpXG4gICAgICAuY2F0Y2goKGVycikgPT4gdGhpcy5sb2FkSW1hZ2VFcnJvcihlcnIpKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEltYWdlRnJvbVVSTCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubG9hZEltYWdlU2VydmljZVxuICAgICAgLmxvYWRJbWFnZUZyb21VUkwodXJsLCB0aGlzLnN0YXRlLm9wdGlvbnMpXG4gICAgICAudGhlbigocmVzKSA9PiB0aGlzLnNldExvYWRlZEltYWdlKHJlcykpXG4gICAgICAuY2F0Y2goKGVycikgPT4gdGhpcy5sb2FkSW1hZ2VFcnJvcihlcnIpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TG9hZGVkSW1hZ2UobG9hZGVkSW1hZ2U6IExvYWRlZEltYWdlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5sb2FkZWRJbWFnZSA9IGxvYWRlZEltYWdlO1xuICAgIHRoaXMuc2FmZUltZ0RhdGFVcmwuc2V0KHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChsb2FkZWRJbWFnZS50cmFuc2Zvcm1lZC5vYmplY3RVcmwpKTtcbiAgfVxuXG4gIGxvYWRJbWFnZUVycm9yKGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgdGhpcy5sb2FkSW1hZ2VGYWlsZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDc3NUcmFuc2Zvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgdHJhbnNsYXRlVW5pdCA9IHRoaXMuc3RhdGUudHJhbnNmb3JtPy50cmFuc2xhdGVVbml0IHx8ICclJztcbiAgICB0aGlzLnNhZmVUcmFuc2Zvcm1TdHlsZS5zZXQodGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgYHRyYW5zbGF0ZSgke3RoaXMuc3RhdGUudHJhbnNmb3JtLnRyYW5zbGF0ZUggfHwgMH0ke3RyYW5zbGF0ZVVuaXR9LCAke3RoaXMuc3RhdGUudHJhbnNmb3JtLnRyYW5zbGF0ZVYgfHwgMH0ke3RyYW5zbGF0ZVVuaXR9KWAgK1xuICAgICAgJyBzY2FsZVgoJyArICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5zY2FsZSB8fCAxKSAqICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5mbGlwSCA/IC0xIDogMSkgKyAnKScgK1xuICAgICAgJyBzY2FsZVkoJyArICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5zY2FsZSB8fCAxKSAqICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5mbGlwViA/IC0xIDogMSkgKyAnKScgK1xuICAgICAgJyByb3RhdGUoJyArICh0aGlzLnN0YXRlLnRyYW5zZm9ybS5yb3RhdGUgfHwgMCkgKyAnZGVnKSdcbiAgICApKTtcbiAgfVxuXG4gIGltYWdlTG9hZGVkSW5WaWV3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlLmxvYWRlZEltYWdlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuaW1hZ2VMb2FkZWQuZW1pdCh0aGlzLnN0YXRlLmxvYWRlZEltYWdlKTtcbiAgICAgIHRoaXMuc2V0SW1hZ2VNYXhTaXplUmV0cmllcyA9IDA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tJbWFnZU1heFNpemVSZWN1cnNpdmVseSgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSW1hZ2VNYXhTaXplUmVjdXJzaXZlbHkoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2V0SW1hZ2VNYXhTaXplUmV0cmllcyA+IDQwKSB7XG4gICAgICB0aGlzLmxvYWRJbWFnZUZhaWxlZC5lbWl0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvdXJjZUltYWdlTG9hZGVkKCkpIHtcbiAgICAgIHRoaXMuc2V0TWF4U2l6ZSgpO1xuICAgICAgaWYgKHRoaXMuY3JvcHBlciAmJiAoIXRoaXMubWFpbnRhaW5Bc3BlY3RSYXRpbyB8fCB0aGlzLnN0YXRlLmFzcGVjdFJhdGlvSXNDb3JyZWN0KCkpKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuY3JvcHBlci5zZXQoY2hlY2tDcm9wcGVyUG9zaXRpb24odGhpcy5jcm9wcGVyLCB0aGlzLnN0YXRlLCB0cnVlKSk7XG4gICAgICAgIHRoaXMuZW1pdENyb3BwZXJQb3NpdGlvbkNoYW5nZSh0aGlzLmNyb3BwZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5jcm9wcGVyLnNldChjaGVja0Nyb3BwZXJQb3NpdGlvbih0aGlzLnN0YXRlLm1heFNpemVDcm9wcGVyUG9zaXRpb24oKSwgdGhpcy5zdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB0aGlzLmNyb3BwZXJDaGFuZ2UuZW1pdCh0aGlzLnN0YXRlLmNyb3BwZXIoKSk7XG4gICAgICB9XG4gICAgICB0aGlzLmltYWdlVmlzaWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmNyb3BwZXJSZWFkeS5lbWl0KHRoaXMuc3RhdGUubWF4U2l6ZSgpKTtcbiAgICAgIHRoaXMuZG9BdXRvQ3JvcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEltYWdlTWF4U2l6ZVJldHJpZXMrKztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0ltYWdlTWF4U2l6ZVJlY3Vyc2l2ZWx5KCksIDUwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNvdXJjZUltYWdlTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZUltYWdlPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRXaWR0aCA+IDE7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmxvYWRlZEltYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmhpZGRlbikge1xuICAgICAgdGhpcy5yZXNpemVkV2hpbGVIaWRkZW4gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvbGRNYXhTaXplID0gdGhpcy5zdGF0ZS5tYXhTaXplKCk7XG4gICAgICB0aGlzLnNldE1heFNpemUoKTtcbiAgICAgIHRoaXMuc3RhdGUucmVzaXplQ3JvcHBlclBvc2l0aW9uKG9sZE1heFNpemUpO1xuICAgIH1cbiAgfVxuXG4gIGtleWJvYXJkQWNjZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5jaGFuZ2VLZXlib2FyZFN0ZXBTaXplKGV2ZW50KTtcbiAgICB0aGlzLmtleWJvYXJkTW92ZUNyb3BwZXIoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VLZXlib2FyZFN0ZXBTaXplKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gK2V2ZW50LmtleTtcbiAgICBpZiAoa2V5ID49IDEgJiYga2V5IDw9IDkpIHtcbiAgICAgIHRoaXMuc3RhdGUuc3RlcFNpemUgPSBrZXk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBrZXlib2FyZE1vdmVDcm9wcGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Ym9hcmRXaGl0ZUxpc3Q6IHN0cmluZ1tdID0gWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCddO1xuICAgIGlmICghKGtleWJvYXJkV2hpdGVMaXN0LmluY2x1ZGVzKGV2ZW50LmtleSkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1vdmVUeXBlID0gZXZlbnQuc2hpZnRLZXkgPyBNb3ZlVHlwZXMuUmVzaXplIDogTW92ZVR5cGVzLk1vdmU7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC5hbHRLZXkgPyBnZXRJbnZlcnRlZFBvc2l0aW9uRm9yS2V5KGV2ZW50LmtleSkgOiBnZXRQb3NpdGlvbkZvcktleShldmVudC5rZXkpO1xuICAgIGNvbnN0IG1vdmVFdmVudCA9IGdldEV2ZW50Rm9yS2V5KGV2ZW50LmtleSwgdGhpcy5zdGF0ZS5zdGVwU2l6ZSk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm1vdmVTdGFydCA9IHtcbiAgICAgIHR5cGU6IG1vdmVUeXBlLFxuICAgICAgcG9zaXRpb24sXG4gICAgICBjbGllbnRYOiAwLFxuICAgICAgY2xpZW50WTogMCxcbiAgICAgIHRyYW5zZm9ybTogdGhpcy5zdGF0ZS50cmFuc2Zvcm0sXG4gICAgICBjcm9wcGVyOiB0aGlzLnN0YXRlLmNyb3BwZXIoKVxuICAgIH07XG4gICAgdGhpcy5oYW5kbGVNb3VzZU1vdmUobW92ZUV2ZW50KTtcbiAgICB0aGlzLmhhbmRsZU1vdXNlVXAoKTtcbiAgfVxuXG4gIHN0YXJ0TW92ZShldmVudDogRXZlbnQgfCBCYXNpY0V2ZW50LCBtb3ZlVHlwZTogTW92ZVR5cGVzLCBwb3NpdGlvbjogUG9zaXRpb24gfCBudWxsID0gbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkXG4gICAgICB8fCB0aGlzLm1vdmVTdGFydCAmJiB0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuUGluY2hcbiAgICAgIHx8IG1vdmVUeXBlID09PSBNb3ZlVHlwZXMuRHJhZyAmJiAhdGhpcy5hbGxvd01vdmVJbWFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoJ3ByZXZlbnREZWZhdWx0JyBpbiBldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgdGhpcy5tb3ZlU3RhcnQgPSB7XG4gICAgICB0eXBlOiBtb3ZlVHlwZSxcbiAgICAgIHBvc2l0aW9uLFxuICAgICAgY2xpZW50WDogZ2V0Q2xpZW50WChldmVudCksXG4gICAgICBjbGllbnRZOiBnZXRDbGllbnRZKGV2ZW50KSxcbiAgICAgIHRyYW5zZm9ybTogdGhpcy5zdGF0ZS50cmFuc2Zvcm0sXG4gICAgICBjcm9wcGVyOiB0aGlzLnN0YXRlLmNyb3BwZXIoKVxuICAgIH07XG4gICAgdGhpcy5pbml0TW91c2VNb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRNb3VzZU1vdmUoKTogdm9pZCB7XG4gICAgbWVyZ2UoXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNobW92ZScpXG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKG1lcmdlKFxuICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyksXG4gICAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJyksXG4gICAgICAgIHRoaXMucGluY2hTdGFydCRcbiAgICAgICkucGlwZShmaXJzdCgpKSlcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHRoaXMuaGFuZGxlTW91c2VNb3ZlKGV2ZW50KSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLmhhbmRsZU1vdXNlVXAoKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZU1vdmUoZXZlbnQ6IEV2ZW50IHwgQmFzaWNFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tb3ZlU3RhcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCdzdG9wUHJvcGFnYXRpb24nIGluIGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKCdwcmV2ZW50RGVmYXVsdCcgaW4gZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuTW92ZSkge1xuICAgICAgdGhpcy5zdGF0ZS5jcm9wcGVyLnNldChjaGVja0Nyb3BwZXJXaXRoaW5NYXhTaXplQm91bmRzKFxuICAgICAgICBtb3ZlQ3JvcHBlcihldmVudCwgdGhpcy5tb3ZlU3RhcnQpLFxuICAgICAgICB0aGlzLnN0YXRlLFxuICAgICAgICB0cnVlXG4gICAgICApKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW92ZVN0YXJ0LnR5cGUgPT09IE1vdmVUeXBlcy5SZXNpemUpIHtcbiAgICAgIGlmICghdGhpcy5jcm9wcGVyU3RhdGljV2lkdGggJiYgIXRoaXMuY3JvcHBlclN0YXRpY0hlaWdodCkge1xuICAgICAgICB0aGlzLnN0YXRlLmNyb3BwZXIuc2V0KGNoZWNrQ3JvcHBlcldpdGhpbk1heFNpemVCb3VuZHMoXG4gICAgICAgICAgcmVzaXplQ3JvcHBlcihldmVudCwgdGhpcy5tb3ZlU3RhcnQsIHRoaXMuc3RhdGUpLFxuICAgICAgICAgIHRoaXMuc3RhdGUsXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuRHJhZykge1xuICAgICAgY29uc3QgZGlmZlggPSBnZXRDbGllbnRYKGV2ZW50KSAtIHRoaXMubW92ZVN0YXJ0LmNsaWVudFg7XG4gICAgICBjb25zdCBkaWZmWSA9IGdldENsaWVudFkoZXZlbnQpIC0gdGhpcy5tb3ZlU3RhcnQuY2xpZW50WTtcbiAgICAgIHRoaXMuc3RhdGUudHJhbnNmb3JtID0ge1xuICAgICAgICAuLi50aGlzLnN0YXRlLnRyYW5zZm9ybSxcbiAgICAgICAgdHJhbnNsYXRlSDogKHRoaXMubW92ZVN0YXJ0LnRyYW5zZm9ybT8udHJhbnNsYXRlSCB8fCAwKSArIGRpZmZYLFxuICAgICAgICB0cmFuc2xhdGVWOiAodGhpcy5tb3ZlU3RhcnQudHJhbnNmb3JtPy50cmFuc2xhdGVWIHx8IDApICsgZGlmZllcbiAgICAgIH07XG4gICAgICB0aGlzLnNldENzc1RyYW5zZm9ybSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTW91c2VVcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubW92ZVN0YXJ0IHx8IHRoaXMubW92ZVN0YXJ0LnR5cGUgPT09IE1vdmVUeXBlcy5QaW5jaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3RhdGUuZXF1YWxzQ3JvcHBlclBvc2l0aW9uKHRoaXMubW92ZVN0YXJ0LmNyb3BwZXIpXG4gICAgICB8fCB0aGlzLm1vdmVTdGFydC50cmFuc2Zvcm0gJiYgIXRoaXMuc3RhdGUuZXF1YWxzVHJhbnNmb3JtKHRoaXMubW92ZVN0YXJ0LnRyYW5zZm9ybSkpIHtcbiAgICAgIGlmICh0aGlzLm1vdmVTdGFydC50eXBlID09PSBNb3ZlVHlwZXMuRHJhZykge1xuICAgICAgICB0aGlzLnRyYW5zZm9ybUNoYW5nZS5lbWl0KHRoaXMuc3RhdGUudHJhbnNmb3JtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JvcHBlckNoYW5nZS5lbWl0KHRoaXMuc3RhdGUuY3JvcHBlcigpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZG9BdXRvQ3JvcCgpO1xuICAgIH1cbiAgICB0aGlzLm1vdmVTdGFydCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXJ0UGluY2goZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5zb3VyY2VJbWFnZUxvYWRlZCgpIHx8IGV2ZW50LnRvdWNoZXMubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoJ3ByZXZlbnREZWZhdWx0JyBpbiBldmVudCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgY29uc3QgY3JvcHBlciA9IHRoaXMuc3RhdGUuY3JvcHBlcigpO1xuICAgIHRoaXMubW92ZVN0YXJ0ID0ge1xuICAgICAgdHlwZTogTW92ZVR5cGVzLlBpbmNoLFxuICAgICAgcG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgY2xpZW50WDogY3JvcHBlci54MSArIChjcm9wcGVyLngyIC0gY3JvcHBlci54MSkgLyAyLFxuICAgICAgY2xpZW50WTogY3JvcHBlci55MSArIChjcm9wcGVyLnkyIC0gY3JvcHBlci55MSkgLyAyLFxuICAgICAgY3JvcHBlcjogY3JvcHBlclxuICAgIH07XG4gICAgdGhpcy5pbml0UGluY2goKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBpbmNoKCk6IHZvaWQge1xuICAgIHRoaXMucGluY2hTdGFydCQubmV4dCgpO1xuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ3RvdWNobW92ZScpXG4gICAgICAucGlwZSh0YWtlVW50aWwoZnJvbUV2ZW50KGRvY3VtZW50LCAndG91Y2hlbmQnKSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB0aGlzLmhhbmRsZVBpbmNoTW92ZShldmVudCBhcyBUb3VjaEV2ZW50KSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHRoaXMuaGFuZGxlUGluY2hTdG9wKClcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQaW5jaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMubW92ZVN0YXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW92ZVN0YXJ0LnR5cGUgPT09IE1vdmVUeXBlcy5QaW5jaCkge1xuICAgICAgaWYgKCF0aGlzLmNyb3BwZXJTdGF0aWNXaWR0aCAmJiAhdGhpcy5jcm9wcGVyU3RhdGljSGVpZ2h0KSB7XG4gICAgICAgIHRoaXMuc3RhdGUuY3JvcHBlci5zZXQoY2hlY2tDcm9wcGVyV2l0aGluTWF4U2l6ZUJvdW5kcyhcbiAgICAgICAgICByZXNpemVDcm9wcGVyKGV2ZW50LCB0aGlzLm1vdmVTdGFydCwgdGhpcy5zdGF0ZSksXG4gICAgICAgICAgdGhpcy5zdGF0ZSxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVBpbmNoU3RvcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubW92ZVN0YXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5zdGF0ZS5lcXVhbHNDcm9wcGVyUG9zaXRpb24odGhpcy5tb3ZlU3RhcnQuY3JvcHBlcikpIHtcbiAgICAgIHRoaXMuZW1pdENyb3BwZXJQb3NpdGlvbkNoYW5nZSh0aGlzLm1vdmVTdGFydC5jcm9wcGVyKTtcbiAgICAgIHRoaXMuZG9BdXRvQ3JvcCgpO1xuICAgIH1cbiAgICB0aGlzLm1vdmVTdGFydCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TWF4U2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zb3VyY2VJbWFnZSkge1xuICAgICAgY29uc3Qgc291cmNlSW1hZ2VTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5zb3VyY2VJbWFnZS5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHRoaXMuc3RhdGUuc2V0TWF4U2l6ZShwYXJzZUZsb2F0KHNvdXJjZUltYWdlU3R5bGUud2lkdGgpLCBwYXJzZUZsb2F0KHNvdXJjZUltYWdlU3R5bGUuaGVpZ2h0KSk7XG4gICAgICB0aGlzLm1hcmdpbkxlZnQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoJ2NhbGMoNTAlIC0gJyArIHRoaXMuc3RhdGUubWF4U2l6ZSgpLndpZHRoIC8gMiArICdweCknKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRDcm9wcGVyUG9zaXRpb25DaGFuZ2UocHJldmlvdXNQb3NpdGlvbjogQ3JvcHBlclBvc2l0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLmVxdWFsc0Nyb3BwZXJQb3NpdGlvbihwcmV2aW91c1Bvc2l0aW9uKSkge1xuICAgICAgdGhpcy5jcm9wcGVyQ2hhbmdlLmVtaXQodGhpcy5zdGF0ZS5jcm9wcGVyKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG9BdXRvQ3JvcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcHRpb25zLmF1dG9Dcm9wKSB7XG4gICAgICB2b2lkIHRoaXMuY3JvcCgpO1xuICAgIH1cbiAgfVxuXG4gIGNyb3AoKTogSW1hZ2VDcm9wcGVkRXZlbnQgfCBudWxsO1xuICBjcm9wKG91dHB1dDogJ2Jhc2U2NCcpOiBJbWFnZUNyb3BwZWRFdmVudCB8IG51bGw7XG4gIGNyb3Aob3V0cHV0OiAnYmxvYicpOiBQcm9taXNlPEltYWdlQ3JvcHBlZEV2ZW50PiB8IG51bGw7XG4gIGNyb3Aob3V0cHV0OiBPdXRwdXRUeXBlID0gdGhpcy5zdGF0ZS5vcHRpb25zLm91dHB1dCk6IFByb21pc2U8SW1hZ2VDcm9wcGVkRXZlbnQ+IHwgSW1hZ2VDcm9wcGVkRXZlbnQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5sb2FkZWRJbWFnZT8udHJhbnNmb3JtZWQ/LmltYWdlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3RhcnRDcm9wSW1hZ2UuZW1pdCgpO1xuICAgICAgaWYgKG91dHB1dCA9PT0gJ2Jsb2InKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyb3BUb0Jsb2IoKTtcbiAgICAgIH0gZWxzZSBpZiAob3V0cHV0ID09PSAnYmFzZTY0Jykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcm9wVG9CYXNlNjQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNyb3BUb0Jsb2IoKTogUHJvbWlzZTxJbWFnZUNyb3BwZWRFdmVudD4gfCBudWxsIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jcm9wU2VydmljZS5jcm9wKHRoaXMuc3RhdGUudG9Dcm9wSW5wdXQoKSwgJ2Jsb2InKTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5pbWFnZUNyb3BwZWQuZW1pdChyZXN1bHQpO1xuICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QoJ0Nyb3AgaW1hZ2UgZmFpbGVkJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyb3BUb0Jhc2U2NCgpOiBJbWFnZUNyb3BwZWRFdmVudCB8IG51bGwge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JvcFNlcnZpY2UuY3JvcCh0aGlzLnN0YXRlLnRvQ3JvcElucHV0KCksICdiYXNlNjQnKTtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICB0aGlzLmltYWdlQ3JvcHBlZC5lbWl0KHJlc3VsdCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJlc2V0Q3JvcHBlclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUuY3JvcHBlci5zZXQoY2hlY2tDcm9wcGVyUG9zaXRpb24odGhpcy5zdGF0ZS5tYXhTaXplQ3JvcHBlclBvc2l0aW9uKCksIHRoaXMuc3RhdGUsIHRydWUpKTtcbiAgICB0aGlzLmNyb3BwZXJDaGFuZ2UuZW1pdCh0aGlzLnN0YXRlLmNyb3BwZXIoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnBpbmNoU3RhcnQkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW3N0eWxlLmJhY2tncm91bmRdPVwiaW1hZ2VWaXNpYmxlICYmIHN0YXRlLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yXCJcbiAgKHRvdWNoc3RhcnQpPVwic3RhcnRQaW5jaCgkZXZlbnQpXCJcbj5cbiAgPGltZ1xuICAgICNzb3VyY2VJbWFnZVxuICAgIGNsYXNzPVwibmd4LWljLXNvdXJjZS1pbWFnZVwiXG4gICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgKm5nSWY9XCJzYWZlSW1nRGF0YVVybCgpIGFzIHNyY1wiXG4gICAgW3NyY109XCJzcmNcIlxuICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cImltYWdlVmlzaWJsZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCJcbiAgICBbc3R5bGUudHJhbnNmb3JtXT1cInNhZmVUcmFuc2Zvcm1TdHlsZSgpXCJcbiAgICBbY2xhc3Mubmd4LWljLWRyYWdnYWJsZV09XCIhZGlzYWJsZWQgJiYgYWxsb3dNb3ZlSW1hZ2VcIlxuICAgIFthdHRyLmFsdF09XCJpbWFnZUFsdFRleHRcIlxuICAgIChsb2FkKT1cImltYWdlTG9hZGVkSW5WaWV3KClcIlxuICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLkRyYWcpXCJcbiAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuRHJhZylcIlxuICAgIChlcnJvcik9XCJsb2FkSW1hZ2VFcnJvcigkZXZlbnQpXCJcbiAgPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJuZ3gtaWMtb3ZlcmxheVwiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInN0YXRlLm1heFNpemUoKS53aWR0aCB8fCAwXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInN0YXRlLm1heFNpemUoKS5oZWlnaHQgfHwgMFwiXG4gICAgW3N0eWxlLm1hcmdpbi1sZWZ0XT1cInN0YXRlLm9wdGlvbnMuYWxpZ25JbWFnZSA9PT0gJ2NlbnRlcicgPyBtYXJnaW5MZWZ0IDogbnVsbFwiXG4gID48L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwibmd4LWljLWNyb3BwZXJcIlxuICAgICpuZ0lmPVwiaW1hZ2VWaXNpYmxlXCJcbiAgICBbY2xhc3Mubmd4LWljLXJvdW5kXT1cInN0YXRlLm9wdGlvbnMucm91bmRDcm9wcGVyXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0YXRlLm9wdGlvbnMuY3JvcHBlckZyYW1lQXJpYUxhYmVsXCJcbiAgICBbc3R5bGUudG9wLnB4XT1cInN0YXRlLmNyb3BwZXIoKS55MVwiXG4gICAgW3N0eWxlLmxlZnQucHhdPVwic3RhdGUuY3JvcHBlcigpLngxXCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwic3RhdGUuY3JvcHBlcigpLngyIC0gc3RhdGUuY3JvcHBlcigpLngxXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInN0YXRlLmNyb3BwZXIoKS55MiAtIHN0YXRlLmNyb3BwZXIoKS55MVwiXG4gICAgW3N0eWxlLm1hcmdpbi1sZWZ0XT1cInN0YXRlLm9wdGlvbnMuYWxpZ25JbWFnZSA9PT0gJ2NlbnRlcicgPyBtYXJnaW5MZWZ0IDogbnVsbFwiXG4gICAgW3N0eWxlLnZpc2liaWxpdHldPVwiaW1hZ2VWaXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbidcIlxuICAgIChrZXlkb3duKT1cImtleWJvYXJkQWNjZXNzKCRldmVudClcIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5Nb3ZlKVwiXG4gICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuTW92ZSlcIlxuICAgICAgY2xhc3M9XCJuZ3gtaWMtbW92ZVwiXG4gICAgICByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCIhc3RhdGUub3B0aW9ucy5oaWRlUmVzaXplU3F1YXJlcyAmJiAhKHN0YXRlLm9wdGlvbnMuY3JvcHBlclN0YXRpY1dpZHRoICYmIHN0YXRlLm9wdGlvbnMuY3JvcHBlclN0YXRpY0hlaWdodClcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZSBuZ3gtaWMtdG9wbGVmdFwiXG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICd0b3BsZWZ0JylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAndG9wbGVmdCcpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuZ3gtaWMtc3F1YXJlXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplIG5neC1pYy10b3ByaWdodFwiXG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICd0b3ByaWdodCcpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3RvcHJpZ2h0JylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pYy1zcXVhcmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm5neC1pYy1yZXNpemUgbmd4LWljLWJvdHRvbXJpZ2h0XCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ2JvdHRvbXJpZ2h0JylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnYm90dG9tcmlnaHQnKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmd4LWljLXNxdWFyZVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZSBuZ3gtaWMtYm90dG9tbGVmdFwiXG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdib3R0b21sZWZ0JylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnYm90dG9tbGVmdCcpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuZ3gtaWMtc3F1YXJlXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJuZ3gtaWMtcmVzaXplLWJhciBuZ3gtaWMtdG9wXCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3RvcCcpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3RvcCcpXCJcbiAgICAgID48L3NwYW4+XG5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZSBuZ3gtaWMtdG9wXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAndG9wJylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAndG9wJylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pYy1zcXVhcmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm5neC1pYy1yZXNpemUtYmFyIG5neC1pYy1yaWdodFwiXG4gICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdyaWdodCcpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3JpZ2h0JylcIlxuICAgICAgPjwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZSBuZ3gtaWMtcmlnaHRcIlxuICAgICAgICAobW91c2Vkb3duKT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdyaWdodCcpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ3JpZ2h0JylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pYy1zcXVhcmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm5neC1pYy1yZXNpemUtYmFyIG5neC1pYy1ib3R0b21cIlxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnYm90dG9tJylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnYm90dG9tJylcIlxuICAgICAgPjwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZSBuZ3gtaWMtYm90dG9tXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnYm90dG9tJylcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJzdGFydE1vdmUoJGV2ZW50LCBtb3ZlVHlwZXMuUmVzaXplLCAnYm90dG9tJylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pYy1zcXVhcmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIm5neC1pYy1yZXNpemUtYmFyIG5neC1pYy1sZWZ0XCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ2xlZnQnKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdsZWZ0JylcIlxuICAgICAgPjwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibmd4LWljLXJlc2l6ZSBuZ3gtaWMtbGVmdFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwic3RhcnRNb3ZlKCRldmVudCwgbW92ZVR5cGVzLlJlc2l6ZSwgJ2xlZnQnKVwiXG4gICAgICAgICh0b3VjaHN0YXJ0KT1cInN0YXJ0TW92ZSgkZXZlbnQsIG1vdmVUeXBlcy5SZXNpemUsICdsZWZ0JylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5neC1pYy1zcXVhcmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcC1pbnB1dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW1hZ2UtY3JvcHBlci9zcmMvbGliL2ludGVyZmFjZXMvY3JvcC1pbnB1dC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyb3BwZXJQb3NpdGlvbiB9IGZyb20gJy4vY3JvcHBlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4vZGltZW5zaW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2VUcmFuc2Zvcm0gfSBmcm9tICcuL2ltYWdlLXRyYW5zZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9hZGVkSW1hZ2UgfSBmcm9tICcuL2xvYWRlZC1pbWFnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3V0cHV0Rm9ybWF0IH0gZnJvbSAnLi9jcm9wcGVyLW9wdGlvbnMuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDcm9wSW5wdXQge1xuICBsb2FkZWRJbWFnZTogTG9hZGVkSW1hZ2U7XG4gIGNyb3BwZXI6IENyb3BwZXJQb3NpdGlvbjtcbiAgbWF4U2l6ZTogRGltZW5zaW9ucztcbiAgdHJhbnNmb3JtPzogSW1hZ2VUcmFuc2Zvcm07XG4gIG9wdGlvbnM/OiB7XG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIGNvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpbz86IGJvb2xlYW47XG4gICAgbWFpbnRhaW5Bc3BlY3RSYXRpbz86IGJvb2xlYW47XG4gICAgYXNwZWN0UmF0aW8/OiBudW1iZXI7XG4gICAgZm9ybWF0PzogT3V0cHV0Rm9ybWF0O1xuICAgIGNhbnZhc1JvdGF0aW9uPzogbnVtYmVyO1xuICAgIGltYWdlUXVhbGl0eT86IG51bWJlcjtcbiAgICByZXNpemVUb1dpZHRoPzogbnVtYmVyO1xuICAgIHJlc2l6ZVRvSGVpZ2h0PzogbnVtYmVyO1xuICAgIG9ubHlTY2FsZURvd24/OiBib29sZWFuO1xuICB9O1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcHBlci1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbWFnZS1jcm9wcGVyL3NyYy9saWIvaW50ZXJmYWNlcy9jcm9wcGVyLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENyb3BwZXJPcHRpb25zIHtcbiAgZm9ybWF0OiBPdXRwdXRGb3JtYXQ7XG4gIG91dHB1dDogT3V0cHV0VHlwZTtcbiAgYXV0b0Nyb3A6IGJvb2xlYW47XG4gIG1haW50YWluQXNwZWN0UmF0aW86IGJvb2xlYW47XG4gIHJlc2V0Q3JvcE9uQXNwZWN0UmF0aW9DaGFuZ2U6IGJvb2xlYW47XG4gIGFzcGVjdFJhdGlvOiBudW1iZXI7XG4gIHJlc2l6ZVRvV2lkdGg6IG51bWJlcjtcbiAgcmVzaXplVG9IZWlnaHQ6IG51bWJlcjtcbiAgY3JvcHBlck1pbldpZHRoOiBudW1iZXI7XG4gIGNyb3BwZXJNaW5IZWlnaHQ6IG51bWJlcjtcbiAgY3JvcHBlck1heEhlaWdodDogbnVtYmVyO1xuICBjcm9wcGVyTWF4V2lkdGg6IG51bWJlcjtcbiAgY3JvcHBlclN0YXRpY1dpZHRoOiBudW1iZXI7XG4gIGNyb3BwZXJTdGF0aWNIZWlnaHQ6IG51bWJlcjtcbiAgY2FudmFzUm90YXRpb246IG51bWJlcjtcbiAgcm91bmRDcm9wcGVyOiBib29sZWFuO1xuICBvbmx5U2NhbGVEb3duOiBib29sZWFuO1xuICBpbWFnZVF1YWxpdHk6IG51bWJlcjtcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGNvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpbzogYm9vbGVhbjtcbiAgaGlkZVJlc2l6ZVNxdWFyZXM6IGJvb2xlYW47XG4gIGFsaWduSW1hZ2U6ICdsZWZ0JyB8ICdjZW50ZXInO1xuICBjcm9wcGVyRnJhbWVBcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgY2hlY2tJbWFnZVR5cGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIE91dHB1dEZvcm1hdCA9ICdwbmcnIHwgJ2pwZWcnIHwgJ2JtcCcgfCAnd2VicCcgfCAnaWNvJztcbmV4cG9ydCB0eXBlIE91dHB1dFR5cGUgPSAnYmFzZTY0JyB8ICdibG9iJztcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaW1hZ2UtY3JvcHBlci9zcmMvbGliL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENyb3BwZXJPcHRpb25zLCBPdXRwdXRGb3JtYXQgfSBmcm9tICcuL2Nyb3BwZXItb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgQ3JvcHBlclBvc2l0aW9uIH0gZnJvbSAnLi9jcm9wcGVyLXBvc2l0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnLi9kaW1lbnNpb25zLmludGVyZmFjZSc7XG5leHBvcnQgeyBJbWFnZUNyb3BwZWRFdmVudCB9IGZyb20gJy4vaW1hZ2UtY3JvcHBlZC1ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgTW92ZVN0YXJ0IH0gZnJvbSAnLi9tb3ZlLXN0YXJ0LmludGVyZmFjZSc7XG5leHBvcnQgeyBJbWFnZVRyYW5zZm9ybSB9IGZyb20gJy4vaW1hZ2UtdHJhbnNmb3JtLmludGVyZmFjZSc7XG5leHBvcnQgeyBMb2FkZWRJbWFnZSB9IGZyb20gJy4vbG9hZGVkLWltYWdlLmludGVyZmFjZSc7XG5leHBvcnQgeyBDcm9wSW5wdXQgfSBmcm9tICcuL2Nyb3AtaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCB7IExvYWRJbWFnZU9wdGlvbnMgfSBmcm9tICcuL2xvYWQtaW1hZ2Utb3B0aW9ucy5pbnRlcmZhY2UnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1pbWFnZS1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbWFnZS1jcm9wcGVyL3NyYy9saWIvaW50ZXJmYWNlcy9sb2FkLWltYWdlLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdXRwdXRGb3JtYXQgfSBmcm9tICcuL2Nyb3BwZXItb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRJbWFnZU9wdGlvbnMge1xuICBmb3JtYXQ/OiBPdXRwdXRGb3JtYXQ7XG4gIGNoZWNrSW1hZ2VUeXBlPzogYm9vbGVhbjtcbiAgY2FudmFzUm90YXRpb24/OiBudW1iZXI7XG4gIGNvbnRhaW5XaXRoaW5Bc3BlY3RSYXRpbz86IGJvb2xlYW47XG4gIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xufVxuIl19
|