fx-form-builder-wrapper 2.0.45 → 2.0.46
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.
|
@@ -457,7 +457,7 @@ export class UploaderComponent extends FxBaseComponent {
|
|
|
457
457
|
settings() {
|
|
458
458
|
return [
|
|
459
459
|
new FxStringSetting({ key: 'upload-text', $title: 'Upload Text', value: 'Upload File' }),
|
|
460
|
-
new FxSelectSetting({ key: 'multiple-upload', $title: 'Multiple
|
|
460
|
+
new FxSelectSetting({ key: 'multiple-upload', $title: 'Multiple Uploads', value: false }, [{ option: 'Enable', value: true }, { option: 'Disable', value: false }]),
|
|
461
461
|
new FxStringSetting({ key: 'maxFileNo', $title: 'Maximum File Upload Allowed', value: 8 }),
|
|
462
462
|
];
|
|
463
463
|
}
|
|
@@ -536,4 +536,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
536
536
|
type: ViewChild,
|
|
537
537
|
args: ['fileInput']
|
|
538
538
|
}] } });
|
|
539
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWRlci91cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZGVyL3VwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFvQyxTQUFTLEVBQWMsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsSixPQUFPLEVBQTZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZ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QUFJLENBQUM7SUFDckIsQ0FBQzt3R0F2bEJRLGlCQUFpQjs0RkFBakIsaUJBQWlCLDBEQUpqQixDQUFDLGNBQWMsRUFBQyxtQkFBbUIsQ0FBQyx5SkNsQmpELDRya0JBeUxlLGdvbUREeEtILFlBQVksNGdCQUFFLFdBQVcsNEVBQUUsV0FBVyxzdUNBQUUsbUJBQW1CLDhCQUFDLGdCQUFnQiw4QkFBQyxXQUFXLDhCQUFDLG1CQUFtQiw4QkFBQyxZQUFZOzs0RkFLeEgsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxnQkFBZ0IsRUFBQyxXQUFXLEVBQUMsbUJBQW1CLEVBQUMsWUFBWSxDQUFDLGFBQ3pILENBQUMsY0FBYyxFQUFDLG1CQUFtQixDQUFDOzJMQXVCdkIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNlbGVjdFNldHRpbmcsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUsIFVwbG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z4LXVwbG9hZGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZ4Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSxGaWxlVXBsb2FkTW9kdWxlLFRvYXN0TW9kdWxlLENvbmZpcm1EaWFsb2dNb2R1bGUsRGlhbG9nTW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSxDb25maXJtYXRpb25TZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91cGxvYWRlci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkZXJDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgLy8gcHVibGljIHVwbG9hZEZpbGVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB1cGxvYWRGaWxlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcHVibGljIGZvcm1hdHRlZERhdGE6IGFueSA9IHtcclxuICAgIHVwbG9hZGVkRmlsZXM6IFtdLFxyXG4gICAgZGVsZXRlZEZpbGVzOiBbXVxyXG4gIH07XHJcbiAgY2F0ZWdvcmllcyA9IFtcclxuICB7IGxhYmVsOiAnT3JhbCBJbWFnZXMnLCB2YWx1ZTogMTYgfSxcclxuICB7IGxhYmVsOiAnUGFzdCBEb2NzJywgdmFsdWU6IDE3IH0sXHJcbiAgeyBsYWJlbDogJ1gtUmF5cycsIHZhbHVlOiAxNCB9LFxyXG4gIHsgbGFiZWw6ICdQcm9maWxlJywgdmFsdWU6IDE4IH0sXHJcbl07XHJcblxyXG52aXNpYmxlOmJvb2xlYW4gPSBmYWxzZTtcclxuc2VsZWN0ZUltYWdlVXJsOiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICBwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UscHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoY2RyKVxyXG4gICAgdGhpcy5vbkluaXQuc3Vic2NyaWJlKChmeERhdGEpPT57XHJcbiAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMudXBsb2FkRmlsZUNvbnRyb2wpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICB1cGxvYWRlZEltYWdlczogeyBba2V5OiBzdHJpbmddOiB7IHJlc3VsdDogc3RyaW5nLCBmaWxlOiBGaWxlIHwgbnVsbCB9W10gfSA9IHt9O1xyXG4gIGRlbGV0ZWRGaWxlczogYW55W10gPSBbXTtcclxuICAvLyBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgLy8gICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC8vICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgXHJcbiAgLy8gICAgICAgY29uc3QgdXBsb2FkZWRGaWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgXHJcbiAgLy8gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xyXG4gIC8vICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygndXBsb2FkZXInKSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gIC8vICAgICAgICAgICB1cGxvYWRlZEZpbGVzW2tleV0gPSB2YWx1ZTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgXHJcbiAgLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXMpKSB7XHJcbiAgLy8gICAgICAgICBjb25zdCBpbWFnZUZldGNoZXM6IE9ic2VydmFibGU8c3RyaW5nPltdID0gW107XHJcbiAgXHJcbiAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKHVybDogc3RyaW5nKSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmICh1cmwpIHtcclxuICAvLyAgICAgICAgICAgICBjb25zdCBpbWFnZSQgPSB0aGlzLmh0dHAuZ2V0KHVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG4gIC8vICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKVxyXG4gIC8vICAgICAgICAgICAgICk7XHJcbiAgLy8gICAgICAgICAgICAgaW1hZ2VGZXRjaGVzLnB1c2goaW1hZ2UkKTtcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgfSk7XHJcbiAgXHJcbiAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCkge1xyXG4gIC8vICAgICAgICAgICBmb3JrSm9pbihpbWFnZUZldGNoZXMpLnN1YnNjcmliZSh7XHJcbiAgLy8gICAgICAgICAgICAgbmV4dDogKGltYWdlVXJsczogc3RyaW5nW10pID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRJbWFnZXNbdXBsb2FkZXJLZXldID0gaW1hZ2VVcmxzLm1hcChyZXN1bHQgPT4gKHtcclxuICAvLyAgICAgICAgICAgICAgICAgcmVzdWx0LFxyXG4gIC8vICAgICAgICAgICAgICAgICBmaWxlOiBudWxsXHJcbiAgLy8gICAgICAgICAgICAgICB9KSk7XHJcbiAgLy8gICAgICAgICAgICAgICAvLyB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEltYWdlc11cclxuICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IE9iamVjdC52YWx1ZXModGhpcy51cGxvYWRlZEltYWdlcykuZmxhdCgpO1xyXG4gIC8vICAgICAgICAgICAgIH0sXHJcbiAgLy8gICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBmZXRjaCBpbWFnZXMgZm9yICR7dXBsb2FkZXJLZXl9OmAsIGVycik7XHJcbiAgLy8gICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vIH1cclxuICBcclxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAvLyAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgLy8gICAgIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuXHJcbiAgLy8gICAgICAgY29uc3QgdXBsb2FkZWRGaWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcblxyXG4gIC8vICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcclxuICAvLyAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3VwbG9hZGVyJykgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAvLyAgICAgICAgICAgdXBsb2FkZWRGaWxlc1trZXldID0gdmFsdWU7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG5cclxuICAvLyAgICAgICBmb3IgKGNvbnN0IFt1cGxvYWRlcktleSwgdXJsc10gb2YgT2JqZWN0LmVudHJpZXModXBsb2FkZWRGaWxlcykpIHtcclxuICAvLyAgICAgICAgIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nLCBvcmlnaW5hbFVybDogc3RyaW5nIH0+W10gPSBbXTtcclxuXHJcbiAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKHVybDogc3RyaW5nKSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmICh1cmwpIHtcclxuICAvLyAgICAgICAgICAgICBjb25zdCBpbWFnZSQgPSB0aGlzLmh0dHAuZ2V0KHVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG4gIC8vICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiAoe1xyXG4gIC8vICAgICAgICAgICAgICAgICByZXN1bHQ6IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYiksIC8vIGp1c3QgZm9yIHByZXZpZXdcclxuICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IHVybFxyXG4gIC8vICAgICAgICAgICAgICAgfSkpXHJcbiAgLy8gICAgICAgICAgICAgKTtcclxuICAvLyAgICAgICAgICAgICBpbWFnZUZldGNoZXMucHVzaChpbWFnZSQpO1xyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICB9KTtcclxuXHJcbiAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCkge1xyXG4gIC8vICAgICAgICAgICBmb3JrSm9pbihpbWFnZUZldGNoZXMpLnN1YnNjcmliZSh7XHJcbiAgLy8gICAgICAgICAgICAgbmV4dDogKGltYWdlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gaW1hZ2VEYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgLy8gICAgICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcclxuICAvLyAgICAgICAgICAgICAgICAgZmlsZTogbnVsbCxcclxuICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IGl0ZW0ub3JpZ2luYWxVcmwsXHJcbiAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdDogaXRlbS5yZXN1bHRcclxuICAvLyAgICAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnVwbG9hZGVkRmlsZXMpO1xyXG4gIC8vICAgICAgICAgICAgIH0sXHJcbiAgLy8gICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBmZXRjaCBpbWFnZXMgZm9yICR7dXBsb2FkZXJLZXl9OmAsIGVycik7XHJcbiAgLy8gICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbi8vICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbi8vICAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuLy8gICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4vLyAgICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4vLyAgICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgXHJcbi8vICAgICAgICAgY29uc3QgdXBsb2FkZWRGaWxlc01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgXHJcbi8vICAgICAgICAgLy8gRXh0cmFjdCB1cGxvYWRlciBrZXlzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIFVSTCBhcnJheXNcclxuLy8gICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpKSB7XHJcbi8vICAgICAgICAgICBpZiAoa2V5LmluY2x1ZGVzKCd1cGxvYWRlcicpICYmIEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbi8vICAgICAgICAgICAgIHVwbG9hZGVkRmlsZXNNYXBba2V5XSA9IHZhbHVlO1xyXG4vLyAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuICBcclxuLy8gICAgICAgICBmb3IgKGNvbnN0IFt1cGxvYWRlcktleSwgdXJsc10gb2YgT2JqZWN0LmVudHJpZXModXBsb2FkZWRGaWxlc01hcCkpIHtcclxuLy8gICAgICAgICAgIC8vIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nOyBvcmlnaW5hbFVybDogYW55OyB0aXRsZTpzdHJpbmcgOyBub3RlczpzdHJpbmcgfT5bXSA9IFtdO1xyXG4gIFxyXG4vLyAgICAgICAgICAgLy8gdXJscy5mb3JFYWNoKChvcmlnaW5hbFVybDphbnkpID0+IHtcclxuLy8gICAgICAgICAgIC8vICAgaWYgKG9yaWdpbmFsVXJsKSB7XHJcbi8vICAgICAgICAgICAvLyAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldChvcmlnaW5hbFVybD8ub3JpZ2luYWxVcmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuLy8gICAgICAgICAgIC8vICAgICAgIG1hcCgoYmxvYjogQmxvYikgPT4gKHtcclxuLy8gICAgICAgICAgIC8vICAgICAgICAgcmVzdWx0OiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpLCAvLyBmb3IgcHJldmlld1xyXG4vLyAgICAgICAgICAgLy8gICAgICAgICBvcmlnaW5hbFVybDogb3JpZ2luYWxVcmw/Lm9yaWdpbmFsVXJsICAgICAgICAgIC8vIHByZXNlcnZlIG9yaWdpbmFsXHJcbi8vICAgICAgICAgICAvLyAgICAgICB9KSlcclxuLy8gICAgICAgICAgIC8vICAgICApO1xyXG4vLyAgICAgICAgICAgLy8gICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbi8vICAgICAgICAgICAvLyAgIH1cclxuLy8gICAgICAgICAgIC8vIH0pO1xyXG5cclxuLy8gICAgICAgICAgIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nOyBvcmlnaW5hbFVybDogYW55OyB0aXRsZTogc3RyaW5nOyBub3Rlczogc3RyaW5nIH0+W10gPSBbXTtcclxuXHJcbi8vIHVybHMuZm9yRWFjaCgob3JpZ2luYWxVcmw6IGFueSkgPT4ge1xyXG4vLyAgIGlmIChvcmlnaW5hbFVybCkge1xyXG4vLyAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldChvcmlnaW5hbFVybD8ub3JpZ2luYWxVcmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuLy8gICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiAoe1xyXG4vLyAgICAgICAgIHJlc3VsdDogVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSwgLy8gZm9yIHByZXZpZXdcclxuLy8gICAgICAgICBvcmlnaW5hbFVybDogb3JpZ2luYWxVcmw/Lm9yaWdpbmFsVXJsLCAvLyBwcmVzZXJ2ZSBvcmlnaW5hbFxyXG4vLyAgICAgICAgIHRpdGxlOiBvcmlnaW5hbFVybD8udGl0bGUgfHwgJycsIC8vIGRlZmF1bHQgZW1wdHkgaWYgbm90IHByZXNlbnRcclxuLy8gICAgICAgICBub3Rlczogb3JpZ2luYWxVcmw/Lm5vdGVzIHx8ICcnXHJcbi8vICAgICAgIH0pKVxyXG4vLyAgICAgKTtcclxuLy8gICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbi8vICAgfVxyXG4vLyB9KTtcclxuXHJcbiAgXHJcbi8vICAgICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCA+IDApIHtcclxuLy8gICAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4vLyAgICAgICAgICAgICAgIG5leHQ6IChpbWFnZURhdGEpID0+IHtcclxuLy8gICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGltYWdlRGF0YS5tYXAoaXRlbSA9PiAoe1xyXG4vLyAgICAgICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbi8vICAgICAgICAgICAgICAgICAgIGZpbGU6IG51bGwsXHJcbi8vICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsVXJsOiBpdGVtLm9yaWdpbmFsVXJsLFxyXG4vLyAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGl0ZW0ucmVzdWx0LFxyXG4vLyAgICAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcclxuLy8gICAgICAgICAgICAgICAgICAgbm90ZXM6ICcnXHJcbi8vICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgXHJcbi8vICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4vLyAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbi8vICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbi8vICAgICAgICAgICAgICAgfSxcclxuLy8gICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4vLyAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGZldGNoIGltYWdlcyBmb3IgJHt1cGxvYWRlcktleX06YCwgZXJyKTtcclxuLy8gICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgIH0pO1xyXG4vLyAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfSk7XHJcbi8vICAgfVxyXG4gIFxyXG4gIC8vIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIC8vICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLy8gICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAvLyAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gIFxyXG4gIC8vICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXNNYXA6IHsgW2tleTogc3RyaW5nXTogeyBvcmlnaW5hbFVybDogc3RyaW5nIH1bXSB9ID0gdmFyaWFibGVzLnVwbG9hZGVkRmlsZXM7XHJcbiAgXHJcbiAgLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXNNYXApKSB7XHJcbiAgLy8gICAgICAgICBjb25zdCBpbWFnZUZldGNoZXM6IE9ic2VydmFibGU8eyByZXN1bHQ6IHN0cmluZzsgb3JpZ2luYWxVcmw6IHN0cmluZyB9PltdID0gW107XHJcbiAgXHJcbiAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKGZpbGVPYmo6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgICBjb25zdCBvcmlnaW5hbFVybCA9IGZpbGVPYmo/Lm9yaWdpbmFsVXJsO1xyXG4gIC8vICAgICAgICAgICBpZiAob3JpZ2luYWxVcmwpIHtcclxuICAvLyAgICAgICAgICAgICBjb25zdCBpbWFnZSQgPSB0aGlzLmh0dHAuZ2V0KG9yaWdpbmFsVXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcbiAgLy8gICAgICAgICAgICAgICBtYXAoKGJsb2I6IEJsb2IpID0+ICh7XHJcbiAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdDogVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSwgLy8gZm9yIHByZXZpZXdcclxuICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmxcclxuICAvLyAgICAgICAgICAgICAgIH0pKVxyXG4gIC8vICAgICAgICAgICAgICk7XHJcbiAgLy8gICAgICAgICAgICAgaW1hZ2VGZXRjaGVzLnB1c2goaW1hZ2UkKTtcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgfSk7XHJcbiAgXHJcbiAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCA+IDApIHtcclxuICAvLyAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4gIC8vICAgICAgICAgICAgIG5leHQ6IChpbWFnZURhdGEpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGltYWdlRGF0YS5tYXAoaXRlbSA9PiAoe1xyXG4gIC8vICAgICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgLy8gICAgICAgICAgICAgICAgIGZpbGU6IG51bGwsXHJcbiAgLy8gICAgICAgICAgICAgICAgIG9yaWdpbmFsVXJsOiBpdGVtLm9yaWdpbmFsVXJsLFxyXG4gIC8vICAgICAgICAgICAgICAgICByZXN1bHQ6IGl0ZW0ucmVzdWx0XHJcbiAgLy8gICAgICAgICAgICAgICB9KSk7XHJcbiAgXHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgLy8gICAgICAgICAgICAgfSxcclxuICAvLyAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGZldGNoIGltYWdlcyBmb3IgJHt1cGxvYWRlcktleX06YCwgZXJyKTtcclxuICAvLyAgICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSk7XHJcbiAgLy8gfVxyXG4gIFxyXG5cclxuICAvLyBwdWJsaWMgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgLy8gICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIC8vICAgaWYgKGlucHV0LmZpbGVzKSB7XHJcbiAgLy8gICAgIGZvcihsZXQgaSA9IDA7IGkgPCBpbnB1dD8uZmlsZXM/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgLy8gICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzW2ldO1xyXG4gIC8vICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgLy8gICAgICAgcmVhZGVyLm9ubG9hZCA9IGUgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2goe1xyXG4gIC8vICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gIC8vICAgICAgICAgICByZXN1bHQ6IGUudGFyZ2V0Py5yZXN1bHQsXHJcbiAgLy8gICAgICAgICAgIG5hbWU6IGZpbGU/Lm5hbWUsXHJcbiAgLy8gICAgICAgICAgIGlkOiB1dWlkdjQoKVxyXG4gIC8vICAgICAgICAgfSlcclxuICAvLyAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy51cGxvYWRlZEZpbGVzKTtcclxuICAvLyAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudXBsb2FkRmlsZUNvbnRyb2wpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgLy8gICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIC8vICAgaWYgKGlucHV0LmZpbGVzKSB7XHJcbiAgLy8gICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQuZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXNbaV07XHJcbiAgLy8gICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgLy8gICAgICAgcmVhZGVyLm9ubG9hZCA9IGUgPT4ge1xyXG4gIC8vICAgICAgICAgY29uc3QgbmV3RmlsZSA9IHtcclxuICAvLyAgICAgICAgICAgaWQ6IHV1aWR2NCgpLFxyXG4gIC8vICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gIC8vICAgICAgICAgICBvcmlnaW5hbFVybDogbnVsbCxcclxuICAvLyAgICAgICAgICAgcmVzdWx0OiBlLnRhcmdldD8ucmVzdWx0LFxyXG4gIC8vICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgLy8gICAgICAgICAgIHRpdGxlOiAnJyxcclxuICAvLyAgICAgICAgICAgbm90ZXM6ICcnLFxyXG4gIC8vICAgICAgICAgICBjYXRlZ29yeTogJycsXHJcbiAgLy8gICAgICAgICAgIHR5cGU6IHRoaXMuZGV0ZWN0RmlsZVR5cGUoZmlsZSksXHJcbiAgLy8gICAgICAgICB9O1xyXG5cclxuICAvLyAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKG5ld0ZpbGUpO1xyXG4gIC8vICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbiAgLy8gICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgLy8gICAgICAgfTtcclxuXHJcbiAgLy8gICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4vLyAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4vLyAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4vLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4vLyAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuLy8gICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuXHJcbi8vICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXNNYXA6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xyXG5cclxuICAgICBcclxuLy8gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xyXG4vLyAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3VwbG9hZGVyJykgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuLy8gICAgICAgICAgIHVwbG9hZGVkRmlsZXNNYXBba2V5XSA9IHZhbHVlO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG5cclxuLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXNNYXApKSB7XHJcbi8vICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdXJsc1xyXG4vLyAgICAgICAgICAgLmZpbHRlcigoZmlsZU9iajogYW55KSA9PiAhIWZpbGVPYmopIFxyXG4vLyAgICAgICAgICAgLm1hcCgoZmlsZU9iajogYW55KSA9PiB7XHJcbi8vICAgICAgICAgICAgIC8vIGNvbnN0IGZpbGVUeXBlID0gdGhpcy5kZXRlY3RGaWxlVHlwZUZyb21VcmwoZmlsZU9iaj8ub3JpZ2luYWxVcmwgfHwgZmlsZU9iaj8ubmFtZSk7XHJcblxyXG4vLyAgICAgICAgICAgICByZXR1cm4ge1xyXG4vLyAgICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcclxuLy8gICAgICAgICAgICAgICBmaWxlOiBudWxsLCAgICAgICAgICAgICAgICAgICAgICAgICBcclxuLy8gICAgICAgICAgICAgICBvcmlnaW5hbFVybDogZmlsZU9iai5vcmlnaW5hbFVybCwgICAgXHJcbi8vICAgICAgICAgICAgICAgcmVzdWx0OiBmaWxlT2JqPy50eXBlID09PSAnaW1hZ2UnID8gZmlsZU9iai5vcmlnaW5hbFVybC5wcmV2aWV3VXJsIDogbnVsbCxcclxuLy8gICAgICAgICAgICAgICBuYW1lOiBmaWxlT2JqPy5uYW1lIHx8ICcnLFxyXG4vLyAgICAgICAgICAgICAgIHRpdGxlOiBmaWxlT2JqPy50aXRsZSB8fCAnJyxcclxuLy8gICAgICAgICAgICAgICBub3RlczogZmlsZU9iaj8ubm90ZXMgfHwgJycsXHJcbi8vICAgICAgICAgICAgICAgY2F0ZWdvcnk6IGZpbGVPYmo/LmNhdGVnb3J5IHx8ICcnLFxyXG4vLyAgICAgICAgICAgICAgIHR5cGU6IGZpbGVPYmo/LnR5cGUsICAgICAgICAgICAgICAgIFxyXG4vLyAgICAgICAgICAgICB9O1xyXG4vLyAgICAgICAgICAgfSk7XHJcblxyXG4vLyAgICAgICAgIGlmIChmb3JtYXR0ZWQubGVuZ3RoID4gMCkge1xyXG4vLyAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4uZm9ybWF0dGVkXTtcclxuLy8gICAgICAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4vLyAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdHRlZERhdGEpO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG4vLyAgICAgfSk7XHJcbi8vIH1cclxuXHJcbm5nT25Jbml0KCk6IHZvaWQge1xyXG4gIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXNNYXA6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xyXG5cclxuICAgICAgXHJcbiAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcclxuICBpZiAoa2V5LmluY2x1ZGVzKCd1cGxvYWRlcicpICYmICh2YWx1ZSBhcyBhbnkpPy51cGxvYWRlZEZpbGVzKSB7XHJcbiAgICB1cGxvYWRlZEZpbGVzTWFwW2tleV0gPSAodmFsdWUgYXMgYW55KS51cGxvYWRlZEZpbGVzO1xyXG4gIH1cclxufVxyXG5cclxuICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIGZpbGVzXSBvZiBPYmplY3QuZW50cmllcyh1cGxvYWRlZEZpbGVzTWFwKSkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZpbGVzXHJcbiAgICAgICAgICAuZmlsdGVyKChmaWxlT2JqOiBhbnkpID0+ICEhZmlsZU9iailcclxuICAgICAgICAgIC5tYXAoKGZpbGVPYmo6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbFVybE9iaiA9IGZpbGVPYmoub3JpZ2luYWxVcmw7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gb3JpZ2luYWxVcmxPYmo/LmZpbGVOYW1lIHx8ICcnO1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlVXJsID0gb3JpZ2luYWxVcmxPYmo/LmZpbGVVcmwgfHwgJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXZpZXdVcmwgPSBvcmlnaW5hbFVybE9iaj8ucHJldmlld1VybDtcclxuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGZpbGVPYmo/LnR5cGU7XHJcblxyXG4gICAgICAgICAgICAvLyBkZXRlY3QgdHlwZSBiYXNlZCBvbiBmaWxlIGV4dGVuc2lvblxyXG4gICAgICAgICAgICAvLyBjb25zdCBmaWxlVHlwZSA9IHRoaXMuZGV0ZWN0RmlsZVR5cGVGcm9tVXJsKGZpbGVOYW1lIHx8IGZpbGVVcmwpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgICAgICAgICAgICAgZmlsZTogbnVsbCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RoaW5nIGxvY2FsXHJcbiAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IG9yaWdpbmFsVXJsT2JqLCAgICAgICAvLyBrZWVwIHdob2xlIG9iamVjdFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogdHlwZSA9PT0gJ2ltYWdlJ1xyXG4gICAgICAgICAgICAgICAgPyAocHJldmlld1VybCkgICAgICAgIC8vIHByZWZlciBwcmV2aWV3VXJsLCBmYWxsYmFjayB0byBmaWxlVXJsXHJcbiAgICAgICAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgdGl0bGU6IGZpbGVPYmo/LnRpdGxlIHx8ICcnLFxyXG4gICAgICAgICAgICAgIG5vdGVzOiBmaWxlT2JqPy5ub3RlcyB8fCAnJyxcclxuICAgICAgICAgICAgICBjYXRlZ29yeUlkIDogZmlsZU9iaj8uY2F0ZWdvcnlJZCAgfHwgJycsXHJcbiAgICAgICAgICAgICAgdHlwZTogdHlwZSwgICAgICAgICAgICAgICAgICAgIC8vIGNvbXB1dGVkIHR5cGVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZm9ybWF0dGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLmZvcm1hdHRlZF07XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdHRlZERhdGEudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcztcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG59XHJcblxyXG5cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgXHJcbiAgXHJcblxyXG4gIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgaWYgKCFpbnB1dC5maWxlcykgcmV0dXJuO1xyXG5cclxuICBBcnJheS5mcm9tKGlucHV0LmZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLmRldGVjdEZpbGVUeXBlKGZpbGUpO1xyXG5cclxuICAgIGNvbnN0IG5ld0ZpbGU6IGFueSA9IHtcclxuICAgICAgaWQ6IHV1aWR2NCgpLFxyXG4gICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICBvcmlnaW5hbFVybDogbnVsbCxcclxuICAgICAgcmVzdWx0OiBudWxsLCAgICAgXHJcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBub3RlczogJycsXHJcbiAgICAgIGNhdGVnb3J5SWQgOiAnJyxcclxuICAgICAgdHlwZTogZmlsZVR5cGUsICAgXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChmaWxlVHlwZSA9PT0gJ2ltYWdlJykge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZSA9PiB7XHJcbiAgICAgICAgbmV3RmlsZS5yZXN1bHQgPSBlLnRhcmdldD8ucmVzdWx0O1xyXG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldEVycm9ycyh7IHJlcXVpcmVkTWV0YTogdHJ1ZSB9KTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnVwbG9hZEZpbGVDb250cm9sKVxyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsgLy8gb25seSBpbWFnZXMgbmVlZCBwcmV2aWV3XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBub24taW1hZ2Ug4oaSIHB1c2ggZGlyZWN0bHlcclxuICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2gobmV3RmlsZSk7XHJcbiAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0RXJyb3JzKHsgcmVxdWlyZWRNZXRhOiB0cnVlIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnVwbG9hZEZpbGVDb250cm9sKVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlucHV0LnZhbHVlID0gJyc7XHJcbn1cclxuXHJcblxyXG4gIC8vIG9uTWV0YUNoYW5nZSgpIHtcclxuICAvLyAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gIC8vICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdHRlZERhdGEpO1xyXG4gIC8vIH1cclxuXHJcbm9uTWV0YUNoYW5nZSgpIHtcclxuICB0aGlzLmZvcm1hdHRlZERhdGEudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcztcclxuICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcblxyXG4gIC8vIOKdjCBJbnZhbGlkIGlmIGFueSBmaWxlIGlzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzXHJcbiAgY29uc3QgYWxsVmFsaWQgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZXZlcnkoXHJcbiAgICBmID0+IGYudGl0bGU/LnRyaW0oKSAmJiBmLm5vdGVzPy50cmltKCkgJiYgZi5jYXRlZ29yeUlkPy50b1N0cmluZygpLnRyaW0oKVxyXG4gICk7XHJcblxyXG4gIGlmICghYWxsVmFsaWQpIHtcclxuICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0RXJyb3JzKHsgcmVxdWlyZWRNZXRhOiB0cnVlIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuICAvLyBwdWJsaWMgZGVsZXRlRmlsZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgLy8gICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKGZpbGUgPT4gZmlsZT8uaWQgIT09IGlkKTtcclxuICAvLyB9XHJcblxyXG4gIC8vIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gIC8vICAgY29uc3QgW2RlbGV0ZWRGaWxlXSA9IHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIFxyXG4gIC8vICAgaWYgKGRlbGV0ZWRGaWxlKSB7XHJcbiAgLy8gICAgIHRoaXMuZGVsZXRlZEZpbGVzLnB1c2goZGVsZXRlZEZpbGUpO1xyXG4gIC8vICAgICB0aGlzLmZvcm1hdHRlZERhdGEgPSB7XHJcbiAgLy8gICAgICAgLi4udGhpcy5mb3JtYXR0ZWREYXRhLFxyXG4gIC8vICAgICAgIHVwbG9hZGVkRmlsZXM6IFsuLi50aGlzLnVwbG9hZGVkRmlsZXNdLFxyXG4gIC8vICAgICAgIGRlbGV0ZWRGaWxlczogWy4uLnRoaXMuZGVsZXRlZEZpbGVzXVxyXG4gIC8vICAgICB9O1xyXG4gIC8vICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICBkZWxldGVGaWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlbGV0ZWRGaWxlID0gdGhpcy51cGxvYWRlZEZpbGVzPy5baW5kZXhdO1xyXG4gICAgaWYgKCFkZWxldGVkRmlsZSkgcmV0dXJuO1xyXG4gIFxyXG4gICAgLy8gRW5zdXJlIGZvcm1hdHRlZERhdGEgZXhpc3RzIGFuZCBpbml0aWFsaXplIGlmIHVuZGVmaW5lZFxyXG4gICAgdGhpcy5mb3JtYXR0ZWREYXRhID0gdGhpcy5mb3JtYXR0ZWREYXRhIHx8IHsgdXBsb2FkZWRGaWxlczogW10sIGRlbGV0ZWRGaWxlczogW10gfTtcclxuICBcclxuICAgIC8vIEFkZCB0aGUgZGVsZXRlZCBmaWxlIHRvIHRoZSBkZWxldGVkRmlsZXMgYXJyYXlcclxuICAgIHRoaXMuZGVsZXRlZEZpbGVzID0gWy4uLnRoaXMuZGVsZXRlZEZpbGVzLCBkZWxldGVkRmlsZV07XHJcbiAgXHJcbiAgICAvLyBSZW1vdmUgdGhlIGZpbGUgZnJvbSB1cGxvYWRlZEZpbGVzIHVzaW5nIGZpbHRlciBmb3IgaW1tdXRhYmlsaXR5XHJcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCk7XHJcbiAgXHJcbiAgICAvLyBVcGRhdGUgZm9ybWF0dGVkRGF0YVxyXG4gICAgdGhpcy5mb3JtYXR0ZWREYXRhID0ge1xyXG4gICAgICAuLi50aGlzLmZvcm1hdHRlZERhdGEsXHJcbiAgICAgIHVwbG9hZGVkRmlsZXM6IHRoaXMudXBsb2FkZWRGaWxlcyxcclxuICAgICAgZGVsZXRlZEZpbGVzOiB0aGlzLmRlbGV0ZWRGaWxlc1xyXG4gICAgfTtcclxuICBcclxuICAgIC8vIFNldCB0aGUgdmFsdWUgb2YgdGhlIHVwbG9hZEZpbGVDb250cm9sXHJcbiAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG5cclxuICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3VwbG9hZC10ZXh0JywgJHRpdGxlOiAnVXBsb2FkIFRleHQnLCB2YWx1ZTogJ1VwbG9hZCBGaWxlJ30pLFxyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdtdWx0aXBsZS11cGxvYWQnLCAkdGl0bGU6ICdNdWx0aXBsZSBVcGxvYWQnLCB2YWx1ZTogZmFsc2V9LCBbe29wdGlvbjogJ0VuYWJsZScsIHZhbHVlOiB0cnVlfSwge29wdGlvbjogJ0Rpc2FibGUnLCB2YWx1ZTogZmFsc2V9XSksXHJcbiAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhGaWxlTm8nLCAkdGl0bGU6ICdNYXhpbXVtIEZpbGUgVXBsb2FkIEFsbG93ZWQnLCB2YWx1ZTo4fSksXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25zKCk6IEZ4VmFsaWRhdGlvbltdIHtcclxuICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICB9XHJcblxyXG5kZXRlY3RGaWxlVHlwZShmaWxlOiBGaWxlKTogJ2ltYWdlJyB8ICdjc3YnIHwgJ3RleHQnIHwgJ3BkZicgfCAnZXhjZWwnIHwgJ3dvcmQnIHwgJ290aGVyJyB7XHJcbiAgY29uc3QgbWltZSA9IChmaWxlLnR5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgY29uc3QgbmFtZSA9IChmaWxlLm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gIC8vIEltYWdlc1xyXG4gIGlmIChtaW1lLnN0YXJ0c1dpdGgoJ2ltYWdlLycpIHx8IC9cXC4ocG5nfGpwZT9nfGdpZnx3ZWJwfGJtcHxzdmcpJC9pLnRlc3QobmFtZSkpIHtcclxuICAgIHJldHVybiAnaW1hZ2UnO1xyXG4gIH1cclxuXHJcbiAgLy8gQ1NWXHJcbiAgaWYgKG1pbWUgPT09ICd0ZXh0L2NzdicgfHwgbmFtZS5lbmRzV2l0aCgnLmNzdicpKSB7XHJcbiAgICByZXR1cm4gJ2Nzdic7XHJcbiAgfVxyXG5cclxuICAvLyBUZXh0IGZpbGVzXHJcbiAgaWYgKG1pbWUgPT09ICd0ZXh0L3BsYWluJyB8fCBuYW1lLmVuZHNXaXRoKCcudHh0JykpIHtcclxuICAgIHJldHVybiAndGV4dCc7XHJcbiAgfVxyXG5cclxuICAvLyBQREZcclxuICBpZiAobWltZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgbmFtZS5lbmRzV2l0aCgnLnBkZicpKSB7XHJcbiAgICByZXR1cm4gJ3BkZic7XHJcbiAgfVxyXG5cclxuICAvLyBFeGNlbFxyXG4gIGlmIChcclxuICAgIG1pbWUgPT09ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnIHx8XHJcbiAgICBtaW1lID09PSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnIHx8XHJcbiAgICAvXFwuKHhsc3x4bHN4KSQvaS50ZXN0KG5hbWUpXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gJ2V4Y2VsJztcclxuICB9XHJcblxyXG4gIC8vIFdvcmRcclxuICBpZiAoXHJcbiAgICBtaW1lID09PSAnYXBwbGljYXRpb24vbXN3b3JkJyB8fFxyXG4gICAgbWltZSA9PT0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyB8fFxyXG4gICAgL1xcLihkb2N8ZG9jeCkkL2kudGVzdChuYW1lKVxyXG4gICkge1xyXG4gICAgcmV0dXJuICd3b3JkJztcclxuICB9XHJcblxyXG4gIHJldHVybiAnb3RoZXInO1xyXG59XHJcblxyXG4vLyBvcGVuRmlsZURpYWxvZyhmaWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcclxuLy8gICAvLyByZXNldCB0aGUgdmFsdWUgc28gY2hhbmdlIGFsd2F5cyB0cmlnZ2Vyc1xyXG4vLyAgIGZpbGVJbnB1dC52YWx1ZSA9ICcnO1xyXG4vLyAgIGZpbGVJbnB1dC5jbGljaygpO1xyXG4vLyB9XHJcblxyXG5vcGVuRmlsZURpYWxvZygpIHtcclxuICAvLyBpZiAodGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IHRoaXMuc2V0dGluZygnbWF4RmlsZU5vJykpIHtcclxuICAvLyAgICAgLy8gdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gIC8vICAgICAvLyAgIHNldmVyaXR5OiAnc3VjY2VzcycsXHJcbiAgLy8gICAgIC8vICAgc3VtbWFyeTogJ1N1Y2Nlc3MnLFxyXG4gIC8vICAgICAvLyAgIGRldGFpbDogYE1heGltdW1cIiR7dGhpcy5zZXR0aW5nKCdtYXhGaWxlTm8nKX1cIiBjYW4gYmUgdXBsb2FkZWRgLFxyXG4gIC8vICAgICAvLyAgIGxpZmU6IDMwMDBcclxuICAvLyAgICAgLy8gfSk7XHJcbiAgLy8gICByZXR1cm47XHJcbiAgLy8gfVxyXG4gIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbn1cclxuXHJcbm9uQmFzaWNVcGxvYWRBdXRvKGV2ZW50OiBVcGxvYWRFdmVudCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZURpYWxvZygpe1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZWxlY3RlSW1hZ2VVcmwgPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBvbkltYWdlU2VsZWN0KHVybDpzdHJpbmcpe1xyXG4gICAgIHRoaXMuc2VsZWN0ZUltYWdlVXJsID11cmw7XHJcbiAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGZ4LWNvbXBvbmVudCBbZnhEYXRhXT1cImZ4RGF0YVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjdXN0b20tdXBsb2FkIGZsZXggZmxleC1jb2wgaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXIgcC0wIHJvdW5kZWQtc21cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC04IGl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgIDwhLS0gPHAgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZFwiPlBhdGllbnQgSW1hZ2VzPC9wPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGdhcC0xIHVwbG9hZFwiICpuZ0lmPVwidXBsb2FkZWRGaWxlcy5sZW5ndGggPCBzZXR0aW5nKCdtYXhGaWxlTm8nKVwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjVcIiB2aWV3Qm94PVwiMCAwIDI5IDI4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgIGQ9XCJNMTQuMDAxIDMuMDAxOTVDMTEuNTMyMiAzLjAwMTk1IDkuMTY3MjIgMy44Njk1NiA3LjIzNjQxIDUuMzg0MTRMNy4yMzU5OCA0LjU5Njk1QzcuMjM1OTggNC41MjQ3MyA3LjIyMTc1IDQuNDUzMjEgNy4xOTQxMSA0LjM4NjQ4QzcuMTY2NDcgNC4zMTk3NSA3LjEyNTk2IDQuMjU5MTIgNy4wNzQ4OSA0LjIwODA0QzcuMDIzODEgNC4xNTY5NyA2Ljk2MzE4IDQuMTE2NDYgNi44OTY0NSA0LjA4ODgyQzYuODI5NzIgNC4wNjExOCA2Ljc1ODIgNC4wNDY5NSA2LjY4NTk4IDQuMDQ2OTVDNi42MTM3NSA0LjA0Njk1IDYuNTQyMjMgNC4wNjExOCA2LjQ3NTUgNC4wODg4MkM2LjQwODc3IDQuMTE2NDYgNi4zNDgxNCA0LjE1Njk3IDYuMjk3MDcgNC4yMDgwNEM2LjI0NTk5IDQuMjU5MTIgNi4yMDU0OCA0LjMxOTc1IDYuMTc3ODQgNC4zODY0OEM2LjE1MDIgNC40NTMyMSA2LjEzNTk4IDQuNTI0NzMgNi4xMzU5OCA0LjU5Njk1TDYuMTM2NDIgNi42ODY1MkM2LjEzNjQzIDYuODMyMzkgNi4xOTQzOCA2Ljk3MjI4IDYuMjk3NTIgNy4wNzU0MkM2LjQwMDY3IDcuMTc4NTYgNi41NDA1NSA3LjIzNjUxIDYuNjg2NDIgNy4yMzY1Mkg4Ljc3NTk4QzguODQ4MiA3LjIzNjUyIDguOTE5NzIgNy4yMjIzIDguOTg2NDUgNy4xOTQ2NkM5LjA1MzE4IDcuMTY3MDIgOS4xMTM4MSA3LjEyNjUxIDkuMTY0ODkgNy4wNzU0M0M5LjIxNTk2IDcuMDI0MzYgOS4yNTY0NyA2Ljk2MzczIDkuMjg0MTEgNi44OTdDOS4zMTE3NSA2LjgzMDI3IDkuMzI1OTggNi43NTg3NSA5LjMyNTk4IDYuNjg2NTJDOS4zMjU5OCA2LjYxNDMgOS4zMTE3NSA2LjU0Mjc4IDkuMjg0MTEgNi40NzYwNUM5LjI1NjQ3IDYuNDA5MzIgOS4yMTU5NiA2LjM0ODY5IDkuMTY0ODkgNi4yOTc2MUM5LjExMzgxIDYuMjQ2NTQgOS4wNTMxOCA2LjIwNjAzIDguOTg2NDUgNi4xNzgzOUM4LjkxOTcyIDYuMTUwNzUgOC44NDgyIDYuMTM2NTIgOC43NzU5OCA2LjEzNjUySDguMDU4NEM5Ljc3MDIgNC44NDM4NyAxMS44Mzk5IDQuMTAxOTUgMTQuMDAxIDQuMTAxOTVDMTkuNDc1MSA0LjEwMTk1IDIzLjkwMSA4LjUyNzgyIDIzLjkwMSAxNC4wMDJDMjMuOTAxIDE5LjQ3NjEgMTkuNDc1MSAyMy45MDIgMTQuMDAxIDIzLjkwMkM4LjUyNjg0IDIzLjkwMiA0LjEwMDk4IDE5LjQ3NjEgNC4xMDA5OCAxNC4wMDJDNC4xMDA5OCAxMi42MzgxIDQuMzgyNjMgMTEuMjg4OCA0LjkyODU1IDEwLjAzODlDNC45ODY5MSA5LjkwNTMyIDQuOTg5ODIgOS43NTM5OSA0LjkzNjY1IDkuNjE4MjJDNC44ODM0NyA5LjQ4MjQ2IDQuNzc4NTUgOS4zNzMzNiA0LjY0NDk2IDkuMzE0OTJDNC41Nzg3NyA5LjI4NTk2IDQuNTA3NTMgOS4yNzAzMiA0LjQzNTMgOS4yNjg5QzQuMzYzMDYgOS4yNjc0NyA0LjI5MTI2IDkuMjgwMyA0LjIyMzk4IDkuMzA2NjNDNC4xNTY3MSA5LjMzMjk3IDQuMDk1MjggOS4zNzIzIDQuMDQzMjEgOS40MjIzOEMzLjk5MTE0IDkuNDcyNDcgMy45NDk0NCA5LjUzMjMyIDMuOTIwNTEgOS41OTg1MkMzLjMxMzkzIDEwLjk4NzIgMy4wMDA5OCAxMi40ODY2IDMuMDAwOTggMTQuMDAyQzMuMDAwOTggMjAuMDcwNiA3LjkzMjM2IDI1LjAwMiAxNC4wMDEgMjUuMDAyQzIwLjA2OTYgMjUuMDAyIDI1LjAwMSAyMC4wNzA2IDI1LjAwMSAxNC4wMDJDMjUuMDAxIDcuOTMzMzQgMjAuMDY5NiAzLjAwMTk1IDE0LjAwMSAzLjAwMTk1WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgZD1cIk0xMy45OTg4IDYuMTM5NjVDOS42NjE2IDYuMTM5NjUgNi4xMzM3OSA5LjY2NzQ2IDYuMTMzNzkgMTQuMDA0NkM2LjEzMzc5IDE4LjM0MTggOS42NjE2IDIxLjg2OTYgMTMuOTk4OCAyMS44Njk2QzE4LjMzNiAyMS44Njk2IDIxLjg2MzggMTguMzQxOCAyMS44NjM4IDE0LjAwNDZDMjEuODYzOCA5LjY2NzQ2IDE4LjMzNiA2LjEzOTY1IDEzLjk5ODggNi4xMzk2NVpNMTMuOTk4OCA4LjIyOTY1QzE0LjE0NDcgOC4yMjk2NSAxNC4yODQ2IDguMjg3NTkgMTQuMzg3NyA4LjM5MDc0QzE0LjQ5MDggOC40OTM4OCAxNC41NDg4IDguNjMzNzggMTQuNTQ4OCA4Ljc3OTY1VjEzLjc3NjlMMTcuNTIyNyAxNi43NTA4QzE3LjYyNTggMTYuODUzOSAxNy42ODM3IDE2Ljk5MzggMTcuNjgzNyAxNy4xMzk2QzE3LjY4MzcgMTcuMjg1NSAxNy42MjU4IDE3LjQyNTQgMTcuNTIyNyAxNy41Mjg1QzE3LjQxOTUgMTcuNjMxNiAxNy4yNzk2IDE3LjY4OTYgMTcuMTMzOCAxNy42ODk2QzE2Ljk4NzkgMTcuNjg5NiAxNi44NDgxIDE3LjYzMTYgMTYuNzQ0OSAxNy41Mjg1TDEzLjYwOTkgMTQuMzkzNUMxMy41MDY4IDE0LjI5MDQgMTMuNDQ4OCAxNC4xNTA1IDEzLjQ0ODggMTQuMDA0NlY4Ljc3OTY1QzEzLjQ0ODggOC42MzM3OCAxMy41MDY3IDguNDkzODggMTMuNjA5OSA4LjM5MDc0QzEzLjcxMyA4LjI4NzU5IDEzLjg1MjkgOC4yMjk2NSAxMy45OTg4IDguMjI5NjVaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjguNTZcIiBoZWlnaHQ9XCIyOFwiIHJ4PVwiMS41MTQ3OVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTE1LjA2OCAyMi43MzkxVjE3LjY3MDhIMTguNDk2OEwxNC4yMTA4IDEyLjYwMjVMOS45MjQ4IDE3LjY3MDhIMTMuMzUzNlYyMi43MzkxSDkuMDY3NTlWMjIuNjk2OUM4LjkyMzU4IDIyLjcwNTMgOC43ODY0MyAyMi43MzkxIDguNjM4OTkgMjIuNzM5MUM2LjkzMzkxIDIyLjczOTEgNS4yOTg2NiAyMi4wNzE3IDQuMDkyOTggMjAuODgzNUMyLjg4NzMgMTkuNjk1NCAyLjIwOTk2IDE4LjA4NCAyLjIwOTk2IDE2LjQwMzdDMi4yMDk5NiAxMy4xNTMyIDQuNzA0NDMgMTAuNTA0MiA3LjkwNTIzIDEwLjE0MUM4LjE4NTg1IDguNjk1MyA4Ljk2ODkyIDcuMzkxMTggMTAuMTE5NyA2LjQ1MjkyQzExLjI3MDYgNS41MTQ2NSAxMi43MTcyIDUuMDAwODkgMTQuMjEwOCA1QzE1LjcwNDcgNS4wMDA4MiAxNy4xNTE1IDUuNTE0NTIgMTguMzAyNiA2LjQ1Mjc3QzE5LjQ1MzcgNy4zOTEwMSAyMC4yMzcxIDguNjk1MTYgMjAuNTE4MSAxMC4xNDFDMjMuNzE4OSAxMC41MDQyIDI2LjIxIDEzLjE1MzIgMjYuMjEgMTYuNDAzN0MyNi4yMSAxOC4wODQgMjUuNTMyNiAxOS42OTU0IDI0LjMyNjkgMjAuODgzNUMyMy4xMjEzIDIyLjA3MTcgMjEuNDg2IDIyLjczOTEgMTkuNzgwOSAyMi43MzkxQzE5LjYzNjkgMjIuNzM5MSAxOS40OTgxIDIyLjcwNTMgMTkuMzUyMyAyMi42OTY5VjIyLjczOTFIMTUuMDY4WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbkZpbGVEaWFsb2coKVwiIGNsYXNzPVwidXBsb2FkX3RpdGxlIGN1cnNvci1wb2ludGVyIFwiPlxyXG4gICAgICAgICAge3sgc2V0dGluZygndXBsb2FkLXRleHQnKSB9fVxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBbbXVsdGlwbGVdPVwic2V0dGluZygnbXVsdGlwbGUtdXBsb2FkJylcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICBhY2NlcHQ9XCIuY3N2LC5wZGYsLnhscywueGxzeCwuZG9jLC5kb2N4LC50eHQsaW1hZ2UvKlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAvPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3QgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgZmxleC13cmFwIHctZnVsbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXBsb2FkZWRGaWxlcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB1cGxvYWRlZEZpbGVzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgcC0zIGJvcmRlciByb3VuZGVkLWxnIHNoYWRvdy1zbSBiZy13aGl0ZSB3LVs0NTBweF0gdXBsb2FkX2ZpbGVcIj5cclxuXHJcbiAgICAgICAgICA8IS0tIENsb3NlIGljb24gLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2VfaWNvbiBjdXJzb3ItcG9pbnRlciBhYnNvbHV0ZSB0b3AtMiByaWdodC0yXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoaSlcIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDIyIDIyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgcng9XCIxMVwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk03LjA4OTExIDE1Ljg4ODlMNi4xMTEzMyAxNC45MTExTDEwLjAyMjQgMTFMNi4xMTEzMyA3LjA4ODg2TDcuMDg5MTEgNi4xMTEwOEwxMS4wMDAyIDEwLjAyMjJMMTQuOTExMyA2LjExMTA4TDE1Ljg4OTEgNy4wODg4NkwxMS45NzggMTFMMTUuODg5MSAxNC45MTExTDE0LjkxMTMgMTUuODg4OUwxMS4wMDAyIDExLjk3NzhMNy4wODkxMSAxNS44ODg5WlwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aHVtYm5haWxfdGl0bGUgZmxleFwiPlxyXG4gICAgICAgICAgICA8IS0tIFRodW1ibmFpbCBvbiBsZWZ0IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGh1bWJuYWlsXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbGUudHlwZSA9PT0gJ2ltYWdlJzsgZWxzZSBub25JbWFnZVRodW1iXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZmlsZS10aHVtYm5haWxcIiBbc3JjXT1cImZpbGU/LnJlc3VsdFwiIGFsdD1cInByZXZpZXdcIiAoY2xpY2spPVwib25JbWFnZVNlbGVjdChmaWxlPy5yZXN1bHQpXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWxlPy5yZXN1bHRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIiFmaWxlPy5yZXN1bHRcIiB3aWR0aD1cIjE4MHB4XCIgaGVpZ2h0PVwiMTgwcHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi43MDEzIDEzSDMuMzEyN0MyLjU4NTAxIDEzIDIgMTIuNDA0OCAyIDExLjY2NDVWNC4zMzU0OEMyIDMuNTk1MTYgMi41ODUwMSAzIDMuMzEyNyAzSDEyLjY4NzFDMTMuNDE0NyAzIDEzLjk5OTggMy41OTUxNiAxMy45OTk4IDQuMzM1NDhWMTEuNjY0NUMxNC4wMTQgMTIuNDA0OCAxMy40MTQ3IDEzIDEyLjcwMTMgMTNaTTkuMjQ4MzYgNy45MDQ4NEw3LjM5MzQ3IDEwLjA2NzdDNy4yNzkzMiAxMC4yMTI5IDcuMDUxMDIgMTAuMjEyOSA2LjkzNjg4IDEwLjA4MjNMNS45MzgwOSA4Ljk5MzU1QzUuODA5NjcgOC44NjI5IDUuNjA5OTEgOC44NjI5IDUuNDgxNSA4Ljk5MzU1TDMuNzY5MjkgMTAuODY2MUMzLjU4MzggMTEuMDY5NCAzLjcyNjQ4IDExLjQwMzIgMy45OTc1OCAxMS40MDMySDYuMjY2MjZIOC4xMzU0M0gxMi4wMTY0QzEyLjI4NzUgMTEuNDAzMiAxMi40MzAyIDExLjA4MzkgMTIuMjQ0NyAxMC44ODA2TDkuNzE5MjIgNy45MDQ4NEM5LjU5MDgxIDcuNzU5NjggOS4zNzY3OCA3Ljc1OTY4IDkuMjQ4MzYgNy45MDQ4NFpNNi43MzcxMiA1Ljk4ODcxQzYuMjUxOTkgNS45ODg3MSA1Ljg1MjQ4IDYuMzk1MTYgNS44NTI0OCA2Ljg4ODcxQzUuODUyNDggNy4zODIyNiA2LjI1MTk5IDcuNzg4NzEgNi43MzcxMiA3Ljc4ODcxQzcuMjIyMjUgNy43ODg3MSA3LjYyMTc2IDcuMzgyMjYgNy42MjE3NiA2Ljg4ODcxQzcuNjIxNzYgNi4zOTUxNiA3LjIyMjI1IDUuOTg4NzEgNi43MzcxMiA1Ljk4ODcxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM5OTk5OTlcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vbkltYWdlVGh1bWI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS10aHVtYm5haWxcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsZS50eXBlXCI+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NzdidcIiB3aWR0aD1cIjE4MHB4XCIgaGVpZ2h0PVwiMTgwcHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4xNzU3IDEuMTc1NzRDMTEuMDYzMiAxLjA2MzIxIDEwLjkxMDYgMSAxMC43NTE1IDFIMy42QzMuMjY4NjMgMSAzIDEuMjY4NjMgMyAxLjZWMTQuNEMzIDE0LjczMTQgMy4yNjg2MyAxNSAzLjYgMTVIMTMuNEMxMy43MzE0IDE1IDE0IDE0LjczMTQgMTQgMTQuNFY0LjI0ODUzQzE0IDQuMDg5NCAxMy45MzY4IDMuOTM2NzkgMTMuODI0MyAzLjgyNDI2TDExLjE3NTcgMS4xNzU3NFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0Y0RjRGNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1IDEyLjdDMTUgMTIuODY1NyAxNC44NjU3IDEzIDE0LjcgMTNIMi4zQzIuMTM0MzEgMTMgMiAxMi44NjU3IDIgMTIuN1Y5LjNDMiA5LjEzNDMxIDIuMTM0MzEgOSAyLjMgOUgxNC43QzE0Ljg2NTcgOSAxNSA5LjEzNDMxIDE1IDkuM1YxMi43WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMjNBNzYxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgMUwxMi41IDIuNUwxNCA0SDExLjJDMTEuMDg5NSA0IDExIDMuOTEwNDYgMTEgMy44VjFaXCIgZmlsbD1cIiNEOUQ5RDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02Ljk0MDc2IDEwLjM0MzNDNi44NTkzOSAxMC4zNDMzIDYuNzg3MTYgMTAuMzU4OCA2LjcyNDA4IDEwLjM4OTlDNi42NjE5MSAxMC40MiA2LjYwOTM0IDEwLjQ2NCA2LjU2NjM3IDEwLjUyMTZDNi41MjQzMiAxMC41NzkzIDYuNDkyMzIgMTAuNjQ4OSA2LjQ3MDM4IDEwLjczMDVDNi40NDg0NCAxMC44MTIyIDYuNDM3NDcgMTAuOTA0IDYuNDM3NDcgMTEuMDA2QzYuNDM3NDcgMTEuMTQzNSA2LjQ1NDg0IDExLjI2MSA2LjQ4OTU4IDExLjM1ODZDNi41MjUyMyAxMS40NTUzIDYuNTgwMDkgMTEuNTI5NCA2LjY1NDE0IDExLjU4MDhDNi43MjgyIDExLjYzMTQgNi44MjM3MyAxMS42NTY3IDYuOTQwNzYgMTEuNjU2N0M3LjAyMjEyIDExLjY1NjcgNy4xMDM0OSAxMS42NDc4IDcuMTg0ODYgMTEuNjMwMUM3LjI2NzE0IDExLjYxMjMgNy4zNTYyOCAxMS41ODcgNy40NTIyOCAxMS41NTQyVjExLjkwMDJDNy4zNjM1OSAxMS45MzU3IDcuMjc2MjggMTEuOTYxIDcuMTkwMzUgMTEuOTc2QzcuMTA0NDEgMTEuOTkyIDcuMDA3OTUgMTIgNi45MDA5OSAxMkM2LjY5NDM3IDEyIDYuNTI0MzIgMTEuOTU4NyA2LjM5MDg0IDExLjg3NjJDNi4yNTgyNyAxMS43OTI5IDYuMTU5OTkgMTEuNjc2NiA2LjA5NiAxMS41Mjc2QzYuMDMyIDExLjM3NzcgNiAxMS4yMDI5IDYgMTEuMDAzM0M2IDEwLjg1NjEgNi4wMjA1NyAxMC43MjEyIDYuMDYxNzEgMTAuNTk4OEM2LjEwMjg1IDEwLjQ3NjQgNi4xNjMxOSAxMC4zNzA0IDYuMjQyNzMgMTAuMjgwOEM2LjMyMjI3IDEwLjE5MTIgNi40MjA1NSAxMC4xMjIgNi41Mzc1OCAxMC4wNzMyQzYuNjU0NiAxMC4wMjQ0IDYuNzg4OTkgMTAgNi45NDA3NiAxMEM3LjA0MDQxIDEwIDcuMTQwMDYgMTAuMDEyNCA3LjIzOTcxIDEwLjAzNzNDNy4zNDAyOCAxMC4wNjEyIDcuNDM2MjggMTAuMDk0NSA3LjUyNzcgMTAuMTM3MUw3LjM5MDU3IDEwLjQ3MjRDNy4zMTU2IDEwLjQzNzggNy4yNDAxNyAxMC40MDc2IDcuMTY0MjkgMTAuMzgxOUM3LjA4ODQxIDEwLjM1NjIgNy4wMTM5IDEwLjM0MzMgNi45NDA3NiAxMC4zNDMzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMDYzNjMgMTEuNDMzMUM5LjA2MzYzIDExLjU0ODUgOS4wMzQ4MyAxMS42NDg3IDguOTc3MjQgMTEuNzMzOUM4LjkxOTY0IDExLjgxOSA4LjgzNTUzIDExLjg4NDcgOC43MjQ5IDExLjkzMDhDOC42MTUxOSAxMS45NzY5IDguNDgxNzIgMTIgOC4zMjQ0NyAxMkM4LjI1NDk4IDEyIDguMTg2ODcgMTEuOTk1NiA4LjEyMDEzIDExLjk4NjdDOC4wNTQzMSAxMS45Nzc4IDcuOTkwNzcgMTEuOTY1IDcuOTI5NTEgMTEuOTQ4MUM3Ljg2OTE3IDExLjkzMDQgNy44MTE1NyAxMS45MDg2IDcuNzU2NzIgMTEuODgyOVYxMS40OTk3QzcuODUxOCAxMS41NDA1IDcuOTUwNTQgMTEuNTc3MyA4LjA1MjkzIDExLjYxMDFDOC4xNTUzMyAxMS42NDI5IDguMjU2ODEgMTEuNjU5MyA4LjM1NzM4IDExLjY1OTNDOC40MjY4NiAxMS42NTkzIDguNDgyNjMgMTEuNjUwNSA4LjUyNDY4IDExLjYzMjdDOC41Njc2NSAxMS42MTUgOC41OTg3NCAxMS41OTA2IDguNjE3OTQgMTEuNTU5NUM4LjYzNzE0IDExLjUyODUgOC42NDY3NCAxMS40OTMgOC42NDY3NCAxMS40NTMxQzguNjQ2NzQgMTEuNDA0MyA4LjYyOTgyIDExLjM2MjYgOC41OTYgMTEuMzI4QzguNTYyMTcgMTEuMjkzNCA4LjUxNTU0IDExLjI2MSA4LjQ1NjEyIDExLjIzMDlDOC4zOTc2IDExLjIwMDcgOC4zMzEzMiAxMS4xNjgzIDguMjU3MjcgMTEuMTMzN0M4LjIxMDY0IDExLjExMjQgOC4xNTk5IDExLjA4NjcgOC4xMDUwNSAxMS4wNTY2QzguMDUwMTkgMTEuMDI1NSA3Ljk5ODA4IDEwLjk4NzggNy45NDg3MSAxMC45NDM0QzcuODk5MzQgMTAuODk5MSA3Ljg1ODY2IDEwLjg0NTQgNy44MjY2NiAxMC43ODI0QzcuNzk1NTggMTAuNzE4NiA3Ljc4MDAzIDEwLjY0MjMgNy43ODAwMyAxMC41NTM2QzcuNzgwMDMgMTAuNDM3MyA3LjgwNzQ2IDEwLjMzOCA3Ljg2MjMxIDEwLjI1NTVDNy45MTcxNyAxMC4xNzMgNy45OTUzNCAxMC4xMSA4LjA5NjgyIDEwLjA2NjVDOC4xOTkyMSAxMC4wMjIyIDguMzE5ODkgMTAgOC40NTg4NiAxMEM4LjU2MzA4IDEwIDguNjYyMjggMTAuMDEyIDguNzU2NDUgMTAuMDM1OUM4Ljg1MTUzIDEwLjA1OSA4Ljk1MDcyIDEwLjA5MjcgOS4wNTQwMyAxMC4xMzcxTDguOTE2OSAxMC40NTc4QzguODI0NTYgMTAuNDIxNCA4Ljc0MTgyIDEwLjM5MzQgOC42Njg2OCAxMC4zNzM5QzguNTk1NTQgMTAuMzUzNSA4LjUyMTAzIDEwLjM0MzMgOC40NDUxNSAxMC4zNDMzQzguMzkyMTIgMTAuMzQzMyA4LjM0Njg2IDEwLjM1MTcgOC4zMDkzOCAxMC4zNjg2QzguMjcxOSAxMC4zODQ2IDguMjQzNTUgMTAuNDA3NiA4LjIyNDM2IDEwLjQzNzhDOC4yMDUxNiAxMC40NjcxIDguMTk1NTYgMTAuNTAxMiA4LjE5NTU2IDEwLjU0MDNDOC4xOTU1NiAxMC41ODY0IDguMjA5MjcgMTAuNjI1NCA4LjIzNjcgMTAuNjU3NEM4LjI2NTA0IDEwLjY4ODQgOC4zMDcwOSAxMC43MTg2IDguMzYyODYgMTAuNzQ3OEM4LjQxOTU1IDEwLjc3NzEgOC40ODk5NCAxMC44MTEzIDguNTc0MDUgMTAuODUwM0M4LjY3NjQ1IDEwLjg5NzMgOC43NjM3NiAxMC45NDY2IDguODM1OTggMTAuOTk4QzguOTA5MTIgMTEuMDQ4NiA4Ljk2NTM1IDExLjEwODQgOS4wMDQ2NiAxMS4xNzc2QzkuMDQzOTggMTEuMjQ2IDkuMDYzNjMgMTEuMzMxMSA5LjA2MzYzIDExLjQzMzFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTAuMDI3OUwxMC4zMTg0IDExLjk3MzRIOS44NTQ5MUw5LjE3NDcxIDEwLjAyNzlIOS42MDM5NUw5Ljk4MTA4IDExLjE4NTZDOS45ODc0OCAxMS4yMDUxIDkuOTk3OTkgMTEuMjQyIDEwLjAxMjYgMTEuMjk2MUMxMC4wMjcyIDExLjM0OTMgMTAuMDQxOSAxMS40MDYxIDEwLjA1NjUgMTEuNDY2NEMxMC4wNzIgMTEuNTI1OCAxMC4wODI2IDExLjU3NTEgMTAuMDg4IDExLjYxNDFDMTAuMDkzNSAxMS41NzUxIDEwLjEwMzEgMTEuNTI1OCAxMC4xMTY4IDExLjQ2NjRDMTAuMTMxNSAxMS40MDcgMTAuMTQ1NiAxMS4zNTA2IDEwLjE1OTQgMTEuMjk3NEMxMC4xNzQgMTEuMjQzMyAxMC4xODQ1IDExLjIwNiAxMC4xOTA5IDExLjE4NTZMMTAuNTcwOCAxMC4wMjc5SDExWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNVwiIHk9XCI3XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMVwiIHJ4PVwiMC4yXCIgZmlsbD1cIiNDQ0NDQ0NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjVcIiB5PVwiNVwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjFcIiByeD1cIjAuMlwiIGZpbGw9XCIjQ0NDQ0NDXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI5XCIgeT1cIjdcIiB3aWR0aD1cIjNcIiBoZWlnaHQ9XCIxXCIgcng9XCIwLjJcIiBmaWxsPVwiI0NDQ0NDQ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiOVwiIHk9XCI1XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMVwiIHJ4PVwiMC4yXCIgZmlsbD1cIiNDQ0NDQ0NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIiB3aWR0aD1cIjE4MHB4XCIgaGVpZ2h0PVwiMTgwcHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4xNzU3IDEuMTc1NzRDMTEuMDYzMiAxLjA2MzIxIDEwLjkxMDYgMSAxMC43NTE1IDFIMy42QzMuMjY4NjMgMSAzIDEuMjY4NjMgMyAxLjZWMTQuNEMzIDE0LjczMTQgMy4yNjg2MyAxNSAzLjYgMTVIMTMuNEMxMy43MzE0IDE1IDE0IDE0LjczMTQgMTQgMTQuNFY0LjI0ODUzQzE0IDQuMDg5NCAxMy45MzY4IDMuOTM2NzkgMTMuODI0MyAzLjgyNDI2TDExLjE3NTcgMS4xNzU3NFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0Y0RjRGNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1IDEyLjdDMTUgMTIuODY1NyAxNC44NjU3IDEzIDE0LjcgMTNIMi4zQzIuMTM0MzEgMTMgMiAxMi44NjU3IDIgMTIuN1Y5LjNDMiA5LjEzNDMxIDIuMTM0MzEgOSAyLjMgOUgxNC43QzE0Ljg2NTcgOSAxNSA5LjEzNDMxIDE1IDkuM1YxMi43WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMUY1RUJCXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgMUwxMi41IDIuNUwxNCA0SDExLjJDMTEuMDg5NSA0IDExIDMuOTEwNDYgMTEgMy44VjFaXCIgZmlsbD1cIiNEOUQ5RDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjA0MzUzIDEySDYuNjExMDVWMTAuMzIwM0g2LjA1NzJWOS45NjAzOEg3LjU5NzM4VjEwLjMyMDNINy4wNDM1M1YxMlpNOS41NjAyNyAxMkg5LjA2NjQxTDguNTkyMDggMTEuMjI4NUw4LjExNzc1IDEySDcuNjU0NThMOC4zMzExOSAxMC45NDgxTDcuNjk3ODIgOS45NjAzOEg4LjE3NDk0TDguNjE0NCAxMC42OTQyTDkuMDQ1NDggOS45NjAzOEg5LjUxMTQ0TDguODcxMDkgMTAuOTcxOEw5LjU2MDI3IDEyWk0xMC42MDM4IDEySDEwLjE3MTNWMTAuMzIwM0g5LjYxNzQ3VjkuOTYwMzhIMTEuMTU3NlYxMC4zMjAzSDEwLjYwMzhWMTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI1XCIgeT1cIjVcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCIwLjVcIiByeD1cIjAuMjVcIiBmaWxsPVwiI0NDQ0NDQ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNVwiIHk9XCI2XCIgd2lkdGg9XCI3XCIgaGVpZ2h0PVwiMC41XCIgcng9XCIwLjI1XCIgZmlsbD1cIiNDQ0NDQ0NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjVcIiB5PVwiN1wiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjAuNVwiIHJ4PVwiMC4yNVwiIGZpbGw9XCIjQ0NDQ0NDXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hEZWZhdWx0IHdpZHRoPVwiMTgwcHhcIiBoZWlnaHQ9XCIxODBweFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjE3NTcgMS4xNzU3NEMxMS4wNjMyIDEuMDYzMjEgMTAuOTEwNiAxIDEwLjc1MTUgMUgzLjZDMy4yNjg2MyAxIDMgMS4yNjg2MyAzIDEuNlYxNC40QzMgMTQuNzMxNCAzLjI2ODYzIDE1IDMuNiAxNUgxMy40QzEzLjczMTQgMTUgMTQgMTQuNzMxNCAxNCAxNC40VjQuMjQ4NTNDMTQgNC4wODk0IDEzLjkzNjggMy45MzY3OSAxMy44MjQzIDMuODI0MjZMMTEuMTc1NyAxLjE3NTc0WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRjRGNEY0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTUgMTIuN0MxNSAxMi44NjU3IDE0Ljg2NTcgMTMgMTQuNyAxM0gyLjNDMi4xMzQzMSAxMyAyIDEyLjg2NTcgMiAxMi43VjkuM0MyIDkuMTM0MzEgMi4xMzQzMSA5IDIuMyA5SDE0LjdDMTQuODY1NyA5IDE1IDkuMTM0MzEgMTUgOS4zVjEyLjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNERDIwMjVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMSAxTDEyLjUgMi41TDE0IDRIMTEuMkMxMS4wODk1IDQgMTEgMy45MTA0NiAxMSAzLjhWMVpcIiBmaWxsPVwiI0Q5RDlEOVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNjA4NCA5Ljk2MDM4QzYuODcxNjEgOS45NjAzOCA3LjA2MzY2IDEwLjAxNzEgNy4xODQ1NyAxMC4xMzA2QzcuMzA1NDggMTAuMjQzMSA3LjM2NTkzIDEwLjM5ODQgNy4zNjU5MyAxMC41OTY1QzcuMzY1OTMgMTAuNjg1OCA3LjM1MjQ1IDEwLjc3MTQgNy4zMjU0NyAxMC44NTMyQzcuMjk4NSAxMC45MzQyIDcuMjU0MzIgMTEuMDA2MiA3LjE5Mjk0IDExLjA2OTVDNy4xMzI0OSAxMS4xMzI3IDcuMDUxNTcgMTEuMTgyOSA2Ljk1MDIgMTEuMjIwMUM2Ljg0ODgyIDExLjI1NjQgNi43MjM3MyAxMS4yNzQ2IDYuNTc0OTIgMTEuMjc0Nkg2LjM4OTM3VjEySDUuOTU2ODlWOS45NjAzOEg2LjYwODRaTTYuNTg2MDggMTAuMzE0N0g2LjM4OTM3VjEwLjkyMDJINi41MzE2N0M2LjYxMjU4IDEwLjkyMDIgNi42ODI4IDEwLjkwOTUgNi43NDIzMyAxMC44ODgxQzYuODAxODUgMTAuODY2NyA2Ljg0Nzg5IDEwLjgzMzIgNi44ODA0NCAxMC43ODc3QzYuOTEyOTkgMTAuNzQyMSA2LjkyOTI3IDEwLjY4MzUgNi45MjkyNyAxMC42MTE5QzYuOTI5MjcgMTAuNTExNCA2LjkwMTM3IDEwLjQzNyA2Ljg0NTU2IDEwLjM4ODdDNi43ODk3NiAxMC4zMzk0IDYuNzAzMjYgMTAuMzE0NyA2LjU4NjA4IDEwLjMxNDdaTTkuNDQzMjIgMTAuOTYwN0M5LjQ0MzIyIDExLjE5MDQgOS4zOTkwNCAxMS4zODI0IDkuMzEwNjkgMTEuNTM2OEM5LjIyMzI2IDExLjY5MDMgOS4wOTYzMSAxMS44MDYxIDguOTI5ODMgMTEuODg0MkM4Ljc2MzM1IDExLjk2MTQgOC41NjI5MiAxMiA4LjMyODU0IDEySDcuNzUwOThWOS45NjAzOEg4LjM5MTMyQzguNjA1MjQgOS45NjAzOCA4Ljc5MDc4IDkuOTk4NTEgOC45NDc5NiAxMC4wNzQ4QzkuMTA1MTQgMTAuMTUwMSA5LjIyNjk4IDEwLjI2MjIgOS4zMTM0OCAxMC40MTFDOS4zOTk5NyAxMC41NTg5IDkuNDQzMjIgMTAuNzQyMSA5LjQ0MzIyIDEwLjk2MDdaTTguOTk0IDEwLjk3MThDOC45OTQgMTAuODIxMSA4Ljk3MTY4IDEwLjY5NzUgOC45MjcwNCAxMC42MDA3QzguODgzMzIgMTAuNTAzMSA4LjgxODIyIDEwLjQzMSA4LjczMTcyIDEwLjM4NDVDOC42NDYxNiAxMC4zMzggOC41NDAxMyAxMC4zMTQ3IDguNDEzNjQgMTAuMzE0N0g4LjE4MzQ1VjExLjY0MjlIOC4zNjlDOC41ODAxMiAxMS42NDI5IDguNzM2ODQgMTEuNTg2NiA4LjgzOTE1IDExLjQ3NDFDOC45NDIzOCAxMS4zNjE1IDguOTk0IDExLjE5NDEgOC45OTQgMTAuOTcxOFpNMTAuMjkxNCAxMkg5Ljg2NTkzVjkuOTYwMzhIMTEuMDM1VjEwLjMxNDdIMTAuMjkxNFYxMC44NDA3SDEwLjk4MzRWMTEuMTkzNkgxMC4yOTE0VjEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCI3XCIgaGVpZ2h0PVwiMC41XCIgcng9XCIwLjI1XCIgZmlsbD1cIiNDQ0NDQ0NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjVcIiB5PVwiNlwiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjAuNVwiIHJ4PVwiMC4yNVwiIGZpbGw9XCIjQ0NDQ0NDXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI1XCIgeT1cIjdcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCIwLjVcIiByeD1cIjAuMjVcIiBmaWxsPVwiI0NDQ0NDQ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE1ldGFkYXRhIG9uIHJpZ2h0IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVfbm90ZXMgbWwtMlwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gVGl0bGUgLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXNtIGlucHV0LXRpdGxlIG0tMCAtbXQtMVwiPlRpdGxlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cImZpbGUudGl0bGVcIiBuYW1lPVwidGl0bGV7e2l9fVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWV0YUNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB0aXRsZVwiIGNsYXNzPVwiIHJvdW5kZWQgcHgtMyBweS0yIG1iLTMgdy1mdWxsIG91dGxpbmUtbm9uZSBmb2N1czpyaW5nXCIgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAjdGl0bGVDdHJsPVwibmdNb2RlbFwiLz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRpdGxlQ3RybC5pbnZhbGlkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgdGV4dC14cyBtYi0yXCI+XHJcbiAgICAgIFRpdGxlIGlzIHJlcXVpcmVkXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCEtLSBOb3RlcyAtLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtc20gaW5wdXQtdGl0bGUgbS0wIC1tdC0xXCI+Tm90ZXM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIFsobmdNb2RlbCldPVwiZmlsZS5ub3Rlc1wiIG5hbWU9XCJub3Rlc3t7aX19XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25NZXRhQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIG5vdGVzXCIgY2xhc3M9XCIgcm91bmRlZCBweC0zIHB5LTIgbWItMCB3LWZ1bGwgb3V0bGluZS1ub25lIGZvY3VzOnJpbmdcIlxyXG4gICAgICAgICAgICAgICAgICByb3dzPVwiMlwiICByZXF1aXJlZFxyXG4gICAgICAjbm90ZXNDdHJsPVwibmdNb2RlbFwiPjwvdGV4dGFyZWE+XHJcbiA8ZGl2ICpuZ0lmPVwibm90ZXNDdHJsLmludmFsaWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LXhzIG10LTFcIj5cclxuICAgICAgTm90ZXMgYXJlIHJlcXVpcmVkXHJcbiAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5IG10LTJcIj5cclxuICAgICAgICAgICAgPCEtLSBDYXRlZ29yeSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdGV4dC1zbSBpbnB1dC10aXRsZSBtLTBcIj5DYXRlZ29yeTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImZpbGUuY2F0ZWdvcnlJZCBcIiBuYW1lPVwiY2F0ZWdvcnl7e2l9fVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWV0YUNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIHJvdW5kZWQgcHgtMyBweS0yIHctZnVsbCBvdXRsaW5lLW5vbmUgZm9jdXM6cmluZ1wiICByZXF1aXJlZFxyXG4gICAgI2NhdGVnb3J5Q3RybD1cIm5nTW9kZWxcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3QgQ2F0ZWdvcnk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY2F0ZWdvcmllc1wiIFtuZ1ZhbHVlXT1cImMudmFsdWVcIj57eyBjLmxhYmVsIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2F0ZWdvcnlDdHJsLmludmFsaWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LXhzIG10LTFcIj5cclxuICAgIENhdGVnb3J5IGlzIHJlcXVpcmVkXHJcbiAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHAtZGlhbG9nIGhlYWRlcj1cIkltYWdlIFByZXZpZXdcIiBbbW9kYWxdPVwidHJ1ZVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG4gIFtzdHlsZV09XCJ7d2lkdGg6ICc3MHJlbSd9XCIgY2xhc3M9XCJjdXN0b21EaWFsb2dDbGFzc1wiIChvbkhpZGUpPVwiY2xvc2VEaWFsb2coKVwiPlxyXG4gIDxpbWcgW3NyY109XCJzZWxlY3RlSW1hZ2VVcmxcIi8+XHJcbiAgPC9wLWRpYWxvZz5cclxuPC9meC1jb21wb25lbnQ+Il19
|
|
539
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWRlci91cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZGVyL3VwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFvQyxTQUFTLEVBQWMsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsSixPQUFPLEVBQTZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZ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QUFJLENBQUM7SUFDckIsQ0FBQzt3R0F2bEJRLGlCQUFpQjs0RkFBakIsaUJBQWlCLDBEQUpqQixDQUFDLGNBQWMsRUFBQyxtQkFBbUIsQ0FBQyx5SkNsQmpELDRya0JBeUxlLGdvbUREeEtILFlBQVksNGdCQUFFLFdBQVcsNEVBQUUsV0FBVyxzdUNBQUUsbUJBQW1CLDhCQUFDLGdCQUFnQiw4QkFBQyxXQUFXLDhCQUFDLG1CQUFtQiw4QkFBQyxZQUFZOzs0RkFLeEgsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxnQkFBZ0IsRUFBQyxXQUFXLEVBQUMsbUJBQW1CLEVBQUMsWUFBWSxDQUFDLGFBQ3pILENBQUMsY0FBYyxFQUFDLG1CQUFtQixDQUFDOzJMQXVCdkIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNlbGVjdFNldHRpbmcsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUsIFVwbG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z4LXVwbG9hZGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZ4Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSxGaWxlVXBsb2FkTW9kdWxlLFRvYXN0TW9kdWxlLENvbmZpcm1EaWFsb2dNb2R1bGUsRGlhbG9nTW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSxDb25maXJtYXRpb25TZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91cGxvYWRlci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkZXJDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgLy8gcHVibGljIHVwbG9hZEZpbGVDb250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB1cGxvYWRGaWxlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcHVibGljIGZvcm1hdHRlZERhdGE6IGFueSA9IHtcclxuICAgIHVwbG9hZGVkRmlsZXM6IFtdLFxyXG4gICAgZGVsZXRlZEZpbGVzOiBbXVxyXG4gIH07XHJcbiAgY2F0ZWdvcmllcyA9IFtcclxuICB7IGxhYmVsOiAnT3JhbCBJbWFnZXMnLCB2YWx1ZTogMTYgfSxcclxuICB7IGxhYmVsOiAnUGFzdCBEb2NzJywgdmFsdWU6IDE3IH0sXHJcbiAgeyBsYWJlbDogJ1gtUmF5cycsIHZhbHVlOiAxNCB9LFxyXG4gIHsgbGFiZWw6ICdQcm9maWxlJywgdmFsdWU6IDE4IH0sXHJcbl07XHJcblxyXG52aXNpYmxlOmJvb2xlYW4gPSBmYWxzZTtcclxuc2VsZWN0ZUltYWdlVXJsOiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICBwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UscHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoY2RyKVxyXG4gICAgdGhpcy5vbkluaXQuc3Vic2NyaWJlKChmeERhdGEpPT57XHJcbiAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMudXBsb2FkRmlsZUNvbnRyb2wpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICB1cGxvYWRlZEltYWdlczogeyBba2V5OiBzdHJpbmddOiB7IHJlc3VsdDogc3RyaW5nLCBmaWxlOiBGaWxlIHwgbnVsbCB9W10gfSA9IHt9O1xyXG4gIGRlbGV0ZWRGaWxlczogYW55W10gPSBbXTtcclxuICAvLyBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgLy8gICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC8vICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgXHJcbiAgLy8gICAgICAgY29uc3QgdXBsb2FkZWRGaWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgXHJcbiAgLy8gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xyXG4gIC8vICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygndXBsb2FkZXInKSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gIC8vICAgICAgICAgICB1cGxvYWRlZEZpbGVzW2tleV0gPSB2YWx1ZTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgXHJcbiAgLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXMpKSB7XHJcbiAgLy8gICAgICAgICBjb25zdCBpbWFnZUZldGNoZXM6IE9ic2VydmFibGU8c3RyaW5nPltdID0gW107XHJcbiAgXHJcbiAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKHVybDogc3RyaW5nKSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmICh1cmwpIHtcclxuICAvLyAgICAgICAgICAgICBjb25zdCBpbWFnZSQgPSB0aGlzLmh0dHAuZ2V0KHVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG4gIC8vICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKVxyXG4gIC8vICAgICAgICAgICAgICk7XHJcbiAgLy8gICAgICAgICAgICAgaW1hZ2VGZXRjaGVzLnB1c2goaW1hZ2UkKTtcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgfSk7XHJcbiAgXHJcbiAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCkge1xyXG4gIC8vICAgICAgICAgICBmb3JrSm9pbihpbWFnZUZldGNoZXMpLnN1YnNjcmliZSh7XHJcbiAgLy8gICAgICAgICAgICAgbmV4dDogKGltYWdlVXJsczogc3RyaW5nW10pID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRJbWFnZXNbdXBsb2FkZXJLZXldID0gaW1hZ2VVcmxzLm1hcChyZXN1bHQgPT4gKHtcclxuICAvLyAgICAgICAgICAgICAgICAgcmVzdWx0LFxyXG4gIC8vICAgICAgICAgICAgICAgICBmaWxlOiBudWxsXHJcbiAgLy8gICAgICAgICAgICAgICB9KSk7XHJcbiAgLy8gICAgICAgICAgICAgICAvLyB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEltYWdlc11cclxuICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IE9iamVjdC52YWx1ZXModGhpcy51cGxvYWRlZEltYWdlcykuZmxhdCgpO1xyXG4gIC8vICAgICAgICAgICAgIH0sXHJcbiAgLy8gICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBmZXRjaCBpbWFnZXMgZm9yICR7dXBsb2FkZXJLZXl9OmAsIGVycik7XHJcbiAgLy8gICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vIH1cclxuICBcclxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAvLyAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgLy8gICAgIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgLy8gICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuXHJcbiAgLy8gICAgICAgY29uc3QgdXBsb2FkZWRGaWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcblxyXG4gIC8vICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcclxuICAvLyAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3VwbG9hZGVyJykgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAvLyAgICAgICAgICAgdXBsb2FkZWRGaWxlc1trZXldID0gdmFsdWU7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG5cclxuICAvLyAgICAgICBmb3IgKGNvbnN0IFt1cGxvYWRlcktleSwgdXJsc10gb2YgT2JqZWN0LmVudHJpZXModXBsb2FkZWRGaWxlcykpIHtcclxuICAvLyAgICAgICAgIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nLCBvcmlnaW5hbFVybDogc3RyaW5nIH0+W10gPSBbXTtcclxuXHJcbiAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKHVybDogc3RyaW5nKSA9PiB7XHJcbiAgLy8gICAgICAgICAgIGlmICh1cmwpIHtcclxuICAvLyAgICAgICAgICAgICBjb25zdCBpbWFnZSQgPSB0aGlzLmh0dHAuZ2V0KHVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG4gIC8vICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiAoe1xyXG4gIC8vICAgICAgICAgICAgICAgICByZXN1bHQ6IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYiksIC8vIGp1c3QgZm9yIHByZXZpZXdcclxuICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IHVybFxyXG4gIC8vICAgICAgICAgICAgICAgfSkpXHJcbiAgLy8gICAgICAgICAgICAgKTtcclxuICAvLyAgICAgICAgICAgICBpbWFnZUZldGNoZXMucHVzaChpbWFnZSQpO1xyXG4gIC8vICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICB9KTtcclxuXHJcbiAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCkge1xyXG4gIC8vICAgICAgICAgICBmb3JrSm9pbihpbWFnZUZldGNoZXMpLnN1YnNjcmliZSh7XHJcbiAgLy8gICAgICAgICAgICAgbmV4dDogKGltYWdlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gaW1hZ2VEYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgLy8gICAgICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcclxuICAvLyAgICAgICAgICAgICAgICAgZmlsZTogbnVsbCxcclxuICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IGl0ZW0ub3JpZ2luYWxVcmwsXHJcbiAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdDogaXRlbS5yZXN1bHRcclxuICAvLyAgICAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnVwbG9hZGVkRmlsZXMpO1xyXG4gIC8vICAgICAgICAgICAgIH0sXHJcbiAgLy8gICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBmZXRjaCBpbWFnZXMgZm9yICR7dXBsb2FkZXJLZXl9OmAsIGVycik7XHJcbiAgLy8gICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICB9KTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbi8vICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbi8vICAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuLy8gICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4vLyAgICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4vLyAgICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgXHJcbi8vICAgICAgICAgY29uc3QgdXBsb2FkZWRGaWxlc01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgXHJcbi8vICAgICAgICAgLy8gRXh0cmFjdCB1cGxvYWRlciBrZXlzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIFVSTCBhcnJheXNcclxuLy8gICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpKSB7XHJcbi8vICAgICAgICAgICBpZiAoa2V5LmluY2x1ZGVzKCd1cGxvYWRlcicpICYmIEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbi8vICAgICAgICAgICAgIHVwbG9hZGVkRmlsZXNNYXBba2V5XSA9IHZhbHVlO1xyXG4vLyAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuICBcclxuLy8gICAgICAgICBmb3IgKGNvbnN0IFt1cGxvYWRlcktleSwgdXJsc10gb2YgT2JqZWN0LmVudHJpZXModXBsb2FkZWRGaWxlc01hcCkpIHtcclxuLy8gICAgICAgICAgIC8vIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nOyBvcmlnaW5hbFVybDogYW55OyB0aXRsZTpzdHJpbmcgOyBub3RlczpzdHJpbmcgfT5bXSA9IFtdO1xyXG4gIFxyXG4vLyAgICAgICAgICAgLy8gdXJscy5mb3JFYWNoKChvcmlnaW5hbFVybDphbnkpID0+IHtcclxuLy8gICAgICAgICAgIC8vICAgaWYgKG9yaWdpbmFsVXJsKSB7XHJcbi8vICAgICAgICAgICAvLyAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldChvcmlnaW5hbFVybD8ub3JpZ2luYWxVcmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuLy8gICAgICAgICAgIC8vICAgICAgIG1hcCgoYmxvYjogQmxvYikgPT4gKHtcclxuLy8gICAgICAgICAgIC8vICAgICAgICAgcmVzdWx0OiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpLCAvLyBmb3IgcHJldmlld1xyXG4vLyAgICAgICAgICAgLy8gICAgICAgICBvcmlnaW5hbFVybDogb3JpZ2luYWxVcmw/Lm9yaWdpbmFsVXJsICAgICAgICAgIC8vIHByZXNlcnZlIG9yaWdpbmFsXHJcbi8vICAgICAgICAgICAvLyAgICAgICB9KSlcclxuLy8gICAgICAgICAgIC8vICAgICApO1xyXG4vLyAgICAgICAgICAgLy8gICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbi8vICAgICAgICAgICAvLyAgIH1cclxuLy8gICAgICAgICAgIC8vIH0pO1xyXG5cclxuLy8gICAgICAgICAgIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nOyBvcmlnaW5hbFVybDogYW55OyB0aXRsZTogc3RyaW5nOyBub3Rlczogc3RyaW5nIH0+W10gPSBbXTtcclxuXHJcbi8vIHVybHMuZm9yRWFjaCgob3JpZ2luYWxVcmw6IGFueSkgPT4ge1xyXG4vLyAgIGlmIChvcmlnaW5hbFVybCkge1xyXG4vLyAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldChvcmlnaW5hbFVybD8ub3JpZ2luYWxVcmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuLy8gICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiAoe1xyXG4vLyAgICAgICAgIHJlc3VsdDogVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSwgLy8gZm9yIHByZXZpZXdcclxuLy8gICAgICAgICBvcmlnaW5hbFVybDogb3JpZ2luYWxVcmw/Lm9yaWdpbmFsVXJsLCAvLyBwcmVzZXJ2ZSBvcmlnaW5hbFxyXG4vLyAgICAgICAgIHRpdGxlOiBvcmlnaW5hbFVybD8udGl0bGUgfHwgJycsIC8vIGRlZmF1bHQgZW1wdHkgaWYgbm90IHByZXNlbnRcclxuLy8gICAgICAgICBub3Rlczogb3JpZ2luYWxVcmw/Lm5vdGVzIHx8ICcnXHJcbi8vICAgICAgIH0pKVxyXG4vLyAgICAgKTtcclxuLy8gICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbi8vICAgfVxyXG4vLyB9KTtcclxuXHJcbiAgXHJcbi8vICAgICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCA+IDApIHtcclxuLy8gICAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4vLyAgICAgICAgICAgICAgIG5leHQ6IChpbWFnZURhdGEpID0+IHtcclxuLy8gICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGltYWdlRGF0YS5tYXAoaXRlbSA9PiAoe1xyXG4vLyAgICAgICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbi8vICAgICAgICAgICAgICAgICAgIGZpbGU6IG51bGwsXHJcbi8vICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsVXJsOiBpdGVtLm9yaWdpbmFsVXJsLFxyXG4vLyAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGl0ZW0ucmVzdWx0LFxyXG4vLyAgICAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcclxuLy8gICAgICAgICAgICAgICAgICAgbm90ZXM6ICcnXHJcbi8vICAgICAgICAgICAgICAgICB9KSk7XHJcbiAgXHJcbi8vICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4vLyAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbi8vICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbi8vICAgICAgICAgICAgICAgfSxcclxuLy8gICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4vLyAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGZldGNoIGltYWdlcyBmb3IgJHt1cGxvYWRlcktleX06YCwgZXJyKTtcclxuLy8gICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgIH0pO1xyXG4vLyAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfSk7XHJcbi8vICAgfVxyXG4gIFxyXG4gIC8vIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIC8vICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLy8gICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAvLyAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gIFxyXG4gIC8vICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXNNYXA6IHsgW2tleTogc3RyaW5nXTogeyBvcmlnaW5hbFVybDogc3RyaW5nIH1bXSB9ID0gdmFyaWFibGVzLnVwbG9hZGVkRmlsZXM7XHJcbiAgXHJcbiAgLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXNNYXApKSB7XHJcbiAgLy8gICAgICAgICBjb25zdCBpbWFnZUZldGNoZXM6IE9ic2VydmFibGU8eyByZXN1bHQ6IHN0cmluZzsgb3JpZ2luYWxVcmw6IHN0cmluZyB9PltdID0gW107XHJcbiAgXHJcbiAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKGZpbGVPYmo6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgICBjb25zdCBvcmlnaW5hbFVybCA9IGZpbGVPYmo/Lm9yaWdpbmFsVXJsO1xyXG4gIC8vICAgICAgICAgICBpZiAob3JpZ2luYWxVcmwpIHtcclxuICAvLyAgICAgICAgICAgICBjb25zdCBpbWFnZSQgPSB0aGlzLmh0dHAuZ2V0KG9yaWdpbmFsVXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcbiAgLy8gICAgICAgICAgICAgICBtYXAoKGJsb2I6IEJsb2IpID0+ICh7XHJcbiAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdDogVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSwgLy8gZm9yIHByZXZpZXdcclxuICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmxcclxuICAvLyAgICAgICAgICAgICAgIH0pKVxyXG4gIC8vICAgICAgICAgICAgICk7XHJcbiAgLy8gICAgICAgICAgICAgaW1hZ2VGZXRjaGVzLnB1c2goaW1hZ2UkKTtcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgfSk7XHJcbiAgXHJcbiAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCA+IDApIHtcclxuICAvLyAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4gIC8vICAgICAgICAgICAgIG5leHQ6IChpbWFnZURhdGEpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGltYWdlRGF0YS5tYXAoaXRlbSA9PiAoe1xyXG4gIC8vICAgICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgLy8gICAgICAgICAgICAgICAgIGZpbGU6IG51bGwsXHJcbiAgLy8gICAgICAgICAgICAgICAgIG9yaWdpbmFsVXJsOiBpdGVtLm9yaWdpbmFsVXJsLFxyXG4gIC8vICAgICAgICAgICAgICAgICByZXN1bHQ6IGl0ZW0ucmVzdWx0XHJcbiAgLy8gICAgICAgICAgICAgICB9KSk7XHJcbiAgXHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgLy8gICAgICAgICAgICAgfSxcclxuICAvLyAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGZldGNoIGltYWdlcyBmb3IgJHt1cGxvYWRlcktleX06YCwgZXJyKTtcclxuICAvLyAgICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSk7XHJcbiAgLy8gfVxyXG4gIFxyXG5cclxuICAvLyBwdWJsaWMgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgLy8gICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIC8vICAgaWYgKGlucHV0LmZpbGVzKSB7XHJcbiAgLy8gICAgIGZvcihsZXQgaSA9IDA7IGkgPCBpbnB1dD8uZmlsZXM/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgLy8gICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzW2ldO1xyXG4gIC8vICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgLy8gICAgICAgcmVhZGVyLm9ubG9hZCA9IGUgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2goe1xyXG4gIC8vICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gIC8vICAgICAgICAgICByZXN1bHQ6IGUudGFyZ2V0Py5yZXN1bHQsXHJcbiAgLy8gICAgICAgICAgIG5hbWU6IGZpbGU/Lm5hbWUsXHJcbiAgLy8gICAgICAgICAgIGlkOiB1dWlkdjQoKVxyXG4gIC8vICAgICAgICAgfSlcclxuICAvLyAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy51cGxvYWRlZEZpbGVzKTtcclxuICAvLyAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudXBsb2FkRmlsZUNvbnRyb2wpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgLy8gICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIC8vICAgaWYgKGlucHV0LmZpbGVzKSB7XHJcbiAgLy8gICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQuZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXNbaV07XHJcbiAgLy8gICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgLy8gICAgICAgcmVhZGVyLm9ubG9hZCA9IGUgPT4ge1xyXG4gIC8vICAgICAgICAgY29uc3QgbmV3RmlsZSA9IHtcclxuICAvLyAgICAgICAgICAgaWQ6IHV1aWR2NCgpLFxyXG4gIC8vICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gIC8vICAgICAgICAgICBvcmlnaW5hbFVybDogbnVsbCxcclxuICAvLyAgICAgICAgICAgcmVzdWx0OiBlLnRhcmdldD8ucmVzdWx0LFxyXG4gIC8vICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXHJcbiAgLy8gICAgICAgICAgIHRpdGxlOiAnJyxcclxuICAvLyAgICAgICAgICAgbm90ZXM6ICcnLFxyXG4gIC8vICAgICAgICAgICBjYXRlZ29yeTogJycsXHJcbiAgLy8gICAgICAgICAgIHR5cGU6IHRoaXMuZGV0ZWN0RmlsZVR5cGUoZmlsZSksXHJcbiAgLy8gICAgICAgICB9O1xyXG5cclxuICAvLyAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKG5ld0ZpbGUpO1xyXG4gIC8vICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbiAgLy8gICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgLy8gICAgICAgfTtcclxuXHJcbiAgLy8gICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4vLyAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4vLyAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4vLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4vLyAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuLy8gICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuXHJcbi8vICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXNNYXA6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xyXG5cclxuICAgICBcclxuLy8gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xyXG4vLyAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3VwbG9hZGVyJykgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuLy8gICAgICAgICAgIHVwbG9hZGVkRmlsZXNNYXBba2V5XSA9IHZhbHVlO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG5cclxuLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXNNYXApKSB7XHJcbi8vICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdXJsc1xyXG4vLyAgICAgICAgICAgLmZpbHRlcigoZmlsZU9iajogYW55KSA9PiAhIWZpbGVPYmopIFxyXG4vLyAgICAgICAgICAgLm1hcCgoZmlsZU9iajogYW55KSA9PiB7XHJcbi8vICAgICAgICAgICAgIC8vIGNvbnN0IGZpbGVUeXBlID0gdGhpcy5kZXRlY3RGaWxlVHlwZUZyb21VcmwoZmlsZU9iaj8ub3JpZ2luYWxVcmwgfHwgZmlsZU9iaj8ubmFtZSk7XHJcblxyXG4vLyAgICAgICAgICAgICByZXR1cm4ge1xyXG4vLyAgICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcclxuLy8gICAgICAgICAgICAgICBmaWxlOiBudWxsLCAgICAgICAgICAgICAgICAgICAgICAgICBcclxuLy8gICAgICAgICAgICAgICBvcmlnaW5hbFVybDogZmlsZU9iai5vcmlnaW5hbFVybCwgICAgXHJcbi8vICAgICAgICAgICAgICAgcmVzdWx0OiBmaWxlT2JqPy50eXBlID09PSAnaW1hZ2UnID8gZmlsZU9iai5vcmlnaW5hbFVybC5wcmV2aWV3VXJsIDogbnVsbCxcclxuLy8gICAgICAgICAgICAgICBuYW1lOiBmaWxlT2JqPy5uYW1lIHx8ICcnLFxyXG4vLyAgICAgICAgICAgICAgIHRpdGxlOiBmaWxlT2JqPy50aXRsZSB8fCAnJyxcclxuLy8gICAgICAgICAgICAgICBub3RlczogZmlsZU9iaj8ubm90ZXMgfHwgJycsXHJcbi8vICAgICAgICAgICAgICAgY2F0ZWdvcnk6IGZpbGVPYmo/LmNhdGVnb3J5IHx8ICcnLFxyXG4vLyAgICAgICAgICAgICAgIHR5cGU6IGZpbGVPYmo/LnR5cGUsICAgICAgICAgICAgICAgIFxyXG4vLyAgICAgICAgICAgICB9O1xyXG4vLyAgICAgICAgICAgfSk7XHJcblxyXG4vLyAgICAgICAgIGlmIChmb3JtYXR0ZWQubGVuZ3RoID4gMCkge1xyXG4vLyAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4uZm9ybWF0dGVkXTtcclxuLy8gICAgICAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4vLyAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdHRlZERhdGEpO1xyXG4vLyAgICAgICAgIH1cclxuLy8gICAgICAgfVxyXG4vLyAgICAgfSk7XHJcbi8vIH1cclxuXHJcbm5nT25Jbml0KCk6IHZvaWQge1xyXG4gIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXNNYXA6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xyXG5cclxuICAgICAgXHJcbiAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcclxuICBpZiAoa2V5LmluY2x1ZGVzKCd1cGxvYWRlcicpICYmICh2YWx1ZSBhcyBhbnkpPy51cGxvYWRlZEZpbGVzKSB7XHJcbiAgICB1cGxvYWRlZEZpbGVzTWFwW2tleV0gPSAodmFsdWUgYXMgYW55KS51cGxvYWRlZEZpbGVzO1xyXG4gIH1cclxufVxyXG5cclxuICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIGZpbGVzXSBvZiBPYmplY3QuZW50cmllcyh1cGxvYWRlZEZpbGVzTWFwKSkge1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZpbGVzXHJcbiAgICAgICAgICAuZmlsdGVyKChmaWxlT2JqOiBhbnkpID0+ICEhZmlsZU9iailcclxuICAgICAgICAgIC5tYXAoKGZpbGVPYmo6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbFVybE9iaiA9IGZpbGVPYmoub3JpZ2luYWxVcmw7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gb3JpZ2luYWxVcmxPYmo/LmZpbGVOYW1lIHx8ICcnO1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlVXJsID0gb3JpZ2luYWxVcmxPYmo/LmZpbGVVcmwgfHwgJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXZpZXdVcmwgPSBvcmlnaW5hbFVybE9iaj8ucHJldmlld1VybDtcclxuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGZpbGVPYmo/LnR5cGU7XHJcblxyXG4gICAgICAgICAgICAvLyBkZXRlY3QgdHlwZSBiYXNlZCBvbiBmaWxlIGV4dGVuc2lvblxyXG4gICAgICAgICAgICAvLyBjb25zdCBmaWxlVHlwZSA9IHRoaXMuZGV0ZWN0RmlsZVR5cGVGcm9tVXJsKGZpbGVOYW1lIHx8IGZpbGVVcmwpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgICAgICAgICAgICAgZmlsZTogbnVsbCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RoaW5nIGxvY2FsXHJcbiAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IG9yaWdpbmFsVXJsT2JqLCAgICAgICAvLyBrZWVwIHdob2xlIG9iamVjdFxyXG4gICAgICAgICAgICAgIHJlc3VsdDogdHlwZSA9PT0gJ2ltYWdlJ1xyXG4gICAgICAgICAgICAgICAgPyAocHJldmlld1VybCkgICAgICAgIC8vIHByZWZlciBwcmV2aWV3VXJsLCBmYWxsYmFjayB0byBmaWxlVXJsXHJcbiAgICAgICAgICAgICAgICA6IG51bGwsXHJcbiAgICAgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgdGl0bGU6IGZpbGVPYmo/LnRpdGxlIHx8ICcnLFxyXG4gICAgICAgICAgICAgIG5vdGVzOiBmaWxlT2JqPy5ub3RlcyB8fCAnJyxcclxuICAgICAgICAgICAgICBjYXRlZ29yeUlkIDogZmlsZU9iaj8uY2F0ZWdvcnlJZCAgfHwgJycsXHJcbiAgICAgICAgICAgICAgdHlwZTogdHlwZSwgICAgICAgICAgICAgICAgICAgIC8vIGNvbXB1dGVkIHR5cGVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZm9ybWF0dGVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLmZvcm1hdHRlZF07XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdHRlZERhdGEudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcztcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG59XHJcblxyXG5cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgXHJcbiAgXHJcblxyXG4gIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgaWYgKCFpbnB1dC5maWxlcykgcmV0dXJuO1xyXG5cclxuICBBcnJheS5mcm9tKGlucHV0LmZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xyXG4gICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLmRldGVjdEZpbGVUeXBlKGZpbGUpO1xyXG5cclxuICAgIGNvbnN0IG5ld0ZpbGU6IGFueSA9IHtcclxuICAgICAgaWQ6IHV1aWR2NCgpLFxyXG4gICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICBvcmlnaW5hbFVybDogbnVsbCxcclxuICAgICAgcmVzdWx0OiBudWxsLCAgICAgXHJcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICBub3RlczogJycsXHJcbiAgICAgIGNhdGVnb3J5SWQgOiAnJyxcclxuICAgICAgdHlwZTogZmlsZVR5cGUsICAgXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChmaWxlVHlwZSA9PT0gJ2ltYWdlJykge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZSA9PiB7XHJcbiAgICAgICAgbmV3RmlsZS5yZXN1bHQgPSBlLnRhcmdldD8ucmVzdWx0O1xyXG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldEVycm9ycyh7IHJlcXVpcmVkTWV0YTogdHJ1ZSB9KTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnVwbG9hZEZpbGVDb250cm9sKVxyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsgLy8gb25seSBpbWFnZXMgbmVlZCBwcmV2aWV3XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBub24taW1hZ2Ug4oaSIHB1c2ggZGlyZWN0bHlcclxuICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2gobmV3RmlsZSk7XHJcbiAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0RXJyb3JzKHsgcmVxdWlyZWRNZXRhOiB0cnVlIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnVwbG9hZEZpbGVDb250cm9sKVxyXG4gICAgfVxyXG4gIH0pO1xyXG4gIGlucHV0LnZhbHVlID0gJyc7XHJcbn1cclxuXHJcblxyXG4gIC8vIG9uTWV0YUNoYW5nZSgpIHtcclxuICAvLyAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gIC8vICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdHRlZERhdGEpO1xyXG4gIC8vIH1cclxuXHJcbm9uTWV0YUNoYW5nZSgpIHtcclxuICB0aGlzLmZvcm1hdHRlZERhdGEudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcztcclxuICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcblxyXG4gIC8vIOKdjCBJbnZhbGlkIGlmIGFueSBmaWxlIGlzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzXHJcbiAgY29uc3QgYWxsVmFsaWQgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZXZlcnkoXHJcbiAgICBmID0+IGYudGl0bGU/LnRyaW0oKSAmJiBmLm5vdGVzPy50cmltKCkgJiYgZi5jYXRlZ29yeUlkPy50b1N0cmluZygpLnRyaW0oKVxyXG4gICk7XHJcblxyXG4gIGlmICghYWxsVmFsaWQpIHtcclxuICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0RXJyb3JzKHsgcmVxdWlyZWRNZXRhOiB0cnVlIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuICAvLyBwdWJsaWMgZGVsZXRlRmlsZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgLy8gICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKGZpbGUgPT4gZmlsZT8uaWQgIT09IGlkKTtcclxuICAvLyB9XHJcblxyXG4gIC8vIGRlbGV0ZUZpbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gIC8vICAgY29uc3QgW2RlbGV0ZWRGaWxlXSA9IHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIFxyXG4gIC8vICAgaWYgKGRlbGV0ZWRGaWxlKSB7XHJcbiAgLy8gICAgIHRoaXMuZGVsZXRlZEZpbGVzLnB1c2goZGVsZXRlZEZpbGUpO1xyXG4gIC8vICAgICB0aGlzLmZvcm1hdHRlZERhdGEgPSB7XHJcbiAgLy8gICAgICAgLi4udGhpcy5mb3JtYXR0ZWREYXRhLFxyXG4gIC8vICAgICAgIHVwbG9hZGVkRmlsZXM6IFsuLi50aGlzLnVwbG9hZGVkRmlsZXNdLFxyXG4gIC8vICAgICAgIGRlbGV0ZWRGaWxlczogWy4uLnRoaXMuZGVsZXRlZEZpbGVzXVxyXG4gIC8vICAgICB9O1xyXG4gIC8vICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICBkZWxldGVGaWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlbGV0ZWRGaWxlID0gdGhpcy51cGxvYWRlZEZpbGVzPy5baW5kZXhdO1xyXG4gICAgaWYgKCFkZWxldGVkRmlsZSkgcmV0dXJuO1xyXG4gIFxyXG4gICAgLy8gRW5zdXJlIGZvcm1hdHRlZERhdGEgZXhpc3RzIGFuZCBpbml0aWFsaXplIGlmIHVuZGVmaW5lZFxyXG4gICAgdGhpcy5mb3JtYXR0ZWREYXRhID0gdGhpcy5mb3JtYXR0ZWREYXRhIHx8IHsgdXBsb2FkZWRGaWxlczogW10sIGRlbGV0ZWRGaWxlczogW10gfTtcclxuICBcclxuICAgIC8vIEFkZCB0aGUgZGVsZXRlZCBmaWxlIHRvIHRoZSBkZWxldGVkRmlsZXMgYXJyYXlcclxuICAgIHRoaXMuZGVsZXRlZEZpbGVzID0gWy4uLnRoaXMuZGVsZXRlZEZpbGVzLCBkZWxldGVkRmlsZV07XHJcbiAgXHJcbiAgICAvLyBSZW1vdmUgdGhlIGZpbGUgZnJvbSB1cGxvYWRlZEZpbGVzIHVzaW5nIGZpbHRlciBmb3IgaW1tdXRhYmlsaXR5XHJcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCk7XHJcbiAgXHJcbiAgICAvLyBVcGRhdGUgZm9ybWF0dGVkRGF0YVxyXG4gICAgdGhpcy5mb3JtYXR0ZWREYXRhID0ge1xyXG4gICAgICAuLi50aGlzLmZvcm1hdHRlZERhdGEsXHJcbiAgICAgIHVwbG9hZGVkRmlsZXM6IHRoaXMudXBsb2FkZWRGaWxlcyxcclxuICAgICAgZGVsZXRlZEZpbGVzOiB0aGlzLmRlbGV0ZWRGaWxlc1xyXG4gICAgfTtcclxuICBcclxuICAgIC8vIFNldCB0aGUgdmFsdWUgb2YgdGhlIHVwbG9hZEZpbGVDb250cm9sXHJcbiAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG5cclxuICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3VwbG9hZC10ZXh0JywgJHRpdGxlOiAnVXBsb2FkIFRleHQnLCB2YWx1ZTogJ1VwbG9hZCBGaWxlJ30pLFxyXG4gICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdtdWx0aXBsZS11cGxvYWQnLCAkdGl0bGU6ICdNdWx0aXBsZSBVcGxvYWRzJywgdmFsdWU6IGZhbHNlfSwgW3tvcHRpb246ICdFbmFibGUnLCB2YWx1ZTogdHJ1ZX0sIHtvcHRpb246ICdEaXNhYmxlJywgdmFsdWU6IGZhbHNlfV0pLFxyXG4gICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWF4RmlsZU5vJywgJHRpdGxlOiAnTWF4aW11bSBGaWxlIFVwbG9hZCBBbGxvd2VkJywgdmFsdWU6OH0pLFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICByZXR1cm4gW0Z4VmFsaWRhdG9yU2VydmljZS5yZXF1aXJlZF07XHJcbiAgfVxyXG5cclxuZGV0ZWN0RmlsZVR5cGUoZmlsZTogRmlsZSk6ICdpbWFnZScgfCAnY3N2JyB8ICd0ZXh0JyB8ICdwZGYnIHwgJ2V4Y2VsJyB8ICd3b3JkJyB8ICdvdGhlcicge1xyXG4gIGNvbnN0IG1pbWUgPSAoZmlsZS50eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gIGNvbnN0IG5hbWUgPSAoZmlsZS5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAvLyBJbWFnZXNcclxuICBpZiAobWltZS5zdGFydHNXaXRoKCdpbWFnZS8nKSB8fCAvXFwuKHBuZ3xqcGU/Z3xnaWZ8d2VicHxibXB8c3ZnKSQvaS50ZXN0KG5hbWUpKSB7XHJcbiAgICByZXR1cm4gJ2ltYWdlJztcclxuICB9XHJcblxyXG4gIC8vIENTVlxyXG4gIGlmIChtaW1lID09PSAndGV4dC9jc3YnIHx8IG5hbWUuZW5kc1dpdGgoJy5jc3YnKSkge1xyXG4gICAgcmV0dXJuICdjc3YnO1xyXG4gIH1cclxuXHJcbiAgLy8gVGV4dCBmaWxlc1xyXG4gIGlmIChtaW1lID09PSAndGV4dC9wbGFpbicgfHwgbmFtZS5lbmRzV2l0aCgnLnR4dCcpKSB7XHJcbiAgICByZXR1cm4gJ3RleHQnO1xyXG4gIH1cclxuXHJcbiAgLy8gUERGXHJcbiAgaWYgKG1pbWUgPT09ICdhcHBsaWNhdGlvbi9wZGYnIHx8IG5hbWUuZW5kc1dpdGgoJy5wZGYnKSkge1xyXG4gICAgcmV0dXJuICdwZGYnO1xyXG4gIH1cclxuXHJcbiAgLy8gRXhjZWxcclxuICBpZiAoXHJcbiAgICBtaW1lID09PSAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyB8fFxyXG4gICAgbWltZSA9PT0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyB8fFxyXG4gICAgL1xcLih4bHN8eGxzeCkkL2kudGVzdChuYW1lKVxyXG4gICkge1xyXG4gICAgcmV0dXJuICdleGNlbCc7XHJcbiAgfVxyXG5cclxuICAvLyBXb3JkXHJcbiAgaWYgKFxyXG4gICAgbWltZSA9PT0gJ2FwcGxpY2F0aW9uL21zd29yZCcgfHxcclxuICAgIG1pbWUgPT09ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcgfHxcclxuICAgIC9cXC4oZG9jfGRvY3gpJC9pLnRlc3QobmFtZSlcclxuICApIHtcclxuICAgIHJldHVybiAnd29yZCc7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gJ290aGVyJztcclxufVxyXG5cclxuLy8gb3BlbkZpbGVEaWFsb2coZmlsZUlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbi8vICAgLy8gcmVzZXQgdGhlIHZhbHVlIHNvIGNoYW5nZSBhbHdheXMgdHJpZ2dlcnNcclxuLy8gICBmaWxlSW5wdXQudmFsdWUgPSAnJztcclxuLy8gICBmaWxlSW5wdXQuY2xpY2soKTtcclxuLy8gfVxyXG5cclxub3BlbkZpbGVEaWFsb2coKSB7XHJcbiAgLy8gaWYgKHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiB0aGlzLnNldHRpbmcoJ21heEZpbGVObycpKSB7XHJcbiAgLy8gICAgIC8vIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAvLyAgICAgLy8gICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG4gIC8vICAgICAvLyAgIHN1bW1hcnk6ICdTdWNjZXNzJyxcclxuICAvLyAgICAgLy8gICBkZXRhaWw6IGBNYXhpbXVtXCIke3RoaXMuc2V0dGluZygnbWF4RmlsZU5vJyl9XCIgY2FuIGJlIHVwbG9hZGVkYCxcclxuICAvLyAgICAgLy8gICBsaWZlOiAzMDAwXHJcbiAgLy8gICAgIC8vIH0pO1xyXG4gIC8vICAgcmV0dXJuO1xyXG4gIC8vIH1cclxuICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG59XHJcblxyXG5vbkJhc2ljVXBsb2FkQXV0byhldmVudDogVXBsb2FkRXZlbnQpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VEaWFsb2coKXtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZUltYWdlVXJsID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbWFnZVNlbGVjdCh1cmw6c3RyaW5nKXtcclxuICAgICB0aGlzLnNlbGVjdGVJbWFnZVVybCA9dXJsO1xyXG4gICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIj5cclxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tLXVwbG9hZCBmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyIHAtMCByb3VuZGVkLXNtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtOCBpdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICA8IS0tIDxwIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGRcIj5QYXRpZW50IEltYWdlczwvcD4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBnYXAtMSB1cGxvYWRcIiAqbmdJZj1cInVwbG9hZGVkRmlsZXMubGVuZ3RoIDwgc2V0dGluZygnbWF4RmlsZU5vJylcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgdmlld0JveD1cIjAgMCAyOSAyOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICBkPVwiTTE0LjAwMSAzLjAwMTk1QzExLjUzMjIgMy4wMDE5NSA5LjE2NzIyIDMuODY5NTYgNy4yMzY0MSA1LjM4NDE0TDcuMjM1OTggNC41OTY5NUM3LjIzNTk4IDQuNTI0NzMgNy4yMjE3NSA0LjQ1MzIxIDcuMTk0MTEgNC4zODY0OEM3LjE2NjQ3IDQuMzE5NzUgNy4xMjU5NiA0LjI1OTEyIDcuMDc0ODkgNC4yMDgwNEM3LjAyMzgxIDQuMTU2OTcgNi45NjMxOCA0LjExNjQ2IDYuODk2NDUgNC4wODg4MkM2LjgyOTcyIDQuMDYxMTggNi43NTgyIDQuMDQ2OTUgNi42ODU5OCA0LjA0Njk1QzYuNjEzNzUgNC4wNDY5NSA2LjU0MjIzIDQuMDYxMTggNi40NzU1IDQuMDg4ODJDNi40MDg3NyA0LjExNjQ2IDYuMzQ4MTQgNC4xNTY5NyA2LjI5NzA3IDQuMjA4MDRDNi4yNDU5OSA0LjI1OTEyIDYuMjA1NDggNC4zMTk3NSA2LjE3Nzg0IDQuMzg2NDhDNi4xNTAyIDQuNDUzMjEgNi4xMzU5OCA0LjUyNDczIDYuMTM1OTggNC41OTY5NUw2LjEzNjQyIDYuNjg2NTJDNi4xMzY0MyA2LjgzMjM5IDYuMTk0MzggNi45NzIyOCA2LjI5NzUyIDcuMDc1NDJDNi40MDA2NyA3LjE3ODU2IDYuNTQwNTUgNy4yMzY1MSA2LjY4NjQyIDcuMjM2NTJIOC43NzU5OEM4Ljg0ODIgNy4yMzY1MiA4LjkxOTcyIDcuMjIyMyA4Ljk4NjQ1IDcuMTk0NjZDOS4wNTMxOCA3LjE2NzAyIDkuMTEzODEgNy4xMjY1MSA5LjE2NDg5IDcuMDc1NDNDOS4yMTU5NiA3LjAyNDM2IDkuMjU2NDcgNi45NjM3MyA5LjI4NDExIDYuODk3QzkuMzExNzUgNi44MzAyNyA5LjMyNTk4IDYuNzU4NzUgOS4zMjU5OCA2LjY4NjUyQzkuMzI1OTggNi42MTQzIDkuMzExNzUgNi41NDI3OCA5LjI4NDExIDYuNDc2MDVDOS4yNTY0NyA2LjQwOTMyIDkuMjE1OTYgNi4zNDg2OSA5LjE2NDg5IDYuMjk3NjFDOS4xMTM4MSA2LjI0NjU0IDkuMDUzMTggNi4yMDYwMyA4Ljk4NjQ1IDYuMTc4MzlDOC45MTk3MiA2LjE1MDc1IDguODQ4MiA2LjEzNjUyIDguNzc1OTggNi4xMzY1Mkg4LjA1ODRDOS43NzAyIDQuODQzODcgMTEuODM5OSA0LjEwMTk1IDE0LjAwMSA0LjEwMTk1QzE5LjQ3NTEgNC4xMDE5NSAyMy45MDEgOC41Mjc4MiAyMy45MDEgMTQuMDAyQzIzLjkwMSAxOS40NzYxIDE5LjQ3NTEgMjMuOTAyIDE0LjAwMSAyMy45MDJDOC41MjY4NCAyMy45MDIgNC4xMDA5OCAxOS40NzYxIDQuMTAwOTggMTQuMDAyQzQuMTAwOTggMTIuNjM4MSA0LjM4MjYzIDExLjI4ODggNC45Mjg1NSAxMC4wMzg5QzQuOTg2OTEgOS45MDUzMiA0Ljk4OTgyIDkuNzUzOTkgNC45MzY2NSA5LjYxODIyQzQuODgzNDcgOS40ODI0NiA0Ljc3ODU1IDkuMzczMzYgNC42NDQ5NiA5LjMxNDkyQzQuNTc4NzcgOS4yODU5NiA0LjUwNzUzIDkuMjcwMzIgNC40MzUzIDkuMjY4OUM0LjM2MzA2IDkuMjY3NDcgNC4yOTEyNiA5LjI4MDMgNC4yMjM5OCA5LjMwNjYzQzQuMTU2NzEgOS4zMzI5NyA0LjA5NTI4IDkuMzcyMyA0LjA0MzIxIDkuNDIyMzhDMy45OTExNCA5LjQ3MjQ3IDMuOTQ5NDQgOS41MzIzMiAzLjkyMDUxIDkuNTk4NTJDMy4zMTM5MyAxMC45ODcyIDMuMDAwOTggMTIuNDg2NiAzLjAwMDk4IDE0LjAwMkMzLjAwMDk4IDIwLjA3MDYgNy45MzIzNiAyNS4wMDIgMTQuMDAxIDI1LjAwMkMyMC4wNjk2IDI1LjAwMiAyNS4wMDEgMjAuMDcwNiAyNS4wMDEgMTQuMDAyQzI1LjAwMSA3LjkzMzM0IDIwLjA2OTYgMy4wMDE5NSAxNC4wMDEgMy4wMDE5NVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgIGQ9XCJNMTMuOTk4OCA2LjEzOTY1QzkuNjYxNiA2LjEzOTY1IDYuMTMzNzkgOS42Njc0NiA2LjEzMzc5IDE0LjAwNDZDNi4xMzM3OSAxOC4zNDE4IDkuNjYxNiAyMS44Njk2IDEzLjk5ODggMjEuODY5NkMxOC4zMzYgMjEuODY5NiAyMS44NjM4IDE4LjM0MTggMjEuODYzOCAxNC4wMDQ2QzIxLjg2MzggOS42Njc0NiAxOC4zMzYgNi4xMzk2NSAxMy45OTg4IDYuMTM5NjVaTTEzLjk5ODggOC4yMjk2NUMxNC4xNDQ3IDguMjI5NjUgMTQuMjg0NiA4LjI4NzU5IDE0LjM4NzcgOC4zOTA3NEMxNC40OTA4IDguNDkzODggMTQuNTQ4OCA4LjYzMzc4IDE0LjU0ODggOC43Nzk2NVYxMy43NzY5TDE3LjUyMjcgMTYuNzUwOEMxNy42MjU4IDE2Ljg1MzkgMTcuNjgzNyAxNi45OTM4IDE3LjY4MzcgMTcuMTM5NkMxNy42ODM3IDE3LjI4NTUgMTcuNjI1OCAxNy40MjU0IDE3LjUyMjcgMTcuNTI4NUMxNy40MTk1IDE3LjYzMTYgMTcuMjc5NiAxNy42ODk2IDE3LjEzMzggMTcuNjg5NkMxNi45ODc5IDE3LjY4OTYgMTYuODQ4MSAxNy42MzE2IDE2Ljc0NDkgMTcuNTI4NUwxMy42MDk5IDE0LjM5MzVDMTMuNTA2OCAxNC4yOTA0IDEzLjQ0ODggMTQuMTUwNSAxMy40NDg4IDE0LjAwNDZWOC43Nzk2NUMxMy40NDg4IDguNjMzNzggMTMuNTA2NyA4LjQ5Mzg4IDEzLjYwOTkgOC4zOTA3NEMxMy43MTMgOC4yODc1OSAxMy44NTI5IDguMjI5NjUgMTMuOTk4OCA4LjIyOTY1WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI4LjU2XCIgaGVpZ2h0PVwiMjhcIiByeD1cIjEuNTE0NzlcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xNS4wNjggMjIuNzM5MVYxNy42NzA4SDE4LjQ5NjhMMTQuMjEwOCAxMi42MDI1TDkuOTI0OCAxNy42NzA4SDEzLjM1MzZWMjIuNzM5MUg5LjA2NzU5VjIyLjY5NjlDOC45MjM1OCAyMi43MDUzIDguNzg2NDMgMjIuNzM5MSA4LjYzODk5IDIyLjczOTFDNi45MzM5MSAyMi43MzkxIDUuMjk4NjYgMjIuMDcxNyA0LjA5Mjk4IDIwLjg4MzVDMi44ODczIDE5LjY5NTQgMi4yMDk5NiAxOC4wODQgMi4yMDk5NiAxNi40MDM3QzIuMjA5OTYgMTMuMTUzMiA0LjcwNDQzIDEwLjUwNDIgNy45MDUyMyAxMC4xNDFDOC4xODU4NSA4LjY5NTMgOC45Njg5MiA3LjM5MTE4IDEwLjExOTcgNi40NTI5MkMxMS4yNzA2IDUuNTE0NjUgMTIuNzE3MiA1LjAwMDg5IDE0LjIxMDggNUMxNS43MDQ3IDUuMDAwODIgMTcuMTUxNSA1LjUxNDUyIDE4LjMwMjYgNi40NTI3N0MxOS40NTM3IDcuMzkxMDEgMjAuMjM3MSA4LjY5NTE2IDIwLjUxODEgMTAuMTQxQzIzLjcxODkgMTAuNTA0MiAyNi4yMSAxMy4xNTMyIDI2LjIxIDE2LjQwMzdDMjYuMjEgMTguMDg0IDI1LjUzMjYgMTkuNjk1NCAyNC4zMjY5IDIwLjg4MzVDMjMuMTIxMyAyMi4wNzE3IDIxLjQ4NiAyMi43MzkxIDE5Ljc4MDkgMjIuNzM5MUMxOS42MzY5IDIyLjczOTEgMTkuNDk4MSAyMi43MDUzIDE5LjM1MjMgMjIuNjk2OVYyMi43MzkxSDE1LjA2OFpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YSB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5GaWxlRGlhbG9nKClcIiBjbGFzcz1cInVwbG9hZF90aXRsZSBjdXJzb3ItcG9pbnRlciBcIj5cclxuICAgICAgICAgIHt7IHNldHRpbmcoJ3VwbG9hZC10ZXh0JykgfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgW211bHRpcGxlXT1cInNldHRpbmcoJ211bHRpcGxlLXVwbG9hZCcpXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgYWNjZXB0PVwiLmNzdiwucGRmLC54bHMsLnhsc3gsLmRvYywuZG9jeCwudHh0LGltYWdlLypcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgLz5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0IGZsZXggaXRlbXMtY2VudGVyIGdhcC00IGZsZXgtd3JhcCB3LWZ1bGxcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwbG9hZGVkRmlsZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2FkZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIHAtMyBib3JkZXIgcm91bmRlZC1sZyBzaGFkb3ctc20gYmctd2hpdGUgdy1bNDUwcHhdIHVwbG9hZF9maWxlXCI+XHJcblxyXG4gICAgICAgICAgPCEtLSBDbG9zZSBpY29uIC0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlX2ljb24gY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUgdG9wLTIgcmlnaHQtMlwiIChjbGljayk9XCJkZWxldGVGaWxlKGkpXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyMiAyMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHJ4PVwiMTFcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNNy4wODkxMSAxNS44ODg5TDYuMTExMzMgMTQuOTExMUwxMC4wMjI0IDExTDYuMTExMzMgNy4wODg4Nkw3LjA4OTExIDYuMTExMDhMMTEuMDAwMiAxMC4wMjIyTDE0LjkxMTMgNi4xMTEwOEwxNS44ODkxIDcuMDg4ODZMMTEuOTc4IDExTDE1Ljg4OTEgMTQuOTExMUwxNC45MTEzIDE1Ljg4ODlMMTEuMDAwMiAxMS45Nzc4TDcuMDg5MTEgMTUuODg4OVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGh1bWJuYWlsX3RpdGxlIGZsZXhcIj5cclxuICAgICAgICAgICAgPCEtLSBUaHVtYm5haWwgb24gbGVmdCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRodW1ibmFpbFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWxlLnR5cGUgPT09ICdpbWFnZSc7IGVsc2Ugbm9uSW1hZ2VUaHVtYlwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImZpbGUtdGh1bWJuYWlsXCIgW3NyY109XCJmaWxlPy5yZXN1bHRcIiBhbHQ9XCJwcmV2aWV3XCIgKGNsaWNrKT1cIm9uSW1hZ2VTZWxlY3QoZmlsZT8ucmVzdWx0KVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZT8ucmVzdWx0XCIgLz5cclxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhZmlsZT8ucmVzdWx0XCIgd2lkdGg9XCIxODBweFwiIGhlaWdodD1cIjE4MHB4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNzAxMyAxM0gzLjMxMjdDMi41ODUwMSAxMyAyIDEyLjQwNDggMiAxMS42NjQ1VjQuMzM1NDhDMiAzLjU5NTE2IDIuNTg1MDEgMyAzLjMxMjcgM0gxMi42ODcxQzEzLjQxNDcgMyAxMy45OTk4IDMuNTk1MTYgMTMuOTk5OCA0LjMzNTQ4VjExLjY2NDVDMTQuMDE0IDEyLjQwNDggMTMuNDE0NyAxMyAxMi43MDEzIDEzWk05LjI0ODM2IDcuOTA0ODRMNy4zOTM0NyAxMC4wNjc3QzcuMjc5MzIgMTAuMjEyOSA3LjA1MTAyIDEwLjIxMjkgNi45MzY4OCAxMC4wODIzTDUuOTM4MDkgOC45OTM1NUM1LjgwOTY3IDguODYyOSA1LjYwOTkxIDguODYyOSA1LjQ4MTUgOC45OTM1NUwzLjc2OTI5IDEwLjg2NjFDMy41ODM4IDExLjA2OTQgMy43MjY0OCAxMS40MDMyIDMuOTk3NTggMTEuNDAzMkg2LjI2NjI2SDguMTM1NDNIMTIuMDE2NEMxMi4yODc1IDExLjQwMzIgMTIuNDMwMiAxMS4wODM5IDEyLjI0NDcgMTAuODgwNkw5LjcxOTIyIDcuOTA0ODRDOS41OTA4MSA3Ljc1OTY4IDkuMzc2NzggNy43NTk2OCA5LjI0ODM2IDcuOTA0ODRaTTYuNzM3MTIgNS45ODg3MUM2LjI1MTk5IDUuOTg4NzEgNS44NTI0OCA2LjM5NTE2IDUuODUyNDggNi44ODg3MUM1Ljg1MjQ4IDcuMzgyMjYgNi4yNTE5OSA3Ljc4ODcxIDYuNzM3MTIgNy43ODg3MUM3LjIyMjI1IDcuNzg4NzEgNy42MjE3NiA3LjM4MjI2IDcuNjIxNzYgNi44ODg3MUM3LjYyMTc2IDYuMzk1MTYgNy4yMjIyNSA1Ljk4ODcxIDYuNzM3MTIgNS45ODg3MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjOTk5OTk5XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub25JbWFnZVRodW1iPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtdGh1bWJuYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbGUudHlwZVwiPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nU3dpdGNoQ2FzZT1cIidjc3YnXCIgd2lkdGg9XCIxODBweFwiIGhlaWdodD1cIjE4MHB4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuMTc1NyAxLjE3NTc0QzExLjA2MzIgMS4wNjMyMSAxMC45MTA2IDEgMTAuNzUxNSAxSDMuNkMzLjI2ODYzIDEgMyAxLjI2ODYzIDMgMS42VjE0LjRDMyAxNC43MzE0IDMuMjY4NjMgMTUgMy42IDE1SDEzLjRDMTMuNzMxNCAxNSAxNCAxNC43MzE0IDE0IDE0LjRWNC4yNDg1M0MxNCA0LjA4OTQgMTMuOTM2OCAzLjkzNjc5IDEzLjgyNDMgMy44MjQyNkwxMS4xNzU3IDEuMTc1NzRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGNEY0RjRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNSAxMi43QzE1IDEyLjg2NTcgMTQuODY1NyAxMyAxNC43IDEzSDIuM0MyLjEzNDMxIDEzIDIgMTIuODY1NyAyIDEyLjdWOS4zQzIgOS4xMzQzMSAyLjEzNDMxIDkgMi4zIDlIMTQuN0MxNC44NjU3IDkgMTUgOS4xMzQzMSAxNSA5LjNWMTIuN1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzIzQTc2MVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExIDFMMTIuNSAyLjVMMTQgNEgxMS4yQzExLjA4OTUgNCAxMSAzLjkxMDQ2IDExIDMuOFYxWlwiIGZpbGw9XCIjRDlEOUQ5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi45NDA3NiAxMC4zNDMzQzYuODU5MzkgMTAuMzQzMyA2Ljc4NzE2IDEwLjM1ODggNi43MjQwOCAxMC4zODk5QzYuNjYxOTEgMTAuNDIgNi42MDkzNCAxMC40NjQgNi41NjYzNyAxMC41MjE2QzYuNTI0MzIgMTAuNTc5MyA2LjQ5MjMyIDEwLjY0ODkgNi40NzAzOCAxMC43MzA1QzYuNDQ4NDQgMTAuODEyMiA2LjQzNzQ3IDEwLjkwNCA2LjQzNzQ3IDExLjAwNkM2LjQzNzQ3IDExLjE0MzUgNi40NTQ4NCAxMS4yNjEgNi40ODk1OCAxMS4zNTg2QzYuNTI1MjMgMTEuNDU1MyA2LjU4MDA5IDExLjUyOTQgNi42NTQxNCAxMS41ODA4QzYuNzI4MiAxMS42MzE0IDYuODIzNzMgMTEuNjU2NyA2Ljk0MDc2IDExLjY1NjdDNy4wMjIxMiAxMS42NTY3IDcuMTAzNDkgMTEuNjQ3OCA3LjE4NDg2IDExLjYzMDFDNy4yNjcxNCAxMS42MTIzIDcuMzU2MjggMTEuNTg3IDcuNDUyMjggMTEuNTU0MlYxMS45MDAyQzcuMzYzNTkgMTEuOTM1NyA3LjI3NjI4IDExLjk2MSA3LjE5MDM1IDExLjk3NkM3LjEwNDQxIDExLjk5MiA3LjAwNzk1IDEyIDYuOTAwOTkgMTJDNi42OTQzNyAxMiA2LjUyNDMyIDExLjk1ODcgNi4zOTA4NCAxMS44NzYyQzYuMjU4MjcgMTEuNzkyOSA2LjE1OTk5IDExLjY3NjYgNi4wOTYgMTEuNTI3NkM2LjAzMiAxMS4zNzc3IDYgMTEuMjAyOSA2IDExLjAwMzNDNiAxMC44NTYxIDYuMDIwNTcgMTAuNzIxMiA2LjA2MTcxIDEwLjU5ODhDNi4xMDI4NSAxMC40NzY0IDYuMTYzMTkgMTAuMzcwNCA2LjI0MjczIDEwLjI4MDhDNi4zMjIyNyAxMC4xOTEyIDYuNDIwNTUgMTAuMTIyIDYuNTM3NTggMTAuMDczMkM2LjY1NDYgMTAuMDI0NCA2Ljc4ODk5IDEwIDYuOTQwNzYgMTBDNy4wNDA0MSAxMCA3LjE0MDA2IDEwLjAxMjQgNy4yMzk3MSAxMC4wMzczQzcuMzQwMjggMTAuMDYxMiA3LjQzNjI4IDEwLjA5NDUgNy41Mjc3IDEwLjEzNzFMNy4zOTA1NyAxMC40NzI0QzcuMzE1NiAxMC40Mzc4IDcuMjQwMTcgMTAuNDA3NiA3LjE2NDI5IDEwLjM4MTlDNy4wODg0MSAxMC4zNTYyIDcuMDEzOSAxMC4zNDMzIDYuOTQwNzYgMTAuMzQzM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05LjA2MzYzIDExLjQzMzFDOS4wNjM2MyAxMS41NDg1IDkuMDM0ODMgMTEuNjQ4NyA4Ljk3NzI0IDExLjczMzlDOC45MTk2NCAxMS44MTkgOC44MzU1MyAxMS44ODQ3IDguNzI0OSAxMS45MzA4QzguNjE1MTkgMTEuOTc2OSA4LjQ4MTcyIDEyIDguMzI0NDcgMTJDOC4yNTQ5OCAxMiA4LjE4Njg3IDExLjk5NTYgOC4xMjAxMyAxMS45ODY3QzguMDU0MzEgMTEuOTc3OCA3Ljk5MDc3IDExLjk2NSA3LjkyOTUxIDExLjk0ODFDNy44NjkxNyAxMS45MzA0IDcuODExNTcgMTEuOTA4NiA3Ljc1NjcyIDExLjg4MjlWMTEuNDk5N0M3Ljg1MTggMTEuNTQwNSA3Ljk1MDU0IDExLjU3NzMgOC4wNTI5MyAxMS42MTAxQzguMTU1MzMgMTEuNjQyOSA4LjI1NjgxIDExLjY1OTMgOC4zNTczOCAxMS42NTkzQzguNDI2ODYgMTEuNjU5MyA4LjQ4MjYzIDExLjY1MDUgOC41MjQ2OCAxMS42MzI3QzguNTY3NjUgMTEuNjE1IDguNTk4NzQgMTEuNTkwNiA4LjYxNzk0IDExLjU1OTVDOC42MzcxNCAxMS41Mjg1IDguNjQ2NzQgMTEuNDkzIDguNjQ2NzQgMTEuNDUzMUM4LjY0Njc0IDExLjQwNDMgOC42Mjk4MiAxMS4zNjI2IDguNTk2IDExLjMyOEM4LjU2MjE3IDExLjI5MzQgOC41MTU1NCAxMS4yNjEgOC40NTYxMiAxMS4yMzA5QzguMzk3NiAxMS4yMDA3IDguMzMxMzIgMTEuMTY4MyA4LjI1NzI3IDExLjEzMzdDOC4yMTA2NCAxMS4xMTI0IDguMTU5OSAxMS4wODY3IDguMTA1MDUgMTEuMDU2NkM4LjA1MDE5IDExLjAyNTUgNy45OTgwOCAxMC45ODc4IDcuOTQ4NzEgMTAuOTQzNEM3Ljg5OTM0IDEwLjg5OTEgNy44NTg2NiAxMC44NDU0IDcuODI2NjYgMTAuNzgyNEM3Ljc5NTU4IDEwLjcxODYgNy43ODAwMyAxMC42NDIzIDcuNzgwMDMgMTAuNTUzNkM3Ljc4MDAzIDEwLjQzNzMgNy44MDc0NiAxMC4zMzggNy44NjIzMSAxMC4yNTU1QzcuOTE3MTcgMTAuMTczIDcuOTk1MzQgMTAuMTEgOC4wOTY4MiAxMC4wNjY1QzguMTk5MjEgMTAuMDIyMiA4LjMxOTg5IDEwIDguNDU4ODYgMTBDOC41NjMwOCAxMCA4LjY2MjI4IDEwLjAxMiA4Ljc1NjQ1IDEwLjAzNTlDOC44NTE1MyAxMC4wNTkgOC45NTA3MiAxMC4wOTI3IDkuMDU0MDMgMTAuMTM3MUw4LjkxNjkgMTAuNDU3OEM4LjgyNDU2IDEwLjQyMTQgOC43NDE4MiAxMC4zOTM0IDguNjY4NjggMTAuMzczOUM4LjU5NTU0IDEwLjM1MzUgOC41MjEwMyAxMC4zNDMzIDguNDQ1MTUgMTAuMzQzM0M4LjM5MjEyIDEwLjM0MzMgOC4zNDY4NiAxMC4zNTE3IDguMzA5MzggMTAuMzY4NkM4LjI3MTkgMTAuMzg0NiA4LjI0MzU1IDEwLjQwNzYgOC4yMjQzNiAxMC40Mzc4QzguMjA1MTYgMTAuNDY3MSA4LjE5NTU2IDEwLjUwMTIgOC4xOTU1NiAxMC41NDAzQzguMTk1NTYgMTAuNTg2NCA4LjIwOTI3IDEwLjYyNTQgOC4yMzY3IDEwLjY1NzRDOC4yNjUwNCAxMC42ODg0IDguMzA3MDkgMTAuNzE4NiA4LjM2Mjg2IDEwLjc0NzhDOC40MTk1NSAxMC43NzcxIDguNDg5OTQgMTAuODExMyA4LjU3NDA1IDEwLjg1MDNDOC42NzY0NSAxMC44OTczIDguNzYzNzYgMTAuOTQ2NiA4LjgzNTk4IDEwLjk5OEM4LjkwOTEyIDExLjA0ODYgOC45NjUzNSAxMS4xMDg0IDkuMDA0NjYgMTEuMTc3NkM5LjA0Mzk4IDExLjI0NiA5LjA2MzYzIDExLjMzMTEgOS4wNjM2MyAxMS40MzMxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDEwLjAyNzlMMTAuMzE4NCAxMS45NzM0SDkuODU0OTFMOS4xNzQ3MSAxMC4wMjc5SDkuNjAzOTVMOS45ODEwOCAxMS4xODU2QzkuOTg3NDggMTEuMjA1MSA5Ljk5Nzk5IDExLjI0MiAxMC4wMTI2IDExLjI5NjFDMTAuMDI3MiAxMS4zNDkzIDEwLjA0MTkgMTEuNDA2MSAxMC4wNTY1IDExLjQ2NjRDMTAuMDcyIDExLjUyNTggMTAuMDgyNiAxMS41NzUxIDEwLjA4OCAxMS42MTQxQzEwLjA5MzUgMTEuNTc1MSAxMC4xMDMxIDExLjUyNTggMTAuMTE2OCAxMS40NjY0QzEwLjEzMTUgMTEuNDA3IDEwLjE0NTYgMTEuMzUwNiAxMC4xNTk0IDExLjI5NzRDMTAuMTc0IDExLjI0MzMgMTAuMTg0NSAxMS4yMDYgMTAuMTkwOSAxMS4xODU2TDEwLjU3MDggMTAuMDI3OUgxMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjVcIiB5PVwiN1wiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjFcIiByeD1cIjAuMlwiIGZpbGw9XCIjQ0NDQ0NDXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI1XCIgeT1cIjVcIiB3aWR0aD1cIjNcIiBoZWlnaHQ9XCIxXCIgcng9XCIwLjJcIiBmaWxsPVwiI0NDQ0NDQ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiOVwiIHk9XCI3XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMVwiIHJ4PVwiMC4yXCIgZmlsbD1cIiNDQ0NDQ0NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjlcIiB5PVwiNVwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjFcIiByeD1cIjAuMlwiIGZpbGw9XCIjQ0NDQ0NDXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCIgd2lkdGg9XCIxODBweFwiIGhlaWdodD1cIjE4MHB4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuMTc1NyAxLjE3NTc0QzExLjA2MzIgMS4wNjMyMSAxMC45MTA2IDEgMTAuNzUxNSAxSDMuNkMzLjI2ODYzIDEgMyAxLjI2ODYzIDMgMS42VjE0LjRDMyAxNC43MzE0IDMuMjY4NjMgMTUgMy42IDE1SDEzLjRDMTMuNzMxNCAxNSAxNCAxNC43MzE0IDE0IDE0LjRWNC4yNDg1M0MxNCA0LjA4OTQgMTMuOTM2OCAzLjkzNjc5IDEzLjgyNDMgMy44MjQyNkwxMS4xNzU3IDEuMTc1NzRaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGNEY0RjRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNSAxMi43QzE1IDEyLjg2NTcgMTQuODY1NyAxMyAxNC43IDEzSDIuM0MyLjEzNDMxIDEzIDIgMTIuODY1NyAyIDEyLjdWOS4zQzIgOS4xMzQzMSAyLjEzNDMxIDkgMi4zIDlIMTQuN0MxNC44NjU3IDkgMTUgOS4xMzQzMSAxNSA5LjNWMTIuN1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzFGNUVCQlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExIDFMMTIuNSAyLjVMMTQgNEgxMS4yQzExLjA4OTUgNCAxMSAzLjkxMDQ2IDExIDMuOFYxWlwiIGZpbGw9XCIjRDlEOUQ5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy4wNDM1MyAxMkg2LjYxMTA1VjEwLjMyMDNINi4wNTcyVjkuOTYwMzhINy41OTczOFYxMC4zMjAzSDcuMDQzNTNWMTJaTTkuNTYwMjcgMTJIOS4wNjY0MUw4LjU5MjA4IDExLjIyODVMOC4xMTc3NSAxMkg3LjY1NDU4TDguMzMxMTkgMTAuOTQ4MUw3LjY5NzgyIDkuOTYwMzhIOC4xNzQ5NEw4LjYxNDQgMTAuNjk0Mkw5LjA0NTQ4IDkuOTYwMzhIOS41MTE0NEw4Ljg3MTA5IDEwLjk3MThMOS41NjAyNyAxMlpNMTAuNjAzOCAxMkgxMC4xNzEzVjEwLjMyMDNIOS42MTc0N1Y5Ljk2MDM4SDExLjE1NzZWMTAuMzIwM0gxMC42MDM4VjEyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCI3XCIgaGVpZ2h0PVwiMC41XCIgcng9XCIwLjI1XCIgZmlsbD1cIiNDQ0NDQ0NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjVcIiB5PVwiNlwiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjAuNVwiIHJ4PVwiMC4yNVwiIGZpbGw9XCIjQ0NDQ0NDXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI1XCIgeT1cIjdcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCIwLjVcIiByeD1cIjAuMjVcIiBmaWxsPVwiI0NDQ0NDQ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nU3dpdGNoRGVmYXVsdCB3aWR0aD1cIjE4MHB4XCIgaGVpZ2h0PVwiMTgwcHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS4xNzU3IDEuMTc1NzRDMTEuMDYzMiAxLjA2MzIxIDEwLjkxMDYgMSAxMC43NTE1IDFIMy42QzMuMjY4NjMgMSAzIDEuMjY4NjMgMyAxLjZWMTQuNEMzIDE0LjczMTQgMy4yNjg2MyAxNSAzLjYgMTVIMTMuNEMxMy43MzE0IDE1IDE0IDE0LjczMTQgMTQgMTQuNFY0LjI0ODUzQzE0IDQuMDg5NCAxMy45MzY4IDMuOTM2NzkgMTMuODI0MyAzLjgyNDI2TDExLjE3NTcgMS4xNzU3NFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0Y0RjRGNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE1IDEyLjdDMTUgMTIuODY1NyAxNC44NjU3IDEzIDE0LjcgMTNIMi4zQzIuMTM0MzEgMTMgMiAxMi44NjU3IDIgMTIuN1Y5LjNDMiA5LjEzNDMxIDIuMTM0MzEgOSAyLjMgOUgxNC43QzE0Ljg2NTcgOSAxNSA5LjEzNDMxIDE1IDkuM1YxMi43WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjREQyMDI1XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgMUwxMi41IDIuNUwxNCA0SDExLjJDMTEuMDg5NSA0IDExIDMuOTEwNDYgMTEgMy44VjFaXCIgZmlsbD1cIiNEOUQ5RDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjYwODQgOS45NjAzOEM2Ljg3MTYxIDkuOTYwMzggNy4wNjM2NiAxMC4wMTcxIDcuMTg0NTcgMTAuMTMwNkM3LjMwNTQ4IDEwLjI0MzEgNy4zNjU5MyAxMC4zOTg0IDcuMzY1OTMgMTAuNTk2NUM3LjM2NTkzIDEwLjY4NTggNy4zNTI0NSAxMC43NzE0IDcuMzI1NDcgMTAuODUzMkM3LjI5ODUgMTAuOTM0MiA3LjI1NDMyIDExLjAwNjIgNy4xOTI5NCAxMS4wNjk1QzcuMTMyNDkgMTEuMTMyNyA3LjA1MTU3IDExLjE4MjkgNi45NTAyIDExLjIyMDFDNi44NDg4MiAxMS4yNTY0IDYuNzIzNzMgMTEuMjc0NiA2LjU3NDkyIDExLjI3NDZINi4zODkzN1YxMkg1Ljk1Njg5VjkuOTYwMzhINi42MDg0Wk02LjU4NjA4IDEwLjMxNDdINi4zODkzN1YxMC45MjAySDYuNTMxNjdDNi42MTI1OCAxMC45MjAyIDYuNjgyOCAxMC45MDk1IDYuNzQyMzMgMTAuODg4MUM2LjgwMTg1IDEwLjg2NjcgNi44NDc4OSAxMC44MzMyIDYuODgwNDQgMTAuNzg3N0M2LjkxMjk5IDEwLjc0MjEgNi45MjkyNyAxMC42ODM1IDYuOTI5MjcgMTAuNjExOUM2LjkyOTI3IDEwLjUxMTQgNi45MDEzNyAxMC40MzcgNi44NDU1NiAxMC4zODg3QzYuNzg5NzYgMTAuMzM5NCA2LjcwMzI2IDEwLjMxNDcgNi41ODYwOCAxMC4zMTQ3Wk05LjQ0MzIyIDEwLjk2MDdDOS40NDMyMiAxMS4xOTA0IDkuMzk5MDQgMTEuMzgyNCA5LjMxMDY5IDExLjUzNjhDOS4yMjMyNiAxMS42OTAzIDkuMDk2MzEgMTEuODA2MSA4LjkyOTgzIDExLjg4NDJDOC43NjMzNSAxMS45NjE0IDguNTYyOTIgMTIgOC4zMjg1NCAxMkg3Ljc1MDk4VjkuOTYwMzhIOC4zOTEzMkM4LjYwNTI0IDkuOTYwMzggOC43OTA3OCA5Ljk5ODUxIDguOTQ3OTYgMTAuMDc0OEM5LjEwNTE0IDEwLjE1MDEgOS4yMjY5OCAxMC4yNjIyIDkuMzEzNDggMTAuNDExQzkuMzk5OTcgMTAuNTU4OSA5LjQ0MzIyIDEwLjc0MjEgOS40NDMyMiAxMC45NjA3Wk04Ljk5NCAxMC45NzE4QzguOTk0IDEwLjgyMTEgOC45NzE2OCAxMC42OTc1IDguOTI3MDQgMTAuNjAwN0M4Ljg4MzMyIDEwLjUwMzEgOC44MTgyMiAxMC40MzEgOC43MzE3MiAxMC4zODQ1QzguNjQ2MTYgMTAuMzM4IDguNTQwMTMgMTAuMzE0NyA4LjQxMzY0IDEwLjMxNDdIOC4xODM0NVYxMS42NDI5SDguMzY5QzguNTgwMTIgMTEuNjQyOSA4LjczNjg0IDExLjU4NjYgOC44MzkxNSAxMS40NzQxQzguOTQyMzggMTEuMzYxNSA4Ljk5NCAxMS4xOTQxIDguOTk0IDEwLjk3MThaTTEwLjI5MTQgMTJIOS44NjU5M1Y5Ljk2MDM4SDExLjAzNVYxMC4zMTQ3SDEwLjI5MTRWMTAuODQwN0gxMC45ODM0VjExLjE5MzZIMTAuMjkxNFYxMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjVcIiB5PVwiNVwiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjAuNVwiIHJ4PVwiMC4yNVwiIGZpbGw9XCIjQ0NDQ0NDXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI1XCIgeT1cIjZcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCIwLjVcIiByeD1cIjAuMjVcIiBmaWxsPVwiI0NDQ0NDQ1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNVwiIHk9XCI3XCIgd2lkdGg9XCI3XCIgaGVpZ2h0PVwiMC41XCIgcng9XCIwLjI1XCIgZmlsbD1cIiNDQ0NDQ0NcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBNZXRhZGF0YSBvbiByaWdodCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlX25vdGVzIG1sLTJcIj5cclxuICAgICAgICAgICAgICA8IS0tIFRpdGxlIC0tPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdGV4dC1zbSBpbnB1dC10aXRsZSBtLTAgLW10LTFcIj5UaXRsZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJmaWxlLnRpdGxlXCIgbmFtZT1cInRpdGxle3tpfX1cIiAobmdNb2RlbENoYW5nZSk9XCJvbk1ldGFDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgdGl0bGVcIiBjbGFzcz1cIiByb3VuZGVkIHB4LTMgcHktMiBtYi0zIHctZnVsbCBvdXRsaW5lLW5vbmUgZm9jdXM6cmluZ1wiIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgI3RpdGxlQ3RybD1cIm5nTW9kZWxcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aXRsZUN0cmwuaW52YWxpZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIHRleHQteHMgbWItMlwiPlxyXG4gICAgICBUaXRsZSBpcyByZXF1aXJlZFxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwhLS0gTm90ZXMgLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXNtIGlucHV0LXRpdGxlIG0tMCAtbXQtMVwiPk5vdGVzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cImZpbGUubm90ZXNcIiBuYW1lPVwibm90ZXN7e2l9fVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWV0YUNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBub3Rlc1wiIGNsYXNzPVwiIHJvdW5kZWQgcHgtMyBweS0yIG1iLTAgdy1mdWxsIG91dGxpbmUtbm9uZSBmb2N1czpyaW5nXCJcclxuICAgICAgICAgICAgICAgICAgcm93cz1cIjJcIiAgcmVxdWlyZWRcclxuICAgICAgI25vdGVzQ3RybD1cIm5nTW9kZWxcIj48L3RleHRhcmVhPlxyXG4gPGRpdiAqbmdJZj1cIm5vdGVzQ3RybC5pbnZhbGlkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgdGV4dC14cyBtdC0xXCI+XHJcbiAgICAgIE5vdGVzIGFyZSByZXF1aXJlZFxyXG4gICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeSBtdC0yXCI+XHJcbiAgICAgICAgICAgIDwhLS0gQ2F0ZWdvcnkgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtc20gaW5wdXQtdGl0bGUgbS0wXCI+Q2F0ZWdvcnk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJmaWxlLmNhdGVnb3J5SWQgXCIgbmFtZT1cImNhdGVnb3J5e3tpfX1cIiAobmdNb2RlbENoYW5nZSk9XCJvbk1ldGFDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIiByb3VuZGVkIHB4LTMgcHktMiB3LWZ1bGwgb3V0bGluZS1ub25lIGZvY3VzOnJpbmdcIiAgcmVxdWlyZWRcclxuICAgICNjYXRlZ29yeUN0cmw9XCJuZ01vZGVsXCI+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IENhdGVnb3J5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGNhdGVnb3JpZXNcIiBbbmdWYWx1ZV09XCJjLnZhbHVlXCI+e3sgYy5sYWJlbCB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNhdGVnb3J5Q3RybC5pbnZhbGlkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgdGV4dC14cyBtdC0xXCI+XHJcbiAgICBDYXRlZ29yeSBpcyByZXF1aXJlZFxyXG4gIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxwLWRpYWxvZyBoZWFkZXI9XCJJbWFnZSBQcmV2aWV3XCIgW21vZGFsXT1cInRydWVcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgWyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcclxuICBbc3R5bGVdPVwie3dpZHRoOiAnNzByZW0nfVwiIGNsYXNzPVwiY3VzdG9tRGlhbG9nQ2xhc3NcIiAob25IaWRlKT1cImNsb3NlRGlhbG9nKClcIj5cclxuICA8aW1nIFtzcmNdPVwic2VsZWN0ZUltYWdlVXJsXCIvPlxyXG4gIDwvcC1kaWFsb2c+XHJcbjwvZngtY29tcG9uZW50PiJdfQ==
|
|
@@ -1399,7 +1399,7 @@ class UploaderComponent extends FxBaseComponent {
|
|
|
1399
1399
|
settings() {
|
|
1400
1400
|
return [
|
|
1401
1401
|
new FxStringSetting({ key: 'upload-text', $title: 'Upload Text', value: 'Upload File' }),
|
|
1402
|
-
new FxSelectSetting({ key: 'multiple-upload', $title: 'Multiple
|
|
1402
|
+
new FxSelectSetting({ key: 'multiple-upload', $title: 'Multiple Uploads', value: false }, [{ option: 'Enable', value: true }, { option: 'Disable', value: false }]),
|
|
1403
1403
|
new FxStringSetting({ key: 'maxFileNo', $title: 'Maximum File Upload Allowed', value: 8 }),
|
|
1404
1404
|
];
|
|
1405
1405
|
}
|