@rangertechnologies/ngnxt 2.1.126 → 2.1.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/environments/version.mjs +2 -2
- package/esm2022/lib/components/cards/group-card/group-card.component.mjs +36 -0
- package/esm2022/lib/components/cards/group-info/group-info.component.mjs +102 -0
- package/esm2022/lib/components/cards/image-card/image-card.component.mjs +83 -0
- package/esm2022/lib/components/cards/info-card/info-card.component.mjs +109 -0
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +2 -2
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/custom-input/custom-input.component.mjs +7 -2
- package/esm2022/lib/components/custom-table/custom-table.component.mjs +2 -2
- package/esm2022/lib/components/datatable/datatable.component.mjs +55 -39
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +2 -2
- package/esm2022/lib/components/table-appendix/table-appendix.component.mjs +2 -2
- package/esm2022/lib/nxt-app.module.mjs +27 -5
- package/esm2022/lib/pages/builder/element/element.component.mjs +64 -14
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +160 -94
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +4 -3
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +3 -3
- package/esm2022/lib/pipe/get-value.pipe.mjs +3 -5
- package/esm2022/lib/services/form-builder.service.mjs +14 -7
- package/esm2022/public-api.mjs +6 -1
- package/fesm2022/rangertechnologies-ngnxt.mjs +641 -170
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/cards/group-card/group-card.component.d.ts +13 -0
- package/lib/components/cards/group-info/group-info.component.d.ts +47 -0
- package/lib/components/cards/image-card/image-card.component.d.ts +34 -0
- package/lib/components/cards/info-card/info-card.component.d.ts +39 -0
- package/lib/components/datatable/datatable.component.d.ts +3 -1
- package/lib/nxt-app.module.d.ts +16 -12
- package/lib/pages/builder/element/element.component.d.ts +2 -0
- package/lib/pages/builder/properties/properties.component.d.ts +11 -0
- package/lib/services/form-builder.service.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
- package/rangertechnologies-ngnxt-2.1.128.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.126.tgz +0 -0
|
@@ -47,7 +47,7 @@ export class CustomTableComponent {
|
|
|
47
47
|
}
|
|
48
48
|
ngOnInit() {
|
|
49
49
|
// SKS20MAR25 check if question fieldsmeta is string
|
|
50
|
-
const parsedMeta = typeof this.question['fieldsMeta'] === 'object' ? this.question['fieldsMeta'] || [
|
|
50
|
+
const parsedMeta = typeof this.question['fieldsMeta'] === 'object' ? this.question['fieldsMeta'] || [] : JSON.parse(this.question['fieldsMeta']);
|
|
51
51
|
if (!parsedMeta || !Array.isArray(parsedMeta) || parsedMeta.length === 0) {
|
|
52
52
|
console.warn('No valid metadata provided');
|
|
53
53
|
return;
|
|
@@ -249,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
249
249
|
}], valueChange: [{
|
|
250
250
|
type: Output
|
|
251
251
|
}] } });
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS10YWJsZS9jdXN0b20tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXRhYmxlL2N1c3RvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWlCL0UsTUFBTSxPQUFPLG9CQUFvQjtJQWlDWDtJQUFxQztJQUFrQztJQWhDbEYsUUFBUSxDQUFVO0lBQ2xCLE9BQU8sQ0FBUztJQUNmLFdBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNuRSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsaUNBQWlDO0lBQ3BELGNBQWM7SUFDZCxvSkFBb0o7SUFDcEosVUFBVSxHQUFZLElBQUksQ0FBQztJQUMzQixjQUFjLEdBQVksSUFBSSxDQUFDO0lBQy9CLFdBQVcsR0FBWSxJQUFJLENBQUM7SUFDNUIsVUFBVSxHQUFZLElBQUksQ0FBQztJQUMzQixZQUFZLEdBQVcsQ0FBQyxDQUFDO0lBQ3pCLGFBQWEsQ0FBUztJQUN0QixTQUFTLENBQVMsQ0FBQyxvQ0FBb0M7SUFDdkQsT0FBTyxDQUFNO0lBQ2IsV0FBVyxDQUFNO0lBQ2pCLFNBQVMsQ0FBUztJQUNsQixNQUFNLENBQVM7SUFDZixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ3BCLE9BQU8sQ0FBVztJQUN6QixVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNC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QUUsS0FBYSxFQUFFLEtBQWE7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsZ0JBQXVCO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUMsQ0FBQzt3R0E1T1Usb0JBQW9COzRGQUFwQixvQkFBb0IsdUpDakJqQyxpNk9Ba0tBOzs0RkRqSmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQjtzSUFNbkIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIEhBIDE5REVDMjMgaW1wb3J0ZWQgdHJhbnNsYXRpb24gc2VydmljZVxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tICcuLi8uLi93cmFwcGVyJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEFQSU1ldGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FwaW1ldGEnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEN1c3RvbVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcXVlc3Rpb246IFF1ZXN0aW9uXG4gIEBJbnB1dCgpIGFwaU1ldGE6IHN0cmluZztcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICB0YWJsZUhlYWRlciA9IFtdO1xuICB0YWJsZURhdGEgPSBbXTtcbiAgZmlsdGVyZWREYXRhID0gW107IC8vIE5ldyBwcm9wZXJ0eSBmb3IgZmlsdGVyZWQgZGF0YVxuICAvL1JTIDAzRkVCMjAyNVxuICAvLyBEZWZhdWx0IFVJIGNvbmZpZ3VyYXRpb25zIHRvIGNvbnRyb2wgcm93IGFkZGl0aW9uLCBwYWdpbmF0aW9uLCBhY3Rpb25zIGNvbHVtbiB2aXNpYmlsaXR5LCBzZWFyY2ggZnVuY3Rpb25hbGl0eSwgYW5kIHRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuXG4gIHNob3dBZGRSb3c6IGJvb2xlYW4gPSB0cnVlO1xuICBzaG93UGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIHNob3dBY3Rpb25zOiBib29sZWFuID0gdHJ1ZTtcbiAgc2hvd1NlYXJjaDogYm9vbGVhbiA9IHRydWU7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyID0gNTtcbiAgYWRkUm93Q29sU3BhbjogbnVtYmVyO1xuICB0YWJsZVNpemU6IG51bWJlcjsgLy8gSEEgMjhERUMyMyB0YWJsZSBzaXplIGRlY2xhcmF0aW9uXG4gIG9iak5hbWU6IGFueTtcbiAgZmlsdGVyTG9naWM6IGFueTtcbiAgZmllbGRNZXRhOiBzdHJpbmc7XG4gIGZpclN0cjogc3RyaW5nO1xuICBzZWFyY2hCb3g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIG9wdGlvbnM6IHN0cmluZ1tdO1xuICBpc0Rpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cblxuICAvL1JTIDAzRkVCMjAyNVxuICAvLyBOZXcgcHJvcGVydGllcyBmb3Igc2VhcmNoIGFuZCBwYWdpbmF0aW9uXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xuICBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgdG90YWxJdGVtczogbnVtYmVyID0gMDtcbiAgcGFnZXM6IG51bWJlcltdID0gW107XG4gIE1hdGggPSBNYXRoO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7IH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU0tTMjBNQVIyNSBjaGVjayBpZiBxdWVzdGlvbiBmaWVsZHNtZXRhIGlzIHN0cmluZ1xuICAgICAgY29uc3QgcGFyc2VkTWV0YSA9ICB0eXBlb2YgdGhpcy5xdWVzdGlvblsnZmllbGRzTWV0YSddID09PSAnb2JqZWN0JyAgPyAgdGhpcy5xdWVzdGlvblsnZmllbGRzTWV0YSddIHx8IFt7fV0gOiBKU09OLnBhcnNlKCB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10pIDtcbiAgICAgIGlmICghcGFyc2VkTWV0YSB8fCAhQXJyYXkuaXNBcnJheShwYXJzZWRNZXRhKSB8fCBwYXJzZWRNZXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ05vIHZhbGlkIG1ldGFkYXRhIHByb3ZpZGVkJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy9SUyAwM0ZFQjIwMjVcbiAgICAgIC8vIEV4dHJhY3RzIHRhYmxlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZHluYW1pY2FsbHkgZnJvbSBtZXRhZGF0YSBhbmQgYXBwbGllcyB0aGVtLCBlbnN1cmluZyBmbGV4aWJpbGl0eSBpbiBVSSBjdXN0b21pemF0aW9uXG4gICAgICBpZiAocGFyc2VkTWV0YVswXT8udGFibGVDb25maWcpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gcGFyc2VkTWV0YVswXS50YWJsZUNvbmZpZztcbiAgICAgICAgdGhpcy5zaG93QWRkUm93ID0gY29uZmlnLnNob3dBZGRSb3cgIT09IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dQYWdpbmF0aW9uID0gY29uZmlnLnNob3dQYWdpbmF0aW9uICE9PSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93QWN0aW9ucyA9IGNvbmZpZy5zaG93QWN0aW9ucyAhPT0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd1NlYXJjaCA9IGNvbmZpZy5zaG93U2VhcmNoICE9PSBmYWxzZTtcbiAgICAgICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBjb25maWcuaXRlbXNQZXJQYWdlIHx8IDU7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBjb25maWcgb2JqZWN0IGZyb20gaGVhZGVyc1xuICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gcGFyc2VkTWV0YS5zbGljZSgxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIGNvbmZpZyBvYmplY3QgZm91bmQsIHVzZSBhbGwgb2JqZWN0cyBhcyBoZWFkZXJzXG4gICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBwYXJzZWRNZXRhO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9IDEwIC8gdGhpcy50YWJsZUhlYWRlci5sZW5ndGg7XG4gICAgICAvLyAxMkpVTjI0IC0gZGVmYXVsdCB0YWJsZSB2YWx1ZVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb24/LmlucHV0KSB7XG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5xdWVzdGlvbj8uaW5wdXQ7XG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICAgICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hcGlNZXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gW107XG4gICAgICAgIC8vIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgICAgICAgICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSB0eXBlb2YgdGhpcy5hcGlNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuYXBpTWV0YSA6IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcblxuICAgICAgICBpZiAoYXBpT2JqICYmIGFwaU9iai5lbmRwb2ludCkge1xuICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoYXBpT2JqLmVuZHBvaW50KT8uc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgICAgIGlmIChhcGlPYmoudmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgLy8gVkQgMjJNYXkyNCAtIGhhbmRsaW5nIG11bHRpcGxlIGNoaWxkIG9iamVjdHNcbiAgICAgICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShhcGlSZXNwb25zZSwgYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICAgICAgLy8gSEEgMTlKQU4yNCBUbyBhdm9pZCB1bmRlZmluZWQgZXJyb3IgaW4gY29uc29sZVxuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcCA9IHJlc3BvbnNlc1tpXTtcbiAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzcCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzdWx0cztcbiAgICAgICAgICAgIH0gZWxzZSB7ICAvLyBWRCAxOUpBTjI0IC0gaWYgcmVzcG9uc2UgaGFzIHZhbHVlKHdoaWNoIGlzIGFycmF5KSBvbmx5XG4gICAgICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXNwb25zZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnMubWFwKChvYmo6IGFueSkgPT4gKHsgLi4ub2JqLCBlZGl0OiBmYWxzZSB9KSk7XG4gICAgICAgICAgICAvLyBSZWZlcmVuY2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG5nLXNlbGVjdC9uZy1zZWxlY3RcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3RhYmxlRGF0YScsIHRoaXMudGFibGVEYXRhKTtcblxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVkQgTk9WMjMgLSBoYW5kbGUgdGhlIGRlcGVuZGVudCB1cGRhdGUgZm9yIGRyb3Bkb3duXG4gICAgICAgIGxldCBzb3VyY2VJZCA9IGFwaU9iaj8uc291cmNlUXVlc3Rpb25JZDtcbiAgICAgICAgbGV0IGZpZWxkID0gYXBpT2JqPy5maWVsZDsgICAgICAgIC8vIFZEIDEzTUFZMjQgLSBkeW5hbWljIGZpZWxkIGNoYW5nZXNcbiAgICAgICAgaWYgKHNvdXJjZUlkKSB7XG4gICAgICAgICAgLy8gLy8gVkQgMTBNYXkyNCBTdWJzY3JpYmUgZm9yIHRoZSBjaGFuZ2VzXG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZVNlcnZpY2UuY2hhbmdlQW5ub3VuY2VkJC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjaGFuZ2VzIGhhcHBlbicpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5vcHRpb25zLm1hcCgob2JqOiBhbnkpID0+ICh7IC4uLm9iaiwgZWRpdDogZmFsc2UgfSkpO1xuICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBjaGFuZ2VWYWx1ZS52YWx1ZU9iajtcbiAgICAgICAgICAgICAgICAgIGxldCB2YWxpZEl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgLy8gVkQgMTNNQVkyNCAtIGJpbmQgZHluYW1pYyBmaWVsZFxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyBWRCAyNkp1bjI0IC0gdG8gaGFuZGxlIG11bHRpcGxlIG9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvYmpFbGVtZW50VmFsdWUgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGVsZW1lbnQsIGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvYmpJdGVtVmFsdWUgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGl0ZW0sIGZpZWxkKVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChvYmpFbGVtZW50VmFsdWUgPT0gb2JqSXRlbVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZEl0ZW0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLy9SUyAxNEZFQjIwMjVcbiAgICAgICAgICAgICAgICAgIC8vVXBkYXRlIFBhZ2luYXRpb24gYmVmb3JlIGVtaXRcbiAgICAgICAgICAgICAgICAgIGlmICh2YWxpZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFsuLi50aGlzLnRhYmxlRGF0YSwgaXRlbV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgZmlsdGVyZWREYXRhIGFuZCBwYWdpbmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoYXBpT2JqPy5zb3VyY2VRdWVzdGlvbklkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlUGFnaW5hdGlvbigpO1xuICB9XG4gIC8vUlMgMDNGRUIyMDI1XG4gIC8vIOKGkiBGaWx0ZXJzIHRhYmxlIGRhdGEgYmFzZWQgb24gdXNlciBpbnB1dCBhbmQgdXBkYXRlcyBwYWdpbmF0aW9uIGFjY29yZGluZ2x5LlxuICBzZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFRlcm0udHJpbSgpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLnRhYmxlRGF0YV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlYXJjaFRlcm1Mb3dlciA9IHRoaXMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLnRhYmxlRGF0YS5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlSGVhZGVyLnNvbWUoaGVhZGVyID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoaXRlbSwgaGVhZGVyLmFwaU5hbWUpO1xuICAgICAgICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybUxvd2VyKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XG4gIH1cbiAgLy9SUyAwM0ZFQjIwMjVcbiAgLy8gQ2FsY3VsYXRlcyB0b3RhbCBwYWdlcywgdXBkYXRlcyB0aGUgcGFnZSBsaXN0LCBhbmQgZW5zdXJlcyB0aGUgY3VycmVudCBwYWdlIGlzIHdpdGhpbiB2YWxpZCBib3VuZHMuXG4gIHVwZGF0ZVBhZ2luYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5maWx0ZXJlZERhdGEubGVuZ3RoO1xuICAgIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuICAgIHRoaXMucGFnZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbFBhZ2VzIH0sIChfLCBpKSA9PiBpICsgMSk7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiB0b3RhbFBhZ2VzKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdG90YWxQYWdlcyB8fCAxO1xuICAgIH1cbiAgfVxuICAvL1JTIDAzRkVCMjAyNVxuICAvL1JldHVybnMgYSBwYWdpbmF0ZWQgc3Vic2V0IG9mIGZpbHRlcmVkRGF0YSBiYXNlZCBvbiB0aGUgY3VycmVudCBwYWdlIGFuZCBpdGVtcyBwZXIgcGFnZVxuICBnZXQgcGFnaW5hdGVkRGF0YSgpOiBhbnlbXSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZTtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZERhdGEuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIHRoaXMuaXRlbXNQZXJQYWdlKTtcbiAgfVxuICAvL1JTIDAzRkVCMjAyNVxuICAvL1VwZGF0ZXMgY3VycmVudFBhZ2Ugd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZGlmZmVyZW50IHBhZ2VcbiAgc2V0UGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdGhpcy5wYWdlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIH1cbiAgfVxuXG4gIGFkZFJvdygpOiB2b2lkIHtcbiAgICBsZXQgbmV3SXRlbSA9IHt9O1xuICAgIHRoaXMudGFibGVIZWFkZXIuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLmFwaU5hbWUpIHtcbiAgICAgICAgbmV3SXRlbVtpdGVtLmFwaU5hbWVdID0gXCJcIjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnRhYmxlRGF0YS5wdXNoKG5ld0l0ZW0pO1xuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcblxuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgfVxuXG4gIHVwZGF0ZVJhZGlvKGl0ZW06IGFueSwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGl0ZW0udmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh0aGlzLnRhYmxlRGF0YSk7XG4gIH1cbiAgLy8gTW9kaWZpZWQgdXBkYXRlIG1ldGhvZHMgdG8gdHJhY2sgY2hhbmdlc1xuICB1cGRhdGVMYWJlbChyb3dJbmRleDogbnVtYmVyLCBsYWJlbDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy50YWJsZURhdGFbcm93SW5kZXhdW2xhYmVsXSA9IHZhbHVlO1xuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgfVxuICAvL1JTIDAzRkVCMjAyNVxuICBkZWxldGVSb3cocm93SW5kZXg6IG51bWJlcikge1xuICAgIC8vIHRoaXMudGFibGVEYXRhLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgY29uc3QgYWN0dWFsSW5kZXggPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgKyByb3dJbmRleDtcbiAgICB0aGlzLnRhYmxlRGF0YS5zcGxpY2UoYWN0dWFsSW5kZXgsIDEpO1xuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcblxuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgfVxuXG4gIGVkaXRSb3cocm93SW5kZXg6IG51bWJlcikge1xuICAgIHZhciBhID0gMDtcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGEgPT09IHJvd0luZGV4KSB7XG4gICAgICAgIGVsZW1lbnQuZWRpdCA9IHRydWU7XG4gICAgICB9XG4gICAgICBhKys7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVOdW1iZXIoaXRlbTogYW55LCBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgaXRlbS52YWx1ZVtsYWJlbF0gPSB2YWx1ZTtcbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh0aGlzLnRhYmxlRGF0YSk7XG4gIH1cblxuXG4gIGVtaXRUYWJsZURhdGFWYWx1ZSh1cGRhdGVkVGFibGVEYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh1cGRhdGVkVGFibGVEYXRhKTtcbiAgfVxufSIsIjwhLS0gUlMgMDNGRUIyMDI1IC0tPlxuPCEtLSBTZWFyY2ggQmFyIC0tPlxuPCEtLSBTZWFyY2gsIFJldmVydCAmIFNhdmUgaW4gU2FtZSBMaW5lIC0tPlxuPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItM1wiPlxuICA8IS0tIFNlYXJjaCBCYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyIG1lLWF1dG9cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCBcbiAgICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2VhcmNoLWlucHV0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgKGlucHV0KT1cInNlYXJjaCgpXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIlxuICAgICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pY29uXCI+XG4gICAgPCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG4gICAgPCEtLSBTZWFyY2ggaWNvbiBmb3IgdXNlciBpbnB1dCAtLT5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMjFcIiB5MT1cIjIxXCIgeDI9XCIxNi42NVwiIHkyPVwiMTYuNjVcIj48L2xpbmU+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48IS0tIFRhYmxlIENvbnRhaW5lciAtLT5cbjxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXJcIj5cbiAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtc3RyaXBlZCB0YWJsZS1ib3JkZXJlZFwiPlxuICAgIDx0aGVhZD5cbiAgICAgICAgPCEtLSBIQSAyOERFQzIzIGNoYW5nZWQgdGFibGUgaGVhZGVyIHZhbHVlcyBhbmQgY2hhbmdlZCB0YWJsZSBzaXplIGxvZ2ljIHRvIGV2ZW5seSB2aXNpYmxlIC0tPlxuICAgIDwhLS0gPHRoPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCI+PC90aD4gLS0+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZGVyXCIgW3N0eWxlLndpZHRoXT1cImhlYWRlci53aWR0aCB8fCAnYXV0bydcIj5cbiAgICAgICAgICB7eyBoZWFkZXIubGFiZWwgfX1cbiAgICAgICAgPC90aD5cbiAgICAgICAgPCEtLSBBY3Rpb25zIGNvbHVtbiAob25seSBpZiBzaG93QWN0aW9ucyBpcyB0cnVlKSAtLT48IS0tIFJTIDAzRkVCMjAyNSAtLT5cbiAgICAgICAgPHRoICpuZ0lmPVwic2hvd0FjdGlvbnNcIiBzdHlsZT1cIndpZHRoOiAxNDBweFwiIGNsYXNzPVwiYWN0aW9ucy1jb2x1bW5zXCI+QWN0aW9uczwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luYXRlZERhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkZXJcIj5cbiAgICAgICAgICA8IS0tIEltYWdlIHdpdGggdGV4dCBpbnB1dCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdpbWFnZXRleHQnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pbWFnZVNyY1wiIFthbHRdPVwiaXRlbS5hbHRUZXh0XCIgc3R5bGU9XCJ3aWR0aDogMzVweDsgaGVpZ2h0OiAzMnB4OyBtYXJnaW4tcmlnaHQ6IDVweDtcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtW2hlYWRlci5maWVsZE5hbWVdXCIgXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTGFiZWwoaSwgaGVhZGVyLmZpZWxkTmFtZSwgaXRlbVtoZWFkZXIuZmllbGROYW1lXSlcIiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNoZS1saW5lLWlucHV0IHRhYmxlLWlucHV0XCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gSW1hZ2Ugb25seSAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdpbWFnZSdcIj5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtW2hlYWRlci5maWVsZE5hbWVdXCIgW2FsdF09XCJpdGVtLmFsdFRleHRcIiBzdHlsZT1cIndpZHRoOiAzNXB4OyBoZWlnaHQ6IDMycHg7XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwhLS1WRCAyM0F1ZzI0IGhhbmRsZSByZWFkT25seSAgLS0+XG4gICAgICAgICAgPCEtLSBUZXh0IGlucHV0IC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuZmxkVHlwZSA9PT0gJ1RleHQnXCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImhlYWRlci5yZWFkT25seVwiIFxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWl0ZW0uZWRpdFwiIFxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2VkaXRJbnB1dCc6IGl0ZW0uZWRpdCAmJiAhaGVhZGVyLnJlYWRPbmx5fVwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cIicnIHwgZ2V0VmFsdWU6IGl0ZW0gOiBoZWFkZXIuYXBpTmFtZVwiIFxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVMYWJlbChpLCBoZWFkZXIuYXBpTmFtZSwkZXZlbnQpXCIgXG4gICAgICAgICAgICAgIGNsYXNzPVwic2hlLWxpbmUtaW5wdXQgdGFibGUtaW5wdXRcIj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLVZEIDIzQXVnMjQgaGFuZGxlIE51bWJlciBUeXBlIC0tPlxuICAgICAgICA8IS0tIE51bWJlciBpbnB1dCAtLT5cbiAgICAgICAgPCEtLSBWRCAyNkp1bjI0IC0gcGlwZSBjaGFuZ2UgdG8gaGFuZGxlIG11bHRpcGxlIG9iamVjdHMtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdOdW1iZXInXCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaGVhZGVyLnJlYWRPbmx5XCIgXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXRlbS5lZGl0XCIgXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZWRpdElucHV0JzogaXRlbS5lZGl0ICYmICFoZWFkZXIucmVhZE9ubHl9XCJcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwiJycgfCBnZXRWYWx1ZTogaXRlbSA6IGhlYWRlci5hcGlOYW1lXCIgXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKGksIGhlYWRlci5hcGlOYW1lLCRldmVudClcIiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJzaGUtbGluZS1pbnB1dCB0YWJsZS1pbnB1dFwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBSYWRpbyBpbnB1dCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdyYWRpbydcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBcbiAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5uYW1lXCIgXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIml0ZW0udmFsdWUgPT0gaGVhZGVyLmZpZWxkTmFtZVwiICBcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVJhZGlvKGl0ZW0sIGhlYWRlci5maWVsZE5hbWUpXCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDwhLS0gQWN0aW9ucyBjb2x1bW4gLS0+PCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNob3dBY3Rpb25zXCIgY2xhc3M9XCJhY3Rpb25zLWNvbHVtblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWFyb3VuZFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGluayBwLTBcIiAoY2xpY2spPVwiZWRpdFJvdyhpKVwiPlxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjMDNBOUY0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMjBoOVwiIC8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNi41IDMuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNFpcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTUgNSAzIDNcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHAtMFwiIChjbGljayk9XCJkZWxldGVSb3coaSlcIj5cbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI0Y0NDMzNlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgNmgxOFwiIC8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyXCIgLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTEwIDExIDEgNlwiIC8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIm0xNCAxMS0xIDZcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNCA2bDEgMTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0ybDEtMTRcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVsZXRlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG48IS0tIFBhZ2luYXRpb24gLS0+PCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG48ZGl2ICpuZ0lmPVwic2hvd1BhZ2luYXRpb25cIiBjbGFzcz1cInBhZ2luYXRpb24tY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbXMtcGVyLXBhZ2VcIj5cbiAgICAgIDxzcGFuPkl0ZW1zIHBlciBwYWdlOjwvc3Bhbj5cbiAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJpdGVtc1BlclBhZ2VcIiAoY2hhbmdlKT1cInVwZGF0ZVBhZ2luYXRpb24oKVwiIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3Qtc21cIj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMFwiPjEwPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMFwiPjIwPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI1MFwiPjUwPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicGFnZS1pbmZvIG1zLTMgbWUtM1wiPlxuICAgICAge3soKGN1cnJlbnRQYWdlIC0gMSkgKiBpdGVtc1BlclBhZ2UgKyAxKX19IC0ge3tNYXRoLm1pbihjdXJyZW50UGFnZSAqIGl0ZW1zUGVyUGFnZSwgdG90YWxJdGVtcyl9fSBvZiB7e3RvdGFsSXRlbXN9fVxuICAgIDwvZGl2PlxuICAgIDxuYXYgYXJpYS1sYWJlbD1cIlRhYmxlIHBhZ2luYXRpb25cIj5cbiAgICAgIDwhLS0gRmlyc3QgcGFnZSAtLT48IS0tIFJTIDAzRkVCMjAyNSAtLT5cbiAgICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb24gbWItMFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJzZXRQYWdlKDEpXCI+wqs8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInNldFBhZ2UoY3VycmVudFBhZ2UgLSAxKVwiPuKAuTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPCEtLSBEeW5hbWljIHBhZ2luYXRpb24gLS0+PCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCIgW2NsYXNzLmFjdGl2ZV09XCJwYWdlID09PSBjdXJyZW50UGFnZVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInNldFBhZ2UocGFnZSlcIj57e3BhZ2V9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSBwYWdlcy5sZW5ndGhcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJzZXRQYWdlKGN1cnJlbnRQYWdlICsgMSlcIj7igLo8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDwhLS0gTGFzdCBwYWdlIC0tPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHBhZ2VzLmxlbmd0aFwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInNldFBhZ2UocGFnZXMubGVuZ3RoKVwiPsK7PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L25hdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS0gUlMgMDNGRUIyMDI1IC0tPlxuPCEtLSBBZGQgUm93IEJ1dHRvbiAtLT5cbjxkaXYgKm5nSWY9XCJzaG93QWRkUm93XCIgIChjbGljayk9XCJhZGRSb3coKVwiIGNsYXNzPVwiYWRkUm93Q2xhc3NcIj5cbiAgPGRpdiBjbGFzcz1cImNpcmNsZS1idXR0b25cIj4rPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS10YWJsZS9jdXN0b20tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXRhYmxlL2N1c3RvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWlCL0UsTUFBTSxPQUFPLG9CQUFvQjtJQWlDWDtJQUFxQztJQUFrQztJQWhDbEYsUUFBUSxDQUFVO0lBQ2xCLE9BQU8sQ0FBUztJQUNmLFdBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNuRSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsaUNBQWlDO0lBQ3BELGNBQWM7SUFDZCxvSkFBb0o7SUFDcEosVUFBVSxHQUFZLElBQUksQ0FBQztJQUMzQixjQUFjLEdBQVksSUFBSSxDQUFDO0lBQy9CLFdBQVcsR0FBWSxJQUFJLENBQUM7SUFDNUIsVUFBVSxHQUFZLElBQUksQ0FBQztJQUMzQixZQUFZLEdBQVcsQ0FBQyxDQUFDO0lBQ3pCLGFBQWEsQ0FBUztJQUN0QixTQUFTLENBQVMsQ0FBQyxvQ0FBb0M7SUFDdkQsT0FBTyxDQUFNO0lBQ2IsV0FBVyxDQUFNO0lBQ2pCLFNBQVMsQ0FBUztJQUNsQixNQUFNLENBQVM7SUFDZixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ3BCLE9BQU8sQ0FBVztJQUN6QixVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNC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QUUsS0FBYTtRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFHRCxrQkFBa0IsQ0FBQyxnQkFBdUI7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMxQyxDQUFDO3dHQTVPVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix1SkNqQmpDLGk2T0FrS0E7OzRGRGpKYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCO3NJQU1uQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBRdWVzdGlvbiB9IGZyb20gJy4uLy4uL3dyYXBwZXInO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoYW5nZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGFuZ2Uuc2VydmljZSc7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tdGFibGUuY29tcG9uZW50LmNzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBxdWVzdGlvbjogUXVlc3Rpb25cbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHRhYmxlSGVhZGVyID0gW107XG4gIHRhYmxlRGF0YSA9IFtdO1xuICBmaWx0ZXJlZERhdGEgPSBbXTsgLy8gTmV3IHByb3BlcnR5IGZvciBmaWx0ZXJlZCBkYXRhXG4gIC8vUlMgMDNGRUIyMDI1XG4gIC8vIERlZmF1bHQgVUkgY29uZmlndXJhdGlvbnMgdG8gY29udHJvbCByb3cgYWRkaXRpb24sIHBhZ2luYXRpb24sIGFjdGlvbnMgY29sdW1uIHZpc2liaWxpdHksIHNlYXJjaCBmdW5jdGlvbmFsaXR5LCBhbmQgdGhlIG51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS5cbiAgc2hvd0FkZFJvdzogYm9vbGVhbiA9IHRydWU7XG4gIHNob3dQYWdpbmF0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgc2hvd0FjdGlvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICBzaG93U2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcbiAgaXRlbXNQZXJQYWdlOiBudW1iZXIgPSA1O1xuICBhZGRSb3dDb2xTcGFuOiBudW1iZXI7XG4gIHRhYmxlU2l6ZTogbnVtYmVyOyAvLyBIQSAyOERFQzIzIHRhYmxlIHNpemUgZGVjbGFyYXRpb25cbiAgb2JqTmFtZTogYW55O1xuICBmaWx0ZXJMb2dpYzogYW55O1xuICBmaWVsZE1ldGE6IHN0cmluZztcbiAgZmlyU3RyOiBzdHJpbmc7XG4gIHNlYXJjaEJveDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgb3B0aW9uczogc3RyaW5nW107XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuXG4gIC8vUlMgMDNGRUIyMDI1XG4gIC8vIE5ldyBwcm9wZXJ0aWVzIGZvciBzZWFyY2ggYW5kIHBhZ2luYXRpb25cbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICB0b3RhbEl0ZW1zOiBudW1iZXIgPSAwO1xuICBwYWdlczogbnVtYmVyW10gPSBbXTtcbiAgTWF0aCA9IE1hdGg7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlU2VydmljZTogQ2hhbmdlU2VydmljZSwgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHsgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTS1MyME1BUjI1IGNoZWNrIGlmIHF1ZXN0aW9uIGZpZWxkc21ldGEgaXMgc3RyaW5nXG4gICAgICBjb25zdCBwYXJzZWRNZXRhID0gIHR5cGVvZiB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10gPT09ICdvYmplY3QnICA/ICB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10gfHwgW10gOiBKU09OLnBhcnNlKCB0aGlzLnF1ZXN0aW9uWydmaWVsZHNNZXRhJ10pIDtcbiAgICAgIGlmICghcGFyc2VkTWV0YSB8fCAhQXJyYXkuaXNBcnJheShwYXJzZWRNZXRhKSB8fCBwYXJzZWRNZXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ05vIHZhbGlkIG1ldGFkYXRhIHByb3ZpZGVkJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy9SUyAwM0ZFQjIwMjVcbiAgICAgIC8vIEV4dHJhY3RzIHRhYmxlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZHluYW1pY2FsbHkgZnJvbSBtZXRhZGF0YSBhbmQgYXBwbGllcyB0aGVtLCBlbnN1cmluZyBmbGV4aWJpbGl0eSBpbiBVSSBjdXN0b21pemF0aW9uXG4gICAgICBpZiAocGFyc2VkTWV0YVswXT8udGFibGVDb25maWcpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gcGFyc2VkTWV0YVswXS50YWJsZUNvbmZpZztcbiAgICAgICAgdGhpcy5zaG93QWRkUm93ID0gY29uZmlnLnNob3dBZGRSb3cgIT09IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dQYWdpbmF0aW9uID0gY29uZmlnLnNob3dQYWdpbmF0aW9uICE9PSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93QWN0aW9ucyA9IGNvbmZpZy5zaG93QWN0aW9ucyAhPT0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd1NlYXJjaCA9IGNvbmZpZy5zaG93U2VhcmNoICE9PSBmYWxzZTtcbiAgICAgICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBjb25maWcuaXRlbXNQZXJQYWdlIHx8IDU7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBjb25maWcgb2JqZWN0IGZyb20gaGVhZGVyc1xuICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gcGFyc2VkTWV0YS5zbGljZSgxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIGNvbmZpZyBvYmplY3QgZm91bmQsIHVzZSBhbGwgb2JqZWN0cyBhcyBoZWFkZXJzXG4gICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBwYXJzZWRNZXRhO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9IDEwIC8gdGhpcy50YWJsZUhlYWRlci5sZW5ndGg7XG4gICAgICAvLyAxMkpVTjI0IC0gZGVmYXVsdCB0YWJsZSB2YWx1ZVxuICAgICAgaWYgKHRoaXMucXVlc3Rpb24/LmlucHV0KSB7XG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5xdWVzdGlvbj8uaW5wdXQ7XG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICAgICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hcGlNZXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gW107XG4gICAgICAgIC8vIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgICAgICAgICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgICAgIGxldCBhcGlPYmo6IEFQSU1ldGEgPSB0eXBlb2YgdGhpcy5hcGlNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuYXBpTWV0YSA6IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcblxuICAgICAgICBpZiAoYXBpT2JqICYmIGFwaU9iai5lbmRwb2ludCkge1xuICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoYXBpT2JqLmVuZHBvaW50KT8uc3Vic2NyaWJlKChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgICAgIGlmIChhcGlPYmoudmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgLy8gVkQgMjJNYXkyNCAtIGhhbmRsaW5nIG11bHRpcGxlIGNoaWxkIG9iamVjdHNcbiAgICAgICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShhcGlSZXNwb25zZSwgYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgICAgICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICAgICAgLy8gSEEgMTlKQU4yNCBUbyBhdm9pZCB1bmRlZmluZWQgZXJyb3IgaW4gY29uc29sZVxuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlcz8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzcCA9IHJlc3BvbnNlc1tpXTtcbiAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzcCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzdWx0cztcbiAgICAgICAgICAgIH0gZWxzZSB7ICAvLyBWRCAxOUpBTjI0IC0gaWYgcmVzcG9uc2UgaGFzIHZhbHVlKHdoaWNoIGlzIGFycmF5KSBvbmx5XG4gICAgICAgICAgICAgIHJlc3BvbnNlcyA9IGFwaVJlc3BvbnNlO1xuICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSByZXNwb25zZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnMubWFwKChvYmo6IGFueSkgPT4gKHsgLi4ub2JqLCBlZGl0OiBmYWxzZSB9KSk7XG4gICAgICAgICAgICAvLyBSZWZlcmVuY2UgaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG5nLXNlbGVjdC9uZy1zZWxlY3RcbiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3RhYmxlRGF0YScsIHRoaXMudGFibGVEYXRhKTtcblxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVkQgTk9WMjMgLSBoYW5kbGUgdGhlIGRlcGVuZGVudCB1cGRhdGUgZm9yIGRyb3Bkb3duXG4gICAgICAgIGxldCBzb3VyY2VJZCA9IGFwaU9iaj8uc291cmNlUXVlc3Rpb25JZDtcbiAgICAgICAgbGV0IGZpZWxkID0gYXBpT2JqPy5maWVsZDsgICAgICAgIC8vIFZEIDEzTUFZMjQgLSBkeW5hbWljIGZpZWxkIGNoYW5nZXNcbiAgICAgICAgaWYgKHNvdXJjZUlkKSB7XG4gICAgICAgICAgLy8gLy8gVkQgMTBNYXkyNCBTdWJzY3JpYmUgZm9yIHRoZSBjaGFuZ2VzXG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZVNlcnZpY2UuY2hhbmdlQW5ub3VuY2VkJC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZVZhbHVlICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gYXBpT2JqLnNvdXJjZVF1ZXN0aW9uSWQpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjaGFuZ2VzIGhhcHBlbicpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5vcHRpb25zLm1hcCgob2JqOiBhbnkpID0+ICh7IC4uLm9iaiwgZWRpdDogZmFsc2UgfSkpO1xuICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBjaGFuZ2VWYWx1ZS52YWx1ZU9iajtcbiAgICAgICAgICAgICAgICAgIGxldCB2YWxpZEl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgLy8gVkQgMTNNQVkyNCAtIGJpbmQgZHluYW1pYyBmaWVsZFxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAvLyBWRCAyNkp1bjI0IC0gdG8gaGFuZGxlIG11bHRpcGxlIG9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvYmpFbGVtZW50VmFsdWUgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGVsZW1lbnQsIGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvYmpJdGVtVmFsdWUgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldFZhbHVlKGl0ZW0sIGZpZWxkKVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChvYmpFbGVtZW50VmFsdWUgPT0gb2JqSXRlbVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZEl0ZW0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLy9SUyAxNEZFQjIwMjVcbiAgICAgICAgICAgICAgICAgIC8vVXBkYXRlIFBhZ2luYXRpb24gYmVmb3JlIGVtaXRcbiAgICAgICAgICAgICAgICAgIGlmICh2YWxpZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFsuLi50aGlzLnRhYmxlRGF0YSwgaXRlbV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZURhdGEucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgZmlsdGVyZWREYXRhIGFuZCBwYWdpbmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VTZXJ2aWNlLmNvbmZpcm1DaGFuZ2UoYXBpT2JqPy5zb3VyY2VRdWVzdGlvbklkKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlUGFnaW5hdGlvbigpO1xuICB9XG4gIC8vUlMgMDNGRUIyMDI1XG4gIC8vIOKGkiBGaWx0ZXJzIHRhYmxlIGRhdGEgYmFzZWQgb24gdXNlciBpbnB1dCBhbmQgdXBkYXRlcyBwYWdpbmF0aW9uIGFjY29yZGluZ2x5LlxuICBzZWFyY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaFRlcm0udHJpbSgpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IFsuLi50aGlzLnRhYmxlRGF0YV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNlYXJjaFRlcm1Mb3dlciA9IHRoaXMuc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLnRhYmxlRGF0YS5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlSGVhZGVyLnNvbWUoaGVhZGVyID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoaXRlbSwgaGVhZGVyLmFwaU5hbWUpO1xuICAgICAgICAgIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybUxvd2VyKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy51cGRhdGVQYWdpbmF0aW9uKCk7XG4gIH1cbiAgLy9SUyAwM0ZFQjIwMjVcbiAgLy8gQ2FsY3VsYXRlcyB0b3RhbCBwYWdlcywgdXBkYXRlcyB0aGUgcGFnZSBsaXN0LCBhbmQgZW5zdXJlcyB0aGUgY3VycmVudCBwYWdlIGlzIHdpdGhpbiB2YWxpZCBib3VuZHMuXG4gIHVwZGF0ZVBhZ2luYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5maWx0ZXJlZERhdGEubGVuZ3RoO1xuICAgIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuICAgIHRoaXMucGFnZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbFBhZ2VzIH0sIChfLCBpKSA9PiBpICsgMSk7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiB0b3RhbFBhZ2VzKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdG90YWxQYWdlcyB8fCAxO1xuICAgIH1cbiAgfVxuICAvL1JTIDAzRkVCMjAyNVxuICAvL1JldHVybnMgYSBwYWdpbmF0ZWQgc3Vic2V0IG9mIGZpbHRlcmVkRGF0YSBiYXNlZCBvbiB0aGUgY3VycmVudCBwYWdlIGFuZCBpdGVtcyBwZXIgcGFnZVxuICBnZXQgcGFnaW5hdGVkRGF0YSgpOiBhbnlbXSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZTtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZERhdGEuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIHRoaXMuaXRlbXNQZXJQYWdlKTtcbiAgfVxuICAvL1JTIDAzRkVCMjAyNVxuICAvL1VwZGF0ZXMgY3VycmVudFBhZ2Ugd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgZGlmZmVyZW50IHBhZ2VcbiAgc2V0UGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdGhpcy5wYWdlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIH1cbiAgfVxuXG4gIGFkZFJvdygpOiB2b2lkIHtcbiAgICBsZXQgbmV3SXRlbSA9IHt9O1xuICAgIHRoaXMudGFibGVIZWFkZXIuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLmFwaU5hbWUpIHtcbiAgICAgICAgbmV3SXRlbVtpdGVtLmFwaU5hbWVdID0gXCJcIjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnRhYmxlRGF0YS5wdXNoKG5ld0l0ZW0pO1xuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcblxuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgfVxuXG4gIHVwZGF0ZVJhZGlvKGl0ZW06IGFueSwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGl0ZW0udmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh0aGlzLnRhYmxlRGF0YSk7XG4gIH1cbiAgLy8gTW9kaWZpZWQgdXBkYXRlIG1ldGhvZHMgdG8gdHJhY2sgY2hhbmdlc1xuICB1cGRhdGVMYWJlbChyb3dJbmRleDogbnVtYmVyLCBsYWJlbDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy50YWJsZURhdGFbcm93SW5kZXhdW2xhYmVsXSA9IHZhbHVlO1xuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgfVxuICAvL1JTIDAzRkVCMjAyNVxuICBkZWxldGVSb3cocm93SW5kZXg6IG51bWJlcikge1xuICAgIC8vIHRoaXMudGFibGVEYXRhLnNwbGljZShyb3dJbmRleCwgMSk7XG4gICAgY29uc3QgYWN0dWFsSW5kZXggPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgKyByb3dJbmRleDtcbiAgICB0aGlzLnRhYmxlRGF0YS5zcGxpY2UoYWN0dWFsSW5kZXgsIDEpO1xuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gWy4uLnRoaXMudGFibGVEYXRhXTtcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRpb24oKTtcblxuICAgIHRoaXMuZW1pdFRhYmxlRGF0YVZhbHVlKHRoaXMudGFibGVEYXRhKTtcbiAgfVxuXG4gIGVkaXRSb3cocm93SW5kZXg6IG51bWJlcikge1xuICAgIHZhciBhID0gMDtcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGEgPT09IHJvd0luZGV4KSB7XG4gICAgICAgIGVsZW1lbnQuZWRpdCA9IHRydWU7XG4gICAgICB9XG4gICAgICBhKys7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVOdW1iZXIoaXRlbTogYW55LCBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgaXRlbS52YWx1ZVtsYWJlbF0gPSB2YWx1ZTtcbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh0aGlzLnRhYmxlRGF0YSk7XG4gIH1cblxuXG4gIGVtaXRUYWJsZURhdGFWYWx1ZSh1cGRhdGVkVGFibGVEYXRhOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh1cGRhdGVkVGFibGVEYXRhKTtcbiAgfVxufSIsIjwhLS0gUlMgMDNGRUIyMDI1IC0tPlxuPCEtLSBTZWFyY2ggQmFyIC0tPlxuPCEtLSBTZWFyY2gsIFJldmVydCAmIFNhdmUgaW4gU2FtZSBMaW5lIC0tPlxuPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItM1wiPlxuICA8IS0tIFNlYXJjaCBCYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyIG1lLWF1dG9cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxpbnB1dCBcbiAgICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2VhcmNoLWlucHV0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgKGlucHV0KT1cInNlYXJjaCgpXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIlxuICAgICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pY29uXCI+XG4gICAgPCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG4gICAgPCEtLSBTZWFyY2ggaWNvbiBmb3IgdXNlciBpbnB1dCAtLT5cbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxsaW5lIHgxPVwiMjFcIiB5MT1cIjIxXCIgeDI9XCIxNi42NVwiIHkyPVwiMTYuNjVcIj48L2xpbmU+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48IS0tIFRhYmxlIENvbnRhaW5lciAtLT5cbjxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXJcIj5cbiAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtc3RyaXBlZCB0YWJsZS1ib3JkZXJlZFwiPlxuICAgIDx0aGVhZD5cbiAgICAgICAgPCEtLSBIQSAyOERFQzIzIGNoYW5nZWQgdGFibGUgaGVhZGVyIHZhbHVlcyBhbmQgY2hhbmdlZCB0YWJsZSBzaXplIGxvZ2ljIHRvIGV2ZW5seSB2aXNpYmxlIC0tPlxuICAgIDwhLS0gPHRoPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCI+PC90aD4gLS0+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZGVyXCIgW3N0eWxlLndpZHRoXT1cImhlYWRlci53aWR0aCB8fCAnYXV0bydcIj5cbiAgICAgICAgICB7eyBoZWFkZXIubGFiZWwgfX1cbiAgICAgICAgPC90aD5cbiAgICAgICAgPCEtLSBBY3Rpb25zIGNvbHVtbiAob25seSBpZiBzaG93QWN0aW9ucyBpcyB0cnVlKSAtLT48IS0tIFJTIDAzRkVCMjAyNSAtLT5cbiAgICAgICAgPHRoICpuZ0lmPVwic2hvd0FjdGlvbnNcIiBzdHlsZT1cIndpZHRoOiAxNDBweFwiIGNsYXNzPVwiYWN0aW9ucy1jb2x1bW5zXCI+QWN0aW9uczwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luYXRlZERhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkZXJcIj5cbiAgICAgICAgICA8IS0tIEltYWdlIHdpdGggdGV4dCBpbnB1dCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdpbWFnZXRleHQnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pbWFnZVNyY1wiIFthbHRdPVwiaXRlbS5hbHRUZXh0XCIgc3R5bGU9XCJ3aWR0aDogMzVweDsgaGVpZ2h0OiAzMnB4OyBtYXJnaW4tcmlnaHQ6IDVweDtcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtW2hlYWRlci5maWVsZE5hbWVdXCIgXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTGFiZWwoaSwgaGVhZGVyLmZpZWxkTmFtZSwgaXRlbVtoZWFkZXIuZmllbGROYW1lXSlcIiBcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNoZS1saW5lLWlucHV0IHRhYmxlLWlucHV0XCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDwhLS0gSW1hZ2Ugb25seSAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdpbWFnZSdcIj5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtW2hlYWRlci5maWVsZE5hbWVdXCIgW2FsdF09XCJpdGVtLmFsdFRleHRcIiBzdHlsZT1cIndpZHRoOiAzNXB4OyBoZWlnaHQ6IDMycHg7XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwhLS1WRCAyM0F1ZzI0IGhhbmRsZSByZWFkT25seSAgLS0+XG4gICAgICAgICAgPCEtLSBUZXh0IGlucHV0IC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXIuZmxkVHlwZSA9PT0gJ1RleHQnXCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImhlYWRlci5yZWFkT25seVwiIFxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWl0ZW0uZWRpdFwiIFxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2VkaXRJbnB1dCc6IGl0ZW0uZWRpdCAmJiAhaGVhZGVyLnJlYWRPbmx5fVwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cIicnIHwgZ2V0VmFsdWU6IGl0ZW0gOiBoZWFkZXIuYXBpTmFtZVwiIFxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVMYWJlbChpLCBoZWFkZXIuYXBpTmFtZSwkZXZlbnQpXCIgXG4gICAgICAgICAgICAgIGNsYXNzPVwic2hlLWxpbmUtaW5wdXQgdGFibGUtaW5wdXRcIj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLVZEIDIzQXVnMjQgaGFuZGxlIE51bWJlciBUeXBlIC0tPlxuICAgICAgICA8IS0tIE51bWJlciBpbnB1dCAtLT5cbiAgICAgICAgPCEtLSBWRCAyNkp1bjI0IC0gcGlwZSBjaGFuZ2UgdG8gaGFuZGxlIG11bHRpcGxlIG9iamVjdHMtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdOdW1iZXInXCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaGVhZGVyLnJlYWRPbmx5XCIgXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXRlbS5lZGl0XCIgXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZWRpdElucHV0JzogaXRlbS5lZGl0ICYmICFoZWFkZXIucmVhZE9ubHl9XCJcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwiJycgfCBnZXRWYWx1ZTogaXRlbSA6IGhlYWRlci5hcGlOYW1lXCIgXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKGksIGhlYWRlci5hcGlOYW1lLCRldmVudClcIiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJzaGUtbGluZS1pbnB1dCB0YWJsZS1pbnB1dFwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBSYWRpbyBpbnB1dCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLmZsZFR5cGUgPT09ICdyYWRpbydcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBcbiAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5uYW1lXCIgXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIml0ZW0udmFsdWUgPT0gaGVhZGVyLmZpZWxkTmFtZVwiICBcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVJhZGlvKGl0ZW0sIGhlYWRlci5maWVsZE5hbWUpXCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDwhLS0gQWN0aW9ucyBjb2x1bW4gLS0+PCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNob3dBY3Rpb25zXCIgY2xhc3M9XCJhY3Rpb25zLWNvbHVtblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWFyb3VuZFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGluayBwLTBcIiAoY2xpY2spPVwiZWRpdFJvdyhpKVwiPlxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCIjMDNBOUY0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgMjBoOVwiIC8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNi41IDMuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNFpcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTUgNSAzIDNcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHAtMFwiIChjbGljayk9XCJkZWxldGVSb3coaSlcIj5cbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiI0Y0NDMzNlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgNmgxOFwiIC8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDZWNGEyIDIgMCAwIDEgMi0yaDRhMiAyIDAgMCAxIDIgMnYyXCIgLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwibTEwIDExIDEgNlwiIC8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIm0xNCAxMS0xIDZcIiAvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNCA2bDEgMTRhMiAyIDAgMCAwIDIgMmgxMGEyIDIgMCAwIDAgMi0ybDEtMTRcIiAvPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVsZXRlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG48IS0tIFBhZ2luYXRpb24gLS0+PCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG48ZGl2ICpuZ0lmPVwic2hvd1BhZ2luYXRpb25cIiBjbGFzcz1cInBhZ2luYXRpb24tY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbXMtcGVyLXBhZ2VcIj5cbiAgICAgIDxzcGFuPkl0ZW1zIHBlciBwYWdlOjwvc3Bhbj5cbiAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJpdGVtc1BlclBhZ2VcIiAoY2hhbmdlKT1cInVwZGF0ZVBhZ2luYXRpb24oKVwiIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3Qtc21cIj5cbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj41PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMFwiPjEwPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMFwiPjIwPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI1MFwiPjUwPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicGFnZS1pbmZvIG1zLTMgbWUtM1wiPlxuICAgICAge3soKGN1cnJlbnRQYWdlIC0gMSkgKiBpdGVtc1BlclBhZ2UgKyAxKX19IC0ge3tNYXRoLm1pbihjdXJyZW50UGFnZSAqIGl0ZW1zUGVyUGFnZSwgdG90YWxJdGVtcyl9fSBvZiB7e3RvdGFsSXRlbXN9fVxuICAgIDwvZGl2PlxuICAgIDxuYXYgYXJpYS1sYWJlbD1cIlRhYmxlIHBhZ2luYXRpb25cIj5cbiAgICAgIDwhLS0gRmlyc3QgcGFnZSAtLT48IS0tIFJTIDAzRkVCMjAyNSAtLT5cbiAgICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb24gbWItMFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJzZXRQYWdlKDEpXCI+wqs8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInNldFBhZ2UoY3VycmVudFBhZ2UgLSAxKVwiPuKAuTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPCEtLSBEeW5hbWljIHBhZ2luYXRpb24gLS0+PCEtLSBSUyAwM0ZFQjIwMjUgLS0+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCIgW2NsYXNzLmFjdGl2ZV09XCJwYWdlID09PSBjdXJyZW50UGFnZVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInNldFBhZ2UocGFnZSlcIj57e3BhZ2V9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSBwYWdlcy5sZW5ndGhcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJzZXRQYWdlKGN1cnJlbnRQYWdlICsgMSlcIj7igLo8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDwhLS0gTGFzdCBwYWdlIC0tPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHBhZ2VzLmxlbmd0aFwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInNldFBhZ2UocGFnZXMubGVuZ3RoKVwiPsK7PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L25hdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS0gUlMgMDNGRUIyMDI1IC0tPlxuPCEtLSBBZGQgUm93IEJ1dHRvbiAtLT5cbjxkaXYgKm5nSWY9XCJzaG93QWRkUm93XCIgIChjbGljayk9XCJhZGRSb3coKVwiIGNsYXNzPVwiYWRkUm93Q2xhc3NcIj5cbiAgPGRpdiBjbGFzcz1cImNpcmNsZS1idXR0b25cIj4rPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|