speechrecorderng 3.9.1 → 3.9.2
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.
|
@@ -288,12 +288,7 @@ export class PromptContainer {
|
|
|
288
288
|
}
|
|
289
289
|
this.prompter.promptMediaItems = this._mediaitems;
|
|
290
290
|
this.autoFontSize = (mimetype != null && mimetype.startsWith('text/'));
|
|
291
|
-
|
|
292
|
-
this.fontSizeChange = true;
|
|
293
|
-
this.contentChecked = false;
|
|
294
|
-
this.prDisplay = 'hidden';
|
|
295
|
-
this.layout();
|
|
296
|
-
}
|
|
291
|
+
this.layout();
|
|
297
292
|
}
|
|
298
293
|
get mediaitems() {
|
|
299
294
|
return this._mediaitems;
|
|
@@ -318,6 +313,10 @@ export class PromptContainer {
|
|
|
318
313
|
//console.log("layout, call fontSizeToFit hook ");
|
|
319
314
|
window.setTimeout(() => this.fontSizeToFit());
|
|
320
315
|
}
|
|
316
|
+
else {
|
|
317
|
+
this.contentChecked = true;
|
|
318
|
+
this.prDisplay = 'visible';
|
|
319
|
+
}
|
|
321
320
|
}
|
|
322
321
|
fontSizeToFit() {
|
|
323
322
|
if (this.prompter) {
|
|
@@ -637,4 +636,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
637
636
|
}], onPrevItem: [{
|
|
638
637
|
type: Output
|
|
639
638
|
}] } });
|
|
640
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcHJvbXB0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFJWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQXdCbEUsTUFBTSxPQUFPLGVBQWU7SUFLMUIsV0FBVztRQUNULElBQUksS0FBSyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN4QyxLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxlQUFlLEdBQUMsR0FBRyxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN0QixLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksR0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWRVLGVBQWU7a0dBQWYsZUFBZSx1S0FoQmhCOzs7R0FHVDs7MkZBYVUsZUFBZTtrQkFwQjNCLFNBQVM7K0JBRUUscUJBQXFCLFlBRXJCOzs7R0FHVDs4QkFjUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztz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QUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge1NpbXBsZVRyYWZmaWNMaWdodH0gZnJvbSBcIi4uL3N0YXJ0c3RvcHNpZ25hbC91aS9zaW1wbGV0cmFmZmljbGlnaHRcIjtcclxuaW1wb3J0IHtTdGF0ZSBhcyBTdGFydFN0b3BTaWduYWxTdGF0ZX0gZnJvbSBcIi4uL3N0YXJ0c3RvcHNpZ25hbC9zdGFydHN0b3BzaWduYWxcIjtcclxuaW1wb3J0IHtJdGVtfSBmcm9tIFwiLi9pdGVtXCI7XHJcbmltcG9ydCB7QmxvY2ssIFRleHQsIE1lZGlhaXRlbSwgUHJvbXB0SXRlbX0gZnJvbSBcIi4uL3NjcmlwdC9zY3JpcHRcIjtcclxuaW1wb3J0IHtUcmFuc3BvcnRBY3Rpb25zfSBmcm9tIFwiLi9jb250cm9scGFuZWxcIjtcclxuaW1wb3J0IHtBY3Rpb259IGZyb20gXCIuLi8uLi9hY3Rpb24vYWN0aW9uXCI7XHJcbmltcG9ydCB7QXVkaW9EaXNwbGF5fSBmcm9tIFwiLi4vLi4vYXVkaW8vYXVkaW9fZGlzcGxheVwiO1xyXG5pbXBvcnQge1Byb2plY3RTZXJ2aWNlfSBmcm9tIFwiLi4vcHJvamVjdC9wcm9qZWN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBdWRpb0NsaXB9IGZyb20gXCIuLi8uLi9hdWRpby9wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHtSZXNwb25zaXZlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vdWkvcmVzcG9uc2l2ZV9jb21wb25lbnRcIjtcclxuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnc3ByLXJlY2luc3RydWN0aW9ucycsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAge3tkaXNwbGF5VGV4dCgpfX1cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0OyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciAqL1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8qIGFsaWduIHZlcnRpY2FsICBjZW50ZXIgKi9cclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgZmxleDogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjaW5zdHJ1Y3Rpb25zIHtcclxuICBASW5wdXQoKSByZWNpbnN0cnVjdGlvbnM6IHN0cmluZ3xudWxsfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtSWR4OiBudW1iZXJ8bnVsbHx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgaXRlbUNvdW50OiBudW1iZXJ8dW5kZWZpbmVkO1xyXG5cclxuICBkaXNwbGF5VGV4dCgpOnN0cmluZ3tcclxuICAgIGxldCByaVR4dDpzdHJpbmc9Jyc7XHJcbiAgICBpZih0aGlzLml0ZW1Db3VudCAmJiB0aGlzLnNlbGVjdGVkSXRlbUlkeCl7XHJcbiAgICAgIHJpVHh0PXJpVHh0K3RoaXMuc2VsZWN0ZWRJdGVtSWR4KycvJysodGhpcy5pdGVtQ291bnQtMSk7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLnJlY2luc3RydWN0aW9ucyl7XHJcbiAgICAgIHJpVHh0PXJpVHh0Kyc6ICcrdGhpcy5yZWNpbnN0cnVjdGlvbnM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmlUeHQ7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0ZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDwhLS08bmctdGVtcGxhdGUgW25nSWZdPVwidGV4dFwiPnt7dGV4dH19PC9uZy10ZW1wbGF0ZT4tLT5cclxuICAgIDwhLS0gPGltZyAqbmdJZj1cInNyY1wiICNwcm9tcHRJbWFnZSBbc3JjXT1cInNyY1VybCgpXCIgW2hlaWdodF09XCJwcm9tcHRlckhlaWdodC0yMFwiIC8+IC0tPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogYWxpZ24gaG9yaXpvbnRhbCBjZW50ZXIgKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGFsaWduIHZlcnRpY2FsICBjZW50ZXIgKi9cclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgLyogZm9udC1zaXplOiAyZW07ICovXHJcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgIC8qIFVzZSBvbmx5IG5hdHVyYWwgc2l6ZSBvZiB0aGUgcHJvbXB0ICovXHJcbiAgICAvKiBUaGUgcHJvbXB0ZXIgY29tcG5lbnQgdGhlbiBldHMgYWxpZ25lZCB2ZXJ0aWNhbGx5IGNlbnRlcmVkICovXHJcbiAgICBmbGV4OiAwIDE7XHJcblxyXG4gIH1gLCBgOmhvc3QoLmZpbGwpIHtcclxuICAgIC8qIFVzZSBhbGwgc3BhY2UgdG8gc2NhbGUgaW1hZ2VzICovXHJcbiAgICBmbGV4OiAzO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgLyogQSBzZXBhcmF0ZSBmbGV4IGNvbnRhaW5lciBtaWdodCBiZSBuZWNlc3NheXIgdG8gYWxpZ2huIGNlbnRlcmVkICovXHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiBUT0RPIGRvZXMgbm90IHdvcmssIGltYWdlIGlzIG5vdCB2ZXJ0aWNhbGx5IGNlbnRlcmVkICovXHJcbiAgfWBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRlciB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9wcm9tcHRNZWRpYUl0ZW1zOiBBcnJheTxNZWRpYWl0ZW0+fG51bGx8dW5kZWZpbmVkPW51bGxcclxuXHJcbiAgQElucHV0KCkgcHJvbXB0ZXJIZWlnaHQ6IG51bWJlcj0wO1xyXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZ3x1bmRlZmluZWR8bnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfc3JjOiBzdHJpbmd8dW5kZWZpbmVkfG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2Jsb2NrczogQXJyYXk8QmxvY2s+fHVuZGVmaW5lZDtcclxuICBtaW1ldHlwZSE6IHN0cmluZztcclxuICBwcml2YXRlIGN1cnJQcm9tcHRDaGlsZDogSFRNTEVsZW1lbnR8bnVsbCA9IG51bGw7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsbCcpIHB1YmxpYyBwcm9tcHRlclN0eWxlRmlsbCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IHRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBzcmMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3JjO1xyXG4gIH1cclxuXHJcbiAgc3JjVXJsKCk6IHN0cmluZ3xudWxse1xyXG4gICAgaWYgKHRoaXMucHJvamVjdE5hbWUgJiYgdGhpcy5fc3JjKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3RSZXNvdXJjZVVybCh0aGlzLnByb2plY3ROYW1lLCB0aGlzLl9zcmMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAgIHdpZHRoKCk6bnVtYmVyfG51bGx7XHJcbiAgICAgIGlmKHRoaXMuZWxSZWYpe1xyXG4gICAgICAgIGlmKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBoZWlnaHQoKTpudW1iZXJ8bnVsbHtcclxuICAgICAgICBpZih0aGlzLmVsUmVmKXtcclxuICAgICAgICAgICAgaWYodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcHBlbmRUZXh0RWxlbWVudChwYXJlbnRFbDpIVE1MRWxlbWVudCx0eHQ6VGV4dCl7XHJcbiAgICAgIGxldCB0OiBzdHJpbmcgPSA8c3RyaW5nPnR4dC50ZXh0XHJcbiAgICAgIGxldCB0eHROZCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0KVxyXG4gICAgICBpZih0eHQuZGVjb3JhdGlvbiB8fCB0eHQuY29sb3Ipe1xyXG4gICAgICAgIGxldCBzcEVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJylcclxuICAgICAgICBsZXQgc3R5bGVTdHI9JydcclxuICAgICAgICBpZih0eHQuZGVjb3JhdGlvbikge1xyXG4gICAgICAgICAgc3R5bGVTdHIgPSBzdHlsZVN0ciArJ3RleHQtZGVjb3JhdGlvbjogJyArIHR4dC5kZWNvcmF0aW9uKyc7J1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0eHQuY29sb3Ipe1xyXG4gICAgICAgICAgc3R5bGVTdHIgPSBzdHlsZVN0ciArJ2NvbG9yOiAnICsgdHh0LmNvbG9yKyc7J1xyXG4gICAgICAgIH1cclxuICAgICAgICBzcEVsLnN0eWxlPXN0eWxlU3RyXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnRFbCwgc3BFbClcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwRWwsIHR4dE5kKVxyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnRFbCwgdHh0TmQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IHByb21wdE1lZGlhSXRlbXMocE1pczogQXJyYXk8TWVkaWFpdGVtPnxudWxsKSB7XHJcbiAgICB0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zID0gcE1pc1xyXG4gICAgaWYgKHRoaXMuY3VyclByb21wdENoaWxkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX3Byb21wdE1lZGlhSXRlbXMgJiYgdGhpcy5fcHJvbXB0TWVkaWFJdGVtcy5sZW5ndGggPT0gMSkge1xyXG4gICAgICBsZXQgbWkgPSB0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zWzBdXHJcbiAgICAgIHRoaXMubWltZXR5cGUgPSAndGV4dC9wbGFpbidcclxuICAgICAgaWYgKG1pLm1pbWV0eXBlKSB7XHJcbiAgICAgICAgdGhpcy5taW1ldHlwZSA9IG1pLm1pbWV0eXBlLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5taW1ldHlwZSA9PT0gJ3RleHQvcGxhaW4nKSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dCA9IG1pLnRleHRcclxuICAgICAgICB0aGlzLl9zcmMgPSBudWxsO1xyXG4gICAgICAgIGxldCBwclR4dD0nJztcclxuICAgICAgICBpZih0aGlzLl90ZXh0KXtcclxuICAgICAgICAgIHByVHh0PXRoaXMuX3RleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VyclByb21wdENoaWxkID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHByVHh0KTtcclxuICAgICAgICB0aGlzLnByb21wdGVyU3R5bGVGaWxsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbWV0eXBlID09PSAndGV4dC94LXByb21wdCcpIHtcclxuICAgICAgICAvL3RoaXMucmVuZGVyaW5nPXRydWVcclxuICAgICAgICB0aGlzLl90ZXh0PW51bGw7XHJcbiAgICAgICAgdGhpcy5fc3JjPW51bGw7XHJcbiAgICAgICAgdGhpcy5fYmxvY2tzPW5ldyBBcnJheTxCbG9jaz4oKTtcclxuICAgICAgICBsZXQgcGQ9bWkucHJvbXB0RG9jXHJcbiAgICAgICAgaWYocGQpe1xyXG4gICAgICAgICAgbGV0IHBkQm9keT1wZC5ib2R5XHJcbiAgICAgICAgICBpZihwZEJvZHkpe1xyXG4gICAgICAgICAgICB0aGlzLl9ibG9ja3M9cGRCb2R5LmJsb2NrcztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJTdHlsZUZpbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuY3VyclByb21wdENoaWxkID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKVxyXG4gICAgICAgIGlmKHRoaXMuX2Jsb2Nrcykge1xyXG4gICAgICAgICAgZm9yIChsZXQgYmkgPSAwOyBiaSA8IHRoaXMuX2Jsb2Nrcy5sZW5ndGg7IGJpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsID0gdGhpcy5fYmxvY2tzW2JpXVxyXG4gICAgICAgICAgICBpZiAoJ3AnID09PSBibC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHBCbEVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdwJylcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuY3VyclByb21wdENoaWxkLCBwQmxFbClcclxuICAgICAgICAgICAgICBmb3IgKGxldCB0aSA9IDA7IHRpIDwgYmwudGV4dHMubGVuZ3RoOyB0aSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdHh0ID0gYmwudGV4dHNbdGldXHJcbiAgICAgICAgICAgICAgICBpZiAodHh0KSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICgndGV4dCcgPT09IHR4dC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0RWxlbWVudChwQmxFbCwgdHh0KVxyXG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCdmb250JyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0eWxlU3RyID0gJydcclxuICAgICAgICAgICAgICAgICAgICBpZiAodHh0LnN0eWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsgJ2ZvbnQtc3R5bGU6ICcgKyB0eHQuc3R5bGUgKyAnOydcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR4dC5zaXplKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsgJ2ZvbnQtc2l6ZTogJyArIHR4dC5zaXplICsgJzsnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eHQud2VpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsgJ2ZvbnQtd2VpZ2h0OiAnICsgdHh0LndlaWdodCArICc7J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzcEVsLnN0eWxlID0gc3R5bGVTdHJcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBCbEVsLCBzcEVsKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kVGV4dEVsZW1lbnQoc3BFbCwgPFRleHQ+dHh0LnRleHQpXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ2xpbmVicmVhaycgPT09IHR4dC50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJyRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2JyJylcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBCbEVsLCBickVsKVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJQcm9tcHRDaGlsZClcclxuICAgICAgICAvL3RoaXMucmVuZGVyaW5nPWZhbHNlXHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5taW1ldHlwZS5zdGFydHNXaXRoKCdpbWFnZScpKSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fc3JjID0gbWkuc3JjXHJcbiAgICAgICAgbGV0IHByb21wdEltYWdlID0gbmV3IEltYWdlKClcclxuXHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSBwcm9tcHRJbWFnZVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJQcm9tcHRDaGlsZClcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3VyclByb21wdENoaWxkLCBcIm1heC13aWR0aFwiLCBcIjEwMCVcIilcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY3VyclByb21wdENoaWxkLCBcIm1heC1oZWlnaHRcIiwgXCIxMDAlXCIpXHJcbiAgICAgICAgdGhpcy5wcm9tcHRlclN0eWxlRmlsbCA9IHRydWVcclxuICAgICAgICAvLyBUT0RPIHZlcnRpY2FsIGFsaWdubWVudFxyXG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzcyNzMzMzgvaG93LXRvLXZlcnRpY2FsbHktYWxpZ24tYW4taW1hZ2UtaW5zaWRlLWEtZGl2XHJcblxyXG4gICAgICAgIC8vY29uc29sZS5sb2cocHJvbXB0SW1hZ2UubmF0dXJhbFdpZHRoICsgXCJ4XCIrcHJvbXB0SW1hZ2UubmF0dXJhbEhlaWdodCk7XHJcbiAgICAgICAgcHJvbXB0SW1hZ2Uub25sb2FkID0gKGV2OiBFdmVudCkgPT4ge31cclxuICAgICAgICBsZXQgc3JjVXJsPXRoaXMuc3JjVXJsKCk7XHJcbiAgICAgICAgaWYoc3JjVXJsKSB7XHJcbiAgICAgICAgICBwcm9tcHRJbWFnZS5zcmMgPSBzcmNVcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdGV4dCA9IG51bGxcclxuICAgICAgdGhpcy5fc3JjID0gbnVsbFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFZJUlRVQUxfSEVJR0hUID0gNjAwO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9QUk9NUFRfRk9OVFNJWkUgPSA0ODtcclxuZXhwb3J0IGNvbnN0IE1JTl9GT05UX1NJWkU9NjtcclxuZXhwb3J0IGNvbnN0IEZBTExCQUNLX0RFRl9VU0VSX0FHRU5UX0ZPTlRfU0laRSA9IDE0O1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb21wdGNvbnRhaW5lcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXBwLXNwcnByb21wdGVyICNwcm9tcHRlciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIiBbcHJvbXB0TWVkaWFJdGVtc109XCJtZWRpYWl0ZW1zXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZSsncHgnXCIgW3N0eWxlLnZpc2liaWxpdHldPVwicHJEaXNwbGF5XCIgW3Byb21wdGVySGVpZ2h0XT1cInByb21wdGVySGVpZ2h0XCI+PC9hcHAtc3BycHJvbXB0ZXI+XHJcbiAgYFxyXG4gICxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG5cclxuICAgIGZsZXg6IDM7IC8qIHRoZSBjb250YWluZXIgY29uc3VtZXMgYWxsIGF2YWlsYWJsZSBzcGFjZSAqL1xyXG4gICAgcGFkZGluZzogMTBwdDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGFsaWduIHZlcnRpY2FsIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0Q29udGFpbmVyIGltcGxlbWVudHMgT25Jbml0LEFmdGVyQ29udGVudENoZWNrZWQge1xyXG4gIEBJbnB1dCgpIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfbWVkaWFpdGVtczogQXJyYXk8TWVkaWFpdGVtPnxudWxsPW51bGw7XHJcblxyXG4gIHByb21wdGVySGVpZ2h0OiBudW1iZXIgPSBWSVJUVUFMX0hFSUdIVFxyXG4gIGZvbnRTaXplITogbnVtYmVyO1xyXG4gIGZvbnRTaXplQ2hhbmdlPWZhbHNlXHJcbiAgY29udGVudENoZWNrZWQ9ZmFsc2U7XHJcbiAgcHJEaXNwbGF5PSdoaWRkZW4nO1xyXG4gIGRlZmF1bHRTdHlsZSE6IENTU1N0eWxlRGVjbGFyYXRpb247XHJcbiAgZGVmYXVsdEZvbnRTaXplUHghOiBudW1iZXI7XHJcblxyXG4gIGF1dG9Gb250U2l6ZT1mYWxzZTtcclxuICBAVmlld0NoaWxkKFByb21wdGVyLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcm9tcHRlciE6IFByb21wdGVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOkVsZW1lbnRSZWYpe31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgLy8gZmFsbGJhY2tcclxuICAgIHRoaXMuZGVmYXVsdEZvbnRTaXplUHggPSBGQUxMQkFDS19ERUZfVVNFUl9BR0VOVF9GT05UX1NJWkU7XHJcbiAgICAvLyB0cnkgdG8gcGFyc2UgZGVmYXVsdCB1c2VyIGFnZW50IGZvbnQgc2l6ZSAobm8gY29tbWVudCBhYm91dCBET00gQVBJIGRlc2lnbiA7KSApXHJcbiAgICB0aGlzLmRlZmF1bHRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICBsZXQgZGVmRm9udFNpemVTdHIgPSB0aGlzLmRlZmF1bHRTdHlsZS5mb250U2l6ZTtcclxuICAgIGlmIChkZWZGb250U2l6ZVN0cikge1xyXG4gICAgICBkZWZGb250U2l6ZVN0ciA9IGRlZkZvbnRTaXplU3RyLnRyaW0oKTtcclxuICAgICAgaWYgKGRlZkZvbnRTaXplU3RyLmVuZHNXaXRoKCdweCcpKSB7XHJcbiAgICAgICAgLy8gcGFyc2VGbG9hdCBpZ25vcmVzIG5vbiBudW1iZXIgY2hhcmFjdGVycyBhdCB0aGUgZW5kIChhZ2FpbiBubyBjb21tZW50IDspIClcclxuICAgICAgICB0aGlzLmRlZmF1bHRGb250U2l6ZVB4ID0gcGFyc2VGbG9hdChkZWZGb250U2l6ZVN0cik7XHJcbiAgICAgICAgICAvL2NvbnNvbGUuaW5mbyhcIkRlZmF1bHQgZm9udCBzaXplOiBcIit0aGlzLmRlZmF1bHRGb250U2l6ZVB4KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmF1dG9Gb250U2l6ZSkge1xyXG4gICAgICBpZiAodGhpcy5mb250U2l6ZUNoYW5nZSkge1xyXG4gICAgICAgIC8vY29uc29sZS5sb2coXCJuZ2FmdGVyY29udGVudGNoZWNrZWQsIGNhbGwgZm9udFNpemVUb0ZpdCBcIik7XHJcbiAgICAgICAgLy8gY2hlY2sgcHJvbXB0ZXIgc2l6ZSBhZ2FpblxyXG4gICAgICAgIHRoaXMuZm9udFNpemVUb0ZpdCgpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gZm9udCBzaXplIHdhcyBjaGVja2VkLCBidXQgd2UgbmVlZCB0byBjaGVjayBhZ2FpbiBhZnRlciBhbmd1bGFyIGNvbnRlbnQgY2hlY2tcclxuICAgICAgICBpZiAoIXRoaXMuY29udGVudENoZWNrZWQpIHtcclxuICAgICAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIm5nYWZ0ZXJjb250ZW50Y2hlY2tlZCwgbm90IGZvbnQgc2l6ZSBjaGFuZ2VkLCBjYWxsIFwiKTtcclxuICAgICAgICAgIHRoaXMuZm9udFNpemVUb0ZpdCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgc2V0IG1lZGlhaXRlbXMobWVkaWFpdGVtczpBcnJheTxNZWRpYWl0ZW0+fG51bGwpe1xyXG5cclxuICAgIHRoaXMuX21lZGlhaXRlbXMgPSBtZWRpYWl0ZW1zXHJcblxyXG4gICAgbGV0IG1pbWV0eXBlOnN0cmluZ3xudWxsPW51bGw7XHJcbiAgICBpZiAodGhpcy5fbWVkaWFpdGVtcyAmJiB0aGlzLl9tZWRpYWl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGxldCBtaSA9IHRoaXMuX21lZGlhaXRlbXNbMF1cclxuICAgICAgbWltZXR5cGUgPSAndGV4dC9wbGFpbidcclxuICAgICAgaWYgKG1pLm1pbWV0eXBlKSB7XHJcbiAgICAgICAgbWltZXR5cGUgPSBtaS5taW1ldHlwZS50cmltKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYobWkuZGVmYXVsdFZpcnR1YWxWaWV3Qm94KXtcclxuICAgICAgICB0aGlzLnByb21wdGVySGVpZ2h0PW1pLmRlZmF1bHRWaXJ0dWFsVmlld0JveC5oZWlnaHRcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMucHJvbXB0ZXJIZWlnaHQ9VklSVFVBTF9IRUlHSFRcclxuICAgIH1cclxuICAgIHRoaXMucHJvbXB0ZXIucHJvbXB0TWVkaWFJdGVtcz10aGlzLl9tZWRpYWl0ZW1zXHJcbiAgICB0aGlzLmF1dG9Gb250U2l6ZT0obWltZXR5cGUhPW51bGwgJiYgbWltZXR5cGUuc3RhcnRzV2l0aCgndGV4dC8nKSk7XHJcbiAgICBpZih0aGlzLmF1dG9Gb250U2l6ZSl7XHJcbiAgICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5wckRpc3BsYXkgPSAnaGlkZGVuJ1xyXG4gICAgICAgIHRoaXMubGF5b3V0KClcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG1lZGlhaXRlbXMoKTpBcnJheTxNZWRpYWl0ZW0+fG51bGx7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tZWRpYWl0ZW1zO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vY29uc29sZS5kZWJ1ZyhcIm9ucmVzaXplLCBjYWxsIGZvbnRTaXplVG9GaXQgaG9vayBcIik7XHJcbiAgICB0aGlzLmxheW91dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsYXlvdXQoKSB7XHJcbiAgICBpZih0aGlzLmF1dG9Gb250U2l6ZSAmJiB0aGlzLmVsUmVmKSB7XHJcblxyXG4gICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlPXRydWU7XHJcbiAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSBmYWxzZVxyXG4gICAgICB0aGlzLnByRGlzcGxheSA9ICdoaWRkZW4nXHJcbiAgICAgIGxldCBlbEggPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAvLyBwcm9tcHQgdGV4dCBmb250IHNpemUgc2hvdWxkIHNjYWxlIGFjY29yZGluZyB0byBwcm9tcHQgY29udGFpbmVyIGhlaWdodFxyXG4gICAgICBsZXQgc2NhbGVkU2l6ZSA9IE1hdGgucm91bmQoKGVsSCAvIHRoaXMucHJvbXB0ZXJIZWlnaHQpICogREVGQVVMVF9QUk9NUFRfRk9OVFNJWkUpO1xyXG5cclxuICAgICAgLy8gbWluIHByb21wdCBmb250IHNpemUgaXMgZGVmYXVsdCB1c2VyIGFnZW50IHNpemVcclxuICAgICAgbGV0IG5ld1NpemUgPSBNYXRoLm1heChzY2FsZWRTaXplLCB0aGlzLmRlZmF1bHRGb250U2l6ZVB4KTtcclxuICAgICAgaWYgKHRoaXMuZm9udFNpemUgIT09IG5ld1NpemUpIHtcclxuICAgICAgICB0aGlzLmZvbnRTaXplID0gbmV3U2l6ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy9jb25zb2xlLmxvZyhcImxheW91dCwgY2FsbCBmb250U2l6ZVRvRml0IGhvb2sgXCIpO1xyXG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvbnRTaXplVG9GaXQoKSlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBmb250U2l6ZVRvRml0KCl7XHJcbiAgICAgIGlmKHRoaXMucHJvbXB0ZXIpIHtcclxuICAgICAgICBsZXQgcFc9dGhpcy5wcm9tcHRlci53aWR0aCgpO1xyXG4gICAgICAgIGxldCBwSD10aGlzLnByb21wdGVyLmhlaWdodCgpO1xyXG4gICAgICAgIGlmICh0aGlzLl9tZWRpYWl0ZW1zICYmIHRoaXMuZWxSZWYgJiYgcFcgJiYgcEgpIHtcclxuICAgICAgICAgIGxldCBuRWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJwcm9tcHRlcjogXCIgKyB0aGlzLnByb21wdGVyLndpZHRoKCkgKyBcInhcIiArIHRoaXMucHJvbXB0ZXIuaGVpZ2h0KCkrIFwiIGZvbnQgc2l6ZTogXCIrdGhpcy5mb250U2l6ZSlcclxuICAgICAgICAgIGlmICh0aGlzLmZvbnRTaXplID49IE1JTl9GT05UX1NJWkUgJiYgKHBXID4gbkVsLm9mZnNldFdpZHRoIHx8IHBIID4gbkVsLm9mZnNldEhlaWdodCkpIHtcclxuICAgICAgICAgICAgLy8gcHJvbXB0ZXIgb3ZlcnNpemVzIHByb21wdGVyIGNvbnRhaW5lci4gRGVjcmVhc2UgZm9udCBzaXplLlxyXG4gICAgICAgICAgICAvLyBzZXQgaW52aXNpYmxlIGR1cmluZyBmb250IHNpemUgY2hlY2tzXHJcbiAgICAgICAgICAgIHRoaXMucHJEaXNwbGF5ID0gJ2hpZGRlbidcclxuICAgICAgICAgICAgLy8gZGVjcmVhc2UgZm9udCBzaXplXHJcbiAgICAgICAgICAgIHRoaXMuZm9udFNpemUgPSB0aGlzLmZvbnRTaXplIC0gMVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkRlY3JlYXNlZCBmb250IHNpemU6IFwiK3RoaXMuZm9udFNpemUgKVxyXG4gICAgICAgICAgICAvLyBTZXQgZmxhZ3NcclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZSA9IHRydWVcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IGZhbHNlXHJcbiAgICAgICAgICAgIC8vIGhvb2sgdGhlIG5leHQgY2hlY2tcclxuICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb250U2l6ZVRvRml0KCkpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBwcm9tcHRlciBmaXRzIGluICBwcm9tcHRlciBjb250YWluZXIsIGZvbnQgc2l6ZSBzaG91bGQgYmUgZmluZVxyXG5cclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcInByRGlzcGxheTogXCIrdGhpcy5wckRpc3BsYXkpXHJcblxyXG4gICAgICAgICAgICAvL2lmKHRoaXMuY29udGVudENoZWNrZWQgJiYgISB0aGlzLmZvbnRTaXplQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJEaXNwbGF5IVwiKVxyXG4gICAgICAgICAgICAvLyBzZXQgcHJvbXB0ZXIgdmlzaWJsZSBub3dcclxuICAgICAgICAgICAgdGhpcy5wckRpc3BsYXkgPSAndmlzaWJsZSdcclxuICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICAgIHRoaXMuZm9udFNpemVDaGFuZ2UgPSBmYWxzZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlByb21wdCB0ZXh0IHdpZHRoOiBcIit0ZXh0U2l6ZS53aWR0aCtcIiBcIit0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgrXCJ4XCIrdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRpbmdjb250YWluZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHNwci1yZWNpbnN0cnVjdGlvbnMgW3NlbGVjdGVkSXRlbUlkeF09XCJzZWxlY3RlZEl0ZW1JZHhcIiBbaXRlbUNvdW50XT1cIml0ZW1Db3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVjaW5zdHJ1Y3Rpb25zXT1cInByb21wdEl0ZW0/LnJlY2luc3RydWN0aW9ucz8ucmVjaW5zdHJ1Y3Rpb25zXCI+PC9zcHItcmVjaW5zdHJ1Y3Rpb25zPlxyXG4gICAgPGFwcC1zcHJwcm9tcHRjb250YWluZXIgW3Byb2plY3ROYW1lXT1cInByb2plY3ROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttZWRpYWl0ZW1zXT1cInNob3dQcm9tcHQ/KHByb21wdEl0ZW0/cHJvbXB0SXRlbS5tZWRpYWl0ZW1zOm51bGwpOm51bGxcIj48L2FwcC1zcHJwcm9tcHRjb250YWluZXI+XHJcblxyXG4gIGBcclxuICAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsZXg6IDM7IC8qIHRoZSBjb250YWluZXIgY29uc3VtZXMgYWxsIGF2YWlsYWJsZSBzcGFjZSAqL1xyXG4gICAgcGFkZGluZzogMTBwdDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciovXHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBhbGlnbiB2ZXJ0aWNhbCBjZW50ZXIgKi9cclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRpbmdDb250YWluZXIge1xyXG4gIEBJbnB1dCgpIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHJvbXB0SXRlbTogUHJvbXB0SXRlbXxudWxsPW51bGw7XHJcbiAgQElucHV0KCkgc2hvd1Byb21wdDogYm9vbGVhbj1mYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgaXRlbUNvdW50OiBudW1iZXJ8dW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSB0cmFuc3BvcnRBY3Rpb25zITogVHJhbnNwb3J0QWN0aW9ucztcclxuXHJcbiAgcHJpdmF0ZSBlITogSFRNTERpdkVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSBzdGFydFg6IG51bWJlciB8IG51bGwgPSBudWxsXHJcbiAgcHJpdmF0ZSB0b3VjaFN0YXJ0VGltZVN0YW1wOiBudW1iZXIgfCBudWxsPW51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0eXBlIFRvdWNoU3RhcnQgPSB7fVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmUgPSB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaHN0YXJ0KGV2OiBUb3VjaEV2ZW50IHwgYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggc3RhcnQhIFwiKVxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJlxyXG4gICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG4gICAgICBsZXQgdGFyZ2V0VG91Y2hlc0xlbiA9IGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICAvL2ZvcihsZXQgdGk9MDt0aTxldi50YXJnZXRUb3VjaGVzLmxlbmd0aDt0aSsrKXtcclxuICAgICAgLy9sZXQgdD1ldi50YXJnZXRUb3VjaGVzLml0ZW0odGkpO1xyXG4gICAgICAvLyBBbGwgeCB2YWx1ZXMgYXJlIHRoZSBzYW1lID8/XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCAjXCIrdGkrXCI6IHBhZ2VYOiBcIit0LnBhZ2VYK1wiIGNsaWVudFg6IFwiK3QuY2xpZW50WCtcIiBzY3JlZW5YOiBcIit0LnNjcmVlblgpXHJcbiAgICAgIC8vfVxyXG4gICAgICBpZiAodGFyZ2V0VG91Y2hlc0xlbiA9PSAxKSB7XHJcbiAgICAgICAgLy8gc2luZ2xlIHRvdWNoXHJcbiAgICAgICAgbGV0IHQgPSBldi50YXJnZXRUb3VjaGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKHQpIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnRYID0gTWF0aC5yb3VuZCh0LnNjcmVlblgpO1xyXG4gICAgICAgICAgdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wID0gZXYudGltZVN0YW1wO1xyXG4gICAgICAgICAgdGhpcy5lLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggc3RhcnQgeDogXCIrdGhpcy5zdGFydFgpXHJcbiAgICAgICAgICAvL2V2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hFbmQoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBlbmQhXCIpXHJcbiAgICAvLyBSZXNldCBvZmZzZXQgc2hpZnRcclxuICAgIGlmICghKHRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24uZGlzYWJsZWQgJiYgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCAmJlxyXG4gICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCkpIHtcclxuXHJcbiAgICAgIGxldCBjaGFuZ2VkVG91Y2hlc0xlbiA9IGV2LmNoYW5nZWRUb3VjaGVzLmxlbmd0aDtcclxuICAgICAgLy9jb25zb2xlLmxvZyhjaGFuZ2VkVG91Y2hlc0xlbitcIiBcIit0aGlzLnN0YXJ0WClcclxuICAgICAgaWYgKGNoYW5nZWRUb3VjaGVzTGVuID09IDEgJiYgdGhpcy5zdGFydFgpIHtcclxuICAgICAgICAvLyBzaW5nbGUgdG91Y2hcclxuICAgICAgICBsZXQgdCA9IGV2LmNoYW5nZWRUb3VjaGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKHQpIHtcclxuICAgICAgICAgIGxldCBkZWx0YVggPSBNYXRoLnJvdW5kKHQuY2xpZW50WCAtIHRoaXMuc3RhcnRYKTtcclxuICAgICAgICAgIGxldCB0b3VjaE1vdmVTcGVlZCA9IDA7XHJcbiAgICAgICAgICBpZiAodGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wKSB7XHJcbiAgICAgICAgICAgIHRvdWNoTW92ZVNwZWVkID0gZGVsdGFYIC8gKGV2LnRpbWVTdGFtcCAtIHRoaXMudG91Y2hTdGFydFRpbWVTdGFtcCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgZnV0dXJlRGVsdGFYID0gZGVsdGFYICsgKDgwMCAqIHRvdWNoTW92ZVNwZWVkKTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJEZWx0YVg6IFwiICsgZGVsdGFYICsgXCIgRnV0dXJlIGRlbHRhWDogXCIgKyBmdXR1cmVEZWx0YVggKyBcIiAgd2lkdGg6IFwiICsgdGhpcy5lLm9mZnNldFdpZHRoKVxyXG4gICAgICAgICAgaWYgKGZ1dHVyZURlbHRhWCA+IHRoaXMuZS5vZmZzZXRXaWR0aCAvIDIpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIlN3aXBlIHJpZ2h0IGRldGVjdGVkISFcIilcclxuICAgICAgICAgICAgLy90aGlzLnN3aXBlZFJpZ2h0LmVtaXQoKVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLnBlcmZvcm0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmUuc3R5bGUubGVmdCA9IC10aGlzLmUub2Zmc2V0TGVmdCArIFwicHhcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgtZnV0dXJlRGVsdGFYID4gdGhpcy5lLm9mZnNldFdpZHRoIC8gMikge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiU3dpcGUgbGVmdCBkZXRlY3RlZCEhXCIpXHJcbiAgICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gLXRoaXMuZS5vZmZzZXRMZWZ0ICsgXCJweFwiO1xyXG4gICAgICAgICAgICAvL3RoaXMuc3dpcGVkTGVmdC5lbWl0KClcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLnBlcmZvcm0oKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHJlc2V0IGFuaW1hdGVkXHJcbiAgICAgIHRoaXMuZS5zdHlsZS50cmFuc2l0aW9uID0gXCJsZWZ0IDAuOHNcIjtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhcnRYID0gbnVsbDtcclxuICAgIHRoaXMudG91Y2hTdGFydFRpbWVTdGFtcCA9IG51bGw7XHJcbiAgICB0aGlzLmUuc3R5bGUubGVmdCA9IFwiMHB4XCI7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaG1vdmUnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hNb3ZlKGV2OiBUb3VjaEV2ZW50IHwgYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggbW92ZSFcIilcclxuICAgIGlmICghKHRoaXMudHJhbnNwb3J0QWN0aW9ucy5md2RBY3Rpb24uZGlzYWJsZWQgJiYgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCAmJlxyXG4gICAgICB0aGlzLnRyYW5zcG9ydEFjdGlvbnMubmV4dEFjdGlvbi5kaXNhYmxlZCkpIHtcclxuICAgICAgbGV0IHRhcmdldFRvdWNoZXNMZW4gPSBldi50YXJnZXRUb3VjaGVzLmxlbmd0aDtcclxuICAgICAgaWYgKHRhcmdldFRvdWNoZXNMZW4gPT0gMSAmJiB0aGlzLnN0YXJ0WCkge1xyXG4gICAgICAgIC8vIHNpbmdsZSB0b3VjaFxyXG4gICAgICAgIGxldCB0ID0gZXYudGFyZ2V0VG91Y2hlcy5pdGVtKDApO1xyXG4gICAgICAgIGlmICh0KSB7XHJcbiAgICAgICAgICBsZXQgZGVsdGFYID0gTWF0aC5yb3VuZCh0LnNjcmVlblggLSB0aGlzLnN0YXJ0WCk7XHJcbiAgICAgICAgICB0aGlzLmUuc3R5bGUubGVmdCA9IGRlbHRhWCArIFwicHhcIjtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiVG91Y2ggbW92ZSBkZWx0YSB4OiBcIitkZWx0YVgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgWyckZXZlbnQnXSlcclxuICBvblRvdWNoQ2FuY2VsKGV2OiBUb3VjaEV2ZW50IHwgYW55KSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiVG91Y2ggY2FuY2VsIVwiKVxyXG4gICAgdGhpcy5lLnN0eWxlLmxlZnQgPSBcIjBweFwiO1xyXG4gICAgLy9ldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0aW5nJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICA8YXBwLXNpbXBsZXRyYWZmaWNsaWdodCBbc3RhdHVzXT1cInN0YXJ0U3RvcFNpZ25hbFN0YXRlXCI+PC9hcHAtc2ltcGxldHJhZmZpY2xpZ2h0PlxyXG4gICAgPGFwcC1zcHJwcm9tcHRpbmdjb250YWluZXIgW3Byb2plY3ROYW1lXT1cInByb2plY3ROYW1lXCIgW3Byb21wdEl0ZW1dPVwicHJvbXB0SXRlbVwiIFtzaG93UHJvbXB0XT1cInNob3dQcm9tcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1Db3VudF09XCJpdGVtcz8ubGVuZ3RoXCIgW3NlbGVjdGVkSXRlbUlkeF09XCJzZWxlY3RlZEl0ZW1JZHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zcG9ydEFjdGlvbnNdPVwidHJhbnNwb3J0QWN0aW9uc1wiPjwvYXBwLXNwcnByb21wdGluZ2NvbnRhaW5lcj5cclxuICAgIDxhcHAtc3BycHJvZ3Jlc3MgKm5nSWY9XCIhc2NyZWVuWHNcIiBbaXRlbXNdPVwiaXRlbXNcIiBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChvblJvd1NlbGVjdCk9XCJpdGVtU2VsZWN0KCRldmVudClcIj48L2FwcC1zcHJwcm9ncmVzcz5cclxuICAgIDxkaXYgI2FzQ3QgW2NsYXNzLmFjdGl2ZV09XCIhYXVkaW9TaWduYWxDb2xsYXBzZWQgJiYgIXNjcmVlblhzXCI+XHJcblxyXG4gICAgICA8YXBwLWF1ZGlvZGlzcGxheSAjYXVkaW9TaWduYWxDb250YWluZXIgW2NsYXNzLmFjdGl2ZV09XCIhYXVkaW9TaWduYWxDb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXVkaW9DbGlwXT1cImRpc3BsYXlBdWRpb0NsaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U2VsZWN0aW9uQWN0aW9uXT1cInBsYXlTZWxlY3Rpb25BY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbl09XCJhdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdG9wQWN0aW9uXT1cInBsYXlTdG9wQWN0aW9uXCI+PC9hcHAtYXVkaW9kaXNwbGF5PlxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICBgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZDogbGlnaHRncmV5O1xyXG4gICAgd2lkdGg6IDEwMCU7IC8qIHVzZSBhbGwgaG9yaXpvbnRhbCBhdmFpbGFibGUgc3BhY2UgKi9cclxuICAgIGZsZXg6IDE7IC8qIC4uLiBhbmQgZmlsbCByZXN0IG9mIHZlcnRpY2FsIGF2YWlsYWJsZSBzcGFjZSAob3RoZXIgY29tcG9uZW50cyBoYXZlIGZsZXggMCkgKi9cclxuXHJcbiAgICAvKiBXb3JrYXJvdW5kIGZvciBGaXJlZm94XHJcbiAgICBJZiB0aGUgcHJvZ3Jlc3MgdGFibGUgZ2V0cyBsb25nIChzY3JpcHQgd2l0aCBtYW55IGl0ZW1zKSBGRiBpbmNyZWFzZXMgdGhlIGhlaWdodCBvZiB0aGUgb3ZlcmZsb3cgcHJvZ3Jlc3NDb250YWluZXIgYW5kXHJcbiAgICB0aGUgd2hvbGUgYXBwIGRvZXMgbm90IGZpdCBpbnRvIHRoZSBwYWdlIGFueW1vcmUuIFRoZSBhcHAgb3ZlcmZsb3dzIGFuZCBzaG93cyBhIHZlcnRpY2FsIHNjcm9sbGJhciBmb3IgdGhlIHdob2xlIGFwcC5cclxuICAgIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODYzNjgzMi9maXJlZm94LW92ZXJmbG93LXktbm90LXdvcmtpbmctd2l0aC1uZXN0ZWQtZmxleGJveFxyXG4gICAgKi9cclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuXHJcbiAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCB0cmFmZmljIGxpZ2h0LCByaWdodCBwcm9tcHRlciAoY29udGFpbmVyKSAqL1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGZsZXgtd3JhcDogbm93cmFwOyAvKiB3cmFwIGNvdWxkIGNvbXBsZXRlbHkgZGVzdHJveSB0aGUgbGF5b3V0ICovXHJcbiAgfWAsIGBcclxuICAgIGFwcC1zaW1wbGV0cmFmZmljbGlnaHQge1xyXG4gICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICAgICAgei1pbmRleDogMztcclxuICAgIH1cclxuICBgLCBgXHJcbiAgICBhcHAtc3BycHJvZ3Jlc3Mge1xyXG4gICAgICB6LWluZGV4OiAzO1xyXG4gICAgfVxyXG4gIGAsIGBcclxuICAgIGRpdiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHJcblxyXG4gICAgICAvKiBoZWlnaHQ6IDUwJTsgKi9cclxuICAgICAgLyogd2lkdGg6IDEwMCU7ICovXHJcblxyXG4gICAgICAvKiBvdmVyZmxvdzogaGlkZGVuOyAqL1xyXG5cclxuICAgICAgLyogbWFyZ2luOiAyMHB4OyAqL1xyXG4gICAgICAvKiBib3JkZXI6IDIwcHg7ICovXHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIC8qYmFja2dyb3VuZC1jb2xvcjogcmVkOyAqL1xyXG4gICAgfWAsIGBcclxuICAgIGRpdi5hY3RpdmUge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAvKmxlZnQ6IDBweDsgKi9cclxuXHJcbiAgICAgIGhlaWdodDogOTAlO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgIC8qIG1hcmdpbjogMjBweDsgKi9cclxuICAgICAgLyogYm9yZGVyOiAyMHB4OyAqL1xyXG4gICAgICB6LWluZGV4OiA1O1xyXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApXHJcblxyXG4gICAgfWBcclxuICBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvbXB0aW5nIGV4dGVuZHMgUmVzcG9uc2l2ZUNvbXBvbmVudHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJwbzpCcmVha3BvaW50T2JzZXJ2ZXIpIHtcclxuICAgIHN1cGVyKGJwbyk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFNpbXBsZVRyYWZmaWNMaWdodCwgeyBzdGF0aWM6IHRydWUgfSkgc2ltcGxlVHJhZmZpY0xpZ2h0ITogU2ltcGxlVHJhZmZpY0xpZ2h0O1xyXG4gIEBWaWV3Q2hpbGQoQXVkaW9EaXNwbGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBhdWRpb0Rpc3BsYXkhOiBBdWRpb0Rpc3BsYXk7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzdGFydFN0b3BTaWduYWxTdGF0ZSE6IFN0YXJ0U3RvcFNpZ25hbFN0YXRlO1xyXG4gIEBJbnB1dCgpIHByb21wdEl0ZW06IFByb21wdEl0ZW0gfCBudWxsPW51bGw7XHJcbiAgQElucHV0KCkgc2hvd1Byb21wdDogYm9vbGVhbj1mYWxzZTtcclxuICBASW5wdXQoKSBpdGVtczogQXJyYXk8SXRlbT58dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdHJhbnNwb3J0QWN0aW9ucyE6IFRyYW5zcG9ydEFjdGlvbnM7XHJcbiAgQElucHV0KCkgZW5hYmxlRG93bmxvYWQ6IGJvb2xlYW49ZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgQElucHV0KCkgZGlzcGxheUF1ZGlvQ2xpcDogQXVkaW9DbGlwIHwgbnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U2VsZWN0aW9uQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb246QWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBAT3V0cHV0KCkgb25JdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIG9uTmV4dEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uUHJldkl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGl0ZW1TZWxlY3Qocm93SWR4OiBudW1iZXIpIHtcclxuICAgIHRoaXMub25JdGVtU2VsZWN0LmVtaXQocm93SWR4KTtcclxuICB9XHJcblxyXG4gIG5leHRJdGVtKCkge1xyXG4gICAgdGhpcy5vbk5leHRJdGVtLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByZXZJdGVtKCkge1xyXG4gICAgdGhpcy5vblByZXZJdGVtLmVtaXQoKTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
|
|
639
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3NwZWVjaHJlY29yZGVyL3Nlc3Npb24vcHJvbXB0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFJWixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFNNUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQXdCbEUsTUFBTSxPQUFPLGVBQWU7SUFLMUIsV0FBVztRQUNULElBQUksS0FBSyxHQUFRLEVBQUUsQ0FBQztRQUNwQixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN4QyxLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxlQUFlLEdBQUMsR0FBRyxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBQztZQUN0QixLQUFLLEdBQUMsS0FBSyxHQUFDLElBQUksR0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWRVLGVBQWU7a0dBQWYsZUFBZSx1S0FoQmhCOzs7R0FHVDs7MkZBYVUsZUFBZTtrQkFwQjNCLFNBQVM7K0JBRUUscUJBQXFCLFlBRXJCOzs7R0FHVDs4QkFjUSxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztz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QW9CO3NCQUE1QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIFJlbmRlcmVyMixcclxuICBIb3N0QmluZGluZyxcclxuICBBZnRlckNvbnRlbnRDaGVja2VkXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7U2ltcGxlVHJhZmZpY0xpZ2h0fSBmcm9tIFwiLi4vc3RhcnRzdG9wc2lnbmFsL3VpL3NpbXBsZXRyYWZmaWNsaWdodFwiO1xyXG5pbXBvcnQge1N0YXRlIGFzIFN0YXJ0U3RvcFNpZ25hbFN0YXRlfSBmcm9tIFwiLi4vc3RhcnRzdG9wc2lnbmFsL3N0YXJ0c3RvcHNpZ25hbFwiO1xyXG5pbXBvcnQge0l0ZW19IGZyb20gXCIuL2l0ZW1cIjtcclxuaW1wb3J0IHtCbG9jaywgVGV4dCwgTWVkaWFpdGVtLCBQcm9tcHRJdGVtfSBmcm9tIFwiLi4vc2NyaXB0L3NjcmlwdFwiO1xyXG5pbXBvcnQge1RyYW5zcG9ydEFjdGlvbnN9IGZyb20gXCIuL2NvbnRyb2xwYW5lbFwiO1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uLy4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXl9IGZyb20gXCIuLi8uLi9hdWRpby9hdWRpb19kaXNwbGF5XCI7XHJcbmltcG9ydCB7UHJvamVjdFNlcnZpY2V9IGZyb20gXCIuLi9wcm9qZWN0L3Byb2plY3Quc2VydmljZVwiO1xyXG5pbXBvcnQge0F1ZGlvQ2xpcH0gZnJvbSBcIi4uLy4uL2F1ZGlvL3BlcnNpc3RvclwiO1xyXG5pbXBvcnQge1Jlc3BvbnNpdmVDb21wb25lbnR9IGZyb20gXCIuLi8uLi91aS9yZXNwb25zaXZlX2NvbXBvbmVudFwiO1xyXG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlcn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdzcHItcmVjaW5zdHJ1Y3Rpb25zJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbiAgICB7e2Rpc3BsYXlUZXh0KCl9fVxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyICovXHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgLyogYWxpZ24gdmVydGljYWwgIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBmbGV4OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNpbnN0cnVjdGlvbnMge1xyXG4gIEBJbnB1dCgpIHJlY2luc3RydWN0aW9uczogc3RyaW5nfG51bGx8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1JZHg6IG51bWJlcnxudWxsfHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpdGVtQ291bnQ6IG51bWJlcnx1bmRlZmluZWQ7XHJcblxyXG4gIGRpc3BsYXlUZXh0KCk6c3RyaW5ne1xyXG4gICAgbGV0IHJpVHh0OnN0cmluZz0nJztcclxuICAgIGlmKHRoaXMuaXRlbUNvdW50ICYmIHRoaXMuc2VsZWN0ZWRJdGVtSWR4KXtcclxuICAgICAgcmlUeHQ9cmlUeHQrdGhpcy5zZWxlY3RlZEl0ZW1JZHgrJy8nKyh0aGlzLml0ZW1Db3VudC0xKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMucmVjaW5zdHJ1Y3Rpb25zKXtcclxuICAgICAgcmlUeHQ9cmlUeHQrJzogJyt0aGlzLnJlY2luc3RydWN0aW9ucztcclxuICAgIH1cclxuICAgIHJldHVybiByaVR4dDtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRlcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPCEtLTxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ0ZXh0XCI+e3t0ZXh0fX08L25nLXRlbXBsYXRlPi0tPlxyXG4gICAgPCEtLSA8aW1nICpuZ0lmPVwic3JjXCIgI3Byb21wdEltYWdlIFtzcmNdPVwic3JjVXJsKClcIiBbaGVpZ2h0XT1cInByb21wdGVySGVpZ2h0LTIwXCIgLz4gLS0+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG5cclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBhbGlnbiBob3Jpem9udGFsIGNlbnRlciAqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ24gdmVydGljYWwgIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAvKiBmb250LXNpemU6IDJlbTsgKi9cclxuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgLyogVXNlIG9ubHkgbmF0dXJhbCBzaXplIG9mIHRoZSBwcm9tcHQgKi9cclxuICAgIC8qIFRoZSBwcm9tcHRlciBjb21wbmVudCB0aGVuIGV0cyBhbGlnbmVkIHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cclxuICAgIGZsZXg6IDAgMTtcclxuXHJcbiAgfWAsIGA6aG9zdCguZmlsbCkge1xyXG4gICAgLyogVXNlIGFsbCBzcGFjZSB0byBzY2FsZSBpbWFnZXMgKi9cclxuICAgIGZsZXg6IDM7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAvKiBBIHNlcGFyYXRlIGZsZXggY29udGFpbmVyIG1pZ2h0IGJlIG5lY2Vzc2F5ciB0byBhbGlnaG4gY2VudGVyZWQgKi9cclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIFRPRE8gZG9lcyBub3Qgd29yaywgaW1hZ2UgaXMgbm90IHZlcnRpY2FsbHkgY2VudGVyZWQgKi9cclxuICB9YF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21wdGVyIHtcclxuICBASW5wdXQoKSBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX3Byb21wdE1lZGlhSXRlbXM6IEFycmF5PE1lZGlhaXRlbT58bnVsbHx1bmRlZmluZWQ9bnVsbFxyXG5cclxuICBASW5wdXQoKSBwcm9tcHRlckhlaWdodDogbnVtYmVyPTA7XHJcbiAgcHJpdmF0ZSBfdGV4dDogc3RyaW5nfHVuZGVmaW5lZHxudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9zcmM6IHN0cmluZ3x1bmRlZmluZWR8bnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfYmxvY2tzOiBBcnJheTxCbG9jaz58dW5kZWZpbmVkO1xyXG4gIG1pbWV0eXBlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgY3VyclByb21wdENoaWxkOiBIVE1MRWxlbWVudHxudWxsID0gbnVsbDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxsJykgcHVibGljIHByb21wdGVyU3R5bGVGaWxsID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UpIHtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgdGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNyYygpIHtcclxuICAgIHJldHVybiB0aGlzLl9zcmM7XHJcbiAgfVxyXG5cclxuICBzcmNVcmwoKTogc3RyaW5nfG51bGx7XHJcbiAgICBpZiAodGhpcy5wcm9qZWN0TmFtZSAmJiB0aGlzLl9zcmMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdFJlc291cmNlVXJsKHRoaXMucHJvamVjdE5hbWUsIHRoaXMuX3NyYyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gICAgd2lkdGgoKTpudW1iZXJ8bnVsbHtcclxuICAgICAgaWYodGhpcy5lbFJlZil7XHJcbiAgICAgICAgaWYodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGhlaWdodCgpOm51bWJlcnxudWxse1xyXG4gICAgICAgIGlmKHRoaXMuZWxSZWYpe1xyXG4gICAgICAgICAgICBpZih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFwcGVuZFRleHRFbGVtZW50KHBhcmVudEVsOkhUTUxFbGVtZW50LHR4dDpUZXh0KXtcclxuICAgICAgbGV0IHQ6IHN0cmluZyA9IDxzdHJpbmc+dHh0LnRleHRcclxuICAgICAgbGV0IHR4dE5kID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHQpXHJcbiAgICAgIGlmKHR4dC5kZWNvcmF0aW9uIHx8IHR4dC5jb2xvcil7XHJcbiAgICAgICAgbGV0IHNwRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxyXG4gICAgICAgIGxldCBzdHlsZVN0cj0nJ1xyXG4gICAgICAgIGlmKHR4dC5kZWNvcmF0aW9uKSB7XHJcbiAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsndGV4dC1kZWNvcmF0aW9uOiAnICsgdHh0LmRlY29yYXRpb24rJzsnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHR4dC5jb2xvcil7XHJcbiAgICAgICAgICBzdHlsZVN0ciA9IHN0eWxlU3RyICsnY29sb3I6ICcgKyB0eHQuY29sb3IrJzsnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNwRWwuc3R5bGU9c3R5bGVTdHJcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudEVsLCBzcEVsKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3BFbCwgdHh0TmQpXHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHBhcmVudEVsLCB0eHROZClcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcHJvbXB0TWVkaWFJdGVtcyhwTWlzOiBBcnJheTxNZWRpYWl0ZW0+fG51bGwpIHtcclxuICAgIHRoaXMuX3Byb21wdE1lZGlhSXRlbXMgPSBwTWlzXHJcbiAgICBpZiAodGhpcy5jdXJyUHJvbXB0Q2hpbGQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fcHJvbXB0TWVkaWFJdGVtcyAmJiB0aGlzLl9wcm9tcHRNZWRpYUl0ZW1zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGxldCBtaSA9IHRoaXMuX3Byb21wdE1lZGlhSXRlbXNbMF1cclxuICAgICAgdGhpcy5taW1ldHlwZSA9ICd0ZXh0L3BsYWluJ1xyXG4gICAgICBpZiAobWkubWltZXR5cGUpIHtcclxuICAgICAgICB0aGlzLm1pbWV0eXBlID0gbWkubWltZXR5cGUudHJpbSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1pbWV0eXBlID09PSAndGV4dC9wbGFpbicpIHtcclxuICAgICAgICB0aGlzLl90ZXh0ID0gbWkudGV4dFxyXG4gICAgICAgIHRoaXMuX3NyYyA9IG51bGw7XHJcbiAgICAgICAgbGV0IHByVHh0PScnO1xyXG4gICAgICAgIGlmKHRoaXMuX3RleHQpe1xyXG4gICAgICAgICAgcHJUeHQ9dGhpcy5fdGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQocHJUeHQpO1xyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJTdHlsZUZpbGwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyUHJvbXB0Q2hpbGQpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWltZXR5cGUgPT09ICd0ZXh0L3gtcHJvbXB0Jykge1xyXG4gICAgICAgIC8vdGhpcy5yZW5kZXJpbmc9dHJ1ZVxyXG4gICAgICAgIHRoaXMuX3RleHQ9bnVsbDtcclxuICAgICAgICB0aGlzLl9zcmM9bnVsbDtcclxuICAgICAgICB0aGlzLl9ibG9ja3M9bmV3IEFycmF5PEJsb2NrPigpO1xyXG4gICAgICAgIGxldCBwZD1taS5wcm9tcHREb2NcclxuICAgICAgICBpZihwZCl7XHJcbiAgICAgICAgICBsZXQgcGRCb2R5PXBkLmJvZHlcclxuICAgICAgICAgIGlmKHBkQm9keSl7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jsb2Nrcz1wZEJvZHkuYmxvY2tzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wcm9tcHRlclN0eWxlRmlsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jdXJyUHJvbXB0Q2hpbGQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpXHJcbiAgICAgICAgaWYodGhpcy5fYmxvY2tzKSB7XHJcbiAgICAgICAgICBmb3IgKGxldCBiaSA9IDA7IGJpIDwgdGhpcy5fYmxvY2tzLmxlbmd0aDsgYmkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmwgPSB0aGlzLl9ibG9ja3NbYmldXHJcbiAgICAgICAgICAgIGlmICgncCcgPT09IGJsLnR5cGUpIHtcclxuICAgICAgICAgICAgICBsZXQgcEJsRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3AnKVxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIHBCbEVsKVxyXG4gICAgICAgICAgICAgIGZvciAobGV0IHRpID0gMDsgdGkgPCBibC50ZXh0cy5sZW5ndGg7IHRpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCB0eHQgPSBibC50ZXh0c1t0aV1cclxuICAgICAgICAgICAgICAgIGlmICh0eHQpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKCd0ZXh0JyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZFRleHRFbGVtZW50KHBCbEVsLCB0eHQpXHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJ2ZvbnQnID09PSB0eHQudHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzcEVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJylcclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3R5bGVTdHIgPSAnJ1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eHQuc3R5bGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC1zdHlsZTogJyArIHR4dC5zdHlsZSArICc7J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHh0LnNpemUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC1zaXplOiAnICsgdHh0LnNpemUgKyAnOydcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR4dC53ZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlU3RyID0gc3R5bGVTdHIgKyAnZm9udC13ZWlnaHQ6ICcgKyB0eHQud2VpZ2h0ICsgJzsnXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNwRWwuc3R5bGUgPSBzdHlsZVN0clxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocEJsRWwsIHNwRWwpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBlbmRUZXh0RWxlbWVudChzcEVsLCA8VGV4dD50eHQudGV4dClcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgnbGluZWJyZWFrJyA9PT0gdHh0LnR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYnJFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnYnInKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQocEJsRWwsIGJyRWwpXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgICAgIC8vdGhpcy5yZW5kZXJpbmc9ZmFsc2VcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbWV0eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcclxuICAgICAgICB0aGlzLl90ZXh0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9zcmMgPSBtaS5zcmNcclxuICAgICAgICBsZXQgcHJvbXB0SW1hZ2UgPSBuZXcgSW1hZ2UoKVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJQcm9tcHRDaGlsZCA9IHByb21wdEltYWdlXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VyclByb21wdENoaWxkKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIFwibWF4LXdpZHRoXCIsIFwiMTAwJVwiKVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jdXJyUHJvbXB0Q2hpbGQsIFwibWF4LWhlaWdodFwiLCBcIjEwMCVcIilcclxuICAgICAgICB0aGlzLnByb21wdGVyU3R5bGVGaWxsID0gdHJ1ZVxyXG4gICAgICAgIC8vIFRPRE8gdmVydGljYWwgYWxpZ25tZW50XHJcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNzI3MzMzOC9ob3ctdG8tdmVydGljYWxseS1hbGlnbi1hbi1pbWFnZS1pbnNpZGUtYS1kaXZcclxuXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhwcm9tcHRJbWFnZS5uYXR1cmFsV2lkdGggKyBcInhcIitwcm9tcHRJbWFnZS5uYXR1cmFsSGVpZ2h0KTtcclxuICAgICAgICBwcm9tcHRJbWFnZS5vbmxvYWQgPSAoZXY6IEV2ZW50KSA9PiB7fVxyXG4gICAgICAgIGxldCBzcmNVcmw9dGhpcy5zcmNVcmwoKTtcclxuICAgICAgICBpZihzcmNVcmwpIHtcclxuICAgICAgICAgIHByb21wdEltYWdlLnNyYyA9IHNyY1VybDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl90ZXh0ID0gbnVsbFxyXG4gICAgICB0aGlzLl9zcmMgPSBudWxsXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVklSVFVBTF9IRUlHSFQgPSA2MDA7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BST01QVF9GT05UU0laRSA9IDQ4O1xyXG5leHBvcnQgY29uc3QgTUlOX0ZPTlRfU0laRT02O1xyXG5leHBvcnQgY29uc3QgRkFMTEJBQ0tfREVGX1VTRVJfQUdFTlRfRk9OVF9TSVpFID0gMTQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHJcbiAgc2VsZWN0b3I6ICdhcHAtc3BycHJvbXB0Y29udGFpbmVyJyxcclxuXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxhcHAtc3BycHJvbXB0ZXIgI3Byb21wdGVyIFtwcm9qZWN0TmFtZV09XCJwcm9qZWN0TmFtZVwiIFtwcm9tcHRNZWRpYUl0ZW1zXT1cIm1lZGlhaXRlbXNcIiBbc3R5bGUuZm9udC1zaXplXT1cImZvbnRTaXplKydweCdcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJwckRpc3BsYXlcIiBbcHJvbXB0ZXJIZWlnaHRdPVwicHJvbXB0ZXJIZWlnaHRcIj48L2FwcC1zcHJwcm9tcHRlcj5cclxuICBgXHJcbiAgLFxyXG4gIHN0eWxlczogW2A6aG9zdCB7XHJcblxyXG4gICAgZmxleDogMzsgLyogdGhlIGNvbnRhaW5lciBjb25zdW1lcyBhbGwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBwYWRkaW5nOiAxMHB0O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgbWF4LWhlaWdodDogMTAwJTtcclxuXHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgLyogYWxpZ24gaG9yaXpvbnRhbCBjZW50ZXIqL1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogYWxpZ24gdmVydGljYWwgY2VudGVyICovXHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgbWluLWhlaWdodDogMHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRDb250YWluZXIgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9tZWRpYWl0ZW1zOiBBcnJheTxNZWRpYWl0ZW0+fG51bGw9bnVsbDtcclxuXHJcbiAgcHJvbXB0ZXJIZWlnaHQ6IG51bWJlciA9IFZJUlRVQUxfSEVJR0hUXHJcbiAgZm9udFNpemUhOiBudW1iZXI7XHJcbiAgZm9udFNpemVDaGFuZ2U9ZmFsc2VcclxuICBjb250ZW50Q2hlY2tlZD1mYWxzZTtcclxuICBwckRpc3BsYXk9J2hpZGRlbic7XHJcbiAgZGVmYXVsdFN0eWxlITogQ1NTU3R5bGVEZWNsYXJhdGlvbjtcclxuICBkZWZhdWx0Rm9udFNpemVQeCE6IG51bWJlcjtcclxuXHJcbiAgYXV0b0ZvbnRTaXplPWZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoUHJvbXB0ZXIsIHsgc3RhdGljOiB0cnVlIH0pIHByb21wdGVyITogUHJvbXB0ZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6RWxlbWVudFJlZil7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAvLyBmYWxsYmFja1xyXG4gICAgdGhpcy5kZWZhdWx0Rm9udFNpemVQeCA9IEZBTExCQUNLX0RFRl9VU0VSX0FHRU5UX0ZPTlRfU0laRTtcclxuICAgIC8vIHRyeSB0byBwYXJzZSBkZWZhdWx0IHVzZXIgYWdlbnQgZm9udCBzaXplIChubyBjb21tZW50IGFib3V0IERPTSBBUEkgZGVzaWduIDspIClcclxuICAgIHRoaXMuZGVmYXVsdFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBkZWZGb250U2l6ZVN0ciA9IHRoaXMuZGVmYXVsdFN0eWxlLmZvbnRTaXplO1xyXG4gICAgaWYgKGRlZkZvbnRTaXplU3RyKSB7XHJcbiAgICAgIGRlZkZvbnRTaXplU3RyID0gZGVmRm9udFNpemVTdHIudHJpbSgpO1xyXG4gICAgICBpZiAoZGVmRm9udFNpemVTdHIuZW5kc1dpdGgoJ3B4JykpIHtcclxuICAgICAgICAvLyBwYXJzZUZsb2F0IGlnbm9yZXMgbm9uIG51bWJlciBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQgKGFnYWluIG5vIGNvbW1lbnQgOykgKVxyXG4gICAgICAgIHRoaXMuZGVmYXVsdEZvbnRTaXplUHggPSBwYXJzZUZsb2F0KGRlZkZvbnRTaXplU3RyKTtcclxuICAgICAgICAgIC8vY29uc29sZS5pbmZvKFwiRGVmYXVsdCBmb250IHNpemU6IFwiK3RoaXMuZGVmYXVsdEZvbnRTaXplUHgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuYXV0b0ZvbnRTaXplKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvbnRTaXplQ2hhbmdlKSB7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIm5nYWZ0ZXJjb250ZW50Y2hlY2tlZCwgY2FsbCBmb250U2l6ZVRvRml0IFwiKTtcclxuICAgICAgICAvLyBjaGVjayBwcm9tcHRlciBzaXplIGFnYWluXHJcbiAgICAgICAgdGhpcy5mb250U2l6ZVRvRml0KClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBmb250IHNpemUgd2FzIGNoZWNrZWQsIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIGFnYWluIGFmdGVyIGFuZ3VsYXIgY29udGVudCBjaGVja1xyXG4gICAgICAgIGlmICghdGhpcy5jb250ZW50Q2hlY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5jb250ZW50Q2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwibmdhZnRlcmNvbnRlbnRjaGVja2VkLCBub3QgZm9udCBzaXplIGNoYW5nZWQsIGNhbGwgXCIpO1xyXG4gICAgICAgICAgdGhpcy5mb250U2l6ZVRvRml0KClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBzZXQgbWVkaWFpdGVtcyhtZWRpYWl0ZW1zOkFycmF5PE1lZGlhaXRlbT58bnVsbCl7XHJcblxyXG4gICAgdGhpcy5fbWVkaWFpdGVtcyA9IG1lZGlhaXRlbXNcclxuXHJcbiAgICBsZXQgbWltZXR5cGU6c3RyaW5nfG51bGw9bnVsbDtcclxuICAgIGlmICh0aGlzLl9tZWRpYWl0ZW1zICYmIHRoaXMuX21lZGlhaXRlbXMubGVuZ3RoID09IDEpIHtcclxuICAgICAgbGV0IG1pID0gdGhpcy5fbWVkaWFpdGVtc1swXVxyXG4gICAgICBtaW1ldHlwZSA9ICd0ZXh0L3BsYWluJ1xyXG4gICAgICBpZiAobWkubWltZXR5cGUpIHtcclxuICAgICAgICBtaW1ldHlwZSA9IG1pLm1pbWV0eXBlLnRyaW0oKTtcclxuICAgICAgfVxyXG4gICAgICBpZihtaS5kZWZhdWx0VmlydHVhbFZpZXdCb3gpe1xyXG4gICAgICAgIHRoaXMucHJvbXB0ZXJIZWlnaHQ9bWkuZGVmYXVsdFZpcnR1YWxWaWV3Qm94LmhlaWdodFxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5wcm9tcHRlckhlaWdodD1WSVJUVUFMX0hFSUdIVFxyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9tcHRlci5wcm9tcHRNZWRpYUl0ZW1zPXRoaXMuX21lZGlhaXRlbXNcclxuICAgIHRoaXMuYXV0b0ZvbnRTaXplPShtaW1ldHlwZSE9bnVsbCAmJiBtaW1ldHlwZS5zdGFydHNXaXRoKCd0ZXh0LycpKTtcclxuXHJcbiAgICB0aGlzLmxheW91dCgpO1xyXG5cclxuICB9XHJcblxyXG4gIGdldCBtZWRpYWl0ZW1zKCk6QXJyYXk8TWVkaWFpdGVtPnxudWxse1xyXG4gICAgICByZXR1cm4gdGhpcy5fbWVkaWFpdGVtcztcclxuICB9XHJcblxyXG5cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUuZGVidWcoXCJvbnJlc2l6ZSwgY2FsbCBmb250U2l6ZVRvRml0IGhvb2sgXCIpO1xyXG4gICAgdGhpcy5sYXlvdXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGF5b3V0KCkge1xyXG4gICAgaWYodGhpcy5hdXRvRm9udFNpemUgJiYgdGhpcy5lbFJlZikge1xyXG5cclxuICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZT10cnVlO1xyXG4gICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2VcclxuICAgICAgdGhpcy5wckRpc3BsYXkgPSAnaGlkZGVuJ1xyXG4gICAgICBsZXQgZWxIID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgLy8gcHJvbXB0IHRleHQgZm9udCBzaXplIHNob3VsZCBzY2FsZSBhY2NvcmRpbmcgdG8gcHJvbXB0IGNvbnRhaW5lciBoZWlnaHRcclxuICAgICAgbGV0IHNjYWxlZFNpemUgPSBNYXRoLnJvdW5kKChlbEggLyB0aGlzLnByb21wdGVySGVpZ2h0KSAqIERFRkFVTFRfUFJPTVBUX0ZPTlRTSVpFKTtcclxuXHJcbiAgICAgIC8vIG1pbiBwcm9tcHQgZm9udCBzaXplIGlzIGRlZmF1bHQgdXNlciBhZ2VudCBzaXplXHJcbiAgICAgIGxldCBuZXdTaXplID0gTWF0aC5tYXgoc2NhbGVkU2l6ZSwgdGhpcy5kZWZhdWx0Rm9udFNpemVQeCk7XHJcbiAgICAgIGlmICh0aGlzLmZvbnRTaXplICE9PSBuZXdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5mb250U2l6ZSA9IG5ld1NpemU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJsYXlvdXQsIGNhbGwgZm9udFNpemVUb0ZpdCBob29rIFwiKTtcclxuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb250U2l6ZVRvRml0KCkpXHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuY29udGVudENoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnByRGlzcGxheSA9ICd2aXNpYmxlJztcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGZvbnRTaXplVG9GaXQoKXtcclxuICAgICAgaWYodGhpcy5wcm9tcHRlcikge1xyXG4gICAgICAgIGxldCBwVz10aGlzLnByb21wdGVyLndpZHRoKCk7XHJcbiAgICAgICAgbGV0IHBIPXRoaXMucHJvbXB0ZXIuaGVpZ2h0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX21lZGlhaXRlbXMgJiYgdGhpcy5lbFJlZiAmJiBwVyAmJiBwSCkge1xyXG4gICAgICAgICAgbGV0IG5FbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcInByb21wdGVyOiBcIiArIHRoaXMucHJvbXB0ZXIud2lkdGgoKSArIFwieFwiICsgdGhpcy5wcm9tcHRlci5oZWlnaHQoKSsgXCIgZm9udCBzaXplOiBcIit0aGlzLmZvbnRTaXplKVxyXG4gICAgICAgICAgaWYgKHRoaXMuZm9udFNpemUgPj0gTUlOX0ZPTlRfU0laRSAmJiAocFcgPiBuRWwub2Zmc2V0V2lkdGggfHwgcEggPiBuRWwub2Zmc2V0SGVpZ2h0KSkge1xyXG4gICAgICAgICAgICAvLyBwcm9tcHRlciBvdmVyc2l6ZXMgcHJvbXB0ZXIgY29udGFpbmVyLiBEZWNyZWFzZSBmb250IHNpemUuXHJcbiAgICAgICAgICAgIC8vIHNldCBpbnZpc2libGUgZHVyaW5nIGZvbnQgc2l6ZSBjaGVja3NcclxuICAgICAgICAgICAgdGhpcy5wckRpc3BsYXkgPSAnaGlkZGVuJ1xyXG4gICAgICAgICAgICAvLyBkZWNyZWFzZSBmb250IHNpemVcclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZSA9IHRoaXMuZm9udFNpemUgLSAxXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiRGVjcmVhc2VkIGZvbnQgc2l6ZTogXCIrdGhpcy5mb250U2l6ZSApXHJcbiAgICAgICAgICAgIC8vIFNldCBmbGFnc1xyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplQ2hhbmdlID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRDaGVja2VkID0gZmFsc2VcclxuICAgICAgICAgICAgLy8gaG9vayB0aGUgbmV4dCBjaGVja1xyXG4gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvbnRTaXplVG9GaXQoKSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHByb21wdGVyIGZpdHMgaW4gIHByb21wdGVyIGNvbnRhaW5lciwgZm9udCBzaXplIHNob3VsZCBiZSBmaW5lXHJcblxyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwicHJEaXNwbGF5OiBcIit0aGlzLnByRGlzcGxheSlcclxuXHJcbiAgICAgICAgICAgIC8vaWYodGhpcy5jb250ZW50Q2hlY2tlZCAmJiAhIHRoaXMuZm9udFNpemVDaGFuZ2UpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRpc3BsYXkhXCIpXHJcbiAgICAgICAgICAgIC8vIHNldCBwcm9tcHRlciB2aXNpYmxlIG5vd1xyXG4gICAgICAgICAgICB0aGlzLnByRGlzcGxheSA9ICd2aXNpYmxlJ1xyXG4gICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgdGhpcy5mb250U2l6ZUNoYW5nZSA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiUHJvbXB0IHRleHQgd2lkdGg6IFwiK3RleHRTaXplLndpZHRoK1wiIFwiK3RoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCtcInhcIit0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXBwLXNwcnByb21wdGluZ2NvbnRhaW5lcicsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8c3ByLXJlY2luc3RydWN0aW9ucyBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiIFtpdGVtQ291bnRdPVwiaXRlbUNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWNpbnN0cnVjdGlvbnNdPVwicHJvbXB0SXRlbT8ucmVjaW5zdHJ1Y3Rpb25zPy5yZWNpbnN0cnVjdGlvbnNcIj48L3Nwci1yZWNpbnN0cnVjdGlvbnM+XHJcbiAgICA8YXBwLXNwcnByb21wdGNvbnRhaW5lciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21lZGlhaXRlbXNdPVwic2hvd1Byb21wdD8ocHJvbXB0SXRlbT9wcm9tcHRJdGVtLm1lZGlhaXRlbXM6bnVsbCk6bnVsbFwiPjwvYXBwLXNwcnByb21wdGNvbnRhaW5lcj5cclxuXHJcbiAgYFxyXG4gICxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZmxleDogMzsgLyogdGhlIGNvbnRhaW5lciBjb25zdW1lcyBhbGwgYXZhaWxhYmxlIHNwYWNlICovXHJcbiAgICBwYWRkaW5nOiAxMHB0O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIGFsaWduIGhvcml6b250YWwgY2VudGVyKi9cclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGFsaWduIHZlcnRpY2FsIGNlbnRlciAqL1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG1pbi1oZWlnaHQ6IDBweDtcclxuICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb21wdGluZ0NvbnRhaW5lciB7XHJcbiAgQElucHV0KCkgcHJvamVjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwcm9tcHRJdGVtOiBQcm9tcHRJdGVtfG51bGw9bnVsbDtcclxuICBASW5wdXQoKSBzaG93UHJvbXB0OiBib29sZWFuPWZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbUlkeCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpdGVtQ291bnQ6IG51bWJlcnx1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIHRyYW5zcG9ydEFjdGlvbnMhOiBUcmFuc3BvcnRBY3Rpb25zO1xyXG5cclxuICBwcml2YXRlIGUhOiBIVE1MRGl2RWxlbWVudDtcclxuICBwcml2YXRlIHN0YXJ0WDogbnVtYmVyIHwgbnVsbCA9IG51bGxcclxuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lU3RhbXA6IG51bWJlciB8IG51bGw9bnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHR5cGUgVG91Y2hTdGFydCA9IHt9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcclxuICBvblRvdWNoc3RhcnQoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBzdGFydCEgXCIpXHJcbiAgICBpZiAoISh0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24uZGlzYWJsZWQgJiZcclxuICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24uZGlzYWJsZWQpKSB7XHJcbiAgICAgIGxldCB0YXJnZXRUb3VjaGVzTGVuID0gZXYudGFyZ2V0VG91Y2hlcy5sZW5ndGg7XHJcbiAgICAgIC8vZm9yKGxldCB0aT0wO3RpPGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO3RpKyspe1xyXG4gICAgICAvL2xldCB0PWV2LnRhcmdldFRvdWNoZXMuaXRlbSh0aSk7XHJcbiAgICAgIC8vIEFsbCB4IHZhbHVlcyBhcmUgdGhlIHNhbWUgPz9cclxuICAgICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoICNcIit0aStcIjogcGFnZVg6IFwiK3QucGFnZVgrXCIgY2xpZW50WDogXCIrdC5jbGllbnRYK1wiIHNjcmVlblg6IFwiK3Quc2NyZWVuWClcclxuICAgICAgLy99XHJcbiAgICAgIGlmICh0YXJnZXRUb3VjaGVzTGVuID09IDEpIHtcclxuICAgICAgICAvLyBzaW5nbGUgdG91Y2hcclxuICAgICAgICBsZXQgdCA9IGV2LnRhcmdldFRvdWNoZXMuaXRlbSgwKTtcclxuICAgICAgICBpZiAodCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydFggPSBNYXRoLnJvdW5kKHQuc2NyZWVuWCk7XHJcbiAgICAgICAgICB0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXAgPSBldi50aW1lU3RhbXA7XHJcbiAgICAgICAgICB0aGlzLmUuc3R5bGUudHJhbnNpdGlvbiA9ICdub25lJztcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBzdGFydCB4OiBcIit0aGlzLnN0YXJ0WClcclxuICAgICAgICAgIC8vZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaEVuZChldjogVG91Y2hFdmVudCB8IGFueSkge1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIlRvdWNoIGVuZCFcIilcclxuICAgIC8vIFJlc2V0IG9mZnNldCBzaGlmdFxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJiB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG5cclxuICAgICAgbGV0IGNoYW5nZWRUb3VjaGVzTGVuID0gZXYuY2hhbmdlZFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKGNoYW5nZWRUb3VjaGVzTGVuK1wiIFwiK3RoaXMuc3RhcnRYKVxyXG4gICAgICBpZiAoY2hhbmdlZFRvdWNoZXNMZW4gPT0gMSAmJiB0aGlzLnN0YXJ0WCkge1xyXG4gICAgICAgIC8vIHNpbmdsZSB0b3VjaFxyXG4gICAgICAgIGxldCB0ID0gZXYuY2hhbmdlZFRvdWNoZXMuaXRlbSgwKTtcclxuICAgICAgICBpZiAodCkge1xyXG4gICAgICAgICAgbGV0IGRlbHRhWCA9IE1hdGgucm91bmQodC5jbGllbnRYIC0gdGhpcy5zdGFydFgpO1xyXG4gICAgICAgICAgbGV0IHRvdWNoTW92ZVNwZWVkID0gMDtcclxuICAgICAgICAgIGlmICh0aGlzLnRvdWNoU3RhcnRUaW1lU3RhbXApIHtcclxuICAgICAgICAgICAgdG91Y2hNb3ZlU3BlZWQgPSBkZWx0YVggLyAoZXYudGltZVN0YW1wIC0gdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBmdXR1cmVEZWx0YVggPSBkZWx0YVggKyAoODAwICogdG91Y2hNb3ZlU3BlZWQpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkRlbHRhWDogXCIgKyBkZWx0YVggKyBcIiBGdXR1cmUgZGVsdGFYOiBcIiArIGZ1dHVyZURlbHRhWCArIFwiICB3aWR0aDogXCIgKyB0aGlzLmUub2Zmc2V0V2lkdGgpXHJcbiAgICAgICAgICBpZiAoZnV0dXJlRGVsdGFYID4gdGhpcy5lLm9mZnNldFdpZHRoIC8gMikge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiU3dpcGUgcmlnaHQgZGV0ZWN0ZWQhIVwiKVxyXG4gICAgICAgICAgICAvL3RoaXMuc3dpcGVkUmlnaHQuZW1pdCgpXHJcbiAgICAgICAgICAgIGlmICghdGhpcy50cmFuc3BvcnRBY3Rpb25zLmJ3ZEFjdGlvbi5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5id2RBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gLXRoaXMuZS5vZmZzZXRMZWZ0ICsgXCJweFwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKC1mdXR1cmVEZWx0YVggPiB0aGlzLmUub2Zmc2V0V2lkdGggLyAyKSB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJTd2lwZSBsZWZ0IGRldGVjdGVkISFcIilcclxuICAgICAgICAgICAgdGhpcy5lLnN0eWxlLmxlZnQgPSAtdGhpcy5lLm9mZnNldExlZnQgKyBcInB4XCI7XHJcbiAgICAgICAgICAgIC8vdGhpcy5zd2lwZWRMZWZ0LmVtaXQoKVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLm5leHRBY3Rpb24ucGVyZm9ybSgpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLnRyYW5zcG9ydEFjdGlvbnMuZndkQWN0aW9uLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5wZXJmb3JtKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gcmVzZXQgYW5pbWF0ZWRcclxuICAgICAgdGhpcy5lLnN0eWxlLnRyYW5zaXRpb24gPSBcImxlZnQgMC44c1wiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGFydFggPSBudWxsO1xyXG4gICAgdGhpcy50b3VjaFN0YXJ0VGltZVN0YW1wID0gbnVsbDtcclxuICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gXCIwcHhcIjtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNobW92ZScsIFsnJGV2ZW50J10pXHJcbiAgb25Ub3VjaE1vdmUoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBtb3ZlIVwiKVxyXG4gICAgaWYgKCEodGhpcy50cmFuc3BvcnRBY3Rpb25zLmZ3ZEFjdGlvbi5kaXNhYmxlZCAmJiB0aGlzLnRyYW5zcG9ydEFjdGlvbnMuYndkQWN0aW9uLmRpc2FibGVkICYmXHJcbiAgICAgIHRoaXMudHJhbnNwb3J0QWN0aW9ucy5uZXh0QWN0aW9uLmRpc2FibGVkKSkge1xyXG4gICAgICBsZXQgdGFyZ2V0VG91Y2hlc0xlbiA9IGV2LnRhcmdldFRvdWNoZXMubGVuZ3RoO1xyXG4gICAgICBpZiAodGFyZ2V0VG91Y2hlc0xlbiA9PSAxICYmIHRoaXMuc3RhcnRYKSB7XHJcbiAgICAgICAgLy8gc2luZ2xlIHRvdWNoXHJcbiAgICAgICAgbGV0IHQgPSBldi50YXJnZXRUb3VjaGVzLml0ZW0oMCk7XHJcbiAgICAgICAgaWYgKHQpIHtcclxuICAgICAgICAgIGxldCBkZWx0YVggPSBNYXRoLnJvdW5kKHQuc2NyZWVuWCAtIHRoaXMuc3RhcnRYKTtcclxuICAgICAgICAgIHRoaXMuZS5zdHlsZS5sZWZ0ID0gZGVsdGFYICsgXCJweFwiO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJUb3VjaCBtb3ZlIGRlbHRhIHg6IFwiK2RlbHRhWClcclxuICAgICAgICB9XHJcbiAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBbJyRldmVudCddKVxyXG4gIG9uVG91Y2hDYW5jZWwoZXY6IFRvdWNoRXZlbnQgfCBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJUb3VjaCBjYW5jZWwhXCIpXHJcbiAgICB0aGlzLmUuc3R5bGUubGVmdCA9IFwiMHB4XCI7XHJcbiAgICAvL2V2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1zcHJwcm9tcHRpbmcnLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDxhcHAtc2ltcGxldHJhZmZpY2xpZ2h0IFtzdGF0dXNdPVwic3RhcnRTdG9wU2lnbmFsU3RhdGVcIj48L2FwcC1zaW1wbGV0cmFmZmljbGlnaHQ+XHJcbiAgICA8YXBwLXNwcnByb21wdGluZ2NvbnRhaW5lciBbcHJvamVjdE5hbWVdPVwicHJvamVjdE5hbWVcIiBbcHJvbXB0SXRlbV09XCJwcm9tcHRJdGVtXCIgW3Nob3dQcm9tcHRdPVwic2hvd1Byb21wdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbUNvdW50XT1cIml0ZW1zPy5sZW5ndGhcIiBbc2VsZWN0ZWRJdGVtSWR4XT1cInNlbGVjdGVkSXRlbUlkeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNwb3J0QWN0aW9uc109XCJ0cmFuc3BvcnRBY3Rpb25zXCI+PC9hcHAtc3BycHJvbXB0aW5nY29udGFpbmVyPlxyXG4gICAgPGFwcC1zcHJwcm9ncmVzcyAqbmdJZj1cIiFzY3JlZW5Yc1wiIFtpdGVtc109XCJpdGVtc1wiIFtzZWxlY3RlZEl0ZW1JZHhdPVwic2VsZWN0ZWRJdGVtSWR4XCJcclxuICAgICAgICAgICAgICAgICAgICAgKG9uUm93U2VsZWN0KT1cIml0ZW1TZWxlY3QoJGV2ZW50KVwiPjwvYXBwLXNwcnByb2dyZXNzPlxyXG4gICAgPGRpdiAjYXNDdCBbY2xhc3MuYWN0aXZlXT1cIiFhdWRpb1NpZ25hbENvbGxhcHNlZCAmJiAhc2NyZWVuWHNcIj5cclxuXHJcbiAgICAgIDxhcHAtYXVkaW9kaXNwbGF5ICNhdWRpb1NpZ25hbENvbnRhaW5lciBbY2xhc3MuYWN0aXZlXT1cIiFhdWRpb1NpZ25hbENvbGxhcHNlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdWRpb0NsaXBdPVwiZGlzcGxheUF1ZGlvQ2xpcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGF5U3RhcnRBY3Rpb25dPVwicGxheVN0YXJ0QWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uXT1cImF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIj48L2FwcC1hdWRpb2Rpc3BsYXk+XHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGdyZXk7XHJcbiAgICB3aWR0aDogMTAwJTsgLyogdXNlIGFsbCBob3Jpem9udGFsIGF2YWlsYWJsZSBzcGFjZSAqL1xyXG4gICAgZmxleDogMTsgLyogLi4uIGFuZCBmaWxsIHJlc3Qgb2YgdmVydGljYWwgYXZhaWxhYmxlIHNwYWNlIChvdGhlciBjb21wb25lbnRzIGhhdmUgZmxleCAwKSAqL1xyXG5cclxuICAgIC8qIFdvcmthcm91bmQgZm9yIEZpcmVmb3hcclxuICAgIElmIHRoZSBwcm9ncmVzcyB0YWJsZSBnZXRzIGxvbmcgKHNjcmlwdCB3aXRoIG1hbnkgaXRlbXMpIEZGIGluY3JlYXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBvdmVyZmxvdyBwcm9ncmVzc0NvbnRhaW5lciBhbmRcclxuICAgIHRoZSB3aG9sZSBhcHAgZG9lcyBub3QgZml0IGludG8gdGhlIHBhZ2UgYW55bW9yZS4gVGhlIGFwcCBvdmVyZmxvd3MgYW5kIHNob3dzIGEgdmVydGljYWwgc2Nyb2xsYmFyIGZvciB0aGUgd2hvbGUgYXBwLlxyXG4gICAgU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI4NjM2ODMyL2ZpcmVmb3gtb3ZlcmZsb3cteS1ub3Qtd29ya2luZy13aXRoLW5lc3RlZC1mbGV4Ym94XHJcbiAgICAqL1xyXG4gICAgbWluLWhlaWdodDogMHB4O1xyXG5cclxuICAgIGRpc3BsYXk6IGZsZXg7IC8qIGZsZXggY29udGFpbmVyOiBsZWZ0IHRyYWZmaWMgbGlnaHQsIHJpZ2h0IHByb21wdGVyIChjb250YWluZXIpICovXHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7IC8qIHdyYXAgY291bGQgY29tcGxldGVseSBkZXN0cm95IHRoZSBsYXlvdXQgKi9cclxuICB9YCwgYFxyXG4gICAgYXBwLXNpbXBsZXRyYWZmaWNsaWdodCB7XHJcbiAgICAgIG1hcmdpbjogMTBweDtcclxuICAgICAgbWluLWhlaWdodDogMHB4O1xyXG4gICAgICB6LWluZGV4OiAzO1xyXG4gICAgfVxyXG4gIGAsIGBcclxuICAgIGFwcC1zcHJwcm9ncmVzcyB7XHJcbiAgICAgIHotaW5kZXg6IDM7XHJcbiAgICB9XHJcbiAgYCwgYFxyXG4gICAgZGl2IHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuXHJcbiAgICAgIC8qIGhlaWdodDogNTAlOyAqL1xyXG4gICAgICAvKiB3aWR0aDogMTAwJTsgKi9cclxuXHJcbiAgICAgIC8qIG92ZXJmbG93OiBoaWRkZW47ICovXHJcblxyXG4gICAgICAvKiBtYXJnaW46IDIwcHg7ICovXHJcbiAgICAgIC8qIGJvcmRlcjogMjBweDsgKi9cclxuICAgICAgei1pbmRleDogNTtcclxuICAgICAgLypiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7ICovXHJcbiAgICB9YCwgYFxyXG4gICAgZGl2LmFjdGl2ZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgIC8qbGVmdDogMHB4OyAqL1xyXG5cclxuICAgICAgaGVpZ2h0OiA5MCU7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG5cclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgLyogbWFyZ2luOiAyMHB4OyAqL1xyXG4gICAgICAvKiBib3JkZXI6IDIwcHg7ICovXHJcbiAgICAgIHotaW5kZXg6IDU7XHJcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMClcclxuXHJcbiAgICB9YFxyXG4gIF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9tcHRpbmcgZXh0ZW5kcyBSZXNwb25zaXZlQ29tcG9uZW50e1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYnBvOkJyZWFrcG9pbnRPYnNlcnZlcikge1xyXG4gICAgc3VwZXIoYnBvKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoU2ltcGxlVHJhZmZpY0xpZ2h0LCB7IHN0YXRpYzogdHJ1ZSB9KSBzaW1wbGVUcmFmZmljTGlnaHQhOiBTaW1wbGVUcmFmZmljTGlnaHQ7XHJcbiAgQFZpZXdDaGlsZChBdWRpb0Rpc3BsYXksIHsgc3RhdGljOiB0cnVlIH0pIGF1ZGlvRGlzcGxheSE6IEF1ZGlvRGlzcGxheTtcclxuICBASW5wdXQoKSBwcm9qZWN0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHN0YXJ0U3RvcFNpZ25hbFN0YXRlITogU3RhcnRTdG9wU2lnbmFsU3RhdGU7XHJcbiAgQElucHV0KCkgcHJvbXB0SXRlbTogUHJvbXB0SXRlbSB8IG51bGw9bnVsbDtcclxuICBASW5wdXQoKSBzaG93UHJvbXB0OiBib29sZWFuPWZhbHNlO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBBcnJheTxJdGVtPnx1bmRlZmluZWQ9dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbUlkeCE6IG51bWJlcjtcclxuICBASW5wdXQoKSB0cmFuc3BvcnRBY3Rpb25zITogVHJhbnNwb3J0QWN0aW9ucztcclxuICBASW5wdXQoKSBlbmFibGVEb3dubG9hZDogYm9vbGVhbj1mYWxzZTtcclxuXHJcbiAgQElucHV0KCkgYXVkaW9TaWduYWxDb2xsYXBzZWQ6IGJvb2xlYW49dHJ1ZTtcclxuICBASW5wdXQoKSBkaXNwbGF5QXVkaW9DbGlwOiBBdWRpb0NsaXAgfCBudWxsPW51bGw7XHJcbiAgQElucHV0KCkgcGxheVN0YXJ0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHBsYXlTZWxlY3Rpb25BY3Rpb246IEFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbjpBY3Rpb248Ym9vbGVhbj58dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBvbkl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgb25OZXh0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25QcmV2SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgaXRlbVNlbGVjdChyb3dJZHg6IG51bWJlcikge1xyXG4gICAgdGhpcy5vbkl0ZW1TZWxlY3QuZW1pdChyb3dJZHgpO1xyXG4gIH1cclxuXHJcbiAgbmV4dEl0ZW0oKSB7XHJcbiAgICB0aGlzLm9uTmV4dEl0ZW0uZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJldkl0ZW0oKSB7XHJcbiAgICB0aGlzLm9uUHJldkl0ZW0uZW1pdCgpO1xyXG4gIH1cclxufVxyXG5cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '3.9.
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const VERSION = '3.9.2';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzMuOS4yJyJdfQ==
|
|
@@ -8454,12 +8454,7 @@ class PromptContainer {
|
|
|
8454
8454
|
}
|
|
8455
8455
|
this.prompter.promptMediaItems = this._mediaitems;
|
|
8456
8456
|
this.autoFontSize = (mimetype != null && mimetype.startsWith('text/'));
|
|
8457
|
-
|
|
8458
|
-
this.fontSizeChange = true;
|
|
8459
|
-
this.contentChecked = false;
|
|
8460
|
-
this.prDisplay = 'hidden';
|
|
8461
|
-
this.layout();
|
|
8462
|
-
}
|
|
8457
|
+
this.layout();
|
|
8463
8458
|
}
|
|
8464
8459
|
get mediaitems() {
|
|
8465
8460
|
return this._mediaitems;
|
|
@@ -8484,6 +8479,10 @@ class PromptContainer {
|
|
|
8484
8479
|
//console.log("layout, call fontSizeToFit hook ");
|
|
8485
8480
|
window.setTimeout(() => this.fontSizeToFit());
|
|
8486
8481
|
}
|
|
8482
|
+
else {
|
|
8483
|
+
this.contentChecked = true;
|
|
8484
|
+
this.prDisplay = 'visible';
|
|
8485
|
+
}
|
|
8487
8486
|
}
|
|
8488
8487
|
fontSizeToFit() {
|
|
8489
8488
|
if (this.prompter) {
|
|
@@ -17745,7 +17744,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
17745
17744
|
}]
|
|
17746
17745
|
}] });
|
|
17747
17746
|
|
|
17748
|
-
const VERSION = '3.9.
|
|
17747
|
+
const VERSION = '3.9.2';
|
|
17749
17748
|
|
|
17750
17749
|
const SPEECHRECORDER_ENVIRONMENT_DEFAULTS = {
|
|
17751
17750
|
production: false,
|