@wizishop/img-manager 0.2.98 → 0.2.99
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/assets/i18n/fr.json +1 -1
- package/bundles/wizishop-img-manager.umd.js +18 -11
- package/bundles/wizishop-img-manager.umd.js.map +1 -1
- package/bundles/wizishop-img-manager.umd.min.js +1 -1
- package/bundles/wizishop-img-manager.umd.min.js.map +1 -1
- package/esm2015/lib/components/images-view/images-view.component.js +18 -11
- package/esm2015/lib/components/img-tabs/img-tabs.component.js +2 -2
- package/esm5/lib/components/images-view/images-view.component.js +18 -11
- package/esm5/lib/components/img-tabs/img-tabs.component.js +2 -2
- package/fesm2015/wizishop-img-manager.js +18 -11
- package/fesm2015/wizishop-img-manager.js.map +1 -1
- package/fesm5/wizishop-img-manager.js +18 -11
- package/fesm5/wizishop-img-manager.js.map +1 -1
- package/lib/components/images-view/images-view.component.d.ts +1 -1
- package/package.json +1 -1
- package/wizishop-img-manager-0.2.99.tgz +0 -0
- package/wizishop-img-manager.metadata.json +1 -1
- package/wz-img-manager.scss +2763 -2763
- package/wizishop-img-manager-0.2.98.tgz +0 -0
|
@@ -125,9 +125,9 @@ let ImagesViewComponent = class ImagesViewComponent {
|
|
|
125
125
|
this.errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';
|
|
126
126
|
}
|
|
127
127
|
ngOnInit() {
|
|
128
|
-
if (this.maxLengthCardShow) {
|
|
129
|
-
|
|
130
|
-
}
|
|
128
|
+
/* if (this.maxLengthCardShow) {
|
|
129
|
+
this.reducePictureListMaxLength();
|
|
130
|
+
} */
|
|
131
131
|
this.setEvents();
|
|
132
132
|
this.imgSelectedList = this.imgSelectionService.getImgSelection();
|
|
133
133
|
}
|
|
@@ -138,9 +138,9 @@ let ImagesViewComponent = class ImagesViewComponent {
|
|
|
138
138
|
this.savePictureList = this.picturesList;
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
reducePictureListMaxLength() {
|
|
142
|
-
|
|
143
|
-
}
|
|
141
|
+
/* reducePictureListMaxLength() {
|
|
142
|
+
this.picturesList.splice(0, this.maxLengthCardShow);
|
|
143
|
+
} */
|
|
144
144
|
getImgList() {
|
|
145
145
|
this.filtersChanged.next();
|
|
146
146
|
}
|
|
@@ -166,6 +166,7 @@ let ImagesViewComponent = class ImagesViewComponent {
|
|
|
166
166
|
this.getImgList();
|
|
167
167
|
}
|
|
168
168
|
onRenamePicture(pictureRenamed) {
|
|
169
|
+
console.log('onRenamePicture pictureRenamed', pictureRenamed);
|
|
169
170
|
this.renamePictureService.onRenamePicture(pictureRenamed);
|
|
170
171
|
}
|
|
171
172
|
removeListImg() {
|
|
@@ -260,6 +261,10 @@ let ImagesViewComponent = class ImagesViewComponent {
|
|
|
260
261
|
return imgSizesConfig;
|
|
261
262
|
}
|
|
262
263
|
getTotalImgPerPage() {
|
|
264
|
+
if (this.nbRowToShow) {
|
|
265
|
+
const nbImgPerLine = this.stateDisplayed === 'full' ? this.nbMinImgPerLine : this.nbMaxImgPerLine;
|
|
266
|
+
return nbImgPerLine * this.nbRowToShow;
|
|
267
|
+
}
|
|
263
268
|
let total = this.nbMinImgPerLine;
|
|
264
269
|
while (total < 30 || total % this.nbMaxImgPerLine !== 0 || total % this.nbMinImgPerLine !== 0) {
|
|
265
270
|
total += this.nbMinImgPerLine;
|
|
@@ -267,8 +272,9 @@ let ImagesViewComponent = class ImagesViewComponent {
|
|
|
267
272
|
return total;
|
|
268
273
|
}
|
|
269
274
|
setParams() {
|
|
275
|
+
var _a;
|
|
270
276
|
this.params = {
|
|
271
|
-
limit: this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage.toString() : this.pageSize.toString(),
|
|
277
|
+
limit: ((_a = this.maxLengthCardShow) === null || _a === void 0 ? void 0 : _a.toString()) || (this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage.toString() : this.pageSize.toString()),
|
|
272
278
|
page: this.tableFilters.currentPage.toString()
|
|
273
279
|
};
|
|
274
280
|
if (this.tableFilters.searchValue) {
|
|
@@ -386,9 +392,6 @@ let ImagesViewComponent = class ImagesViewComponent {
|
|
|
386
392
|
this.length = this.isTotalRetieved ? this.length : data.totalRecords;
|
|
387
393
|
this.tableFilters.totalItems = this.isTotalRetieved ? this.tableFilters.totalItems : data.totalRecords;
|
|
388
394
|
this.tableFilters.itemsPerPage = this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage : this.pageSize;
|
|
389
|
-
if (this.maxLengthCardShow) {
|
|
390
|
-
this.picturesList = this.picturesList.splice(0, 8);
|
|
391
|
-
}
|
|
392
395
|
// Display Pexels if no result
|
|
393
396
|
if (data.totalRecords === 0) {
|
|
394
397
|
this.displayPexelsLib();
|
|
@@ -449,6 +452,10 @@ __decorate([
|
|
|
449
452
|
Input(),
|
|
450
453
|
__metadata("design:type", Number)
|
|
451
454
|
], ImagesViewComponent.prototype, "maxLengthCardShow", void 0);
|
|
455
|
+
__decorate([
|
|
456
|
+
Input(),
|
|
457
|
+
__metadata("design:type", Number)
|
|
458
|
+
], ImagesViewComponent.prototype, "nbRowToShow", void 0);
|
|
452
459
|
__decorate([
|
|
453
460
|
Input(),
|
|
454
461
|
__metadata("design:type", Object)
|
|
@@ -482,4 +489,4 @@ ImagesViewComponent = __decorate([
|
|
|
482
489
|
RenamePictureService])
|
|
483
490
|
], ImagesViewComponent);
|
|
484
491
|
export { ImagesViewComponent };
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBZ0IsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVTVELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBdUk5QixZQUNVLFVBQTZCLEVBQzdCLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsb0JBQTBDO1FBTDFDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFB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LENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztDQUNGLENBQUE7O1lBNVh1QixpQkFBaUI7WUFDWixlQUFlO1lBQ1gsbUJBQW1CO1lBQzFCLFlBQVk7WUFDTCxtQkFBbUI7WUFDbEIsb0JBQW9COztBQTNJM0M7SUFBUixLQUFLLEVBQUU7OzJEQUFnQztBQUMvQjtJQUFSLEtBQUssRUFBRTs7eURBQTRCO0FBQzNCO0lBQVIsS0FBSyxFQUFFOztxREFBbUI7QUFDbEI7SUFBUixLQUFLLEVBQUU7OzhEQUEyQjtBQUMxQjtJQUFSLEtBQUssRUFBRTs7MERBQXVCO0FBQ3RCO0lBQVIsS0FBSyxFQUFFOzs0REFBeUI7QUFFakM7SUFEQyxNQUFNLEVBQUU7OEJBQ1ksWUFBWTtnRUFBK0I7QUFZbEM7SUFBN0IsU0FBUyxDQUFDLGlCQUFpQixDQUFDOzhCQUFtQixVQUFVOzREQUFDO0FBckJoRCxtQkFBbUI7SUFSL0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGFBQWE7UUFDdkIsazJOQUEyQztRQUMzQyxVQUFVLEVBQUU7WUFDVixTQUFTO1lBQ1QsWUFBWTtTQUNiO0tBQ0YsQ0FBQztxQ0F5SXNCLGlCQUFpQjtRQUNaLGVBQWU7UUFDWCxtQkFBbUI7UUFDMUIsWUFBWTtRQUNMLG1CQUFtQjtRQUNsQixvQkFBb0I7R0E3SXpDLG1CQUFtQixDQW9nQi9CO1NBcGdCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPLCBJbWdQaWN0dXJlc0RUTywgUGFyYW1zSW1nTWFuYWdlckRUTyB9IGZyb20gJy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xuaW1wb3J0IHsgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbWdFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUvZmlsdGVycy10YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBpY3R1cmVOYW1lVXBkYXRlIH0gZnJvbSAnLi4vLi4vZHRvL3BpY3R1cmUtbmFtZS11cGRhdGUuZHRvJztcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBpbnNlcnRSZW1vdmUgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2luc2VydFJlbW92ZS9pbnNlcnQtcmVtb3ZlLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzdGF0ZURpc3BsYXllZCwgdGFiRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XG5pbXBvcnQgeyBSZW5hbWVQaWN0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlbmFtZS1waWN0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltYWdlcy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlcy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIGVhc2VJbk91dCxcbiAgICBpbnNlcnRSZW1vdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZXNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzdGF0ZURpc3BsYXllZDogc3RhdGVEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xuICBASW5wdXQoKSBmdWxsU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoQ2FyZFNob3c6IG51bWJlcjtcbiAgQElucHV0KCkgbGlzdERpc3BsYXllZCA9IGZhbHNlOyAvLyBEaXNwbGF5IGZvcm1hdCBsaXN0IG9yIG1vc2FpY1xuICBASW5wdXQoKSBtdWx0aXBsZUltZ01vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIHN3aXRjaERpc3BsYXlXaW5kb3c6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBEYXRhIGZpbHRlcnNcbiAgdGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnMgPSB7XG4gICAgc29ydDogdW5kZWZpbmVkLFxuICAgIG9yZGVyOiB1bmRlZmluZWQsXG4gICAgc2VhcmNoVmFsdWU6ICcnLFxuICAgIHRvdGFsSXRlbXM6IDAsXG4gICAgaXRlbXNQZXJQYWdlOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnaW1nTGliQ29udGFpbmVyJykgaW1nTGliQ29udGFpbmVyIDogRWxlbWVudFJlZjtcbiAgd2lkdGhMYXJnZUNhcmQ6IG51bWJlciA9IDIxOTsgLy8gRGVmYXVsdCB2YWx1ZSBvZiBhIGNhcmQgd2lkdGggMTk5ICsgbWFyZ2luIDIwXG4gIHdpZHRoU21hbGxDYXJkOiBudW1iZXIgPSAxNjA7IC8vIERlZmF1bHQgdmFsdWUgb2YgYSBjYXJkIHdpZHRoIDE0MCArIG1hcmdpbiAyMFxuICBuYk1pbkltZ1BlckxpbmU6IG51bWJlcjtcbiAgbmJNYXhJbWdQZXJMaW5lOiBudW1iZXI7XG4gIG5iRmFrZUltZzogbnVtYmVyID0gMDtcblxuICBpbWdGdWxsV2lkdGhDb25maWc6YW55ID0gW1xuICAgIHtcbiAgICAgIG1heDogNDE5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDEsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC41XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDQ5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAxLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiA3MTksIC8vIHRhYmxldFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzNcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTAyMywgLy8gZGVza29wXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTU5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjIsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMTExXG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4xNjY2LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMVxuICAgIH1cbiAgXTtcblxuICBpbWdXaWR0aENvbmZpZzphbnkgPSBbXG4gICAge1xuICAgICAgbWF4OiAxMDI0LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTE5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4yXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEyOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTY2NlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNjY2XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDE1OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE0XG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH1cbiAgXTtcblxuICBpbWdTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcbiAgaW1nUmVtb3ZlZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGltZ0FkZGVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaW1nU2VsZWN0aW9uQ2hhbmdlOiBTdWJzY3JpcHRpb247XG4gIHNlYXJjaFF1ZXJ5Q2hhbmdlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBmaWx0ZXJzQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcGljdHVyZXNMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgc2F2ZVBpY3R1cmVMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgaW1nU2VsZWN0ZWRMaXN0OiBJbWdQaWN0dXJlRFRPW107XG4gIHNlYXJjaGVkVmFsdWU6IHN0cmluZzsgLy8gVmFsdWUgZnJvbSB0aGUgc2VhcmNoIGJhciBvciBpbWcgYWRkZWQgYnkgY2FudmFcbiAgbmJJbWdUb0RlbFNlbGVjdGVkOiBudW1iZXIgPSAwO1xuICBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7IC8vIFVzZSB0byBkaXNhYmxlIGFjdGlvbiBkdXJpbmcgc2VydmVyIHJlcXVlc3RcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNUb3RhbFJldGlldmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgaW5pdENvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gIGZhaWxMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzcGxheVBleGVsc1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHdoZW4gbm8gaW1nIGZpbmQgYnkgbmFtZSwgZGlzcGxheSBpbWcgZnJvbSBQZXhlbHNcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuICBjb25maXJtSW1nU3VwOmJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmlvdXNTZWFyY2hWYWx1ZTogc3RyaW5nO1xuXG4gIC8vIFBhZ2luYXRvciBQYXJhbXNcbiAgcGFnZUluZGV4OiBudW1iZXIgPTA7XG4gIGxlbmd0aDogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDMwOyAvLyBEZWZhdWx0IHZhbHVlXG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbMjUsIDUwLCAxMDAsIDI1MF07XG5cbiAgLy8gQXBpIEltZyBtYW5hZ2VyIFBhcmFtc1xuICBwYXJhbXM6UGFyYW1zSW1nTWFuYWdlckRUTztcblxuICBwcml2YXRlIGVycm9yR2V0QWxsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0QWxsSW1nJztcbiAgcHJpdmF0ZSBlcnJvckdldFRvdGFsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0VG90YWxJbWcnO1xuICBwcml2YXRlIGVycm9yR2V0SW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0Q2FudmFJbWcnO1xuICBwcml2YXRlIG1zZ05vSW1nRm91bmQgPSAnSW1nTWFuYWdlci5JbWdMaWIubm9JbWdGb3VuZCc7XG4gIHByaXZhdGUgZXJyb3JSZW1vdmVJbWcgPSAnSW1nTWFuYWdlci5JbWdMaXN0LmVycm9yUmVtb3ZlSW1nJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nRXZlbnRTZXJ2aWNlOiBJbWdFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuYW1lUGljdHVyZVNlcnZpY2U6IFJlbmFtZVBpY3R1cmVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXhMZW5ndGhDYXJkU2hvdykge1xuICAgICAgdGhpcy5yZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpO1xuICAgIH1cbiAgICB0aGlzLnNldEV2ZW50cygpO1xuICAgIHRoaXMuaW1nU2VsZWN0ZWRMaXN0ID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0Rpc3BsYXkoKTtcbiAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgaWYgKCF0aGlzLnNhdmVQaWN0dXJlTGlzdCkge1xuICAgICAgdGhpcy5zYXZlUGljdHVyZUxpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdDtcbiAgICB9XG4gIH1cblxuICByZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpIHtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5zcGxpY2UoMCwgdGhpcy5tYXhMZW5ndGhDYXJkU2hvdyk7XG4gIH1cblxuICBnZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRydWUgOiBnbyB0byBsaXN0IGRpc3BsYXlcbiAgICogZmFsc2UgOiBnbyB0byBtb3NhaWMgZGlzcGxheVxuICAgKiBAcGFyYW0gYWN0aXZhdGVcbiAgICovXG4gIG9uU3dpdGNoRm9ybWF0RGlzcGxheWVkKGFjdGl2YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0RGlzcGxheWVkID0gYWN0aXZhdGU7XG4gICAgdGhpcy51c2VyU2V0dGluZ3NTZXJ2aWNlLnNldFVzZXJEaXNwbGF5UHJlZmVyZW5jZShhY3RpdmF0ZSk7XG4gICAgdGhpcy5pbWdFdmVudFNlcnZpY2UuZW1pdGxpc3REaXNwbGF5ZWRDaGFuZ2UoYWN0aXZhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bCB0aGUgbnVtYmVyIG9mIGltZyBzZWxlY3RlZCBmb3IgbWFzc2UgZGVsZXRpb25cbiAgICovXG4gIG9uSW1nU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG9uU2hvd0ltZ1VwbG9hZGVkKCkge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IG51bGw7XG4gICAgdGhpcy5zZWFyY2hlZFZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgfVxuXG4gIG9uUmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZDogUGljdHVyZU5hbWVVcGRhdGUpIHtcbiAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLm9uUmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZCk7XG4gIH1cblxuICByZW1vdmVMaXN0SW1nKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuXG4gICAgLy8gR2V0IHRoZSBpZCBvZiB0aGUgaW1nIHRvIHJlbW92ZVxuICAgIC8vIEFuZCBhZGQgZGVsZXRlZCBwcm9wZXJ0eVxuICAgIGNvbnN0IGlkSW1nVG9SZW1vdmU6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5waWN0dXJlc0xpc3QuZm9yRWFjaCggaW1nID0+IHtcbiAgICAgIGlmIChpbWcuZGVsU2VsZWN0ZWQpIHtcbiAgICAgICAgaW1nLmRlbGV0ZWQgPSB0cnVlO1xuICAgICAgICBpZEltZ1RvUmVtb3ZlLnB1c2goaW1nLmlkX2ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbWdNYW5hZ2VyLnJlbW92ZU11bHRpcGxlSW1nKGlkSW1nVG9SZW1vdmUpLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5yZW1vdmVJbWdTZWxlY3Rpb25CeUlkcyhpZEltZ1RvUmVtb3ZlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvclJlbW92ZUltZyk7XG4gICAgICB9XG4gICAgKTtcblxuXG4gIH1cblxuICBzZWxlY3RJbWdDaG9zZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwaWN0dXJlc0xpc3RTZWxlY3RlZDogSW1nUGljdHVyZURUT1tdID0gW107XG4gICAgdGhpcy5waWN0dXJlc0xpc3QubWFwKGltZyA9PiB7XG4gICAgICBpZihpbWcuZGVsU2VsZWN0ZWQpIHtcbiAgICAgICAgaW1nLmRlbFNlbGVjdGVkID1mYWxzZTtcbiAgICAgICAgaW1nLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpbWcuc2VsZWN0ZWQpIHtcbiAgICAgICAgcGljdHVyZXNMaXN0U2VsZWN0ZWQucHVzaChpbWcpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbihwaWN0dXJlc0xpc3RTZWxlY3RlZCk7XG4gIH1cblxuICBkaXNwbGF5Q29uZmlybUltZ1N1cCgpe1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gdHJ1ZTtcbiAgfVxuXG4gIGNhbmNlbFN1cCgpIHtcbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0IHdoZW4gYSBpbWcgc2VsZWN0ZWQgaW4gb3JkZXIgdG8gZGVsZXRlXG4gICAqL1xuICBvblBpY3R1cmVzTGlzdENoYW5nZSgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICB9XG5cbiAgb25GaWx0ZXJzQ2hhbmdlKCkge1xuICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkZWZhdWx0IG51bWJlciBvZiBpbWcgcGVyIHBhZ2UgdG8gZGlzcGxheSBhdCB0aGUgaW5pdGlhbGlzYXRpb25cbiAgICogVGhpcyBudW1iZXIgaXMgYmV0d2VlbiAzMCBhbmQgNTBcbiAgICovXG4gIHByaXZhdGUgc2V0TmJJbWdUb0Rpc3BsYXkoKSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmltZ0xpYkNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgMzA7IC8vICsgMzBweCAtPiBsZWZ0ICsgcmlnaHQgbWFyZ2luXG4gICAgY29uc3Qgc2Nyb2xsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7XG5cbiAgICBjb25zdCBbbWF4SW1nV2lkdGhGYWN0b3IsIG1pbkltZ1dpZHRoRmFjdG9yXSA9IHRoaXMuZ2V0SW1nV2lkdGhGYWN0b3JzKCk7XG5cbiAgICBjb25zdCBtaW5JbWdXaWR0aCA9IE1hdGguZmxvb3IoY29udGFpbmVyV2lkdGggKiBtaW5JbWdXaWR0aEZhY3Rvcik7XG4gICAgY29uc3QgbWF4SW1nV2lkdGggPSBNYXRoLmNlaWwoKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAqIG1heEltZ1dpZHRoRmFjdG9yKTtcblxuICAgIHRoaXMubmJNYXhJbWdQZXJMaW5lID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAvIG1pbkltZ1dpZHRoKTtcbiAgICB0aGlzLm5iTWluSW1nUGVyTGluZSA9IE1hdGguZmxvb3IoIChjb250YWluZXJXaWR0aCArIHNjcm9sbFdpZHRoICkgLyBtYXhJbWdXaWR0aCk7XG5cbiAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5nZXRUb3RhbEltZ1BlclBhZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW1nV2lkdGhGYWN0b3JzKCk6IG51bWJlcltdIHtcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGxldCBtaW5XaWR0aDpudW1iZXIgPSAwO1xuICAgIGxldCBpbWdTaXplc0NvbmZpZzogbnVtYmVyW10gPSBbXTtcblxuICAgIGNvbnN0IGN1cnJlbnRJbWdXaWR0aENvbmZpZyA9IHRoaXMuZnVsbFNpemUgPyB0aGlzLmltZ0Z1bGxXaWR0aENvbmZpZyA6IHRoaXMuaW1nV2lkdGhDb25maWc7XG5cbiAgICBmb3IgKGNvbnN0IHdpZHRoQ29uZmlnIG9mIGN1cnJlbnRJbWdXaWR0aENvbmZpZykge1xuICAgICAgICBpZiAoIXdpZHRoQ29uZmlnLm1heCkge1xuICAgICAgICAgIGltZ1NpemVzQ29uZmlnID0gW3dpZHRoQ29uZmlnLmxhcmdlSW1nV2lkdGhGYWN0b3IsIHdpZHRoQ29uZmlnLnNtYWxsSW1nV2lkdGhGYWN0b3JdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaW5XaWR0aCA8IHNjcmVlbldpZHRoICYmIHNjcmVlbldpZHRoIDw9IHdpZHRoQ29uZmlnLm1heCkge1xuICAgICAgICAgIGltZ1NpemVzQ29uZmlnID0gW3dpZHRoQ29uZmlnLmxhcmdlSW1nV2lkdGhGYWN0b3IsIHdpZHRoQ29uZmlnLnNtYWxsSW1nV2lkdGhGYWN0b3JdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG1pbldpZHRoID0gd2lkdGhDb25maWcubWF4O1xuICAgIH1cbiAgICByZXR1cm4gaW1nU2l6ZXNDb25maWc7XG4gIH1cblxuICBwcml2YXRlIGdldFRvdGFsSW1nUGVyUGFnZSgpOiBudW1iZXIge1xuICAgIGxldCB0b3RhbCA9IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuXG4gICAgd2hpbGUgKHRvdGFsIDwgMzAgfHwgdG90YWwgJSB0aGlzLm5iTWF4SW1nUGVyTGluZSAhPT0gMCB8fCAgdG90YWwgJSB0aGlzLm5iTWluSW1nUGVyTGluZSAhPT0gMCkge1xuICAgICAgdG90YWwgKz0gdGhpcy5uYk1pbkltZ1BlckxpbmU7XG4gICAgfVxuICAgIHJldHVybiB0b3RhbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGFyYW1zKCkge1xuICAgIHRoaXMucGFyYW1zID0ge1xuICAgICAgbGltaXQ6IHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/IHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZS50b1N0cmluZygpIDogdGhpcy5wYWdlU2l6ZS50b1N0cmluZygpLFxuICAgICAgcGFnZTogdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2UudG9TdHJpbmcoKVxuICAgIH07XG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLnBhcmFtc1tcImRpc3BsYXlfbmFtZTpjb250YWluc1wiXSA9IHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0VmFyaWFibGVzKGxvYWRpbmdTdWNjZXNzOiBib29sZWFuKSB7XG4gICAgdGhpcy5uYkltZ1RvRGVsU2VsZWN0ZWQgPSAwO1xuICAgIHRoaXMuZGlzYWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5kZWxMaXN0SW1nTG9hZGVyID0gZmFsc2U7XG4gICAgdGhpcy5pbml0Q29tcG9uZW50ID0gZmFsc2U7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IGZhbHNlO1xuICAgIHRoaXMuZmFpbExvYWRlZCA9ICFsb2FkaW5nU3VjY2VzcztcbiAgICB0aGlzLm5iRmFrZUltZyA9IDA7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEltZ1NlbGVjdGVkICgpIHtcbiAgICBpZiAoIXRoaXMuaW1nU2VsZWN0ZWRMaXN0IHx8ICF0aGlzLmltZ1NlbGVjdGVkTGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpZEltZ1NsZWN0ZWRMaXN0OiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgdGhpcy5pbWdTZWxlY3RlZExpc3QuZm9yRWFjaChpbWcgPT5cbiAgICAgIGlkSW1nU2xlY3RlZExpc3QucHVzaChpbWcuaWRfZmlsZSlcbiAgICApO1xuXG4gICAgdGhpcy5waWN0dXJlc0xpc3QuZm9yRWFjaChwaWN0dXJlID0+IHtcbiAgICAgIGlmIChpZEltZ1NsZWN0ZWRMaXN0LmluZGV4T2YocGljdHVyZS5pZF9maWxlKSAhPT0gLTEpIHtcbiAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlQZXhlbHNMaWIgKCkge1xuICAgIHRoaXMuZGlzcGxheVBleGVsc1Jlc3VsdHMgPSB0cnVlO1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLm1zZ05vSW1nRm91bmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGltZyBsaXN0IGluIG9yZGVyIHRvIGZpbGwgcHJvcGVybHkgYWxsIHRoZSBsaW5lIG9mIGltYWdlcyBkaXNwbGF5ZWQgaW4gbW9zYWljLlxuICAgKiBPdGhlcndpc2UsIHRoZSBzcGFjZS1iZXR3ZWVuIGNzcyB3aWxsIGRvIGEgYmFkIGRpc3BsYXlcbiAgICovXG4gIHByaXZhdGUgY2FsY3VsTmJJbWdGYWtlKG5iSW1nRGlzcGxheWVkOiBudW1iZXIpIHtcbiAgICBjb25zdCBuYkltZ1BlckxpbmUgPSB0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnIHx8IHRoaXMudGFiRGlzcGxheWVkID09PSAnaW1nLXVwbG9hZCcgPyB0aGlzLm5iTWF4SW1nUGVyTGluZSA6IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuXG4gICAgaWYgKG5iSW1nRGlzcGxheWVkICUgbmJJbWdQZXJMaW5lICE9PSAwKSB7XG4gICAgICB0aGlzLm5iRmFrZUltZyA9IG5iSW1nUGVyTGluZSAtIG5iSW1nRGlzcGxheWVkICUgbmJJbWdQZXJMaW5lO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW1nIChpZF9maWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcEltZyhpZF9maWxlKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShcbiAgICAgIChwaWN0dXJlOiBJbWdQaWN0dXJlRFRPKSA9PiB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmltZ0FscmVhZHlFeGlzdChwaWN0dXJlLmlkX2ZpbGUpKSB7XG4gICAgICAgICAgLy8gY2hlY2sgdGhlIGltZyBpcyBub3QgYWxyZWFkeSBwcmVzZW50XG4gICAgICAgICAgdGhpcy5waWN0dXJlc0xpc3QudW5zaGlmdChwaWN0dXJlKTtcbiAgICAgICAgICB0aGlzLmxlbmd0aCArPSAxO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldEltZyk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW1nQWxyZWFkeUV4aXN0IChpZF9maWxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IGltZyBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgaWYgKGltZy5pZF9maWxlID09PSBpZF9maWxlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNldE5iSW1nVG9EZWxTZWxlY3RlZCAoKSB7XG4gICAgdGhpcy5uYkltZ1RvRGVsU2VsZWN0ZWQgPSB0aGlzLnBpY3R1cmVzTGlzdC5maWx0ZXIoaW1nID0+XG4gICAgICBpbWcuZGVsU2VsZWN0ZWQpLmxlbmd0aDtcblxuICAgIGlmICghdGhpcy5uYkltZ1RvRGVsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RXZlbnRzKCkge1xuICAgIC8vIEFkZCBhIHRpbWVyIHRvIHJldHJpZXZlIGltZyB3aGVuIHRoZSBzZWFyY2ggYmFyIG9yIHRoZSBwYWdpbmF0b3IgYXJlIHVzZWRcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5Q2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDQwMCkpIC8vIHdhaXQgMC41IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg4MDApKSAvLyB3YWl0IDAuOCBzZWMgYWZ0ZXIgdGhlIGxhc3QgZXZlbnQgYmVmb3JlIGVtaXR0aW5nIGxhc3QgZXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5fZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgLy8gUmVsb2FkIGltZyB3aGVuIGltZyBpcy9hcmUgcmVtb3ZlZFxuICAgIHRoaXMuaW1nUmVtb3ZlZEV2ZW50ID0gdGhpcy5pbWdFdmVudFNlcnZpY2UuZ2V0SW1nUmVtb3ZlZEV2ZW50TGlzdG5lcigpLnN1YnNjcmliZShpZF9maWxlID0+e1xuICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgaW1nIGZyb20gQ2FudmFcbiAgICB0aGlzLmltZ0FkZGVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdBZGRlZEV2ZW50TGlzdG5lcigpLnN1YnNjcmliZShpZF9maWxlID0+e1xuICAgICAgaWYgKGlkX2ZpbGUgJiYgIXRoaXMuaW1nQWxyZWFkeUV4aXN0KGlkX2ZpbGUpKSB7XG4gICAgICAgIHRoaXMuZ2V0SW1nKGlkX2ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25DaGFuZ2UgPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uQ2hhbmdlKCkuc3Vic2NyaWJlKGltZ1NlbGVjdGlvbiA9PntcbiAgICAgIGlmICh0aGlzLmxpc3REaXNwbGF5ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgaWRGaWxlTGlzdCA9IFtdO1xuICAgICAgaW1nU2VsZWN0aW9uLm1hcChpbWcgPT4gaWRGaWxlTGlzdC5wdXNoKGltZy5pZF9maWxlKSk7XG4gICAgICBmb3IgKGNvbnN0IHBpY3R1cmUgb2YgdGhpcy5waWN0dXJlc0xpc3QpIHtcbiAgICAgICAgaWYgKGlkRmlsZUxpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpID09PSAtMSkge1xuICAgICAgICAgIHBpY3R1cmUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW1nTGlzdCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IGZhbHNlO1xuICAgIHRoaXMuc2V0UGFyYW1zKCk7XG5cbiAgICB0aGlzLnJlZnJlc2hUb3RhbEltZ0xpc3QoKTtcblxuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nTGlzdCh0aGlzLnBhcmFtcykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGRhdGE6IEltZ1BpY3R1cmVzRFRPKSA9PiB7XG4gICAgICB0aGlzLmluaXRWYXJpYWJsZXModHJ1ZSk7XG4gICAgICBjb25zdCBuYkltZ0Rpc3BsYXllZCA9IGRhdGEuZGF0YS5sZW5ndGg7XG4gICAgICB0aGlzLmNhbGN1bE5iSW1nRmFrZShuYkltZ0Rpc3BsYXllZCk7XG4gICAgICB0aGlzLnBpY3R1cmVzTGlzdCA9IGRhdGEuZGF0YTtcbiAgICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2Uuc2V0UGljdHVyZXNMaXN0KHRoaXMucGljdHVyZXNMaXN0KTtcbiAgICAgIHRoaXMuc2VsZWN0SW1nU2VsZWN0ZWQoKTtcblxuICAgICAgdGhpcy5sZW5ndGggPSB0aGlzLmlzVG90YWxSZXRpZXZlZCA/IHRoaXMubGVuZ3RoIDogZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zID0gdGhpcy5pc1RvdGFsUmV0aWV2ZWQgPyB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zIDogZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPSAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID8gIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA6IHRoaXMucGFnZVNpemU7XG5cbiAgICAgIGlmICh0aGlzLm1heExlbmd0aENhcmRTaG93KSB7XG4gICAgICAgIHRoaXMucGljdHVyZXNMaXN0ID0gdGhpcy5waWN0dXJlc0xpc3Quc3BsaWNlKDAsIDgpO1xuICAgICAgfVxuXG4gICAgICAvLyBEaXNwbGF5IFBleGVscyBpZiBubyByZXN1bHRcbiAgICAgIGlmIChkYXRhLnRvdGFsUmVjb3JkcyA9PT0gMCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlQZXhlbHNMaWIoKTtcbiAgICAgIH1cblxuICAgIH0sXG4gICAgZXJyb3IgPT4ge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRBbGxJbWcpO1xuICAgICAgdGhpcy5pbml0VmFyaWFibGVzKGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFRvdGFsSW1nTGlzdCgpIHtcbiAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNUb3RhbFJldGlldmVkICYmIHNlYXJjaFZhbHVlID09PSB0aGlzLnByZXZpb3VzU2VhcmNoVmFsdWUpIHtcbiAgICAgIC8vIEtlZXAgY3VycmVudCB0b3RhbCByZXN1bHRcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzVG90YWxSZXRpZXZlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BUb3RhbEltZ0xpc3QodGhpcy5wYXJhbXMpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKFxuXG4gICAgICAoZGF0YTogSW1nUGljdHVyZXNEVE8pID0+IHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1NlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWU7XG4gICAgICAgIHRoaXMuaXNUb3RhbFJldGlldmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA9IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgfSxcblxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAvL3RoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0VG90YWxJbWcpO1xuICAgICAgICB0aGlzLmluaXRWYXJpYWJsZXMoZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgc3dpdGNoRGlzcGxheVdpbmRvd01vc2FpYygpIHtcbiAgICB0aGlzLnN3aXRjaERpc3BsYXlXaW5kb3cuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ0FkZGVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZS51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
492
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBZ0IsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVTVELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBd0k5QixZQUNVLFVBQTZCLEVBQzdCLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsb0JBQTBDO1FBTDFDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQXZJM0Msa0JBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQyxnQ0FBZ0M7UUFDdkQsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFakMsd0JBQW1CLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEUsZUFBZTtRQUNmLGlCQUFZLEdBQWlCO1lBQzNCLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsV0FBVyxFQUFFLEVBQUU7WUFDZixVQUFVLEVBQUUsQ0FBQztZQUNiLFlBQVksRUFBRSxDQUFDO1lBQ2YsV0FBVyxFQUFFLENBQUM7U0FDZixDQUFDO1FBR0YsbUJBQWMsR0FBVyxHQUFHLENBQUMsQ0FBQyxnREFBZ0Q7UUFDOUUsbUJBQWMsR0FBVyxHQUFHLENBQUMsQ0FBQyxnREFBZ0Q7UUFHOUUsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUV0Qix1QkFBa0IsR0FBTztZQUN2QjtnQkFDRSxHQUFHLEVBQUUsR0FBRztnQkFDUixtQkFBbUIsRUFBRyxDQUFDO2dCQUN2QixtQkFBbUIsRUFBRyxHQUFHO2FBQzFCO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsbUJBQW1CLEVBQUcsQ0FBQztnQkFDdkIsbUJBQW1CLEVBQUcsR0FBRzthQUMxQjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxHQUFHO2dCQUNSLG1CQUFtQixFQUFHLEdBQUc7Z0JBQ3pCLG1CQUFtQixFQUFHLE1BQU07YUFDN0I7WUFDRDtnQkFDRSxHQUFHLEVBQUUsSUFBSTtnQkFDVCxtQkFBbUIsRUFBRyxNQUFNO2dCQUM1QixtQkFBbUIsRUFBRyxHQUFHO2FBQzFCO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsbUJBQW1CLEVBQUcsSUFBSTtnQkFDMUIsbUJBQW1CLEVBQUcsS0FBSzthQUM1QjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxJQUFJO2dCQUNULG1CQUFtQixFQUFHLEdBQUc7Z0JBQ3pCLG1CQUFtQixFQUFHLE1BQU07YUFDN0I7WUFDRDtnQkFDRSxtQkFBbUIsRUFBRyxNQUFNO2dCQUM1QixtQkFBbUIsRUFBRyxHQUFHO2FBQzFCO1NBQ0YsQ0FBQztRQUVGLG1CQUFjLEdBQU87WUFDbkI7Z0JBQ0UsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsbUJBQW1CLEVBQUcsSUFBSTtnQkFDMUIsbUJBQW1CLEVBQUcsS0FBSzthQUM1QjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxJQUFJO2dCQUNULG1CQUFtQixFQUFHLE1BQU07Z0JBQzVCLG1CQUFtQixFQUFHLEdBQUc7YUFDMUI7WUFDRDtnQkFDRSxHQUFHLEVBQUUsSUFBSTtnQkFDVCxtQkFBbUIsRUFBRyxNQUFNO2dCQUM1QixtQkFBbUIsRUFBRyxNQUFNO2FBQzdCO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsbUJBQW1CLEVBQUcsSUFBSTtnQkFDMUIsbUJBQW1CLEVBQUcsTUFBTTthQUM3QjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxJQUFJO2dCQUNULG1CQUFtQixFQUFHLElBQUk7Z0JBQzFCLG1CQUFtQixFQUFHLElBQUk7YUFDM0I7WUFDRDtnQkFDRSxtQkFBbUIsRUFBRyxJQUFJO2dCQUMxQixtQkFBbUIsRUFBRyxLQUFLO2FBQzVCO1NBQ0YsQ0FBQztRQU1GLHVCQUFrQixHQUFvQixJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzVELG1CQUFjLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEQsaUJBQVksR0FBb0IsRUFBRSxDQUFDO1FBQ25DLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQUd0Qyx1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFZLEtBQUssQ0FBQyxDQUFDLDhDQUE4QztRQUN4RSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLHlCQUFvQixHQUFZLEtBQUssQ0FBQyxDQUFDLHdEQUF3RDtRQUUvRixrQkFBYSxHQUFXLEtBQUssQ0FBQztRQUc5QixtQkFBbUI7UUFDbkIsY0FBUyxHQUFVLENBQUMsQ0FBQztRQUNyQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLGFBQVEsR0FBVyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0I7UUFDdkMsb0JBQWUsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBS3ZDLG1CQUFjLEdBQUcsa0NBQWtDLENBQUM7UUFDcEQscUJBQWdCLEdBQUcsb0NBQW9DLENBQUM7UUFDeEQsZ0JBQVcsR0FBRyxvQ0FBb0MsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLDhCQUE4QixDQUFDO1FBQy9DLG1CQUFjLEdBQUcsbUNBQW1DLENBQUM7SUFRTCxDQUFDO0lBRXpELFFBQVE7UUFDTjs7WUFFSTtRQUNKLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQ7O1FBRUk7SUFFSixVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHVCQUF1QixDQUFDLFFBQWlCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFlLENBQUMsY0FBaUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFM0Isa0NBQWtDO1FBQ2xDLDJCQUEyQjtRQUMzQixNQUFNLGFBQWEsR0FBYSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUUsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFO2dCQUNuQixHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDbkIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUN4RCxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUNGLENBQUM7SUFHSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFDRCxNQUFNLG9CQUFvQixHQUFvQixFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsSUFBRyxHQUFHLENBQUMsV0FBVyxFQUFFO2dCQUNsQixHQUFHLENBQUMsV0FBVyxHQUFFLEtBQUssQ0FBQztnQkFDdkIsR0FBRyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDckI7WUFDRCxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxpQkFBaUI7UUFDdkIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDLGdDQUFnQztRQUM1RyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRWxFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRXpFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDLENBQUM7UUFDbkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBRW5GLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksUUFBUSxHQUFVLENBQUMsQ0FBQztRQUN4QixJQUFJLGNBQWMsR0FBYSxFQUFFLENBQUM7UUFFbEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFNUYsS0FBSyxNQUFNLFdBQVcsSUFBSSxxQkFBcUIsRUFBRTtZQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsY0FBYyxHQUFHLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUNwRixNQUFNO2FBQ1A7WUFDRCxJQUFJLFFBQVEsR0FBRyxXQUFXLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVELGNBQWMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDcEYsTUFBTTthQUNQO1lBQ0QsUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUM7U0FDOUI7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNsRyxPQUFPLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUVqQyxPQUFPLEtBQUssR0FBRyxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQyxJQUFLLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxLQUFLLENBQUMsRUFBRTtZQUM5RixLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUMvQjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLFNBQVM7O1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEtBQUssRUFBRSxPQUFBLElBQUksQ0FBQyxpQkFBaUIsMENBQUUsUUFBUSxPQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BKLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7U0FDL0MsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxjQUF1QjtRQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUN6RCxPQUFPO1NBQ1I7UUFFRCxNQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUV0QyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNqQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUNuQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNwRCxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZSxDQUFDLGNBQXNCO1FBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBRXpJLElBQUksY0FBYyxHQUFHLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLEdBQUcsY0FBYyxHQUFHLFlBQVksQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFTyxNQUFNLENBQUUsT0FBZTtRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN6RCxDQUFDLE9BQXNCLEVBQUUsRUFBRTtZQUV6QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzFDLHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxFQUNELEtBQUssQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBRSxPQUFlO1FBQ3RDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEtBQUssT0FBTyxFQUFFO2dCQUMzQixPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ3ZELEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLCtEQUErRDthQUN2RixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYzthQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsK0RBQStEO2FBQ3ZGLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILHFDQUFxQztRQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBRUgsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0RixJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDbEcsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixPQUFPO2FBQ1I7WUFDRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDdEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEQsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN2QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUM5QyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztpQkFDMUI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFvQixFQUFFLEVBQUU7WUFDM0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUV6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDckUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdkcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRW5ILDhCQUE4QjtZQUM5QixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFO2dCQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzthQUN6QjtRQUVILENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNwRSw0QkFBNEI7WUFDNUIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFFN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FFdEUsQ0FBQyxJQUFvQixFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQztZQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNuRCxDQUFDLEVBRUQsS0FBSyxDQUFDLEVBQUU7WUFDTixxREFBcUQ7WUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Q0FDRixDQUFBOztZQTlYdUIsaUJBQWlCO1lBQ1osZUFBZTtZQUNYLG1CQUFtQjtZQUMxQixZQUFZO1lBQ0wsbUJBQW1CO1lBQ2xCLG9CQUFvQjs7QUE1STNDO0lBQVIsS0FBSyxFQUFFOzsyREFBZ0M7QUFDL0I7SUFBUixLQUFLLEVBQUU7O3lEQUE0QjtBQUMzQjtJQUFSLEtBQUssRUFBRTs7cURBQW1CO0FBQ2xCO0lBQVIsS0FBSyxFQUFFOzs4REFBMkI7QUFDMUI7SUFBUixLQUFLLEVBQUU7O3dEQUFxQjtBQUNwQjtJQUFSLEtBQUssRUFBRTs7MERBQXVCO0FBQ3RCO0lBQVIsS0FBSyxFQUFFOzs0REFBeUI7QUFFakM7SUFEQyxNQUFNLEVBQUU7OEJBQ1ksWUFBWTtnRUFBK0I7QUFZbEM7SUFBN0IsU0FBUyxDQUFDLGlCQUFpQixDQUFDOzhCQUFtQixVQUFVOzREQUFDO0FBdEJoRCxtQkFBbUI7SUFSL0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGFBQWE7UUFDdkIsazJOQUEyQztRQUMzQyxVQUFVLEVBQUU7WUFDVixTQUFTO1lBQ1QsWUFBWTtTQUNiO0tBQ0YsQ0FBQztxQ0EwSXNCLGlCQUFpQjtRQUNaLGVBQWU7UUFDWCxtQkFBbUI7UUFDMUIsWUFBWTtRQUNMLG1CQUFtQjtRQUNsQixvQkFBb0I7R0E5SXpDLG1CQUFtQixDQXVnQi9CO1NBdmdCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPLCBJbWdQaWN0dXJlc0RUTywgUGFyYW1zSW1nTWFuYWdlckRUTyB9IGZyb20gJy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xuaW1wb3J0IHsgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbWdFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUvZmlsdGVycy10YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBpY3R1cmVOYW1lVXBkYXRlIH0gZnJvbSAnLi4vLi4vZHRvL3BpY3R1cmUtbmFtZS11cGRhdGUuZHRvJztcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBpbnNlcnRSZW1vdmUgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2luc2VydFJlbW92ZS9pbnNlcnQtcmVtb3ZlLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzdGF0ZURpc3BsYXllZCwgdGFiRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XG5pbXBvcnQgeyBSZW5hbWVQaWN0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlbmFtZS1waWN0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltYWdlcy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlcy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIGVhc2VJbk91dCxcbiAgICBpbnNlcnRSZW1vdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZXNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzdGF0ZURpc3BsYXllZDogc3RhdGVEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xuICBASW5wdXQoKSBmdWxsU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoQ2FyZFNob3c6IG51bWJlcjtcbiAgQElucHV0KCkgbmJSb3dUb1Nob3c6IG51bWJlcjtcbiAgQElucHV0KCkgbGlzdERpc3BsYXllZCA9IGZhbHNlOyAvLyBEaXNwbGF5IGZvcm1hdCBsaXN0IG9yIG1vc2FpY1xuICBASW5wdXQoKSBtdWx0aXBsZUltZ01vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIHN3aXRjaERpc3BsYXlXaW5kb3c6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBEYXRhIGZpbHRlcnNcbiAgdGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnMgPSB7XG4gICAgc29ydDogdW5kZWZpbmVkLFxuICAgIG9yZGVyOiB1bmRlZmluZWQsXG4gICAgc2VhcmNoVmFsdWU6ICcnLFxuICAgIHRvdGFsSXRlbXM6IDAsXG4gICAgaXRlbXNQZXJQYWdlOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnaW1nTGliQ29udGFpbmVyJykgaW1nTGliQ29udGFpbmVyIDogRWxlbWVudFJlZjtcbiAgd2lkdGhMYXJnZUNhcmQ6IG51bWJlciA9IDIxOTsgLy8gRGVmYXVsdCB2YWx1ZSBvZiBhIGNhcmQgd2lkdGggMTk5ICsgbWFyZ2luIDIwXG4gIHdpZHRoU21hbGxDYXJkOiBudW1iZXIgPSAxNjA7IC8vIERlZmF1bHQgdmFsdWUgb2YgYSBjYXJkIHdpZHRoIDE0MCArIG1hcmdpbiAyMFxuICBuYk1pbkltZ1BlckxpbmU6IG51bWJlcjtcbiAgbmJNYXhJbWdQZXJMaW5lOiBudW1iZXI7XG4gIG5iRmFrZUltZzogbnVtYmVyID0gMDtcblxuICBpbWdGdWxsV2lkdGhDb25maWc6YW55ID0gW1xuICAgIHtcbiAgICAgIG1heDogNDE5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDEsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC41XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDQ5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAxLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiA3MTksIC8vIHRhYmxldFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzNcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTAyMywgLy8gZGVza29wXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTU5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjIsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMTExXG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4xNjY2LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMVxuICAgIH1cbiAgXTtcblxuICBpbWdXaWR0aENvbmZpZzphbnkgPSBbXG4gICAge1xuICAgICAgbWF4OiAxMDI0LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTE5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4yXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEyOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTY2NlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNjY2XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDE1OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE0XG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH1cbiAgXTtcblxuICBpbWdTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcbiAgaW1nUmVtb3ZlZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGltZ0FkZGVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaW1nU2VsZWN0aW9uQ2hhbmdlOiBTdWJzY3JpcHRpb247XG4gIHNlYXJjaFF1ZXJ5Q2hhbmdlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBmaWx0ZXJzQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcGljdHVyZXNMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgc2F2ZVBpY3R1cmVMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgaW1nU2VsZWN0ZWRMaXN0OiBJbWdQaWN0dXJlRFRPW107XG4gIHNlYXJjaGVkVmFsdWU6IHN0cmluZzsgLy8gVmFsdWUgZnJvbSB0aGUgc2VhcmNoIGJhciBvciBpbWcgYWRkZWQgYnkgY2FudmFcbiAgbmJJbWdUb0RlbFNlbGVjdGVkOiBudW1iZXIgPSAwO1xuICBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7IC8vIFVzZSB0byBkaXNhYmxlIGFjdGlvbiBkdXJpbmcgc2VydmVyIHJlcXVlc3RcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNUb3RhbFJldGlldmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgaW5pdENvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gIGZhaWxMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzcGxheVBleGVsc1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHdoZW4gbm8gaW1nIGZpbmQgYnkgbmFtZSwgZGlzcGxheSBpbWcgZnJvbSBQZXhlbHNcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuICBjb25maXJtSW1nU3VwOmJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmlvdXNTZWFyY2hWYWx1ZTogc3RyaW5nO1xuXG4gIC8vIFBhZ2luYXRvciBQYXJhbXNcbiAgcGFnZUluZGV4OiBudW1iZXIgPTA7XG4gIGxlbmd0aDogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDMwOyAvLyBEZWZhdWx0IHZhbHVlXG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbMjUsIDUwLCAxMDAsIDI1MF07XG5cbiAgLy8gQXBpIEltZyBtYW5hZ2VyIFBhcmFtc1xuICBwYXJhbXM6UGFyYW1zSW1nTWFuYWdlckRUTztcblxuICBwcml2YXRlIGVycm9yR2V0QWxsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0QWxsSW1nJztcbiAgcHJpdmF0ZSBlcnJvckdldFRvdGFsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0VG90YWxJbWcnO1xuICBwcml2YXRlIGVycm9yR2V0SW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0Q2FudmFJbWcnO1xuICBwcml2YXRlIG1zZ05vSW1nRm91bmQgPSAnSW1nTWFuYWdlci5JbWdMaWIubm9JbWdGb3VuZCc7XG4gIHByaXZhdGUgZXJyb3JSZW1vdmVJbWcgPSAnSW1nTWFuYWdlci5JbWdMaXN0LmVycm9yUmVtb3ZlSW1nJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nRXZlbnRTZXJ2aWNlOiBJbWdFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuYW1lUGljdHVyZVNlcnZpY2U6IFJlbmFtZVBpY3R1cmVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvKiBpZiAodGhpcy5tYXhMZW5ndGhDYXJkU2hvdykge1xuICAgICAgdGhpcy5yZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpO1xuICAgIH0gKi9cbiAgICB0aGlzLnNldEV2ZW50cygpO1xuICAgIHRoaXMuaW1nU2VsZWN0ZWRMaXN0ID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0Rpc3BsYXkoKTtcbiAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgaWYgKCF0aGlzLnNhdmVQaWN0dXJlTGlzdCkge1xuICAgICAgdGhpcy5zYXZlUGljdHVyZUxpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdDtcbiAgICB9XG4gIH1cblxuICAvKiByZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpIHtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5zcGxpY2UoMCwgdGhpcy5tYXhMZW5ndGhDYXJkU2hvdyk7XG4gIH0gKi9cblxuICBnZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRydWUgOiBnbyB0byBsaXN0IGRpc3BsYXlcbiAgICogZmFsc2UgOiBnbyB0byBtb3NhaWMgZGlzcGxheVxuICAgKiBAcGFyYW0gYWN0aXZhdGVcbiAgICovXG4gIG9uU3dpdGNoRm9ybWF0RGlzcGxheWVkKGFjdGl2YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0RGlzcGxheWVkID0gYWN0aXZhdGU7XG4gICAgdGhpcy51c2VyU2V0dGluZ3NTZXJ2aWNlLnNldFVzZXJEaXNwbGF5UHJlZmVyZW5jZShhY3RpdmF0ZSk7XG4gICAgdGhpcy5pbWdFdmVudFNlcnZpY2UuZW1pdGxpc3REaXNwbGF5ZWRDaGFuZ2UoYWN0aXZhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bCB0aGUgbnVtYmVyIG9mIGltZyBzZWxlY3RlZCBmb3IgbWFzc2UgZGVsZXRpb25cbiAgICovXG4gIG9uSW1nU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG9uU2hvd0ltZ1VwbG9hZGVkKCkge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IG51bGw7XG4gICAgdGhpcy5zZWFyY2hlZFZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgfVxuXG4gIG9uUmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZDogUGljdHVyZU5hbWVVcGRhdGUpIHtcbiAgICBjb25zb2xlLmxvZygnb25SZW5hbWVQaWN0dXJlIHBpY3R1cmVSZW5hbWVkJywgcGljdHVyZVJlbmFtZWQpO1xuICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2Uub25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkKTtcbiAgfVxuXG4gIHJlbW92ZUxpc3RJbWcoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc2FibGUgPSB0cnVlO1xuICAgIHRoaXMuZGVsTGlzdEltZ0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG5cbiAgICAvLyBHZXQgdGhlIGlkIG9mIHRoZSBpbWcgdG8gcmVtb3ZlXG4gICAgLy8gQW5kIGFkZCBkZWxldGVkIHByb3BlcnR5XG4gICAgY29uc3QgaWRJbWdUb1JlbW92ZTogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKCBpbWcgPT4ge1xuICAgICAgaWYgKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsZXRlZCA9IHRydWU7XG4gICAgICAgIGlkSW1nVG9SZW1vdmUucHVzaChpbWcuaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIucmVtb3ZlTXVsdGlwbGVJbWcoaWRJbWdUb1JlbW92ZSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGlvbkJ5SWRzKGlkSW1nVG9SZW1vdmUpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yUmVtb3ZlSW1nKTtcbiAgICAgIH1cbiAgICApO1xuXG5cbiAgfVxuXG4gIHNlbGVjdEltZ0Nob3NlbigpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBpY3R1cmVzTGlzdFNlbGVjdGVkOiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5tYXAoaW1nID0+IHtcbiAgICAgIGlmKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsU2VsZWN0ZWQgPWZhbHNlO1xuICAgICAgICBpbWcuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGltZy5zZWxlY3RlZCkge1xuICAgICAgICBwaWN0dXJlc0xpc3RTZWxlY3RlZC5wdXNoKGltZyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0SW1nU2VsZWN0aW9uKHBpY3R1cmVzTGlzdFNlbGVjdGVkKTtcbiAgfVxuXG4gIGRpc3BsYXlDb25maXJtSW1nU3VwKCl7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSB0cnVlO1xuICB9XG5cbiAgY2FuY2VsU3VwKCkge1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXQgd2hlbiBhIGltZyBzZWxlY3RlZCBpbiBvcmRlciB0byBkZWxldGVcbiAgICovXG4gIG9uUGljdHVyZXNMaXN0Q2hhbmdlKCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gIH1cblxuICBvbkZpbHRlcnNDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRlZmF1bHQgbnVtYmVyIG9mIGltZyBwZXIgcGFnZSB0byBkaXNwbGF5IGF0IHRoZSBpbml0aWFsaXNhdGlvblxuICAgKiBUaGlzIG51bWJlciBpcyBiZXR3ZWVuIDMwIGFuZCA1MFxuICAgKi9cbiAgcHJpdmF0ZSBzZXROYkltZ1RvRGlzcGxheSgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuaW1nTGliQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAzMDsgLy8gKyAzMHB4IC0+IGxlZnQgKyByaWdodCBtYXJnaW5cbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtcblxuICAgIGNvbnN0IFttYXhJbWdXaWR0aEZhY3RvciwgbWluSW1nV2lkdGhGYWN0b3JdID0gdGhpcy5nZXRJbWdXaWR0aEZhY3RvcnMoKTtcblxuICAgIGNvbnN0IG1pbkltZ1dpZHRoID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAqIG1pbkltZ1dpZHRoRmFjdG9yKTtcbiAgICBjb25zdCBtYXhJbWdXaWR0aCA9IE1hdGguY2VpbCgoY29udGFpbmVyV2lkdGggKyBzY3JvbGxXaWR0aCApICogbWF4SW1nV2lkdGhGYWN0b3IpO1xuXG4gICAgdGhpcy5uYk1heEltZ1BlckxpbmUgPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoIC8gbWluSW1nV2lkdGgpO1xuICAgIHRoaXMubmJNaW5JbWdQZXJMaW5lID0gTWF0aC5mbG9vciggKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAvIG1heEltZ1dpZHRoKTtcblxuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmdldFRvdGFsSW1nUGVyUGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWdXaWR0aEZhY3RvcnMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1pbldpZHRoOm51bWJlciA9IDA7XG4gICAgbGV0IGltZ1NpemVzQ29uZmlnOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3QgY3VycmVudEltZ1dpZHRoQ29uZmlnID0gdGhpcy5mdWxsU2l6ZSA/IHRoaXMuaW1nRnVsbFdpZHRoQ29uZmlnIDogdGhpcy5pbWdXaWR0aENvbmZpZztcblxuICAgIGZvciAoY29uc3Qgd2lkdGhDb25maWcgb2YgY3VycmVudEltZ1dpZHRoQ29uZmlnKSB7XG4gICAgICAgIGlmICghd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbldpZHRoIDwgc2NyZWVuV2lkdGggJiYgc2NyZWVuV2lkdGggPD0gd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgbWluV2lkdGggPSB3aWR0aENvbmZpZy5tYXg7XG4gICAgfVxuICAgIHJldHVybiBpbWdTaXplc0NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG90YWxJbWdQZXJQYWdlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubmJSb3dUb1Nob3cpIHtcbiAgICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdmdWxsJyA/IHRoaXMubmJNaW5JbWdQZXJMaW5lIDogdGhpcy5uYk1heEltZ1BlckxpbmU7XG4gICAgICByZXR1cm4gbmJJbWdQZXJMaW5lICogdGhpcy5uYlJvd1RvU2hvdztcbiAgICB9XG5cbiAgICBsZXQgdG90YWwgPSB0aGlzLm5iTWluSW1nUGVyTGluZTtcblxuICAgIHdoaWxlICh0b3RhbCA8IDMwIHx8IHRvdGFsICUgdGhpcy5uYk1heEltZ1BlckxpbmUgIT09IDAgfHwgIHRvdGFsICUgdGhpcy5uYk1pbkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRvdGFsICs9IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuICAgIH1cbiAgICByZXR1cm4gdG90YWw7XG4gIH1cblxuICBwcml2YXRlIHNldFBhcmFtcygpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHtcbiAgICAgIGxpbWl0OiB0aGlzLm1heExlbmd0aENhcmRTaG93Py50b1N0cmluZygpIHx8ICh0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPyB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UudG9TdHJpbmcoKSA6IHRoaXMucGFnZVNpemUudG9TdHJpbmcoKSksXG4gICAgICBwYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5jdXJyZW50UGFnZS50b1N0cmluZygpXG4gICAgfTtcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMucGFyYW1zW1wiZGlzcGxheV9uYW1lOmNvbnRhaW5zXCJdID0gdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRWYXJpYWJsZXMobG9hZGluZ1N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IDA7XG4gICAgdGhpcy5kaXNhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5mYWlsTG9hZGVkID0gIWxvYWRpbmdTdWNjZXNzO1xuICAgIHRoaXMubmJGYWtlSW1nID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SW1nU2VsZWN0ZWQgKCkge1xuICAgIGlmICghdGhpcy5pbWdTZWxlY3RlZExpc3QgfHwgIXRoaXMuaW1nU2VsZWN0ZWRMaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlkSW1nU2xlY3RlZExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdC5mb3JFYWNoKGltZyA9PlxuICAgICAgaWRJbWdTbGVjdGVkTGlzdC5wdXNoKGltZy5pZF9maWxlKVxuICAgICk7XG5cbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKHBpY3R1cmUgPT4ge1xuICAgICAgaWYgKGlkSW1nU2xlY3RlZExpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpICE9PSAtMSkge1xuICAgICAgICBwaWN0dXJlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheVBleGVsc0xpYiAoKSB7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IHRydWU7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMubXNnTm9JbWdGb3VuZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW1nIGxpc3QgaW4gb3JkZXIgdG8gZmlsbCBwcm9wZXJseSBhbGwgdGhlIGxpbmUgb2YgaW1hZ2VzIGRpc3BsYXllZCBpbiBtb3NhaWMuXG4gICAqIE90aGVyd2lzZSwgdGhlIHNwYWNlLWJldHdlZW4gY3NzIHdpbGwgZG8gYSBiYWQgZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQ6IG51bWJlcikge1xuICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcgfHwgdGhpcy50YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJyA/IHRoaXMubmJNYXhJbWdQZXJMaW5lIDogdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICBpZiAobmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRoaXMubmJGYWtlSW1nID0gbmJJbWdQZXJMaW5lIC0gbmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWcgKGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nKGlkX2ZpbGUpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKFxuICAgICAgKHBpY3R1cmU6IEltZ1BpY3R1cmVEVE8pID0+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaW1nQWxyZWFkeUV4aXN0KHBpY3R1cmUuaWRfZmlsZSkpIHtcbiAgICAgICAgICAvLyBjaGVjayB0aGUgaW1nIGlzIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgICAgICB0aGlzLnBpY3R1cmVzTGlzdC51bnNoaWZ0KHBpY3R1cmUpO1xuICAgICAgICAgIHRoaXMubGVuZ3RoICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0SW1nKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbWdBbHJlYWR5RXhpc3QgKGlkX2ZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaW1nIG9mIHRoaXMucGljdHVyZXNMaXN0KSB7XG4gICAgICBpZiAoaW1nLmlkX2ZpbGUgPT09IGlkX2ZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmJJbWdUb0RlbFNlbGVjdGVkICgpIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IHRoaXMucGljdHVyZXNMaXN0LmZpbHRlcihpbWcgPT5cbiAgICAgIGltZy5kZWxTZWxlY3RlZCkubGVuZ3RoO1xuXG4gICAgaWYgKCF0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRFdmVudHMoKSB7XG4gICAgLy8gQWRkIGEgdGltZXIgdG8gcmV0cmlldmUgaW1nIHdoZW4gdGhlIHNlYXJjaCBiYXIgb3IgdGhlIHBhZ2luYXRvciBhcmUgdXNlZFxuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNDAwKSkgLy8gd2FpdCAwLjUgc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDgwMCkpIC8vIHdhaXQgMC44IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZWxvYWQgaW1nIHdoZW4gaW1nIGlzL2FyZSByZW1vdmVkXG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdSZW1vdmVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBpbWcgZnJvbSBDYW52YVxuICAgIHRoaXMuaW1nQWRkZWRFdmVudCA9IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmdldEltZ0FkZGVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICBpZiAoaWRfZmlsZSAmJiAhdGhpcy5pbWdBbHJlYWR5RXhpc3QoaWRfZmlsZSkpIHtcbiAgICAgICAgdGhpcy5nZXRJbWcoaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZSA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb25DaGFuZ2UoKS5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uID0+e1xuICAgICAgaWYgKHRoaXMubGlzdERpc3BsYXllZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZEZpbGVMaXN0ID0gW107XG4gICAgICBpbWdTZWxlY3Rpb24ubWFwKGltZyA9PiBpZEZpbGVMaXN0LnB1c2goaW1nLmlkX2ZpbGUpKTtcbiAgICAgIGZvciAoY29uc3QgcGljdHVyZSBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgICBpZiAoaWRGaWxlTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgPT09IC0xKSB7XG4gICAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXJhbXMoKTtcblxuICAgIHRoaXMucmVmcmVzaFRvdGFsSW1nTGlzdCgpO1xuXG4gICAgdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BJbWdMaXN0KHRoaXMucGFyYW1zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoZGF0YTogSW1nUGljdHVyZXNEVE8pID0+IHtcbiAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyh0cnVlKTtcbiAgICAgIGNvbnN0IG5iSW1nRGlzcGxheWVkID0gZGF0YS5kYXRhLmxlbmd0aDtcbiAgICAgIHRoaXMuY2FsY3VsTmJJbWdGYWtlKG5iSW1nRGlzcGxheWVkKTtcbiAgICAgIHRoaXMucGljdHVyZXNMaXN0ID0gZGF0YS5kYXRhO1xuICAgICAgdGhpcy5yZW5hbWVQaWN0dXJlU2VydmljZS5zZXRQaWN0dXJlc0xpc3QodGhpcy5waWN0dXJlc0xpc3QpO1xuICAgICAgdGhpcy5zZWxlY3RJbWdTZWxlY3RlZCgpO1xuXG4gICAgICB0aGlzLmxlbmd0aCA9IHRoaXMuaXNUb3RhbFJldGlldmVkID8gdGhpcy5sZW5ndGggOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSB0aGlzLmlzVG90YWxSZXRpZXZlZCA/IHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA9ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPyAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlIDogdGhpcy5wYWdlU2l6ZTtcblxuICAgICAgLy8gRGlzcGxheSBQZXhlbHMgaWYgbm8gcmVzdWx0XG4gICAgICBpZiAoZGF0YS50b3RhbFJlY29yZHMgPT09IDApIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5UGV4ZWxzTGliKCk7XG4gICAgICB9XG5cbiAgICB9LFxuICAgIGVycm9yID0+IHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0QWxsSW1nKTtcbiAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyhmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hUb3RhbEltZ0xpc3QoKSB7XG4gICAgY29uc3Qgc2VhcmNoVmFsdWUgPSB0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZTtcblxuICAgIGlmICh0aGlzLmlzVG90YWxSZXRpZXZlZCAmJiBzZWFyY2hWYWx1ZSA9PT0gdGhpcy5wcmV2aW91c1NlYXJjaFZhbHVlKSB7XG4gICAgICAvLyBLZWVwIGN1cnJlbnQgdG90YWwgcmVzdWx0XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1RvdGFsUmV0aWV2ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wVG90YWxJbWdMaXN0KHRoaXMucGFyYW1zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShcblxuICAgICAgKGRhdGE6IEltZ1BpY3R1cmVzRFRPKSA9PiB7XG4gICAgICAgIHRoaXMucHJldmlvdXNTZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlO1xuICAgICAgICB0aGlzLmlzVG90YWxSZXRpZXZlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIH0sXG5cbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgLy90aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldFRvdGFsSW1nKTtcbiAgICAgICAgdGhpcy5pbml0VmFyaWFibGVzKGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN3aXRjaERpc3BsYXlXaW5kb3dNb3NhaWMoKSB7XG4gICAgdGhpcy5zd2l0Y2hEaXNwbGF5V2luZG93LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5Q2hhbmdlZC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nUmVtb3ZlZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdBZGRlZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25DaGFuZ2UudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -121,11 +121,11 @@ __decorate([
|
|
|
121
121
|
ImgTabsComponent = __decorate([
|
|
122
122
|
Component({
|
|
123
123
|
selector: 'img-tabs',
|
|
124
|
-
template: "<div\n class=\"img-tabs\" [ngClass]=\"{'small': stateDisplayed === 'small'}\">\n <div class=\"wrapper-tabs\">\n <div\n class=\"tabs\"\n [ngClass]=\"\n {\n 'tabs--notWindow': stateDisplayed !== 'window',\n 'tabs--notDisplayed': stateDisplayed === 'window' && tabActive.value === tabs[3].value\n }\">\n\n <ul>\n <li class=\"is-active\" [ngClass]=\"{'is-active': tabActive.value === tabs[0].value}\" (click)=\"toggleTabs(tabs[0])\"><a>{{ tabs[0].name | translate }}</a></li>\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[1].value}\" (click)=\"toggleTabs(tabs[1])\"><a>{{ tabs[1].name | translate }}</a></li>\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[2].value}\" (click)=\"toggleTabs(tabs[2])\"><a>{{ tabs[2].name | translate }}</a></li>\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[3].value}\" *ngIf=\"editTab\"><a>{{ tabs[3].name | translate }}</a></li>\n </ul>\n <div\n class=\"img-tabs__canva\"\n [ngClass]=\"{'img-tabs__canva--window': stateDisplayed === 'window'}\">\n <canva-btn\n (showImgUploaded)=\"onShowImgUploaded()\"\n [stateDisplayed]=\"stateDisplayed\">\n </canva-btn>\n </div>\n </div>\n <div class=\"select-mobile-page\">\n <wac-select\n [(ngModel)]=\"tabActive\"\n name=\"tabs\"\n [items]=\"tabs\"\n ></wac-select>\n </div>\n </div>\n\n <!-- Upload section -->\n <div\n class=\"columns img-tabs__tabsFirst\"\n [ngClass]=\"{\n 'img-tabs__tabsFirst--small': stateDisplayed === 'small',\n 'img-tabs__tabsFirst--window': stateDisplayed === 'window'\n }\"\n *ngIf=\"tabActive.value === tabs[0].value\">\n <div class=\"column img-tabs__tabsFirst__upload\">\n <img-upload\n [stateDisplayed]=\"stateDisplayed\"\n (imgUploaded)=\"onImgUploaded($event)\"\n ></img-upload>\n </div>\n <div class=\"column img-tabs__tabsFirst__list\" [ngClass]=\"{\n 'img-tabs__tabsFirst__list--upload': imgUpload\n }\">\n <images-view\n *ngIf=\"!imgUpload\"\n [stateDisplayed]=\"stateDisplayed\"\n [listDisplayed]=\"false\"\n [multipleImgMode]=\"multipleImgMode\"\n [tabDisplayed]=\"tabActive.value\"\n [
|
|
124
|
+
template: "<div\n class=\"img-tabs\" [ngClass]=\"{'small': stateDisplayed === 'small'}\">\n <div class=\"wrapper-tabs\">\n <div\n class=\"tabs\"\n [ngClass]=\"\n {\n 'tabs--notWindow': stateDisplayed !== 'window',\n 'tabs--notDisplayed': stateDisplayed === 'window' && tabActive.value === tabs[3].value\n }\">\n\n <ul>\n <li class=\"is-active\" [ngClass]=\"{'is-active': tabActive.value === tabs[0].value}\" (click)=\"toggleTabs(tabs[0])\"><a>{{ tabs[0].name | translate }}</a></li>\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[1].value}\" (click)=\"toggleTabs(tabs[1])\"><a>{{ tabs[1].name | translate }}</a></li>\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[2].value}\" (click)=\"toggleTabs(tabs[2])\"><a>{{ tabs[2].name | translate }}</a></li>\n <li [ngClass]=\"{'is-active': tabActive.value === tabs[3].value}\" *ngIf=\"editTab\"><a>{{ tabs[3].name | translate }}</a></li>\n </ul>\n <div\n class=\"img-tabs__canva\"\n [ngClass]=\"{'img-tabs__canva--window': stateDisplayed === 'window'}\">\n <canva-btn\n (showImgUploaded)=\"onShowImgUploaded()\"\n [stateDisplayed]=\"stateDisplayed\">\n </canva-btn>\n </div>\n </div>\n <div class=\"select-mobile-page\">\n <wac-select\n [(ngModel)]=\"tabActive\"\n name=\"tabs\"\n [items]=\"tabs\"\n ></wac-select>\n </div>\n </div>\n\n <!-- Upload section -->\n <div\n class=\"columns img-tabs__tabsFirst\"\n [ngClass]=\"{\n 'img-tabs__tabsFirst--small': stateDisplayed === 'small',\n 'img-tabs__tabsFirst--window': stateDisplayed === 'window'\n }\"\n *ngIf=\"tabActive.value === tabs[0].value\">\n <div class=\"column img-tabs__tabsFirst__upload\">\n <img-upload\n [stateDisplayed]=\"stateDisplayed\"\n (imgUploaded)=\"onImgUploaded($event)\"\n ></img-upload>\n </div>\n <div class=\"column img-tabs__tabsFirst__list\" [ngClass]=\"{\n 'img-tabs__tabsFirst__list--upload': imgUpload\n }\">\n <images-view\n *ngIf=\"!imgUpload\"\n [stateDisplayed]=\"stateDisplayed\"\n [listDisplayed]=\"false\"\n [multipleImgMode]=\"multipleImgMode\"\n [tabDisplayed]=\"tabActive.value\"\n [nbRowToShow]=\"2\"\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\n [fullSize]=\"false\">\n </images-view>\n\n\n <div [hidden]=\"!imgUpload\">\n <upload-list\n #imgUploadedImg\n [stateDisplayed]=\"stateDisplayed\"\n [tabDisplayed]=\"tabActive.value\"\n [multipleImgMode]=\"multipleImgMode\"\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\n >\n </upload-list>\n </div>\n </div>\n </div>\n\n <!-- Images section -->\n <div class=\"columns img-tabs__tabsSecond\" *ngIf=\"tabActive.value === tabs[1].value\">\n <div class=\"column\">\n\n <images-view\n [stateDisplayed]=\"stateDisplayed\"\n [listDisplayed]=\"listDisplayed\"\n [multipleImgMode]=\"multipleImgMode\"\n [tabDisplayed]=\"tabActive.value\"\n (switchDisplayWindow)=\"switchDisplayWindowImgView()\"\n [fullSize]=\"true\">\n </images-view>\n\n </div>\n </div>\n\n <!-- Pexel img section -->\n <div class=\"columns img-tabs__tabsThird\" *ngIf=\"tabActive.value === tabs[2].value\">\n <div class=\"column\">\n <pexels-lib\n [stateDisplayed]=\"stateDisplayed\"\n (showImgUploaded)=\"onShowImgUploaded()\">\n </pexels-lib>\n </div>\n </div>\n\n <!--Edition section -->\n <div class=\"columns img-tabs__tabsEdit\" *ngIf=\"tabActive.value === tabs[3].value\">\n <div class=\"column\">\n <img-editor\n [stateDisplayed]=\"stateDisplayed\"\n [imgToEdit]=\"imgToEdit\"\n (editClosed)=\"onEditClosed($event)\">\n </img-editor>\n </div>\n </div>\n\n</div>\n"
|
|
125
125
|
}),
|
|
126
126
|
__metadata("design:paramtypes", [ImgEventService,
|
|
127
127
|
AlertService,
|
|
128
128
|
Router])
|
|
129
129
|
], ImgTabsComponent);
|
|
130
130
|
export { ImgTabsComponent };
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1nLXRhYnMvaW1nLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQU92QyxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQTZEM0IsWUFDVSxtQkFBb0MsRUFDcEMsWUFBMEIsRUFDMUIsS0FBYTtRQUZiLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBaUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQTdEdkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFJakMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHdEIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdoQyx3QkFBbUIsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRSxTQUFJLEdBQWlCO1lBQ25CO2dCQUNFLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLEtBQUssRUFBRSxZQUFZO2dCQUNuQixRQUFRLEVBQUUsSUFBSTtnQkFDZCxFQUFFLEVBQUUsQ0FBQzthQUNOO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLHdCQUF3Qjtn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bUI7OERBQUU7QUF0RGhDLGdCQUFnQjtJQUo1QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsVUFBVTtRQUNwQixvNUhBQXdDO0tBQ3pDLENBQUM7cUNBK0QrQixlQUFlO1FBQ3RCLFlBQVk7UUFDbkIsTUFBTTtHQWhFWixnQkFBZ0IsQ0ErRzVCO1NBL0dZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8gfSBmcm9tICcuLi8uLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcbmltcG9ydCB7IFVwbG9hZExpc3RDb21wb25lbnQgfSBmcm9tICcuLi91cGxvYWQtbGlzdC91cGxvYWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTndiU25hY2tiYXJDb25maWcgfSBmcm9tICdAd2l6aXNob3Avbmctd2l6aS1idWxtYSc7XG5pbXBvcnQgeyBzdGF0ZURpc3BsYXllZCB9IGZyb20gJy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi9zaGFyZWQvc2VsZWN0L3NlbGVjdC1pdGVtcy5kdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWctdGFicycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWctdGFicy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSW1nVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGVJbWdNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHN0YXRlRGlzcGxheWVkOiBzdGF0ZURpc3BsYXllZDtcbiAgQElucHV0KClcbiAgbGlzdERpc3BsYXllZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBpbWdNYW5hZ2VyQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBjdXJyZW50VGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBzd2l0Y2hEaXNwbGF5V2luZG93OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdGFiczogU2VsZWN0SXRlbVtdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdJbWdNYW5hZ2VyLlRhYnMuYWRkSW1nJyxcbiAgICAgIHZhbHVlOiAnaW1nLXVwbG9hZCcsXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgIGlkOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnSW1nTWFuYWdlci5UYWJzLmltZ0xpYicsXG4gICAgICB2YWx1ZTogJ2ltYWdlcy12aWV3JyxcbiAgICAgIGlkOiAxXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnSW1nTWFuYWdlci5UYWJzLmZyZWVJbWdMaWInLFxuICAgICAgdmFsdWU6ICdwZXhlbHMtbGliJyxcbiAgICAgIGlkOiAyXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnSW1nTWFuYWdlci5UYWJzLkVkaXRvcicsXG4gICAgICB2YWx1ZTogJ2ltZy1lZGl0aW9uJyxcbiAgICAgIGhpZGU6IHRydWUsXG4gICAgICBpZDogM1xuICAgIH1cbiAgXTtcblxuICB0YWJBY3RpdmU6IFNlbGVjdEl0ZW0gPSB0aGlzLnRhYnNbMF07XG5cbiAgLyogdGFiQWN0aXZlID0gJ2ltYWdlcy12aWV3JztcbiAgdGFiczogc3RyaW5nW10gPSBbJ2ltZy11cGxvYWQnLCAnaW1hZ2VzLXZpZXcnLCAncGV4ZWxzLWxpYicsICdpbWctZWRpdGlvbiddOyAqL1xuICBlZGl0VGFiID0gZmFsc2U7XG5cbiAgaW1nVG9FZGl0OiBJbWdQaWN0dXJlRFRPO1xuXG4gIGltZ1VwbG9hZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoICdpbWdVcGxvYWRlZEltZycgKVxuICBpbWdVcGxvYWRlZENvbXBvbmVudDogVXBsb2FkTGlzdENvbXBvbmVudCA7XG5cbiAgc25hY2tCYXJOZXdWZXJzaW9uQ29uZmlnOiBOd2JTbmFja2JhckNvbmZpZyA9IHtcbiAgICBtZXNzYWdlOiAnJyxcbiAgICBkdXJhdGlvbjogMzAwMFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW1nRXZlbnRFZGl0U2VydmljZTogSW1nRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyXG4gICAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmltZ0V2ZW50RWRpdFNlcnZpY2UuZ2V0SW1nVG9FZGl0RXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGltZ1RvRWRpdCA9PntcbiAgICAgIHRoaXMudGFiQWN0aXZlID0gdGhpcy50YWJzWzNdO1xuICAgICAgdGhpcy5pbWdUb0VkaXQgPSBpbWdUb0VkaXQ7XG4gICAgICB0aGlzLmVkaXRUYWIgPSB0cnVlO1xuICAgICAgdGhpcy5jdXJyZW50VGFiLmVtaXQodGhpcy50YWJzWzNdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVRhYnMoaXRlbTogU2VsZWN0SXRlbSkge1xuICAgIHRoaXMuaW1nVXBsb2FkID0gZmFsc2U7XG4gICAgdGhpcy5lZGl0VGFiID0gZmFsc2U7XG4gICAgdGhpcy50YWJBY3RpdmUgPSBpdGVtO1xuICB9XG5cbiAgb25JbWdVcGxvYWRlZChpbWc6IEltZ1BpY3R1cmVEVE9bXSkge1xuICAgIHRoaXMuaW1nVXBsb2FkID0gdHJ1ZTtcbiAgICB0aGlzLmltZ1VwbG9hZGVkQ29tcG9uZW50Lm9uSW1nVXBsb2FkZWQoaW1nKTtcbiAgfVxuXG4gIG9uRWRpdENsb3NlZChtc2dLZXk6IHN0cmluZykge1xuICAgIHRoaXMuZWRpdFRhYiA9IGZhbHNlO1xuICAgIHRoaXMudG9nZ2xlVGFicyh0aGlzLnRhYnNbMV0pO1xuICAgIGlmIChtc2dLZXkpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydChtc2dLZXkpO1xuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRUYWIuZW1pdCgnY2xvc2UnKTtcbiAgfVxuXG4gIG9uU2hvd0ltZ1VwbG9hZGVkKCkge1xuICAgIHRoaXMudGFiQWN0aXZlID0gdGhpcy50YWJzWzFdO1xuICB9XG5cbiAgc3dpdGNoRGlzcGxheVdpbmRvd0ltZ1ZpZXcoKSB7XG4gICAgdGhpcy5zd2l0Y2hEaXNwbGF5V2luZG93LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBzd2l0Y2hSb3V0ZXJMaW5rKGV2ZW50KSB7XG5cbiAgfVxuXG4gIG9uSW1nTWFuYWdlckNsb3NlZCgpIHtcbiAgICB0aGlzLmltZ01hbmFnZXJDbG9zZWQuZW1pdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -125,9 +125,9 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
125
125
|
this.errorRemoveImg = 'ImgManager.ImgList.errorRemoveImg';
|
|
126
126
|
}
|
|
127
127
|
ImagesViewComponent.prototype.ngOnInit = function () {
|
|
128
|
-
if (this.maxLengthCardShow) {
|
|
129
|
-
|
|
130
|
-
}
|
|
128
|
+
/* if (this.maxLengthCardShow) {
|
|
129
|
+
this.reducePictureListMaxLength();
|
|
130
|
+
} */
|
|
131
131
|
this.setEvents();
|
|
132
132
|
this.imgSelectedList = this.imgSelectionService.getImgSelection();
|
|
133
133
|
};
|
|
@@ -138,9 +138,9 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
138
138
|
this.savePictureList = this.picturesList;
|
|
139
139
|
}
|
|
140
140
|
};
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
141
|
+
/* reducePictureListMaxLength() {
|
|
142
|
+
this.picturesList.splice(0, this.maxLengthCardShow);
|
|
143
|
+
} */
|
|
144
144
|
ImagesViewComponent.prototype.getImgList = function () {
|
|
145
145
|
this.filtersChanged.next();
|
|
146
146
|
};
|
|
@@ -166,6 +166,7 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
166
166
|
this.getImgList();
|
|
167
167
|
};
|
|
168
168
|
ImagesViewComponent.prototype.onRenamePicture = function (pictureRenamed) {
|
|
169
|
+
console.log('onRenamePicture pictureRenamed', pictureRenamed);
|
|
169
170
|
this.renamePictureService.onRenamePicture(pictureRenamed);
|
|
170
171
|
};
|
|
171
172
|
ImagesViewComponent.prototype.removeListImg = function () {
|
|
@@ -272,6 +273,10 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
272
273
|
return imgSizesConfig;
|
|
273
274
|
};
|
|
274
275
|
ImagesViewComponent.prototype.getTotalImgPerPage = function () {
|
|
276
|
+
if (this.nbRowToShow) {
|
|
277
|
+
var nbImgPerLine = this.stateDisplayed === 'full' ? this.nbMinImgPerLine : this.nbMaxImgPerLine;
|
|
278
|
+
return nbImgPerLine * this.nbRowToShow;
|
|
279
|
+
}
|
|
275
280
|
var total = this.nbMinImgPerLine;
|
|
276
281
|
while (total < 30 || total % this.nbMaxImgPerLine !== 0 || total % this.nbMinImgPerLine !== 0) {
|
|
277
282
|
total += this.nbMinImgPerLine;
|
|
@@ -279,8 +284,9 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
279
284
|
return total;
|
|
280
285
|
};
|
|
281
286
|
ImagesViewComponent.prototype.setParams = function () {
|
|
287
|
+
var _a;
|
|
282
288
|
this.params = {
|
|
283
|
-
limit: this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage.toString() : this.pageSize.toString(),
|
|
289
|
+
limit: ((_a = this.maxLengthCardShow) === null || _a === void 0 ? void 0 : _a.toString()) || (this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage.toString() : this.pageSize.toString()),
|
|
284
290
|
page: this.tableFilters.currentPage.toString()
|
|
285
291
|
};
|
|
286
292
|
if (this.tableFilters.searchValue) {
|
|
@@ -427,9 +433,6 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
427
433
|
_this.length = _this.isTotalRetieved ? _this.length : data.totalRecords;
|
|
428
434
|
_this.tableFilters.totalItems = _this.isTotalRetieved ? _this.tableFilters.totalItems : data.totalRecords;
|
|
429
435
|
_this.tableFilters.itemsPerPage = _this.tableFilters.itemsPerPage ? _this.tableFilters.itemsPerPage : _this.pageSize;
|
|
430
|
-
if (_this.maxLengthCardShow) {
|
|
431
|
-
_this.picturesList = _this.picturesList.splice(0, 8);
|
|
432
|
-
}
|
|
433
436
|
// Display Pexels if no result
|
|
434
437
|
if (data.totalRecords === 0) {
|
|
435
438
|
_this.displayPexelsLib();
|
|
@@ -490,6 +493,10 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
490
493
|
Input(),
|
|
491
494
|
__metadata("design:type", Number)
|
|
492
495
|
], ImagesViewComponent.prototype, "maxLengthCardShow", void 0);
|
|
496
|
+
__decorate([
|
|
497
|
+
Input(),
|
|
498
|
+
__metadata("design:type", Number)
|
|
499
|
+
], ImagesViewComponent.prototype, "nbRowToShow", void 0);
|
|
493
500
|
__decorate([
|
|
494
501
|
Input(),
|
|
495
502
|
__metadata("design:type", Object)
|
|
@@ -525,4 +532,4 @@ var ImagesViewComponent = /** @class */ (function () {
|
|
|
525
532
|
return ImagesViewComponent;
|
|
526
533
|
}());
|
|
527
534
|
export { ImagesViewComponent };
|
|
528
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBZ0IsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVTVEO0lBdUlFLDZCQUNVLFVBQTZCLEVBQzdCLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsb0JBQTBDO1FBTDFDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlC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QkFDVCxZQUFZO2FBQ2I7U0FDRixDQUFDO3lDQXlJc0IsaUJBQWlCO1lBQ1osZUFBZTtZQUNYLG1CQUFtQjtZQUMxQixZQUFZO1lBQ0wsbUJBQW1CO1lBQ2xCLG9CQUFvQjtPQTdJekMsbUJBQW1CLENBb2dCL0I7SUFBRCwwQkFBQztDQUFBLEFBcGdCRCxJQW9nQkM7U0FwZ0JZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8sIEltZ1BpY3R1cmVzRFRPLCBQYXJhbXNJbWdNYW5hZ2VyRFRPIH0gZnJvbSAnLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEltZ0V2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXItc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS9maWx0ZXJzLXRhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGljdHVyZU5hbWVVcGRhdGUgfSBmcm9tICcuLi8uLi9kdG8vcGljdHVyZS1uYW1lLXVwZGF0ZS5kdG8nO1xuaW1wb3J0IHsgZWFzZUluT3V0IH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9lYXNlSW5PdXQvZWFzZS1pbi1vdXQuYW5pbWF0aW9uJztcbmltcG9ydCB7IGluc2VydFJlbW92ZSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvaW5zZXJ0UmVtb3ZlL2luc2VydC1yZW1vdmUuYW5pbWF0aW9uJztcbmltcG9ydCB7IHN0YXRlRGlzcGxheWVkLCB0YWJEaXNwbGF5ZWQgfSBmcm9tICcuLi8uLi9kdG8vZXhwb3J0LWR0b3MuYXBpJztcbmltcG9ydCB7IFJlbmFtZVBpY3R1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVuYW1lLXBpY3R1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1hZ2VzLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2VzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgZWFzZUluT3V0LFxuICAgIGluc2VydFJlbW92ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIHN0YXRlRGlzcGxheWVkOiBzdGF0ZURpc3BsYXllZDtcbiAgQElucHV0KCkgdGFiRGlzcGxheWVkOiB0YWJEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIGZ1bGxTaXplOiBib29sZWFuO1xuICBASW5wdXQoKSBtYXhMZW5ndGhDYXJkU2hvdzogbnVtYmVyO1xuICBASW5wdXQoKSBsaXN0RGlzcGxheWVkID0gZmFsc2U7IC8vIERpc3BsYXkgZm9ybWF0IGxpc3Qgb3IgbW9zYWljXG4gIEBJbnB1dCgpIG11bHRpcGxlSW1nTW9kZSA9IGZhbHNlO1xuICBAT3V0cHV0KClcbiAgc3dpdGNoRGlzcGxheVdpbmRvdzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8vIERhdGEgZmlsdGVyc1xuICB0YWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycyA9IHtcbiAgICBzb3J0OiB1bmRlZmluZWQsXG4gICAgb3JkZXI6IHVuZGVmaW5lZCxcbiAgICBzZWFyY2hWYWx1ZTogJycsXG4gICAgdG90YWxJdGVtczogMCxcbiAgICBpdGVtc1BlclBhZ2U6IDAsXG4gICAgY3VycmVudFBhZ2U6IDFcbiAgfTtcblxuICBAVmlld0NoaWxkKCdpbWdMaWJDb250YWluZXInKSBpbWdMaWJDb250YWluZXIgOiBFbGVtZW50UmVmO1xuICB3aWR0aExhcmdlQ2FyZDogbnVtYmVyID0gMjE5OyAvLyBEZWZhdWx0IHZhbHVlIG9mIGEgY2FyZCB3aWR0aCAxOTkgKyBtYXJnaW4gMjBcbiAgd2lkdGhTbWFsbENhcmQ6IG51bWJlciA9IDE2MDsgLy8gRGVmYXVsdCB2YWx1ZSBvZiBhIGNhcmQgd2lkdGggMTQwICsgbWFyZ2luIDIwXG4gIG5iTWluSW1nUGVyTGluZTogbnVtYmVyO1xuICBuYk1heEltZ1BlckxpbmU6IG51bWJlcjtcbiAgbmJGYWtlSW1nOiBudW1iZXIgPSAwO1xuXG4gIGltZ0Z1bGxXaWR0aENvbmZpZzphbnkgPSBbXG4gICAge1xuICAgICAgbWF4OiA0MTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogNDk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDEsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC41XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDcxOSwgLy8gdGFibGV0XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC41LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMzMzM1xuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMDIzLCAvLyBkZXNrb3BcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4yXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEzOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxNTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMixcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjExMTFcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjYsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xXG4gICAgfVxuICBdO1xuXG4gIGltZ1dpZHRoQ29uZmlnOmFueSA9IFtcbiAgICB7XG4gICAgICBtYXg6IDEwMjQsXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjJcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTI5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNjY2XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEzOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjZcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTU5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTRcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfVxuICBdO1xuXG4gIGltZ1N1YnNjcmliZTogU3Vic2NyaXB0aW9uO1xuICBpbWdSZW1vdmVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaW1nQWRkZWRFdmVudDogU3Vic2NyaXB0aW9uO1xuICBpbWdTZWxlY3Rpb25DaGFuZ2U6IFN1YnNjcmlwdGlvbjtcbiAgc2VhcmNoUXVlcnlDaGFuZ2VkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIGZpbHRlcnNDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwaWN0dXJlc0xpc3Q6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICBzYXZlUGljdHVyZUxpc3Q6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICBpbWdTZWxlY3RlZExpc3Q6IEltZ1BpY3R1cmVEVE9bXTtcbiAgc2VhcmNoZWRWYWx1ZTogc3RyaW5nOyAvLyBWYWx1ZSBmcm9tIHRoZSBzZWFyY2ggYmFyIG9yIGltZyBhZGRlZCBieSBjYW52YVxuICBuYkltZ1RvRGVsU2VsZWN0ZWQ6IG51bWJlciA9IDA7XG4gIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHRvIGRpc2FibGUgYWN0aW9uIGR1cmluZyBzZXJ2ZXIgcmVxdWVzdFxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpc1RvdGFsUmV0aWV2ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGVsTGlzdEltZ0xvYWRlciA9IGZhbHNlO1xuICBpbml0Q29tcG9uZW50OiBib29sZWFuID0gdHJ1ZTtcbiAgZmFpbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBkaXNwbGF5UGV4ZWxzUmVzdWx0czogYm9vbGVhbiA9IGZhbHNlOyAvLyBVc2Ugd2hlbiBubyBpbWcgZmluZCBieSBuYW1lLCBkaXNwbGF5IGltZyBmcm9tIFBleGVsc1xuICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIGNvbmZpcm1JbWdTdXA6Ym9vbGVhbiA9IGZhbHNlO1xuICBwcmV2aW91c1NlYXJjaFZhbHVlOiBzdHJpbmc7XG5cbiAgLy8gUGFnaW5hdG9yIFBhcmFtc1xuICBwYWdlSW5kZXg6IG51bWJlciA9MDtcbiAgbGVuZ3RoOiBudW1iZXIgPSAwO1xuICBwYWdlU2l6ZTogbnVtYmVyID0gMzA7IC8vIERlZmF1bHQgdmFsdWVcbiAgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsyNSwgNTAsIDEwMCwgMjUwXTtcblxuICAvLyBBcGkgSW1nIG1hbmFnZXIgUGFyYW1zXG4gIHBhcmFtczpQYXJhbXNJbWdNYW5hZ2VyRFRPO1xuXG4gIHByaXZhdGUgZXJyb3JHZXRBbGxJbWcgPSAnSW1nTWFuYWdlci5JbWdMaWIuZXJyb3JHZXRBbGxJbWcnO1xuICBwcml2YXRlIGVycm9yR2V0VG90YWxJbWcgPSAnSW1nTWFuYWdlci5JbWdMaWIuZXJyb3JHZXRUb3RhbEltZyc7XG4gIHByaXZhdGUgZXJyb3JHZXRJbWcgPSAnSW1nTWFuYWdlci5JbWdMaWIuZXJyb3JHZXRDYW52YUltZyc7XG4gIHByaXZhdGUgbXNnTm9JbWdGb3VuZCA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5ub0ltZ0ZvdW5kJztcbiAgcHJpdmF0ZSBlcnJvclJlbW92ZUltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpc3QuZXJyb3JSZW1vdmVJbWcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW1nTWFuYWdlcjogSW1nTWFuYWdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdFdmVudFNlcnZpY2U6IEltZ0V2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGltZ1NlbGVjdGlvblNlcnZpY2U6IEltZ1NlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXR0aW5nc1NlcnZpY2U6IFVzZXJTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5hbWVQaWN0dXJlU2VydmljZTogUmVuYW1lUGljdHVyZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1heExlbmd0aENhcmRTaG93KSB7XG4gICAgICB0aGlzLnJlZHVjZVBpY3R1cmVMaXN0TWF4TGVuZ3RoKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0RXZlbnRzKCk7XG4gICAgdGhpcy5pbWdTZWxlY3RlZExpc3QgPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGlzcGxheSgpO1xuICAgIHRoaXMuX2dldEltZ0xpc3QoKTtcbiAgICBpZiAoIXRoaXMuc2F2ZVBpY3R1cmVMaXN0KSB7XG4gICAgICB0aGlzLnNhdmVQaWN0dXJlTGlzdCA9IHRoaXMucGljdHVyZXNMaXN0O1xuICAgIH1cbiAgfVxuXG4gIHJlZHVjZVBpY3R1cmVMaXN0TWF4TGVuZ3RoKCkge1xuICAgIHRoaXMucGljdHVyZXNMaXN0LnNwbGljZSgwLCB0aGlzLm1heExlbmd0aENhcmRTaG93KTtcbiAgfVxuXG4gIGdldEltZ0xpc3QoKSB7XG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogdHJ1ZSA6IGdvIHRvIGxpc3QgZGlzcGxheVxuICAgKiBmYWxzZSA6IGdvIHRvIG1vc2FpYyBkaXNwbGF5XG4gICAqIEBwYXJhbSBhY3RpdmF0ZVxuICAgKi9cbiAgb25Td2l0Y2hGb3JtYXREaXNwbGF5ZWQoYWN0aXZhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxpc3REaXNwbGF5ZWQgPSBhY3RpdmF0ZTtcbiAgICB0aGlzLnVzZXJTZXR0aW5nc1NlcnZpY2Uuc2V0VXNlckRpc3BsYXlQcmVmZXJlbmNlKGFjdGl2YXRlKTtcbiAgICB0aGlzLmltZ0V2ZW50U2VydmljZS5lbWl0bGlzdERpc3BsYXllZENoYW5nZShhY3RpdmF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsIHRoZSBudW1iZXIgb2YgaW1nIHNlbGVjdGVkIGZvciBtYXNzZSBkZWxldGlvblxuICAgKi9cbiAgb25JbWdTZWxlY3RlZCgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICB9XG5cbiAgb25TaG93SW1nVXBsb2FkZWQoKSB7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gbnVsbDtcbiAgICB0aGlzLnNlYXJjaGVkVmFsdWUgPSBudWxsO1xuICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICB9XG5cbiAgb25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkOiBQaWN0dXJlTmFtZVVwZGF0ZSkge1xuICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2Uub25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkKTtcbiAgfVxuXG4gIHJlbW92ZUxpc3RJbWcoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc2FibGUgPSB0cnVlO1xuICAgIHRoaXMuZGVsTGlzdEltZ0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG5cbiAgICAvLyBHZXQgdGhlIGlkIG9mIHRoZSBpbWcgdG8gcmVtb3ZlXG4gICAgLy8gQW5kIGFkZCBkZWxldGVkIHByb3BlcnR5XG4gICAgY29uc3QgaWRJbWdUb1JlbW92ZTogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKCBpbWcgPT4ge1xuICAgICAgaWYgKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsZXRlZCA9IHRydWU7XG4gICAgICAgIGlkSW1nVG9SZW1vdmUucHVzaChpbWcuaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIucmVtb3ZlTXVsdGlwbGVJbWcoaWRJbWdUb1JlbW92ZSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGlvbkJ5SWRzKGlkSW1nVG9SZW1vdmUpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yUmVtb3ZlSW1nKTtcbiAgICAgIH1cbiAgICApO1xuXG5cbiAgfVxuXG4gIHNlbGVjdEltZ0Nob3NlbigpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBpY3R1cmVzTGlzdFNlbGVjdGVkOiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5tYXAoaW1nID0+IHtcbiAgICAgIGlmKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsU2VsZWN0ZWQgPWZhbHNlO1xuICAgICAgICBpbWcuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGltZy5zZWxlY3RlZCkge1xuICAgICAgICBwaWN0dXJlc0xpc3RTZWxlY3RlZC5wdXNoKGltZyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0SW1nU2VsZWN0aW9uKHBpY3R1cmVzTGlzdFNlbGVjdGVkKTtcbiAgfVxuXG4gIGRpc3BsYXlDb25maXJtSW1nU3VwKCl7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSB0cnVlO1xuICB9XG5cbiAgY2FuY2VsU3VwKCkge1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXQgd2hlbiBhIGltZyBzZWxlY3RlZCBpbiBvcmRlciB0byBkZWxldGVcbiAgICovXG4gIG9uUGljdHVyZXNMaXN0Q2hhbmdlKCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gIH1cblxuICBvbkZpbHRlcnNDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRlZmF1bHQgbnVtYmVyIG9mIGltZyBwZXIgcGFnZSB0byBkaXNwbGF5IGF0IHRoZSBpbml0aWFsaXNhdGlvblxuICAgKiBUaGlzIG51bWJlciBpcyBiZXR3ZWVuIDMwIGFuZCA1MFxuICAgKi9cbiAgcHJpdmF0ZSBzZXROYkltZ1RvRGlzcGxheSgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuaW1nTGliQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAzMDsgLy8gKyAzMHB4IC0+IGxlZnQgKyByaWdodCBtYXJnaW5cbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtcblxuICAgIGNvbnN0IFttYXhJbWdXaWR0aEZhY3RvciwgbWluSW1nV2lkdGhGYWN0b3JdID0gdGhpcy5nZXRJbWdXaWR0aEZhY3RvcnMoKTtcblxuICAgIGNvbnN0IG1pbkltZ1dpZHRoID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAqIG1pbkltZ1dpZHRoRmFjdG9yKTtcbiAgICBjb25zdCBtYXhJbWdXaWR0aCA9IE1hdGguY2VpbCgoY29udGFpbmVyV2lkdGggKyBzY3JvbGxXaWR0aCApICogbWF4SW1nV2lkdGhGYWN0b3IpO1xuXG4gICAgdGhpcy5uYk1heEltZ1BlckxpbmUgPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoIC8gbWluSW1nV2lkdGgpO1xuICAgIHRoaXMubmJNaW5JbWdQZXJMaW5lID0gTWF0aC5mbG9vciggKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAvIG1heEltZ1dpZHRoKTtcblxuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmdldFRvdGFsSW1nUGVyUGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWdXaWR0aEZhY3RvcnMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1pbldpZHRoOm51bWJlciA9IDA7XG4gICAgbGV0IGltZ1NpemVzQ29uZmlnOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3QgY3VycmVudEltZ1dpZHRoQ29uZmlnID0gdGhpcy5mdWxsU2l6ZSA/IHRoaXMuaW1nRnVsbFdpZHRoQ29uZmlnIDogdGhpcy5pbWdXaWR0aENvbmZpZztcblxuICAgIGZvciAoY29uc3Qgd2lkdGhDb25maWcgb2YgY3VycmVudEltZ1dpZHRoQ29uZmlnKSB7XG4gICAgICAgIGlmICghd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbldpZHRoIDwgc2NyZWVuV2lkdGggJiYgc2NyZWVuV2lkdGggPD0gd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgbWluV2lkdGggPSB3aWR0aENvbmZpZy5tYXg7XG4gICAgfVxuICAgIHJldHVybiBpbWdTaXplc0NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG90YWxJbWdQZXJQYWdlKCk6IG51bWJlciB7XG4gICAgbGV0IHRvdGFsID0gdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICB3aGlsZSAodG90YWwgPCAzMCB8fCB0b3RhbCAlIHRoaXMubmJNYXhJbWdQZXJMaW5lICE9PSAwIHx8ICB0b3RhbCAlIHRoaXMubmJNaW5JbWdQZXJMaW5lICE9PSAwKSB7XG4gICAgICB0b3RhbCArPSB0aGlzLm5iTWluSW1nUGVyTGluZTtcbiAgICB9XG4gICAgcmV0dXJuIHRvdGFsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYXJhbXMoKSB7XG4gICAgdGhpcy5wYXJhbXMgPSB7XG4gICAgICBsaW1pdDogdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID8gdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlLnRvU3RyaW5nKCkgOiB0aGlzLnBhZ2VTaXplLnRvU3RyaW5nKCksXG4gICAgICBwYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5jdXJyZW50UGFnZS50b1N0cmluZygpXG4gICAgfTtcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMucGFyYW1zW1wiZGlzcGxheV9uYW1lOmNvbnRhaW5zXCJdID0gdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRWYXJpYWJsZXMobG9hZGluZ1N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IDA7XG4gICAgdGhpcy5kaXNhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5mYWlsTG9hZGVkID0gIWxvYWRpbmdTdWNjZXNzO1xuICAgIHRoaXMubmJGYWtlSW1nID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SW1nU2VsZWN0ZWQgKCkge1xuICAgIGlmICghdGhpcy5pbWdTZWxlY3RlZExpc3QgfHwgIXRoaXMuaW1nU2VsZWN0ZWRMaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlkSW1nU2xlY3RlZExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdC5mb3JFYWNoKGltZyA9PlxuICAgICAgaWRJbWdTbGVjdGVkTGlzdC5wdXNoKGltZy5pZF9maWxlKVxuICAgICk7XG5cbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKHBpY3R1cmUgPT4ge1xuICAgICAgaWYgKGlkSW1nU2xlY3RlZExpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpICE9PSAtMSkge1xuICAgICAgICBwaWN0dXJlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheVBleGVsc0xpYiAoKSB7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IHRydWU7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMubXNnTm9JbWdGb3VuZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW1nIGxpc3QgaW4gb3JkZXIgdG8gZmlsbCBwcm9wZXJseSBhbGwgdGhlIGxpbmUgb2YgaW1hZ2VzIGRpc3BsYXllZCBpbiBtb3NhaWMuXG4gICAqIE90aGVyd2lzZSwgdGhlIHNwYWNlLWJldHdlZW4gY3NzIHdpbGwgZG8gYSBiYWQgZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQ6IG51bWJlcikge1xuICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcgfHwgdGhpcy50YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJyA/IHRoaXMubmJNYXhJbWdQZXJMaW5lIDogdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICBpZiAobmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRoaXMubmJGYWtlSW1nID0gbmJJbWdQZXJMaW5lIC0gbmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWcgKGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nKGlkX2ZpbGUpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKFxuICAgICAgKHBpY3R1cmU6IEltZ1BpY3R1cmVEVE8pID0+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaW1nQWxyZWFkeUV4aXN0KHBpY3R1cmUuaWRfZmlsZSkpIHtcbiAgICAgICAgICAvLyBjaGVjayB0aGUgaW1nIGlzIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgICAgICB0aGlzLnBpY3R1cmVzTGlzdC51bnNoaWZ0KHBpY3R1cmUpO1xuICAgICAgICAgIHRoaXMubGVuZ3RoICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0SW1nKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbWdBbHJlYWR5RXhpc3QgKGlkX2ZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaW1nIG9mIHRoaXMucGljdHVyZXNMaXN0KSB7XG4gICAgICBpZiAoaW1nLmlkX2ZpbGUgPT09IGlkX2ZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmJJbWdUb0RlbFNlbGVjdGVkICgpIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IHRoaXMucGljdHVyZXNMaXN0LmZpbHRlcihpbWcgPT5cbiAgICAgIGltZy5kZWxTZWxlY3RlZCkubGVuZ3RoO1xuXG4gICAgaWYgKCF0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRFdmVudHMoKSB7XG4gICAgLy8gQWRkIGEgdGltZXIgdG8gcmV0cmlldmUgaW1nIHdoZW4gdGhlIHNlYXJjaCBiYXIgb3IgdGhlIHBhZ2luYXRvciBhcmUgdXNlZFxuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNDAwKSkgLy8gd2FpdCAwLjUgc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDgwMCkpIC8vIHdhaXQgMC44IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZWxvYWQgaW1nIHdoZW4gaW1nIGlzL2FyZSByZW1vdmVkXG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdSZW1vdmVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBpbWcgZnJvbSBDYW52YVxuICAgIHRoaXMuaW1nQWRkZWRFdmVudCA9IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmdldEltZ0FkZGVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICBpZiAoaWRfZmlsZSAmJiAhdGhpcy5pbWdBbHJlYWR5RXhpc3QoaWRfZmlsZSkpIHtcbiAgICAgICAgdGhpcy5nZXRJbWcoaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZSA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb25DaGFuZ2UoKS5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uID0+e1xuICAgICAgaWYgKHRoaXMubGlzdERpc3BsYXllZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZEZpbGVMaXN0ID0gW107XG4gICAgICBpbWdTZWxlY3Rpb24ubWFwKGltZyA9PiBpZEZpbGVMaXN0LnB1c2goaW1nLmlkX2ZpbGUpKTtcbiAgICAgIGZvciAoY29uc3QgcGljdHVyZSBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgICBpZiAoaWRGaWxlTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgPT09IC0xKSB7XG4gICAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXJhbXMoKTtcblxuICAgIHRoaXMucmVmcmVzaFRvdGFsSW1nTGlzdCgpO1xuXG4gICAgdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BJbWdMaXN0KHRoaXMucGFyYW1zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoZGF0YTogSW1nUGljdHVyZXNEVE8pID0+IHtcbiAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyh0cnVlKTtcbiAgICAgIGNvbnN0IG5iSW1nRGlzcGxheWVkID0gZGF0YS5kYXRhLmxlbmd0aDtcbiAgICAgIHRoaXMuY2FsY3VsTmJJbWdGYWtlKG5iSW1nRGlzcGxheWVkKTtcbiAgICAgIHRoaXMucGljdHVyZXNMaXN0ID0gZGF0YS5kYXRhO1xuICAgICAgdGhpcy5yZW5hbWVQaWN0dXJlU2VydmljZS5zZXRQaWN0dXJlc0xpc3QodGhpcy5waWN0dXJlc0xpc3QpO1xuICAgICAgdGhpcy5zZWxlY3RJbWdTZWxlY3RlZCgpO1xuXG4gICAgICB0aGlzLmxlbmd0aCA9IHRoaXMuaXNUb3RhbFJldGlldmVkID8gdGhpcy5sZW5ndGggOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSB0aGlzLmlzVG90YWxSZXRpZXZlZCA/IHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA9ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPyAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlIDogdGhpcy5wYWdlU2l6ZTtcblxuICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoQ2FyZFNob3cpIHtcbiAgICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdC5zcGxpY2UoMCwgOCk7XG4gICAgICB9XG5cbiAgICAgIC8vIERpc3BsYXkgUGV4ZWxzIGlmIG5vIHJlc3VsdFxuICAgICAgaWYgKGRhdGEudG90YWxSZWNvcmRzID09PSAwKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVBleGVsc0xpYigpO1xuICAgICAgfVxuXG4gICAgfSxcbiAgICBlcnJvciA9PiB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldEFsbEltZyk7XG4gICAgICB0aGlzLmluaXRWYXJpYWJsZXMoZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoVG90YWxJbWdMaXN0KCkge1xuICAgIGNvbnN0IHNlYXJjaFZhbHVlID0gdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWU7XG5cbiAgICBpZiAodGhpcy5pc1RvdGFsUmV0aWV2ZWQgJiYgc2VhcmNoVmFsdWUgPT09IHRoaXMucHJldmlvdXNTZWFyY2hWYWx1ZSkge1xuICAgICAgLy8gS2VlcCBjdXJyZW50IHRvdGFsIHJlc3VsdFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNUb3RhbFJldGlldmVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcFRvdGFsSW1nTGlzdCh0aGlzLnBhcmFtcykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXG5cbiAgICAgIChkYXRhOiBJbWdQaWN0dXJlc0RUTykgPT4ge1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICAgICAgdGhpcy5pc1RvdGFsUmV0aWV2ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgICB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zID0gZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICB9LFxuXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIC8vdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRUb3RhbEltZyk7XG4gICAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyhmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBzd2l0Y2hEaXNwbGF5V2luZG93TW9zYWljKCkge1xuICAgIHRoaXMuc3dpdGNoRGlzcGxheVdpbmRvdy5lbWl0KHRydWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hRdWVyeUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ1JlbW92ZWRFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nQWRkZWRFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
535
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBZ0IsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVTVEO0lBd0lFLDZCQUNVLFVBQTZCLEVBQzdCLGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsb0JBQTBDO1FBTDFDLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlC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RSxhQUFhO1lBQ3ZCLGsyTkFBMkM7WUFDM0MsVUFBVSxFQUFFO2dCQUNWLFNBQVM7Z0JBQ1QsWUFBWTthQUNiO1NBQ0YsQ0FBQzt5Q0EwSXNCLGlCQUFpQjtZQUNaLGVBQWU7WUFDWCxtQkFBbUI7WUFDMUIsWUFBWTtZQUNMLG1CQUFtQjtZQUNsQixvQkFBb0I7T0E5SXpDLG1CQUFtQixDQXVnQi9CO0lBQUQsMEJBQUM7Q0FBQSxBQXZnQkQsSUF1Z0JDO1NBdmdCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPLCBJbWdQaWN0dXJlc0RUTywgUGFyYW1zSW1nTWFuYWdlckRUTyB9IGZyb20gJy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xuaW1wb3J0IHsgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbWdFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUvZmlsdGVycy10YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBpY3R1cmVOYW1lVXBkYXRlIH0gZnJvbSAnLi4vLi4vZHRvL3BpY3R1cmUtbmFtZS11cGRhdGUuZHRvJztcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBpbnNlcnRSZW1vdmUgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2luc2VydFJlbW92ZS9pbnNlcnQtcmVtb3ZlLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzdGF0ZURpc3BsYXllZCwgdGFiRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XG5pbXBvcnQgeyBSZW5hbWVQaWN0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlbmFtZS1waWN0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltYWdlcy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlcy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIGVhc2VJbk91dCxcbiAgICBpbnNlcnRSZW1vdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZXNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzdGF0ZURpc3BsYXllZDogc3RhdGVEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xuICBASW5wdXQoKSBmdWxsU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoQ2FyZFNob3c6IG51bWJlcjtcbiAgQElucHV0KCkgbmJSb3dUb1Nob3c6IG51bWJlcjtcbiAgQElucHV0KCkgbGlzdERpc3BsYXllZCA9IGZhbHNlOyAvLyBEaXNwbGF5IGZvcm1hdCBsaXN0IG9yIG1vc2FpY1xuICBASW5wdXQoKSBtdWx0aXBsZUltZ01vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIHN3aXRjaERpc3BsYXlXaW5kb3c6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBEYXRhIGZpbHRlcnNcbiAgdGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnMgPSB7XG4gICAgc29ydDogdW5kZWZpbmVkLFxuICAgIG9yZGVyOiB1bmRlZmluZWQsXG4gICAgc2VhcmNoVmFsdWU6ICcnLFxuICAgIHRvdGFsSXRlbXM6IDAsXG4gICAgaXRlbXNQZXJQYWdlOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnaW1nTGliQ29udGFpbmVyJykgaW1nTGliQ29udGFpbmVyIDogRWxlbWVudFJlZjtcbiAgd2lkdGhMYXJnZUNhcmQ6IG51bWJlciA9IDIxOTsgLy8gRGVmYXVsdCB2YWx1ZSBvZiBhIGNhcmQgd2lkdGggMTk5ICsgbWFyZ2luIDIwXG4gIHdpZHRoU21hbGxDYXJkOiBudW1iZXIgPSAxNjA7IC8vIERlZmF1bHQgdmFsdWUgb2YgYSBjYXJkIHdpZHRoIDE0MCArIG1hcmdpbiAyMFxuICBuYk1pbkltZ1BlckxpbmU6IG51bWJlcjtcbiAgbmJNYXhJbWdQZXJMaW5lOiBudW1iZXI7XG4gIG5iRmFrZUltZzogbnVtYmVyID0gMDtcblxuICBpbWdGdWxsV2lkdGhDb25maWc6YW55ID0gW1xuICAgIHtcbiAgICAgIG1heDogNDE5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDEsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC41XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDQ5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAxLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiA3MTksIC8vIHRhYmxldFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzNcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTAyMywgLy8gZGVza29wXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTU5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjIsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMTExXG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4xNjY2LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMVxuICAgIH1cbiAgXTtcblxuICBpbWdXaWR0aENvbmZpZzphbnkgPSBbXG4gICAge1xuICAgICAgbWF4OiAxMDI0LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTE5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4yXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEyOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTY2NlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNjY2XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDE1OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE0XG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH1cbiAgXTtcblxuICBpbWdTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcbiAgaW1nUmVtb3ZlZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGltZ0FkZGVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaW1nU2VsZWN0aW9uQ2hhbmdlOiBTdWJzY3JpcHRpb247XG4gIHNlYXJjaFF1ZXJ5Q2hhbmdlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBmaWx0ZXJzQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcGljdHVyZXNMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgc2F2ZVBpY3R1cmVMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgaW1nU2VsZWN0ZWRMaXN0OiBJbWdQaWN0dXJlRFRPW107XG4gIHNlYXJjaGVkVmFsdWU6IHN0cmluZzsgLy8gVmFsdWUgZnJvbSB0aGUgc2VhcmNoIGJhciBvciBpbWcgYWRkZWQgYnkgY2FudmFcbiAgbmJJbWdUb0RlbFNlbGVjdGVkOiBudW1iZXIgPSAwO1xuICBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7IC8vIFVzZSB0byBkaXNhYmxlIGFjdGlvbiBkdXJpbmcgc2VydmVyIHJlcXVlc3RcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNUb3RhbFJldGlldmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgaW5pdENvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gIGZhaWxMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzcGxheVBleGVsc1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHdoZW4gbm8gaW1nIGZpbmQgYnkgbmFtZSwgZGlzcGxheSBpbWcgZnJvbSBQZXhlbHNcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuICBjb25maXJtSW1nU3VwOmJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmlvdXNTZWFyY2hWYWx1ZTogc3RyaW5nO1xuXG4gIC8vIFBhZ2luYXRvciBQYXJhbXNcbiAgcGFnZUluZGV4OiBudW1iZXIgPTA7XG4gIGxlbmd0aDogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDMwOyAvLyBEZWZhdWx0IHZhbHVlXG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbMjUsIDUwLCAxMDAsIDI1MF07XG5cbiAgLy8gQXBpIEltZyBtYW5hZ2VyIFBhcmFtc1xuICBwYXJhbXM6UGFyYW1zSW1nTWFuYWdlckRUTztcblxuICBwcml2YXRlIGVycm9yR2V0QWxsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0QWxsSW1nJztcbiAgcHJpdmF0ZSBlcnJvckdldFRvdGFsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0VG90YWxJbWcnO1xuICBwcml2YXRlIGVycm9yR2V0SW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0Q2FudmFJbWcnO1xuICBwcml2YXRlIG1zZ05vSW1nRm91bmQgPSAnSW1nTWFuYWdlci5JbWdMaWIubm9JbWdGb3VuZCc7XG4gIHByaXZhdGUgZXJyb3JSZW1vdmVJbWcgPSAnSW1nTWFuYWdlci5JbWdMaXN0LmVycm9yUmVtb3ZlSW1nJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nRXZlbnRTZXJ2aWNlOiBJbWdFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuYW1lUGljdHVyZVNlcnZpY2U6IFJlbmFtZVBpY3R1cmVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvKiBpZiAodGhpcy5tYXhMZW5ndGhDYXJkU2hvdykge1xuICAgICAgdGhpcy5yZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpO1xuICAgIH0gKi9cbiAgICB0aGlzLnNldEV2ZW50cygpO1xuICAgIHRoaXMuaW1nU2VsZWN0ZWRMaXN0ID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0Rpc3BsYXkoKTtcbiAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgaWYgKCF0aGlzLnNhdmVQaWN0dXJlTGlzdCkge1xuICAgICAgdGhpcy5zYXZlUGljdHVyZUxpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdDtcbiAgICB9XG4gIH1cblxuICAvKiByZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpIHtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5zcGxpY2UoMCwgdGhpcy5tYXhMZW5ndGhDYXJkU2hvdyk7XG4gIH0gKi9cblxuICBnZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRydWUgOiBnbyB0byBsaXN0IGRpc3BsYXlcbiAgICogZmFsc2UgOiBnbyB0byBtb3NhaWMgZGlzcGxheVxuICAgKiBAcGFyYW0gYWN0aXZhdGVcbiAgICovXG4gIG9uU3dpdGNoRm9ybWF0RGlzcGxheWVkKGFjdGl2YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0RGlzcGxheWVkID0gYWN0aXZhdGU7XG4gICAgdGhpcy51c2VyU2V0dGluZ3NTZXJ2aWNlLnNldFVzZXJEaXNwbGF5UHJlZmVyZW5jZShhY3RpdmF0ZSk7XG4gICAgdGhpcy5pbWdFdmVudFNlcnZpY2UuZW1pdGxpc3REaXNwbGF5ZWRDaGFuZ2UoYWN0aXZhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bCB0aGUgbnVtYmVyIG9mIGltZyBzZWxlY3RlZCBmb3IgbWFzc2UgZGVsZXRpb25cbiAgICovXG4gIG9uSW1nU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG9uU2hvd0ltZ1VwbG9hZGVkKCkge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IG51bGw7XG4gICAgdGhpcy5zZWFyY2hlZFZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgfVxuXG4gIG9uUmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZDogUGljdHVyZU5hbWVVcGRhdGUpIHtcbiAgICBjb25zb2xlLmxvZygnb25SZW5hbWVQaWN0dXJlIHBpY3R1cmVSZW5hbWVkJywgcGljdHVyZVJlbmFtZWQpO1xuICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2Uub25SZW5hbWVQaWN0dXJlKHBpY3R1cmVSZW5hbWVkKTtcbiAgfVxuXG4gIHJlbW92ZUxpc3RJbWcoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRpc2FibGUgPSB0cnVlO1xuICAgIHRoaXMuZGVsTGlzdEltZ0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG5cbiAgICAvLyBHZXQgdGhlIGlkIG9mIHRoZSBpbWcgdG8gcmVtb3ZlXG4gICAgLy8gQW5kIGFkZCBkZWxldGVkIHByb3BlcnR5XG4gICAgY29uc3QgaWRJbWdUb1JlbW92ZTogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKCBpbWcgPT4ge1xuICAgICAgaWYgKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsZXRlZCA9IHRydWU7XG4gICAgICAgIGlkSW1nVG9SZW1vdmUucHVzaChpbWcuaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIucmVtb3ZlTXVsdGlwbGVJbWcoaWRJbWdUb1JlbW92ZSkuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICAgICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnJlbW92ZUltZ1NlbGVjdGlvbkJ5SWRzKGlkSW1nVG9SZW1vdmUpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yUmVtb3ZlSW1nKTtcbiAgICAgIH1cbiAgICApO1xuXG5cbiAgfVxuXG4gIHNlbGVjdEltZ0Nob3NlbigpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBpY3R1cmVzTGlzdFNlbGVjdGVkOiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5tYXAoaW1nID0+IHtcbiAgICAgIGlmKGltZy5kZWxTZWxlY3RlZCkge1xuICAgICAgICBpbWcuZGVsU2VsZWN0ZWQgPWZhbHNlO1xuICAgICAgICBpbWcuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGltZy5zZWxlY3RlZCkge1xuICAgICAgICBwaWN0dXJlc0xpc3RTZWxlY3RlZC5wdXNoKGltZyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2Uuc2V0SW1nU2VsZWN0aW9uKHBpY3R1cmVzTGlzdFNlbGVjdGVkKTtcbiAgfVxuXG4gIGRpc3BsYXlDb25maXJtSW1nU3VwKCl7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSB0cnVlO1xuICB9XG5cbiAgY2FuY2VsU3VwKCkge1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXQgd2hlbiBhIGltZyBzZWxlY3RlZCBpbiBvcmRlciB0byBkZWxldGVcbiAgICovXG4gIG9uUGljdHVyZXNMaXN0Q2hhbmdlKCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gIH1cblxuICBvbkZpbHRlcnNDaGFuZ2UoKSB7XG4gICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGRlZmF1bHQgbnVtYmVyIG9mIGltZyBwZXIgcGFnZSB0byBkaXNwbGF5IGF0IHRoZSBpbml0aWFsaXNhdGlvblxuICAgKiBUaGlzIG51bWJlciBpcyBiZXR3ZWVuIDMwIGFuZCA1MFxuICAgKi9cbiAgcHJpdmF0ZSBzZXROYkltZ1RvRGlzcGxheSgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuaW1nTGliQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAzMDsgLy8gKyAzMHB4IC0+IGxlZnQgKyByaWdodCBtYXJnaW5cbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtcblxuICAgIGNvbnN0IFttYXhJbWdXaWR0aEZhY3RvciwgbWluSW1nV2lkdGhGYWN0b3JdID0gdGhpcy5nZXRJbWdXaWR0aEZhY3RvcnMoKTtcblxuICAgIGNvbnN0IG1pbkltZ1dpZHRoID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAqIG1pbkltZ1dpZHRoRmFjdG9yKTtcbiAgICBjb25zdCBtYXhJbWdXaWR0aCA9IE1hdGguY2VpbCgoY29udGFpbmVyV2lkdGggKyBzY3JvbGxXaWR0aCApICogbWF4SW1nV2lkdGhGYWN0b3IpO1xuXG4gICAgdGhpcy5uYk1heEltZ1BlckxpbmUgPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoIC8gbWluSW1nV2lkdGgpO1xuICAgIHRoaXMubmJNaW5JbWdQZXJMaW5lID0gTWF0aC5mbG9vciggKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAvIG1heEltZ1dpZHRoKTtcblxuICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmdldFRvdGFsSW1nUGVyUGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWdXaWR0aEZhY3RvcnMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1pbldpZHRoOm51bWJlciA9IDA7XG4gICAgbGV0IGltZ1NpemVzQ29uZmlnOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgY29uc3QgY3VycmVudEltZ1dpZHRoQ29uZmlnID0gdGhpcy5mdWxsU2l6ZSA/IHRoaXMuaW1nRnVsbFdpZHRoQ29uZmlnIDogdGhpcy5pbWdXaWR0aENvbmZpZztcblxuICAgIGZvciAoY29uc3Qgd2lkdGhDb25maWcgb2YgY3VycmVudEltZ1dpZHRoQ29uZmlnKSB7XG4gICAgICAgIGlmICghd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbldpZHRoIDwgc2NyZWVuV2lkdGggJiYgc2NyZWVuV2lkdGggPD0gd2lkdGhDb25maWcubWF4KSB7XG4gICAgICAgICAgaW1nU2l6ZXNDb25maWcgPSBbd2lkdGhDb25maWcubGFyZ2VJbWdXaWR0aEZhY3Rvciwgd2lkdGhDb25maWcuc21hbGxJbWdXaWR0aEZhY3Rvcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgbWluV2lkdGggPSB3aWR0aENvbmZpZy5tYXg7XG4gICAgfVxuICAgIHJldHVybiBpbWdTaXplc0NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VG90YWxJbWdQZXJQYWdlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubmJSb3dUb1Nob3cpIHtcbiAgICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdmdWxsJyA/IHRoaXMubmJNaW5JbWdQZXJMaW5lIDogdGhpcy5uYk1heEltZ1BlckxpbmU7XG4gICAgICByZXR1cm4gbmJJbWdQZXJMaW5lICogdGhpcy5uYlJvd1RvU2hvdztcbiAgICB9XG5cbiAgICBsZXQgdG90YWwgPSB0aGlzLm5iTWluSW1nUGVyTGluZTtcblxuICAgIHdoaWxlICh0b3RhbCA8IDMwIHx8IHRvdGFsICUgdGhpcy5uYk1heEltZ1BlckxpbmUgIT09IDAgfHwgIHRvdGFsICUgdGhpcy5uYk1pbkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRvdGFsICs9IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuICAgIH1cbiAgICByZXR1cm4gdG90YWw7XG4gIH1cblxuICBwcml2YXRlIHNldFBhcmFtcygpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHtcbiAgICAgIGxpbWl0OiB0aGlzLm1heExlbmd0aENhcmRTaG93Py50b1N0cmluZygpIHx8ICh0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPyB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UudG9TdHJpbmcoKSA6IHRoaXMucGFnZVNpemUudG9TdHJpbmcoKSksXG4gICAgICBwYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5jdXJyZW50UGFnZS50b1N0cmluZygpXG4gICAgfTtcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMucGFyYW1zW1wiZGlzcGxheV9uYW1lOmNvbnRhaW5zXCJdID0gdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRWYXJpYWJsZXMobG9hZGluZ1N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IDA7XG4gICAgdGhpcy5kaXNhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5mYWlsTG9hZGVkID0gIWxvYWRpbmdTdWNjZXNzO1xuICAgIHRoaXMubmJGYWtlSW1nID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SW1nU2VsZWN0ZWQgKCkge1xuICAgIGlmICghdGhpcy5pbWdTZWxlY3RlZExpc3QgfHwgIXRoaXMuaW1nU2VsZWN0ZWRMaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlkSW1nU2xlY3RlZExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdC5mb3JFYWNoKGltZyA9PlxuICAgICAgaWRJbWdTbGVjdGVkTGlzdC5wdXNoKGltZy5pZF9maWxlKVxuICAgICk7XG5cbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKHBpY3R1cmUgPT4ge1xuICAgICAgaWYgKGlkSW1nU2xlY3RlZExpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpICE9PSAtMSkge1xuICAgICAgICBwaWN0dXJlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheVBleGVsc0xpYiAoKSB7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IHRydWU7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMubXNnTm9JbWdGb3VuZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW1nIGxpc3QgaW4gb3JkZXIgdG8gZmlsbCBwcm9wZXJseSBhbGwgdGhlIGxpbmUgb2YgaW1hZ2VzIGRpc3BsYXllZCBpbiBtb3NhaWMuXG4gICAqIE90aGVyd2lzZSwgdGhlIHNwYWNlLWJldHdlZW4gY3NzIHdpbGwgZG8gYSBiYWQgZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQ6IG51bWJlcikge1xuICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcgfHwgdGhpcy50YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJyA/IHRoaXMubmJNYXhJbWdQZXJMaW5lIDogdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICBpZiAobmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRoaXMubmJGYWtlSW1nID0gbmJJbWdQZXJMaW5lIC0gbmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWcgKGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nKGlkX2ZpbGUpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKFxuICAgICAgKHBpY3R1cmU6IEltZ1BpY3R1cmVEVE8pID0+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaW1nQWxyZWFkeUV4aXN0KHBpY3R1cmUuaWRfZmlsZSkpIHtcbiAgICAgICAgICAvLyBjaGVjayB0aGUgaW1nIGlzIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgICAgICB0aGlzLnBpY3R1cmVzTGlzdC51bnNoaWZ0KHBpY3R1cmUpO1xuICAgICAgICAgIHRoaXMubGVuZ3RoICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0SW1nKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbWdBbHJlYWR5RXhpc3QgKGlkX2ZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaW1nIG9mIHRoaXMucGljdHVyZXNMaXN0KSB7XG4gICAgICBpZiAoaW1nLmlkX2ZpbGUgPT09IGlkX2ZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmJJbWdUb0RlbFNlbGVjdGVkICgpIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IHRoaXMucGljdHVyZXNMaXN0LmZpbHRlcihpbWcgPT5cbiAgICAgIGltZy5kZWxTZWxlY3RlZCkubGVuZ3RoO1xuXG4gICAgaWYgKCF0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRFdmVudHMoKSB7XG4gICAgLy8gQWRkIGEgdGltZXIgdG8gcmV0cmlldmUgaW1nIHdoZW4gdGhlIHNlYXJjaCBiYXIgb3IgdGhlIHBhZ2luYXRvciBhcmUgdXNlZFxuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNDAwKSkgLy8gd2FpdCAwLjUgc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDgwMCkpIC8vIHdhaXQgMC44IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZWxvYWQgaW1nIHdoZW4gaW1nIGlzL2FyZSByZW1vdmVkXG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdSZW1vdmVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBpbWcgZnJvbSBDYW52YVxuICAgIHRoaXMuaW1nQWRkZWRFdmVudCA9IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmdldEltZ0FkZGVkRXZlbnRMaXN0bmVyKCkuc3Vic2NyaWJlKGlkX2ZpbGUgPT57XG4gICAgICBpZiAoaWRfZmlsZSAmJiAhdGhpcy5pbWdBbHJlYWR5RXhpc3QoaWRfZmlsZSkpIHtcbiAgICAgICAgdGhpcy5nZXRJbWcoaWRfZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZSA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb25DaGFuZ2UoKS5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uID0+e1xuICAgICAgaWYgKHRoaXMubGlzdERpc3BsYXllZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZEZpbGVMaXN0ID0gW107XG4gICAgICBpbWdTZWxlY3Rpb24ubWFwKGltZyA9PiBpZEZpbGVMaXN0LnB1c2goaW1nLmlkX2ZpbGUpKTtcbiAgICAgIGZvciAoY29uc3QgcGljdHVyZSBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgICBpZiAoaWRGaWxlTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgPT09IC0xKSB7XG4gICAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXJhbXMoKTtcblxuICAgIHRoaXMucmVmcmVzaFRvdGFsSW1nTGlzdCgpO1xuXG4gICAgdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BJbWdMaXN0KHRoaXMucGFyYW1zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoZGF0YTogSW1nUGljdHVyZXNEVE8pID0+IHtcbiAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyh0cnVlKTtcbiAgICAgIGNvbnN0IG5iSW1nRGlzcGxheWVkID0gZGF0YS5kYXRhLmxlbmd0aDtcbiAgICAgIHRoaXMuY2FsY3VsTmJJbWdGYWtlKG5iSW1nRGlzcGxheWVkKTtcbiAgICAgIHRoaXMucGljdHVyZXNMaXN0ID0gZGF0YS5kYXRhO1xuICAgICAgdGhpcy5yZW5hbWVQaWN0dXJlU2VydmljZS5zZXRQaWN0dXJlc0xpc3QodGhpcy5waWN0dXJlc0xpc3QpO1xuICAgICAgdGhpcy5zZWxlY3RJbWdTZWxlY3RlZCgpO1xuXG4gICAgICB0aGlzLmxlbmd0aCA9IHRoaXMuaXNUb3RhbFJldGlldmVkID8gdGhpcy5sZW5ndGggOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSB0aGlzLmlzVG90YWxSZXRpZXZlZCA/IHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA9ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPyAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlIDogdGhpcy5wYWdlU2l6ZTtcblxuICAgICAgLy8gRGlzcGxheSBQZXhlbHMgaWYgbm8gcmVzdWx0XG4gICAgICBpZiAoZGF0YS50b3RhbFJlY29yZHMgPT09IDApIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5UGV4ZWxzTGliKCk7XG4gICAgICB9XG5cbiAgICB9LFxuICAgIGVycm9yID0+IHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0QWxsSW1nKTtcbiAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyhmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hUb3RhbEltZ0xpc3QoKSB7XG4gICAgY29uc3Qgc2VhcmNoVmFsdWUgPSB0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZTtcblxuICAgIGlmICh0aGlzLmlzVG90YWxSZXRpZXZlZCAmJiBzZWFyY2hWYWx1ZSA9PT0gdGhpcy5wcmV2aW91c1NlYXJjaFZhbHVlKSB7XG4gICAgICAvLyBLZWVwIGN1cnJlbnQgdG90YWwgcmVzdWx0XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1RvdGFsUmV0aWV2ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wVG90YWxJbWdMaXN0KHRoaXMucGFyYW1zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShcblxuICAgICAgKGRhdGE6IEltZ1BpY3R1cmVzRFRPKSA9PiB7XG4gICAgICAgIHRoaXMucHJldmlvdXNTZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlO1xuICAgICAgICB0aGlzLmlzVG90YWxSZXRpZXZlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIH0sXG5cbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgLy90aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldFRvdGFsSW1nKTtcbiAgICAgICAgdGhpcy5pbml0VmFyaWFibGVzKGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN3aXRjaERpc3BsYXlXaW5kb3dNb3NhaWMoKSB7XG4gICAgdGhpcy5zd2l0Y2hEaXNwbGF5V2luZG93LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5Q2hhbmdlZC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nUmVtb3ZlZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdBZGRlZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25DaGFuZ2UudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|