simpo-component-library 3.6.652 → 3.6.653
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +1 -2
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +2 -1
- package/fesm2022/simpo-component-library.mjs +1 -1
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/components/input-fields/input-fields.component.d.ts +1 -1
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
- package/package.json +1 -1
- package/simpo-component-library-3.6.653.tgz +0 -0
- package/simpo-component-library-3.6.652.tgz +0 -0
|
@@ -123,7 +123,6 @@ export class AuthenticateUserComponent extends BaseSection {
|
|
|
123
123
|
]]
|
|
124
124
|
});
|
|
125
125
|
// this.email: new FormControl('', [Validators.required, Validators.email]),
|
|
126
|
-
console.log("user authenticating back", localStorage.getItem("utm_u_id"));
|
|
127
126
|
}
|
|
128
127
|
get passwordValid() {
|
|
129
128
|
return this.passwordValidation.get('passwordValid');
|
|
@@ -432,4 +431,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
432
431
|
}], nextComponentColor: [{
|
|
433
432
|
type: Input
|
|
434
433
|
}] } });
|
|
435
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUE0QyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJakUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcs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S3hDLFFBQVE7OzBCQUNSLFFBQVE7NEhBakNGLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVzZXJCYXNpY0luZm9Db21wb25lbnQgfSBmcm9tICcuLi91c2VyLWJhc2ljLWluZm8vdXNlci1iYXNpYy1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIElucHV0VGV4dE1vZGVsLCBTdHlsZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcbmltcG9ydCB7IE1BVF9CT1RUT01fU0hFRVRfREFUQSwgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGV2aWNlSW5mbywgVXNlciB9IGZyb20gJy4uLy4uL3N0eWxlcy91c2VyLm1vZGFsJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgU3ZnRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL3N2Zy1kaXZpZGVyL3N2Zy1kaXZpZGVyLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBBdXRoZW50aWNhdGVTZWN0aW9uTW9kZWwge1xuICBpZDogc3RyaW5nO1xuICBjb250ZW50OiBBdXRoZW50aWNhdGVDb250ZW50TW9kZWwsXG4gIHN0eWxlczogU3R5bGVzTW9kZWwsXG4gIGFjdGlvbjogQWN0aW9uTW9kZWwsXG4gIHR5cGU6ICdTVEFUSUMnIHwgJ0VfQ09NTUVSQ0UnXG59XG5pbnRlcmZhY2UgQXV0aGVudGljYXRlQ29udGVudE1vZGVsIHtcbiAgc2l0ZU5hbWU6IElucHV0VGV4dE1vZGVsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWF1dGhlbnRpY2F0ZS11c2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIFRvYXN0TW9kdWxlLFxuICAgIEhvdmVyRGlyZWN0aXZlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAvLyBGb3JtR3JvdXAsXG4gICAgLy8gRm9ybUJ1aWxkZXIsXG4gICAgLy8gVmFsaWRhdG9ycyxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFN2Z0RpdmlkZXJDb21wb25lbnRcblxuXG4gIF0sXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE/OiBBdXRoZW50aWNhdGVTZWN0aW9uTW9kZWw7XG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcblxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3RwRGF0YSA9IFssICwgLCAsICxdO1xuICBwdWJsaWMgb3RwU3RyaW5nOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgU2lnbnVwT3RwU3RyaW5nOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgc2NyZWVuOiAnTE9HSU4nIHwgJ09UUCcgfCAnUEFTU1dPUkQnIHwgJ0NSRUFURVBBU1NXT1JEJyB8ICdTSUdOVVBPVFAnID0gJ0xPR0lOJztcbiAgcHVibGljIG1vYmlsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBtb2JpbGVudW1iZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgZW1haWxlbnRlcmVkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGNvdW50cnlDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGNvbmZpcm1QYXNzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGJ1c2luZXNzSWQ6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKTtcbiAgLy8gY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/ICcnO1xuXG4gIHB1YmxpYyBidXR0b25Mb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBtYXREYXRhOiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfQk9UVE9NX1NIRUVUX0RBVEEpIHB1YmxpYyBib3R0b21zaGVldERhdGE6IGFueSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXV0aGVudGljYXRlVXNlckNvbXBvbmVudD4sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBib3R0b21zaGVldFJlZjogTWF0Qm90dG9tU2hlZXRSZWY8QXV0aGVudGljYXRlVXNlckNvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvbiA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcGFzc3dvcmRWYWxpZDogWycnLCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsICAgICAgICAgICAvLyBQYXNzd29yZCBpcyByZXF1aXJlZFxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSwgICAgICAgIC8vIE1pbmltdW0gbGVuZ3RoIDggY2hhcmFjdGVyc1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL1tBLVpdLyksICAgIC8vIEF0IGxlYXN0IG9uZSB1cHBlcmNhc2UgbGV0dGVyXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXFxkLyksICAgICAgIC8vIEF0IGxlYXN0IG9uZSBkaWdpdFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL1shQCMkJV4mKl0vKSAvLyBBdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXJcbiAgICAgIF1dXG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLmVtYWlsOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSksXG5cbiAgICBjb25zb2xlLmxvZyhcInVzZXIgYXV0aGVudGljYXRpbmcgYmFja1wiLCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInV0bV91X2lkXCIpKVxuICB9XG4gIGdldCBwYXNzd29yZFZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvbi5nZXQoJ3Bhc3N3b3JkVmFsaWQnKTtcbiAgfVxuXG4gIHN0eWxlczogYW55O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG5cbiAgICBpZiAodGhpcy5tYXREYXRhKVxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5tYXREYXRhO1xuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XG4gICAgfSlcbiAgfVxuXG4gIHBhc3N3b3JkVmFsaWRhdGlvbjogRm9ybUdyb3VwO1xuXG5cbiAgbG9naW46IGJvb2xlYW4gPSB0cnVlO1xuICBzaWdudXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBvcGVuU2lnbnVwKCkge1xuICAgIHRoaXMuc2NyZWVuID0gXCJDUkVBVEVQQVNTV09SRFwiO1xuICAgIHRoaXMuc2lnbnVwID0gdHJ1ZTtcbiAgICB0aGlzLmxvZ2luID0gZmFsc2U7XG5cbiAgfVxuICBvcGVuTG9naW4oKSB7XG4gICAgdGhpcy5zY3JlZW4gPSBcIkxPR0lOXCJcbiAgICB0aGlzLmxvZ2luID0gdHJ1ZTtcbiAgICB0aGlzLnNpZ251cCA9IGZhbHNlO1xuICB9XG4gIHBhc3NTY3JlZW4oKSB7XG4gICAgdGhpcy5zY3JlZW4gPSBcIlBBU1NXT1JEXCJcbiAgfVxuICBlbWFpbFZhbGlkOiBib29sZWFuID0gdHJ1ZVxuICBjb25maXJtOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNFbWFpbFZhbGlkKGVtYWlsOiBzdHJpbmcgfCBudWxsKSB7XG5cblxuICAgIGlmIChlbWFpbD8uaW5jbHVkZXMoXCJAXCIpICYmIGVtYWlsPy5pbmNsdWRlcyhcIi5jb21cIikgfHwgKGVtYWlsPy5sZW5ndGggPT0gMCkpIHtcbiAgICAgIHRoaXMuZW1haWxWYWxpZCA9IGZhbHNlXG4gICAgfVxuICB9XG4gIGlzQ29uZmlybVBBc3N3b3JkVmFsaWQoY29uZmlybXBhc3M6IHN0cmluZyB8IG51bGwpIHtcblxuXG4gICAgaWYgKGNvbmZpcm1wYXNzID09IHRoaXMucGF5bG9hZC5wYXNzd29yZCkge1xuICAgICAgdGhpcy5jb25maXJtID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIG1vdmUoZXZlbnQ6IGFueSwgaWR4OiBudW1iZXIpIHtcblxuICAgIGlmIChpc05hTihOdW1iZXIoZXZlbnQua2V5KSkgJiYgZXZlbnQuY29kZSAhPSBcIkJhY2tzcGFjZVwiKVxuICAgICAgcmV0dXJuO1xuXG4gICAgaWYgKGV2ZW50LmNvZGUgIT0gXCJCYWNrc3BhY2VcIikge1xuICAgICAgdGhpcy5vdHBEYXRhW2lkeF0gPSBldmVudC5rZXk7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm90cF9cIiArIChpZHggKyAxKSk/LmZvY3VzKCk7XG4gICAgfVxuICAgIGlmIChldmVudC5jb2RlID09IFwiQmFja3NwYWNlXCIgJiYgIXRoaXMub3RwRGF0YVtpZHhdKSB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm90cF9cIiArIChpZHggLSAxKSk/LmZvY3VzKCk7XG4gICAgfVxuICB9XG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXG4gICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoKTtcbiAgfVxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5yZXNldFZhbHVlKCk7XG4gICAgdGhpcy5zY3JlZW4gPSBcIkxPR0lOXCI7XG4gIH1cbiAgcHJpdmF0ZSByZXNldFZhbHVlKCkge1xuICAgIHRoaXMub3RwU3RyaW5nID0gJyc7XG4gICAgdGhpcy5vdHBEYXRhID0gWywgLCAsICwgLF07XG4gIH1cblxuICAvLyBnZW5lcmF0ZU9UUCgpIHtcbiAgLy8gICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xuICAvLyAgIHRoaXMucmVzdFNlcnZpY2UuZ2VuZXJhdGVPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5jb3VudHJ5Q29kZSA/PyBcIlwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gIC8vICAgICB0aGlzLnNjcmVlbiA9IFwiT1RQXCI7XG4gIC8vICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgLy8gICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ09UUCBTZW50JywgZGV0YWlsOiAnT1RQIHNlbnQgdG8gbW9iaWxlLiBWYWxpZCBmb3IgMyBtaW5zJywgbGlmZTogMTAwMDAgfSk7XG4gIC8vICAgfSwgKGVycm9yKSA9PiB7XG4gIC8vICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgLy8gICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdPVFAgUmVxdWVzdCcsIGRldGFpbDogZXJyb3I/LmVycm9yPy5tZXNzYWdlLCBsaWZlOiAxMDAwMCB9KTtcbiAgLy8gICB9KVxuICAvLyB9XG5cblxuICBnZW5lcmF0ZU9UUCgpIHtcbiAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2VuZXJhdGVPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5jb3VudHJ5Q29kZSA/PyBcIlwiKS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5zY3JlZW4gPSBcIk9UUFwiO1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXG4gICAgICAgICAgc3VtbWFyeTogJ09UUCBTZW50JyxcbiAgICAgICAgICBkZXRhaWw6ICdPVFAgc2VudCB0byBtb2JpbGUuIFZhbGlkIGZvciAzIG1pbnMnLFxuICAgICAgICAgIGxpZmU6IDEwMDAwXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3I/LmVycm9yPy5tZXNzYWdlO1xuXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICBzdW1tYXJ5OiAnT1RQIFJlcXVlc3QnLFxuICAgICAgICAgIGRldGFpbDogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgIGxpZmU6IDEwMDAwXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBlcnJvciBtZXNzYWdlIGluZGljYXRlcyBcIlVzZXIgbm90IGZvdW5kXCJcbiAgICAgICAgaWYgKGVycm9yTWVzc2FnZSA9PT0gXCJVc2VyIE5vdCBSZWdpc3RlcmVkLCBQbGVhc2UgU2lnbnVwIEZpcnN0LlwiKSB7XG4gICAgICAgICAgdGhpcy5zY3JlZW4gPSBcIkNSRUFURVBBU1NXT1JEXCI7XG4gICAgICAgICAgLy8gQ2xvc2UgdGhlIHdpbmRvdyBvciBwZXJmb3JtIHRoZSBkZXNpcmVkIGFjdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHBhc3N3b3JkOiBhbnkgPSAnICdcbiAgUGFzc3dvcmRIaWRlID0gdHJ1ZTtcbiAgbmV3UGFzc3dvcmRIaWRlID0gdHJ1ZTtcbiAgbV9jbGlja2VkOiBib29sZWFuID0gdHJ1ZTtcbiAgZV9jbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIG1vYmlsZV9jbGljaygpIHtcbiAgICB0aGlzLm1fY2xpY2tlZCA9IHRydWU7XG4gICAgdGhpcy5lX2NsaWNrZWQgPSBmYWxzZTtcblxuICB9XG4gIGVtYWlsX2NsaWNrKCkge1xuICAgIHRoaXMuZV9jbGlja2VkID0gdHJ1ZTtcbiAgICB0aGlzLm1fY2xpY2tlZCA9IGZhbHNlO1xuXG4gIH1cbiAgdmVyaWZ5T1RQKCkge1xuXG4gICAgY29uc3QgZGV2aWNlSW5mbzogRGV2aWNlSW5mbyB8IG51bGwgPSB7XG4gICAgICBmaXJlYmFzZVRva2VuOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZiVG9rZW5cIikgPz8gXCJcIlxuICAgIH07XG5cbiAgICB0aGlzLm90cFN0cmluZyA9IFwiXCI7XG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm90cERhdGEuZm9yRWFjaCgodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCwgaWR4OiBudW1iZXIpID0+IHRoaXMub3RwU3RyaW5nICs9ICh2YWx1ZSA/PyBcIlwiKSk7XG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5vdHBTdHJpbmcsIGRldmljZUluZm8pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcbiAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJTVUNDRVNTXCIpO1xuICAgICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXG4gICAgICAgIHRoaXMuYm90dG9tc2hlZXRSZWYuZGlzbWlzcyhcIlNVQ0NFU1NcIik7XG5cbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgaWNvbjogXCJzdWNjZXNzXCIsXG4gICAgICAgIHRpdGxlOiBcIkh1cnJheVwiLFxuICAgICAgICB0ZXh0OiBcIllvdXIgYWNjb3VudCBzdWNjZXNzZnVsbHkgY3JlYXRlZFwiLFxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiAhKHVzZXJEZXRhaWxzLmNvbnRhY3Q/Lm5hbWU/Lmxlbmd0aCA+IDApLFxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJJIGxvdmVkIGl0XCIsXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiRmlsbCBvdGhlciBiYXNpYyBkZXRhaWxzXCIsXG4gICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiBcIiM5MjhjOGNcIixcbiAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuXG4gICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShcIlNVQ0NFU1NcIik7XG4gICAgICAgICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXG4gICAgICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmlzRGlzbWlzc2VkKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJTVUNDRVNTXCIpO1xuICAgICAgICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxuICAgICAgICAgICAgdGhpcy5ib3R0b21zaGVldFJlZi5kaXNtaXNzKFwiU1VDQ0VTU1wiKTtcbiAgICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKFVzZXJCYXNpY0luZm9Db21wb25lbnQsIHtcbiAgICAgICAgICAgIGhlaWdodDogJzUwdmgnLFxuICAgICAgICAgICAgd2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzQwdncnIDogJzk1dncnLFxuICAgICAgICAgICAgbWF4V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzEwMHZ3JyA6ICc4MHZ3JyxcbiAgICAgICAgICAgIGRhdGE6IHt9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdJbnZhbGlkIE9UUCcsIGRldGFpbDogJ1BsZWFzZSBlbnRlciB2YWxpZCBvdHAnIH0pO1xuICAgIH0pXG4gIH1cblxuXG4gIHZlcmlmeVNpZ251cE9UUCgpIHtcblxuICAgIGNvbnN0IGRldmljZUluZm86IERldmljZUluZm8gfCBudWxsID0ge1xuICAgICAgZmlyZWJhc2VUb2tlbjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmYlRva2VuXCIpID8/IFwiXCJcblxuICAgIH07XG5cbiAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMub3RwRGF0YS5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBpZHg6IG51bWJlcikgPT4gdGhpcy5TaWdudXBPdHBTdHJpbmcgKz0gKHZhbHVlID8/IFwiXCIpKTtcbiAgICBsZXQgdmVyaWZ5U2lnbkRhdGEgPSB7XG4gICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXG4gICAgICBtb2JpbGU6IHRoaXMucGF5bG9hZC5tb2JpbGUsXG4gICAgICBlbWFpbDogdGhpcy5wYXlsb2FkLmVtYWlsLFxuICAgICAgcGFzc3dvcmQ6IHRoaXMucGF5bG9hZC5wYXNzd29yZCxcbiAgICAgIGNvdW50cnlDb2RlOiB0aGlzLnBheWxvYWQuY291bnRyeUNvZGUsXG4gICAgICBlbnRlcmVkT3RwOiB0aGlzLlNpZ251cE90cFN0cmluZ1xuICAgIH1cbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnZlcmlmeVNpZ251cE9UUCh2ZXJpZnlTaWduRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0VXNlcihyZXNwb25zZS5kYXRhKTtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlQWxsRGF0YSgpO1xuICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShcIlNVQ0NFU1NcIik7XG4gICAgICBpZiAodGhpcy5ib3R0b21zaGVldFJlZilcbiAgICAgICAgdGhpcy5ib3R0b21zaGVldFJlZi5kaXNtaXNzKFwiU1VDQ0VTU1wiKTtcblxuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICBTd2FsLmZpcmUoe1xuICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgdGl0bGU6IFwiSHVycmF5XCIsXG4gICAgICAgIHRleHQ6IFwiWW91ciBhY2NvdW50IHN1Y2Nlc3NmdWxseSBjcmVhdGVkXCIsXG4gICAgICAgIHNob3dDYW5jZWxCdXR0b246ICEodXNlckRldGFpbHMuY29udGFjdD8ubmFtZT8ubGVuZ3RoID4gMCksXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkkgbG92ZWQgaXRcIixcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCJGaWxsIG90aGVyIGJhc2ljIGRldGFpbHNcIixcbiAgICAgICAgY2FuY2VsQnV0dG9uQ29sb3I6IFwiIzkyOGM4Y1wiLFxuICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xuICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwiU1VDQ0VTU1wiKTtcbiAgICAgICAgICBpZiAodGhpcy5ib3R0b21zaGVldFJlZilcbiAgICAgICAgICAgIHRoaXMuYm90dG9tc2hlZXRSZWYuZGlzbWlzcyhcIlNVQ0NFU1NcIik7XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuaXNEaXNtaXNzZWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShcIlNVQ0NFU1NcIik7XG4gICAgICAgICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXG4gICAgICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xuICAgICAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oVXNlckJhc2ljSW5mb0NvbXBvbmVudCwge1xuICAgICAgICAgICAgaGVpZ2h0OiAnNTB2aCcsXG4gICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGggPiA0NzUgPyAnNDB2dycgOiAnOTV2dycsXG4gICAgICAgICAgICBtYXhXaWR0aDogd2luZG93LmlubmVyV2lkdGggPiA0NzUgPyAnMTAwdncnIDogJzgwdncnLFxuICAgICAgICAgICAgZGF0YToge31cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdVc2VyIGFscmVhZHkgZXhpc3RzJyB9KVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdJbnZhbGlkIE9UUCcsIGRldGFpbDogJ1BsZWFzZSBlbnRlciB2YWxpZCBvdHAnIH0pO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgLy8gY291bnRyeUNvZGVzOiBhbnlbXSA9IFtdO1xuICAvLyBnZXRBbGxDb3VudHJpZXMoKSB7XG4gIC8vICAgdGhpcy5yZXN0U2VydmljZS5nZXRBbGxDb3VudHJpZXMoKS5zdWJzY3JpYmUoXG4gIC8vICAgICAocmVzOiBhbnkpID0+IHtcbiAgLy8gICAgICAgdGhpcy5jb3VudHJ5Q29kZXMgPSByZXMuZGF0YT8uZGF0YSA/PyBbXTtcblxuICAvLyAgICAgICBjb25zdCBzaG9ydENvZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTdG9yYWdlS2V5cy5TSE9SVF9DT0RFKTtcblxuICAvLyAgICAgICBsZXQgZGlhbENvZGU7XG4gIC8vICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShTdG9yYWdlS2V5cy5kaWFsQ29kZURyb3Bkb3duKSA9PT0gJ3RydWUnKSB7XG4gIC8vICAgICAgICAgZGlhbENvZGUgPSB0cnVlXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgZWxzZSB7XG4gIC8vICAgICAgICAgZGlhbENvZGUgPSBmYWxzZVxuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgbGV0IHNob3J0Q29kZUluZGV4ID0gLTE7XG5cbiAgLy8gICAgICAgaWYgKHNob3J0Q29kZSkge1xuICAvLyAgICAgICAgIHNob3J0Q29kZUluZGV4ID0gdGhpcy5jb3VudHJ5Q29kZXMuZmluZEluZGV4KChjOiBhbnkpID0+IGMuc2hvcnRDb2RlPy50b0xvd2VyQ2FzZSgpID09PSBzaG9ydENvZGUudG9Mb3dlckNhc2UoKSlcbiAgLy8gICAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgICBzaG9ydENvZGVJbmRleCA9IHRoaXMuY291bnRyeUNvZGVzLmZpbmRJbmRleCgoYzogYW55KSA9PiBjLnNob3J0Q29kZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2luJyk7XG4gIC8vICAgICAgIH1cblxuICAvLyAgICAgICBpZiAoc2hvcnRDb2RlSW5kZXggPiAtMSkge1xuICAvLyAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jb3VudHJ5Q29kZXNbc2hvcnRDb2RlSW5kZXhdO1xuICAvLyAgICAgICAgIHRoaXMuZGlzYWJsZUNvdW50cnlDb2RlRHJvcGRvd24gPSBkaWFsQ29kZSA/IHRydWUgOiBmYWxzZTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSxcbiAgLy8gICAgIChlcnIpID0+IHtcbiAgLy8gICAgICAgdGhpcy53ZWJTZXJ2aWNlLm9wZW5TbmFjayhcbiAgLy8gICAgICAgICBgJHtlcnIuZXJyb3IubWVzc2FnZX1gLFxuICAvLyAgICAgICAgICdDbG9zZScsXG4gIC8vICAgICAgIClcbiAgLy8gICAgIH1cbiAgLy8gICApXG4gIC8vIH1cblxuICBwYXlsb2FkOiBhbnkgPSB7XG4gICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxuICAgIG1vYmlsZTogJycsXG4gICAgZW1haWw6ICcnLFxuICAgIHBhc3N3b3JkOiAnJyxcbiAgICBjb3VudHJ5Q29kZTogJydcbiAgfVxuICBjcmVhdGVQYXNzd29yZCgpIHtcbiAgICB0aGlzLnNjcmVlbiA9IFwiU0lHTlVQT1RQXCIsXG4gICAgICB0aGlzLnJlc3RTZXJ2aWNlLnNlbmRTaWdudXBPVFAodGhpcy5wYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG5cbiAgICAgIH0pXG4gIH1cblxuXG4gIHBhc3NEYXRhOiBhbnkgPSB7XG4gICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxuICAgIGVtYWlsOiAnJyxcbiAgICBwYXNzd29yZDogJydcbiAgfVxuICBzaWduaW5QYXNzd29yZCgpIHtcblxuICAgIHRoaXMucmVzdFNlcnZpY2Uuc2lnbmluUGFzc3dvcmQodGhpcy5wYXNzRGF0YSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuXG4gICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgY3JlZGVudGlhbHMnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgdmFsaWQgY3JlZGVudGlhbHMnIH0pO1xuICAgICAgfSlcbiAgfVxuXG4gIHZhbGlkYXRlTnVtYmVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2hhckNvZGUgPSBldmVudC5jaGFyQ29kZTsgIC8vIEdldCB0aGUga2V5IGNvZGUgb2YgdGhlIHByZXNzZWQga2V5XG4gICAgaWYgKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1Nykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgIC8vIEJsb2NrIGlucHV0IGlmIGl0J3Mgbm90IGEgbnVtYmVyICgwLTkpXG4gICAgfVxuICB9XG5cbiAgZWRpdFNlY3Rpb24oKSB7XG5cbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNlbmRPVFAoKSB7XG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXNlbmRPVFAodGhpcy5wYXlsb2FkLm1vYmlsZSA/PyBcIlwiLCB0aGlzLnBheWxvYWQuY291bnRyeUNvZGUgPz8gXCJcIikuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5vdHBTdHJpbmcgPSBcIlwiO1xuICAgIH0pXG4gIH1cbiAgLy8gcHVibGljIHJlc2VuZHNpZ251cE9UUCgpIHtcbiAgLy8gICB0aGlzLnJlc3RTZXJ2aWNlLnJlc2VuZE9UUCh0aGlzLnBheWxvYWQubW9iaWxlID8/IFwiXCIsIHRoaXMucGF5bG9hZC5jb3VudHJ5Q29kZSA/PyBcIlwiKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcbiAgLy8gICAgIHRoaXMub3RwU3RyaW5nID0gXCJcIjtcbiAgLy8gICB9KVxuICAvLyB9XG4gIGdldCBpc01vYmlsZVZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLm1vYmlsZT8udG9TdHJpbmcoKS5sZW5ndGggPT0gMTA7XG4gIH1cbiAgZ2V0IGlzTW9iaWxlKCkge1xuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgPGRpdiBbc3R5bGUuaGVpZ2h0LnZoXT1cImlzTW9iaWxlID8gJzQwJyA6ICcnXCIgW2lkXT1cImRhdGE/LmlkXCIgIHNpbXBvSG92ZXJcbiAgICAgICAgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzY3JlZW5cIj5cbiAgICAgICAgICAgIDxzZWN0aW9uIHN0eWxlPVwicGFkZGluZzogMTRweDtcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgaC0xMDBcIlxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInTE9HSU4nXCIgW25nQ2xhc3NdPVwieydmdWxsU2VjdGlvbic6IGlzTW9iaWxlfVwiPlxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInRleHQtY2VudGVyIG9ubHlEZXNrdG9wXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAge3tkYXRhPy5jb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvaDU+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPldlbGNvbWU8L2gyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlci0xXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luXCIgKGNsaWNrKT1cIm9wZW5Mb2dpbigpXCIgPjxidXR0b24gY2xhc3M9XCJsb2dpbkJ1dHRvbi0xXCIgW2NsYXNzLmFjdGl2ZS1jbHNdPVwibG9naW5cIj5Mb2dpbjwvYnV0dG9uPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luXCIgKGNsaWNrKT1cIm9wZW5TaWdudXAoKVwiID48YnV0dG9uIGNsYXNzPVwibG9naW5CdXR0b24tMlwiIFtjbGFzcy5hY3RpdmUtY2xzXT1cInNpZ251cFwiPlNpZ251cDwvYnV0dG9uPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlX2VtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtb2JpbGVcIiAoY2xpY2spPVwibW9iaWxlX2NsaWNrKClcIiBbY2xhc3MuYWN0aXZlLWNsYXNzXT1cIm1fY2xpY2tlZFwiPkxvZ2luIHVzaW5nIE9UUDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibW9iaWxlXCIgKGNsaWNrKT1cImVtYWlsX2NsaWNrKClcIiBbY2xhc3MuYWN0aXZlLWNsYXNzXT1cImVfY2xpY2tlZFwiPkxvZ2luIHVzaW5nIFBhc3N3b3JkPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIk1vYmlsZSBOdW1iZXJcIiBbKG5nTW9kZWwpXT1cIm1vYmlsZVwiICpuZ0lmPVwibV9jbGlja2VkXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRS1tYWlsXCIgWyhuZ01vZGVsKV09XCJwYXNzRGF0YS5lbWFpbFwiIChuZ01vZGVsQ2hhbmdlKT1cImlzRW1haWxWYWxpZChwYXNzRGF0YS5lbWFpbClcIiAqbmdJZj1cImVfY2xpY2tlZFwiPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwicGFzc3dvcmRWYWxpZGF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVfY2xpY2tlZFwiIGNsYXNzPVwicGFzc3dvcmQtaW5wdXRcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJwYXNzd29yZC0yXCIgdHlwZT1cInBhc3N3b3JkLTJcIiBwbGFjZWhvbGRlcj1cIlBhc3N3b3JkXCIgWyhuZ01vZGVsKV09XCJwYXNzRGF0YS5wYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkVmFsaWRcIiA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCAoY2xpY2spPVwiUGFzc3dvcmRIaWRlID0gIVBhc3N3b3JkSGlkZVwiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXllLWljb25cIj57e1Bhc3N3b3JkSGlkZSA/ICd2aXNpYmlsaXR5X29mZicgOiAndmlzaWJpbGl0eSd9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJwYXNzd29yZFwiICpuZ0lmPVwiZV9jbGlja2VkXCI+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInBhc3MtZmllbGRcIiBbKG5nTW9kZWwpXT1cInRoaXMucGFzc0RhdGEucGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIHBhc3N3b3JkXCIgbWF0SW5wdXQgPiBcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggKGNsaWNrKT1cIlBhc3N3b3JkSGlkZSA9ICFQYXNzd29yZEhpZGVcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV5ZS1pY29uXCI+e3tQYXNzd29yZEhpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKm5nSWY9XCJtX2NsaWNrZWRcIj5Zb3Ugd2lsbCByZWNlaXZlIGFuIE9UUCBpblxuICAgICAgICAgICAgICAgICAgICBXaGF0c0FwcDwvcD5cbiAgICAgICAgICAgICAgICA8IS0tIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiZV9jbGlja2VkXCI+WW91IHdpbGwgcmVjZWl2ZSBhbiBPVFAgaW5cbiAgICAgICAgICAgICAgICAgICAgRW1haWw8L3A+IC0tPlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1fY2xpY2tlZFwiIGNsYXNzPVwiYWN0aW9uLWJ0biBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwiZ2VuZXJhdGVPVFAoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzTW9iaWxlVmFsaWRcIiAqbmdJZj1cIiFidXR0b25Mb2FkaW5nXCI+TG9naW48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKm5nSWY9XCJidXR0b25Mb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PVFAgU2VudDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9pLmltZ2hpcHBvLmNvbS9maWxlcy8zU2N5SzE3MjYyOTQ0NTMuZ2lmXCIgYWx0PVwiXCIgc3R5bGU9XCJoZWlnaHQ6IDM1cHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZV9jbGlja2VkXCIgY2xhc3M9XCJhY3Rpb24tYnRuIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYnV0dG9uTG9hZGluZ1wiIFtkaXNhYmxlZF09XCJlbWFpbFZhbGlkIHx8IHBhc3N3b3JkVmFsaWRhdGlvbi5pbnZhbGlkXCIgKGNsaWNrKT1cInNpZ25pblBhc3N3b3JkKClcIj5Mb2dpbjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAqbmdJZj1cImJ1dHRvbkxvYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+RW1haWwgU2VudDwvc3Bhbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vaS5pbWdoaXBwby5jb20vZmlsZXMvM1NjeUsxNzI2Mjk0NDUzLmdpZlwiIGFsdD1cIlwiIHN0eWxlPVwiaGVpZ2h0OiAzNXB4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYWx0ZXJuYXRlLW9wdCB0ZXh0LWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+VXNlIGVtYWlsXG4gICAgICAgICAgICAgICAgICAgIGluc3RlYWQ8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG4gb25seURlc2t0b3BcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nU3dpdGNoQ2FzZT1cIidPVFAnXCIgc3R5bGU9XCJwYWRkaW5nOiAxNXB4O1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBoLTEwMFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydmdWxsU2VjdGlvbic6IGlzTW9iaWxlfVwiPlxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInRleHQtY2VudGVyIG9ubHlEZXNrdG9wXCI+e3tkYXRhPy5jb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvaDU+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+VmVyaWZ5IE9UUDwvaDI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+RW50ZXIgdGhlIDYtZGlnaXQgdGhhdCB3ZVxuICAgICAgICAgICAgICAgICAgICBoYXZlIHNlbnQgdmlhIHRoZSBwaG9uZSBudW1iZXIgK3t7IGNvdW50cnlDb2RlIH19e3sgbW9iaWxlXG4gICAgICAgICAgICAgICAgICAgIH19PC9wPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdHBDb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgXyBvZiBbXS5jb25zdHJ1Y3Rvcig2KTsgbGV0IGlkeCA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwib3RwXCIgbWF4PVwiMVwiIFtpZF09XCInb3RwXycraWR4XCIgWyhuZ01vZGVsKV09XCJvdHBEYXRhW2lkeF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJtb3ZlKCRldmVudCwgaWR4KVwiPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnRuIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJ2ZXJpZnlPVFAoKVwiPlZlcmlmeTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWx0ZXJuYXRlLW9wdCB0ZXh0LWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXNlbmRPVFAoKVwiPlJlc2VuZCBjb2RlPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFjay1idG4gb25seURlc2t0b3BcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2JhY2tzcGFjZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG5cblxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nU3dpdGNoQ2FzZT1cIidTSUdOVVBPVFAnXCIgc3R5bGU9XCJwYWRkaW5nOiAxNXB4O1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBoLTEwMFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydmdWxsU2VjdGlvbic6IGlzTW9iaWxlfVwiPlxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInRleHQtY2VudGVyIG9ubHlEZXNrdG9wXCI+e3tkYXRhPy5jb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvaDU+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+VmVyaWZ5IE9UUDwvaDI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+RW50ZXIgdGhlIDYtZGlnaXQgdGhhdCB3ZVxuICAgICAgICAgICAgICAgICAgICBoYXZlIHNlbnQgdmlhIHRoZSBwaG9uZSBudW1iZXIge3sgY291bnRyeUNvZGUgfX17eyBtb2JpbGVcbiAgICAgICAgICAgICAgICAgICAgfX0gYW5kIEUtbWFpbDwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3RwQ29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IF8gb2YgW10uY29uc3RydWN0b3IoNik7IGxldCBpZHggPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cIm90cFwiIG1heD1cIjFcIiBbaWRdPVwiJ290cF8nK2lkeFwiIFsobmdNb2RlbCldPVwib3RwRGF0YVtpZHhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwibW92ZSgkZXZlbnQsIGlkeClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ0biBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwidmVyaWZ5U2lnbnVwT1RQKClcIj5WZXJpZnk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsdGVybmF0ZS1vcHQgdGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVzZW5kT1RQKClcIj5SZXNlbmQgY29kZTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlLWJ0biBvbmx5RGVza3RvcFwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhY2stYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9iYWNrc3BhY2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG5cblxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdTd2l0Y2hDYXNlPVwiJ0NSRUFURVBBU1NXT1JEJ1wiIHN0eWxlPVwicGFkZGluZzogMTVweDtcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgaC0xMDBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZnVsbFNlY3Rpb24nOiBpc01vYmlsZX1cIj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBvbmx5RGVza3RvcFwiPnt7ZGF0YT8uY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2g1PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5DcmVhdGUgYW4gQWNjb3VudDwvaDI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhc3Mtc2lnbmluXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXNzd29yZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj4gTW9iaWxlIE51bWJlciA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImNvdW50cnljb2RlXCIgWyhuZ01vZGVsKV09XCJ0aGlzLnBheWxvYWQuY291bnRyeUNvZGVcIiBwbGFjZWhvbGRlcj1cIiArOTFcIiBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cImNvdW50cnlDb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwibV9udW1cIiBbKG5nTW9kZWwpXT1cInRoaXMucGF5bG9hZC5tb2JpbGVcIiB0eXBlPVwidGV4dFwiICAoa2V5cHJlc3MpPVwidmFsaWRhdGVOdW1iZXIoJGV2ZW50KVwiICBtYXRJbnB1dCByZXF1aXJlZCAjbW9iaWxlQ2hlY2s9XCJuZ01vZGVsXCIgb25LZXlQcmVzcz1cImlmKHRoaXMudmFsdWUubGVuZ3RoPT0xNSkgcmV0dXJuIGZhbHNlO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybj1cIl5bNi05XVxcZHs5fSR8XlsxLTldXFxkezl9JFwiIHBsYWNlaG9sZGVyPVwiIE1vYmlsZVwiIG1hdElucHV0IFsobmdNb2RlbCldPVwibW9iaWxlbnVtYmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+IEVtYWlsIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIFsobmdNb2RlbCldPVwicGF5bG9hZC5lbWFpbFwiICAgY2xhc3M9XCJwYXNzLWZpZWxkXCIgIHBsYWNlaG9sZGVyPVwiRS1tYWlsXCIgKG5nTW9kZWxDaGFuZ2UpPVwiaXNFbWFpbFZhbGlkKHBheWxvYWQuZW1haWwpXCI+XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInBhc3N3b3JkVmFsaWRhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+IE5ldyBQYXNzd29yZCA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInRoaXMucGF5bG9hZC5wYXNzd29yZFwiIGNsYXNzPVwicGFzcy1maWVsZFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgTmV3IHBhc3N3b3JkXCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRWYWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggKGNsaWNrKT1cIm5ld1Bhc3N3b3JkSGlkZSA9ICFuZXdQYXNzd29yZEhpZGVcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleWUtaWNvblwiPnt7bmV3UGFzc3dvcmRIaWRlID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiID4gQ29uZmlybSBQYXNzd29yZCA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInBhc3MtZmllbGRcIiBwbGFjZWhvbGRlcj1cIiBDb25maXJtIHBhc3N3b3JkXCIgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJjb25maXJtUGFzc1wiIChuZ01vZGVsQ2hhbmdlKT1cImlzQ29uZmlybVBBc3N3b3JkVmFsaWQoY29uZmlybVBhc3MpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdFN1ZmZpeCAoY2xpY2spPVwiUGFzc3dvcmRIaWRlID0gIVBhc3N3b3JkSGlkZVwiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV5ZS1pY29uXCI+e3tQYXNzd29yZEhpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhc3N3b3JkLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxyZWFkeSBoYXZlIGFuIGFjY291bnQ/XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9wZW5Mb2dpbigpXCIgY2xhc3M9XCJiYWNrVG9Mb2dpblwiPkxvZ2luPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWduaW5cIiAoY2xpY2spPVwiY3JlYXRlUGFzc3dvcmQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2lnbmluLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJjb25maXJtIHx8IGVtYWlsVmFsaWRcIiA+U2lnbnVwPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L3NlY3Rpb24+ICBcbiAgICAgICAgPC9uZy1jb250YWluZXI+IFxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG4gb25seURlc2t0b3BcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiYWNrLWJ0biBvbmx5RGVza3RvcFwiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYmFja3NwYWNlPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICBcblxuPC9uZy1jb250YWluZXI+XG5cblxuPG5neC1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzQwdmgnLFxuICAgICdib3JkZXItcmFkaXVzJzogJzEwcHgnLFxuICAgICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXG4gICAgJ3JpZ2h0JzogJzVweCdcbiAgfVwiPlxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxuPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIlxuICAgIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlcz8uZGV2aWRlcj8uZGlzcGxheVwiPlxuICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGVzPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdCB9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cbjwvZGl2PiJdfQ==
|
|
434
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRlLXVzZXIvYXV0aGVudGljYXRlLXVzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUE0QyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJakUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcs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QkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVzZXJCYXNpY0luZm9Db21wb25lbnQgfSBmcm9tICcuLi91c2VyLWJhc2ljLWluZm8vdXNlci1iYXNpYy1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIElucHV0VGV4dE1vZGVsLCBTdHlsZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWxcIjtcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcbmltcG9ydCB7IE1BVF9CT1RUT01fU0hFRVRfREFUQSwgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGV2aWNlSW5mbywgVXNlciB9IGZyb20gJy4uLy4uL3N0eWxlcy91c2VyLm1vZGFsJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgU3ZnRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL3N2Zy1kaXZpZGVyL3N2Zy1kaXZpZGVyLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBBdXRoZW50aWNhdGVTZWN0aW9uTW9kZWwge1xuICBpZDogc3RyaW5nO1xuICBjb250ZW50OiBBdXRoZW50aWNhdGVDb250ZW50TW9kZWwsXG4gIHN0eWxlczogU3R5bGVzTW9kZWwsXG4gIGFjdGlvbjogQWN0aW9uTW9kZWwsXG4gIHR5cGU6ICdTVEFUSUMnIHwgJ0VfQ09NTUVSQ0UnXG59XG5pbnRlcmZhY2UgQXV0aGVudGljYXRlQ29udGVudE1vZGVsIHtcbiAgc2l0ZU5hbWU6IElucHV0VGV4dE1vZGVsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLWF1dGhlbnRpY2F0ZS11c2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIFRvYXN0TW9kdWxlLFxuICAgIEhvdmVyRGlyZWN0aXZlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAvLyBGb3JtR3JvdXAsXG4gICAgLy8gRm9ybUJ1aWxkZXIsXG4gICAgLy8gVmFsaWRhdG9ycyxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFN2Z0RpdmlkZXJDb21wb25lbnRcblxuXG4gIF0sXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2F1dGhlbnRpY2F0ZS11c2VyLmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE/OiBBdXRoZW50aWNhdGVTZWN0aW9uTW9kZWw7XG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcblxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3RwRGF0YSA9IFssICwgLCAsICxdO1xuICBwdWJsaWMgb3RwU3RyaW5nOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgU2lnbnVwT3RwU3RyaW5nOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgc2NyZWVuOiAnTE9HSU4nIHwgJ09UUCcgfCAnUEFTU1dPUkQnIHwgJ0NSRUFURVBBU1NXT1JEJyB8ICdTSUdOVVBPVFAnID0gJ0xPR0lOJztcbiAgcHVibGljIG1vYmlsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBtb2JpbGVudW1iZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgZW1haWxlbnRlcmVkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGNvdW50cnlDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIFBhc3N3b3JkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGNvbmZpcm1QYXNzOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGJ1c2luZXNzSWQ6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKTtcbiAgLy8gY29uc3QgYnVzaW5lc3NJZDogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpID8/ICcnO1xuXG4gIHB1YmxpYyBidXR0b25Mb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBtYXREYXRhOiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfQk9UVE9NX1NIRUVUX0RBVEEpIHB1YmxpYyBib3R0b21zaGVldERhdGE6IGFueSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXV0aGVudGljYXRlVXNlckNvbXBvbmVudD4sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBib3R0b21zaGVldFJlZjogTWF0Qm90dG9tU2hlZXRSZWY8QXV0aGVudGljYXRlVXNlckNvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvbiA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcGFzc3dvcmRWYWxpZDogWycnLCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsICAgICAgICAgICAvLyBQYXNzd29yZCBpcyByZXF1aXJlZFxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSwgICAgICAgIC8vIE1pbmltdW0gbGVuZ3RoIDggY2hhcmFjdGVyc1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL1tBLVpdLyksICAgIC8vIEF0IGxlYXN0IG9uZSB1cHBlcmNhc2UgbGV0dGVyXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXFxkLyksICAgICAgIC8vIEF0IGxlYXN0IG9uZSBkaWdpdFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL1shQCMkJV4mKl0vKSAvLyBBdCBsZWFzdCBvbmUgc3BlY2lhbCBjaGFyYWN0ZXJcbiAgICAgIF1dXG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLmVtYWlsOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSksXG5cbiAgfVxuICBnZXQgcGFzc3dvcmRWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXNzd29yZFZhbGlkYXRpb24uZ2V0KCdwYXNzd29yZFZhbGlkJyk7XG4gIH1cblxuICBzdHlsZXM6IGFueTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuXG4gICAgaWYgKHRoaXMubWF0RGF0YSlcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMubWF0RGF0YTtcblxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHJlc3BvbnNlO1xuICAgIH0pXG4gIH1cblxuICBwYXNzd29yZFZhbGlkYXRpb246IEZvcm1Hcm91cDtcblxuXG4gIGxvZ2luOiBib29sZWFuID0gdHJ1ZTtcbiAgc2lnbnVwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgb3BlblNpZ251cCgpIHtcbiAgICB0aGlzLnNjcmVlbiA9IFwiQ1JFQVRFUEFTU1dPUkRcIjtcbiAgICB0aGlzLnNpZ251cCA9IHRydWU7XG4gICAgdGhpcy5sb2dpbiA9IGZhbHNlO1xuXG4gIH1cbiAgb3BlbkxvZ2luKCkge1xuICAgIHRoaXMuc2NyZWVuID0gXCJMT0dJTlwiXG4gICAgdGhpcy5sb2dpbiA9IHRydWU7XG4gICAgdGhpcy5zaWdudXAgPSBmYWxzZTtcbiAgfVxuICBwYXNzU2NyZWVuKCkge1xuICAgIHRoaXMuc2NyZWVuID0gXCJQQVNTV09SRFwiXG4gIH1cbiAgZW1haWxWYWxpZDogYm9vbGVhbiA9IHRydWVcbiAgY29uZmlybTogYm9vbGVhbiA9IHRydWU7XG4gIGlzRW1haWxWYWxpZChlbWFpbDogc3RyaW5nIHwgbnVsbCkge1xuXG5cbiAgICBpZiAoZW1haWw/LmluY2x1ZGVzKFwiQFwiKSAmJiBlbWFpbD8uaW5jbHVkZXMoXCIuY29tXCIpIHx8IChlbWFpbD8ubGVuZ3RoID09IDApKSB7XG4gICAgICB0aGlzLmVtYWlsVmFsaWQgPSBmYWxzZVxuICAgIH1cbiAgfVxuICBpc0NvbmZpcm1QQXNzd29yZFZhbGlkKGNvbmZpcm1wYXNzOiBzdHJpbmcgfCBudWxsKSB7XG5cblxuICAgIGlmIChjb25maXJtcGFzcyA9PSB0aGlzLnBheWxvYWQucGFzc3dvcmQpIHtcbiAgICAgIHRoaXMuY29uZmlybSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBtb3ZlKGV2ZW50OiBhbnksIGlkeDogbnVtYmVyKSB7XG5cbiAgICBpZiAoaXNOYU4oTnVtYmVyKGV2ZW50LmtleSkpICYmIGV2ZW50LmNvZGUgIT0gXCJCYWNrc3BhY2VcIilcbiAgICAgIHJldHVybjtcblxuICAgIGlmIChldmVudC5jb2RlICE9IFwiQmFja3NwYWNlXCIpIHtcbiAgICAgIHRoaXMub3RwRGF0YVtpZHhdID0gZXZlbnQua2V5O1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJvdHBfXCIgKyAoaWR4ICsgMSkpPy5mb2N1cygpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuY29kZSA9PSBcIkJhY2tzcGFjZVwiICYmICF0aGlzLm90cERhdGFbaWR4XSkge1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJvdHBfXCIgKyAoaWR4IC0gMSkpPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuICBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5kaWFsb2dSZWYpXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxuICAgICAgdGhpcy5ib3R0b21zaGVldFJlZi5kaXNtaXNzKCk7XG4gIH1cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMucmVzZXRWYWx1ZSgpO1xuICAgIHRoaXMuc2NyZWVuID0gXCJMT0dJTlwiO1xuICB9XG4gIHByaXZhdGUgcmVzZXRWYWx1ZSgpIHtcbiAgICB0aGlzLm90cFN0cmluZyA9ICcnO1xuICAgIHRoaXMub3RwRGF0YSA9IFssICwgLCAsICxdO1xuICB9XG5cbiAgLy8gZ2VuZXJhdGVPVFAoKSB7XG4gIC8vICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcbiAgLy8gICB0aGlzLnJlc3RTZXJ2aWNlLmdlbmVyYXRlT1RQKHRoaXMubW9iaWxlID8/IFwiXCIsIHRoaXMuY291bnRyeUNvZGUgPz8gXCJcIikuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAvLyAgICAgdGhpcy5zY3JlZW4gPSBcIk9UUFwiO1xuICAvLyAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gIC8vICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAgU2VudCcsIGRldGFpbDogJ09UUCBzZW50IHRvIG1vYmlsZS4gVmFsaWQgZm9yIDMgbWlucycsIGxpZmU6IDEwMDAwIH0pO1xuICAvLyAgIH0sIChlcnJvcikgPT4ge1xuICAvLyAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gIC8vICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnT1RQIFJlcXVlc3QnLCBkZXRhaWw6IGVycm9yPy5lcnJvcj8ubWVzc2FnZSwgbGlmZTogMTAwMDAgfSk7XG4gIC8vICAgfSlcbiAgLy8gfVxuXG5cbiAgZ2VuZXJhdGVPVFAoKSB7XG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdlbmVyYXRlT1RQKHRoaXMubW9iaWxlID8/IFwiXCIsIHRoaXMuY291bnRyeUNvZGUgPz8gXCJcIikuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuc2NyZWVuID0gXCJPVFBcIjtcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIHN1bW1hcnk6ICdPVFAgU2VudCcsXG4gICAgICAgICAgZGV0YWlsOiAnT1RQIHNlbnQgdG8gbW9iaWxlLiBWYWxpZCBmb3IgMyBtaW5zJyxcbiAgICAgICAgICBsaWZlOiAxMDAwMFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcblxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgc3VtbWFyeTogJ09UUCBSZXF1ZXN0JyxcbiAgICAgICAgICBkZXRhaWw6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICBsaWZlOiAxMDAwMFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZXJyb3IgbWVzc2FnZSBpbmRpY2F0ZXMgXCJVc2VyIG5vdCBmb3VuZFwiXG4gICAgICAgIGlmIChlcnJvck1lc3NhZ2UgPT09IFwiVXNlciBOb3QgUmVnaXN0ZXJlZCwgUGxlYXNlIFNpZ251cCBGaXJzdC5cIikge1xuICAgICAgICAgIHRoaXMuc2NyZWVuID0gXCJDUkVBVEVQQVNTV09SRFwiO1xuICAgICAgICAgIC8vIENsb3NlIHRoZSB3aW5kb3cgb3IgcGVyZm9ybSB0aGUgZGVzaXJlZCBhY3Rpb25cbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwYXNzd29yZDogYW55ID0gJyAnXG4gIFBhc3N3b3JkSGlkZSA9IHRydWU7XG4gIG5ld1Bhc3N3b3JkSGlkZSA9IHRydWU7XG4gIG1fY2xpY2tlZDogYm9vbGVhbiA9IHRydWU7XG4gIGVfY2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBtb2JpbGVfY2xpY2soKSB7XG4gICAgdGhpcy5tX2NsaWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuZV9jbGlja2VkID0gZmFsc2U7XG5cbiAgfVxuICBlbWFpbF9jbGljaygpIHtcbiAgICB0aGlzLmVfY2xpY2tlZCA9IHRydWU7XG4gICAgdGhpcy5tX2NsaWNrZWQgPSBmYWxzZTtcblxuICB9XG4gIHZlcmlmeU9UUCgpIHtcblxuICAgIGNvbnN0IGRldmljZUluZm86IERldmljZUluZm8gfCBudWxsID0ge1xuICAgICAgZmlyZWJhc2VUb2tlbjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmYlRva2VuXCIpID8/IFwiXCJcbiAgICB9O1xuXG4gICAgdGhpcy5vdHBTdHJpbmcgPSBcIlwiO1xuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5vdHBEYXRhLmZvckVhY2goKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGlkeDogbnVtYmVyKSA9PiB0aGlzLm90cFN0cmluZyArPSAodmFsdWUgPz8gXCJcIikpO1xuICAgIHRoaXMucmVzdFNlcnZpY2UudmVyaWZ5T1RQKHRoaXMubW9iaWxlID8/IFwiXCIsIHRoaXMub3RwU3RyaW5nLCBkZXZpY2VJbmZvKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRVc2VyKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVBbGxEYXRhKCk7XG4gICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwiU1VDQ0VTU1wiKTtcbiAgICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxuICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xuXG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgIGljb246IFwic3VjY2Vzc1wiLFxuICAgICAgICB0aXRsZTogXCJIdXJyYXlcIixcbiAgICAgICAgdGV4dDogXCJZb3VyIGFjY291bnQgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWRcIixcbiAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogISh1c2VyRGV0YWlscy5jb250YWN0Py5uYW1lPy5sZW5ndGggPiAwKSxcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiSSBsb3ZlZCBpdFwiLFxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIkZpbGwgb3RoZXIgYmFzaWMgZGV0YWlsc1wiLFxuICAgICAgICBjYW5jZWxCdXR0b25Db2xvcjogXCIjOTI4YzhjXCIsXG4gICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcblxuICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJTVUNDRVNTXCIpO1xuICAgICAgICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxuICAgICAgICAgICAgdGhpcy5ib3R0b21zaGVldFJlZi5kaXNtaXNzKFwiU1VDQ0VTU1wiKTtcblxuICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5pc0Rpc21pc3NlZCkge1xuICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKFwiU1VDQ0VTU1wiKTtcbiAgICAgICAgICBpZiAodGhpcy5ib3R0b21zaGVldFJlZilcbiAgICAgICAgICAgIHRoaXMuYm90dG9tc2hlZXRSZWYuZGlzbWlzcyhcIlNVQ0NFU1NcIik7XG4gICAgICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihVc2VyQmFzaWNJbmZvQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBoZWlnaHQ6ICc1MHZoJyxcbiAgICAgICAgICAgIHdpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCA+IDQ3NSA/ICc0MHZ3JyA6ICc5NXZ3JyxcbiAgICAgICAgICAgIG1heFdpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCA+IDQ3NSA/ICcxMDB2dycgOiAnODB2dycsXG4gICAgICAgICAgICBkYXRhOiB7fVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBPVFAnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgdmFsaWQgb3RwJyB9KTtcbiAgICB9KVxuICB9XG5cblxuICB2ZXJpZnlTaWdudXBPVFAoKSB7XG5cbiAgICBjb25zdCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvIHwgbnVsbCA9IHtcbiAgICAgIGZpcmViYXNlVG9rZW46IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmJUb2tlblwiKSA/PyBcIlwiXG5cbiAgICB9O1xuXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm90cERhdGEuZm9yRWFjaCgodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCwgaWR4OiBudW1iZXIpID0+IHRoaXMuU2lnbnVwT3RwU3RyaW5nICs9ICh2YWx1ZSA/PyBcIlwiKSk7XG4gICAgbGV0IHZlcmlmeVNpZ25EYXRhID0ge1xuICAgICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxuICAgICAgbW9iaWxlOiB0aGlzLnBheWxvYWQubW9iaWxlLFxuICAgICAgZW1haWw6IHRoaXMucGF5bG9hZC5lbWFpbCxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBheWxvYWQucGFzc3dvcmQsXG4gICAgICBjb3VudHJ5Q29kZTogdGhpcy5wYXlsb2FkLmNvdW50cnlDb2RlLFxuICAgICAgZW50ZXJlZE90cDogdGhpcy5TaWdudXBPdHBTdHJpbmdcbiAgICB9XG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlTaWdudXBPVFAodmVyaWZ5U2lnbkRhdGEpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcbiAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJTVUNDRVNTXCIpO1xuICAgICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXG4gICAgICAgIHRoaXMuYm90dG9tc2hlZXRSZWYuZGlzbWlzcyhcIlNVQ0NFU1NcIik7XG5cbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgaWNvbjogXCJzdWNjZXNzXCIsXG4gICAgICAgIHRpdGxlOiBcIkh1cnJheVwiLFxuICAgICAgICB0ZXh0OiBcIllvdXIgYWNjb3VudCBzdWNjZXNzZnVsbHkgY3JlYXRlZFwiLFxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiAhKHVzZXJEZXRhaWxzLmNvbnRhY3Q/Lm5hbWU/Lmxlbmd0aCA+IDApLFxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCJJIGxvdmVkIGl0XCIsXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiRmlsbCBvdGhlciBiYXNpYyBkZXRhaWxzXCIsXG4gICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiBcIiM5MjhjOGNcIixcbiAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuXG4gICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShcIlNVQ0NFU1NcIik7XG4gICAgICAgICAgaWYgKHRoaXMuYm90dG9tc2hlZXRSZWYpXG4gICAgICAgICAgICB0aGlzLmJvdHRvbXNoZWV0UmVmLmRpc21pc3MoXCJTVUNDRVNTXCIpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmlzRGlzbWlzc2VkKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKVxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoXCJTVUNDRVNTXCIpO1xuICAgICAgICAgIGlmICh0aGlzLmJvdHRvbXNoZWV0UmVmKVxuICAgICAgICAgICAgdGhpcy5ib3R0b21zaGVldFJlZi5kaXNtaXNzKFwiU1VDQ0VTU1wiKTtcbiAgICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKFVzZXJCYXNpY0luZm9Db21wb25lbnQsIHtcbiAgICAgICAgICAgIGhlaWdodDogJzUwdmgnLFxuICAgICAgICAgICAgd2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzQwdncnIDogJzk1dncnLFxuICAgICAgICAgICAgbWF4V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzEwMHZ3JyA6ICc4MHZ3JyxcbiAgICAgICAgICAgIGRhdGE6IHt9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnVXNlciBhbHJlYWR5IGV4aXN0cycgfSlcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBPVFAnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgdmFsaWQgb3RwJyB9KTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8vIGNvdW50cnlDb2RlczogYW55W10gPSBbXTtcbiAgLy8gZ2V0QWxsQ291bnRyaWVzKCkge1xuICAvLyAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCkuc3Vic2NyaWJlKFxuICAvLyAgICAgKHJlczogYW55KSA9PiB7XG4gIC8vICAgICAgIHRoaXMuY291bnRyeUNvZGVzID0gcmVzLmRhdGE/LmRhdGEgPz8gW107XG5cbiAgLy8gICAgICAgY29uc3Qgc2hvcnRDb2RlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oU3RvcmFnZUtleXMuU0hPUlRfQ09ERSk7XG5cbiAgLy8gICAgICAgbGV0IGRpYWxDb2RlO1xuICAvLyAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oU3RvcmFnZUtleXMuZGlhbENvZGVEcm9wZG93bikgPT09ICd0cnVlJykge1xuICAvLyAgICAgICAgIGRpYWxDb2RlID0gdHJ1ZVxuICAvLyAgICAgICB9XG4gIC8vICAgICAgIGVsc2Uge1xuICAvLyAgICAgICAgIGRpYWxDb2RlID0gZmFsc2VcbiAgLy8gICAgICAgfVxuXG4gIC8vICAgICAgIGxldCBzaG9ydENvZGVJbmRleCA9IC0xO1xuXG4gIC8vICAgICAgIGlmIChzaG9ydENvZGUpIHtcbiAgLy8gICAgICAgICBzaG9ydENvZGVJbmRleCA9IHRoaXMuY291bnRyeUNvZGVzLmZpbmRJbmRleCgoYzogYW55KSA9PiBjLnNob3J0Q29kZT8udG9Mb3dlckNhc2UoKSA9PT0gc2hvcnRDb2RlLnRvTG93ZXJDYXNlKCkpXG4gIC8vICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgc2hvcnRDb2RlSW5kZXggPSB0aGlzLmNvdW50cnlDb2Rlcy5maW5kSW5kZXgoKGM6IGFueSkgPT4gYy5zaG9ydENvZGU/LnRvTG93ZXJDYXNlKCkgPT09ICdpbicpO1xuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgaWYgKHNob3J0Q29kZUluZGV4ID4gLTEpIHtcbiAgLy8gICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyeUNvZGVzW3Nob3J0Q29kZUluZGV4XTtcbiAgLy8gICAgICAgICB0aGlzLmRpc2FibGVDb3VudHJ5Q29kZURyb3Bkb3duID0gZGlhbENvZGUgPyB0cnVlIDogZmFsc2U7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0sXG4gIC8vICAgICAoZXJyKSA9PiB7XG4gIC8vICAgICAgIHRoaXMud2ViU2VydmljZS5vcGVuU25hY2soXG4gIC8vICAgICAgICAgYCR7ZXJyLmVycm9yLm1lc3NhZ2V9YCxcbiAgLy8gICAgICAgICAnQ2xvc2UnLFxuICAvLyAgICAgICApXG4gIC8vICAgICB9XG4gIC8vICAgKVxuICAvLyB9XG5cbiAgcGF5bG9hZDogYW55ID0ge1xuICAgIGJ1c2luZXNzSWQ6IHRoaXMuYnVzaW5lc3NJZCxcbiAgICBtb2JpbGU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICBwYXNzd29yZDogJycsXG4gICAgY291bnRyeUNvZGU6ICcnXG4gIH1cbiAgY3JlYXRlUGFzc3dvcmQoKSB7XG4gICAgdGhpcy5zY3JlZW4gPSBcIlNJR05VUE9UUFwiLFxuICAgICAgdGhpcy5yZXN0U2VydmljZS5zZW5kU2lnbnVwT1RQKHRoaXMucGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuXG4gICAgICB9KVxuICB9XG5cblxuICBwYXNzRGF0YTogYW55ID0ge1xuICAgIGJ1c2luZXNzSWQ6IHRoaXMuYnVzaW5lc3NJZCxcbiAgICBlbWFpbDogJycsXG4gICAgcGFzc3dvcmQ6ICcnXG4gIH1cbiAgc2lnbmluUGFzc3dvcmQoKSB7XG5cbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnNpZ25pblBhc3N3b3JkKHRoaXMucGFzc0RhdGEpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcblxuICAgIH0sXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdJbnZhbGlkIGNyZWRlbnRpYWxzJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIHZhbGlkIGNyZWRlbnRpYWxzJyB9KTtcbiAgICAgIH0pXG4gIH1cblxuICB2YWxpZGF0ZU51bWJlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYXJDb2RlID0gZXZlbnQuY2hhckNvZGU7ICAvLyBHZXQgdGhlIGtleSBjb2RlIG9mIHRoZSBwcmVzc2VkIGtleVxuICAgIGlmIChjaGFyQ29kZSA8IDQ4IHx8IGNoYXJDb2RlID4gNTcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ICAvLyBCbG9jayBpbnB1dCBpZiBpdCdzIG5vdCBhIG51bWJlciAoMC05KVxuICAgIH1cbiAgfVxuXG4gIGVkaXRTZWN0aW9uKCkge1xuXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcbiAgICAgIHJldHVybjtcblxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgcmVzZW5kT1RQKCkge1xuICAgIHRoaXMucmVzdFNlcnZpY2UucmVzZW5kT1RQKHRoaXMucGF5bG9hZC5tb2JpbGUgPz8gXCJcIiwgdGhpcy5wYXlsb2FkLmNvdW50cnlDb2RlID8/IFwiXCIpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMub3RwU3RyaW5nID0gXCJcIjtcbiAgICB9KVxuICB9XG4gIC8vIHB1YmxpYyByZXNlbmRzaWdudXBPVFAoKSB7XG4gIC8vICAgdGhpcy5yZXN0U2VydmljZS5yZXNlbmRPVFAodGhpcy5wYXlsb2FkLm1vYmlsZSA/PyBcIlwiLCB0aGlzLnBheWxvYWQuY291bnRyeUNvZGUgPz8gXCJcIikuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XG4gIC8vICAgICB0aGlzLm90cFN0cmluZyA9IFwiXCI7XG4gIC8vICAgfSlcbiAgLy8gfVxuICBnZXQgaXNNb2JpbGVWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2JpbGU/LnRvU3RyaW5nKCkubGVuZ3RoID09IDEwO1xuICB9XG4gIGdldCBpc01vYmlsZSgpIHtcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gNDc1O1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgIDxkaXYgW3N0eWxlLmhlaWdodC52aF09XCJpc01vYmlsZSA/ICc0MCcgOiAnJ1wiIFtpZF09XCJkYXRhPy5pZFwiICBzaW1wb0hvdmVyXG4gICAgICAgIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwic2NyZWVuXCI+XG4gICAgICAgICAgICA8c2VjdGlvbiBzdHlsZT1cInBhZGRpbmc6IDE0cHg7XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIGgtMTAwXCJcbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0xPR0lOJ1wiIFtuZ0NsYXNzXT1cInsnZnVsbFNlY3Rpb24nOiBpc01vYmlsZX1cIj5cbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBvbmx5RGVza3RvcFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ZGF0YT8uY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2g1PlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5XZWxjb21lPC9oMj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXItMVwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpblwiIChjbGljayk9XCJvcGVuTG9naW4oKVwiID48YnV0dG9uIGNsYXNzPVwibG9naW5CdXR0b24tMVwiIFtjbGFzcy5hY3RpdmUtY2xzXT1cImxvZ2luXCI+TG9naW48L2J1dHRvbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpblwiIChjbGljayk9XCJvcGVuU2lnbnVwKClcIiA+PGJ1dHRvbiBjbGFzcz1cImxvZ2luQnV0dG9uLTJcIiBbY2xhc3MuYWN0aXZlLWNsc109XCJzaWdudXBcIj5TaWdudXA8L2J1dHRvbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZV9lbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibW9iaWxlXCIgKGNsaWNrKT1cIm1vYmlsZV9jbGljaygpXCIgW2NsYXNzLmFjdGl2ZS1jbGFzc109XCJtX2NsaWNrZWRcIj5Mb2dpbiB1c2luZyBPVFA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1vYmlsZVwiIChjbGljayk9XCJlbWFpbF9jbGljaygpXCIgW2NsYXNzLmFjdGl2ZS1jbGFzc109XCJlX2NsaWNrZWRcIj5Mb2dpbiB1c2luZyBQYXNzd29yZDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJNb2JpbGUgTnVtYmVyXCIgWyhuZ01vZGVsKV09XCJtb2JpbGVcIiAqbmdJZj1cIm1fY2xpY2tlZFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBwbGFjZWhvbGRlcj1cIkUtbWFpbFwiIFsobmdNb2RlbCldPVwicGFzc0RhdGEuZW1haWxcIiAobmdNb2RlbENoYW5nZSk9XCJpc0VtYWlsVmFsaWQocGFzc0RhdGEuZW1haWwpXCIgKm5nSWY9XCJlX2NsaWNrZWRcIj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInBhc3N3b3JkVmFsaWRhdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlX2NsaWNrZWRcIiBjbGFzcz1cInBhc3N3b3JkLWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwicGFzc3dvcmQtMlwiIHR5cGU9XCJwYXNzd29yZC0yXCIgcGxhY2Vob2xkZXI9XCJQYXNzd29yZFwiIFsobmdNb2RlbCldPVwicGFzc0RhdGEucGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFZhbGlkXCIgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggKGNsaWNrKT1cIlBhc3N3b3JkSGlkZSA9ICFQYXNzd29yZEhpZGVcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV5ZS1pY29uXCI+e3tQYXNzd29yZEhpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicGFzc3dvcmRcIiAqbmdJZj1cImVfY2xpY2tlZFwiPlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJwYXNzLWZpZWxkXCIgWyhuZ01vZGVsKV09XCJ0aGlzLnBhc3NEYXRhLnBhc3N3b3JkXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBwYXNzd29yZFwiIG1hdElucHV0ID4gXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4IChjbGljayk9XCJQYXNzd29yZEhpZGUgPSAhUGFzc3dvcmRIaWRlXCIgc3R5bGU9XCJjdXJzb3I6cG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleWUtaWNvblwiPnt7UGFzc3dvcmRIaWRlID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwibV9jbGlja2VkXCI+WW91IHdpbGwgcmVjZWl2ZSBhbiBPVFAgaW5cbiAgICAgICAgICAgICAgICAgICAgV2hhdHNBcHA8L3A+XG4gICAgICAgICAgICAgICAgPCEtLSA8cCBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAqbmdJZj1cImVfY2xpY2tlZFwiPllvdSB3aWxsIHJlY2VpdmUgYW4gT1RQIGluXG4gICAgICAgICAgICAgICAgICAgIEVtYWlsPC9wPiAtLT5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtX2NsaWNrZWRcIiBjbGFzcz1cImFjdGlvbi1idG4gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cImdlbmVyYXRlT1RQKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc01vYmlsZVZhbGlkXCIgKm5nSWY9XCIhYnV0dG9uTG9hZGluZ1wiPkxvZ2luPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiYnV0dG9uTG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+T1RQIFNlbnQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vaS5pbWdoaXBwby5jb20vZmlsZXMvM1NjeUsxNzI2Mjk0NDUzLmdpZlwiIGFsdD1cIlwiIHN0eWxlPVwiaGVpZ2h0OiAzNXB4O1wiPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVfY2xpY2tlZFwiIGNsYXNzPVwiYWN0aW9uLWJ0biBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWJ1dHRvbkxvYWRpbmdcIiBbZGlzYWJsZWRdPVwiZW1haWxWYWxpZCB8fCBwYXNzd29yZFZhbGlkYXRpb24uaW52YWxpZFwiIChjbGljayk9XCJzaWduaW5QYXNzd29yZCgpXCI+TG9naW48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKm5nSWY9XCJidXR0b25Mb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPkVtYWlsIFNlbnQ8L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2kuaW1naGlwcG8uY29tL2ZpbGVzLzNTY3lLMTcyNjI5NDQ1My5naWZcIiBhbHQ9XCJcIiBzdHlsZT1cImhlaWdodDogMzVweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImFsdGVybmF0ZS1vcHQgdGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlVzZSBlbWFpbFxuICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ1N3aXRjaENhc2U9XCInT1RQJ1wiIHN0eWxlPVwicGFkZGluZzogMTVweDtcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgaC0xMDBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZnVsbFNlY3Rpb24nOiBpc01vYmlsZX1cIj5cbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBvbmx5RGVza3RvcFwiPnt7ZGF0YT8uY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2g1PlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlZlcmlmeSBPVFA8L2gyPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPkVudGVyIHRoZSA2LWRpZ2l0IHRoYXQgd2VcbiAgICAgICAgICAgICAgICAgICAgaGF2ZSBzZW50IHZpYSB0aGUgcGhvbmUgbnVtYmVyICt7eyBjb3VudHJ5Q29kZSB9fXt7IG1vYmlsZVxuICAgICAgICAgICAgICAgICAgICB9fTwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3RwQ29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IF8gb2YgW10uY29uc3RydWN0b3IoNik7IGxldCBpZHggPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cIm90cFwiIG1heD1cIjFcIiBbaWRdPVwiJ290cF8nK2lkeFwiIFsobmdNb2RlbCldPVwib3RwRGF0YVtpZHhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwibW92ZSgkZXZlbnQsIGlkeClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ0biBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwidmVyaWZ5T1RQKClcIj5WZXJpZnk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsdGVybmF0ZS1vcHQgdGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVzZW5kT1RQKClcIj5SZXNlbmQgY29kZTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlLWJ0biBvbmx5RGVza3RvcFwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhY2stYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9iYWNrc3BhY2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuXG5cbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ1N3aXRjaENhc2U9XCInU0lHTlVQT1RQJ1wiIHN0eWxlPVwicGFkZGluZzogMTVweDtcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgaC0xMDBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZnVsbFNlY3Rpb24nOiBpc01vYmlsZX1cIj5cbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBvbmx5RGVza3RvcFwiPnt7ZGF0YT8uY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2g1PlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQtY2VudGVyXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlZlcmlmeSBPVFA8L2gyPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPkVudGVyIHRoZSA2LWRpZ2l0IHRoYXQgd2VcbiAgICAgICAgICAgICAgICAgICAgaGF2ZSBzZW50IHZpYSB0aGUgcGhvbmUgbnVtYmVyIHt7IGNvdW50cnlDb2RlIH19e3sgbW9iaWxlXG4gICAgICAgICAgICAgICAgICAgIH19IGFuZCBFLW1haWw8L3A+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm90cENvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBfIG9mIFtdLmNvbnN0cnVjdG9yKDYpOyBsZXQgaWR4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJvdHBcIiBtYXg9XCIxXCIgW2lkXT1cIidvdHBfJytpZHhcIiBbKG5nTW9kZWwpXT1cIm90cERhdGFbaWR4XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm1vdmUoJGV2ZW50LCBpZHgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idG4gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW0tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0blwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cInZlcmlmeVNpZ251cE9UUCgpXCI+VmVyaWZ5PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbHRlcm5hdGUtb3B0IHRleHQtY2VudGVyXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2VuZE9UUCgpXCI+UmVzZW5kIGNvZGU8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG4gb25seURlc2t0b3BcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWNrLWJ0biBvbmx5RGVza3RvcFwiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYmFja3NwYWNlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cblxuXG5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nU3dpdGNoQ2FzZT1cIidDUkVBVEVQQVNTV09SRCdcIiBzdHlsZT1cInBhZGRpbmc6IDE1cHg7XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIGgtMTAwXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Z1bGxTZWN0aW9uJzogaXNNb2JpbGV9XCI+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwidGV4dC1jZW50ZXIgb25seURlc2t0b3BcIj57e2RhdGE/LmNvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZX19PC9oNT5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+Q3JlYXRlIGFuIEFjY291bnQ8L2gyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXNzLXNpZ25pblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+IE1vYmlsZSBOdW1iZXIgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJjb3VudHJ5Y29kZVwiIFsobmdNb2RlbCldPVwidGhpcy5wYXlsb2FkLmNvdW50cnlDb2RlXCIgcGxhY2Vob2xkZXI9XCIgKzkxXCIgbWF0SW5wdXQgWyhuZ01vZGVsKV09XCJjb3VudHJ5Q29kZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIm1fbnVtXCIgWyhuZ01vZGVsKV09XCJ0aGlzLnBheWxvYWQubW9iaWxlXCIgdHlwZT1cInRleHRcIiAgKGtleXByZXNzKT1cInZhbGlkYXRlTnVtYmVyKCRldmVudClcIiAgbWF0SW5wdXQgcmVxdWlyZWQgI21vYmlsZUNoZWNrPVwibmdNb2RlbFwiIG9uS2V5UHJlc3M9XCJpZih0aGlzLnZhbHVlLmxlbmd0aD09MTUpIHJldHVybiBmYWxzZTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm49XCJeWzYtOV1cXGR7OX0kfF5bMS05XVxcZHs5fSRcIiBwbGFjZWhvbGRlcj1cIiBNb2JpbGVcIiBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cIm1vYmlsZW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhc3N3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPiBFbWFpbCA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBbKG5nTW9kZWwpXT1cInBheWxvYWQuZW1haWxcIiAgIGNsYXNzPVwicGFzcy1maWVsZFwiICBwbGFjZWhvbGRlcj1cIkUtbWFpbFwiIChuZ01vZGVsQ2hhbmdlKT1cImlzRW1haWxWYWxpZChwYXlsb2FkLmVtYWlsKVwiPlxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJwYXNzd29yZFZhbGlkYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhc3N3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPiBOZXcgUGFzc3dvcmQgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJ0aGlzLnBheWxvYWQucGFzc3dvcmRcIiBjbGFzcz1cInBhc3MtZmllbGRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIE5ldyBwYXNzd29yZFwiIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkVmFsaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0U3VmZml4IChjbGljayk9XCJuZXdQYXNzd29yZEhpZGUgPSAhbmV3UGFzc3dvcmRIaWRlXCIgc3R5bGU9XCJjdXJzb3I6cG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXllLWljb25cIj57e25ld1Bhc3N3b3JkSGlkZSA/ICd2aXNpYmlsaXR5X29mZicgOiAndmlzaWJpbGl0eSd9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhc3N3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiA+IENvbmZpcm0gUGFzc3dvcmQgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJwYXNzLWZpZWxkXCIgcGxhY2Vob2xkZXI9XCIgQ29uZmlybSBwYXNzd29yZFwiIG1hdElucHV0IFsobmdNb2RlbCldPVwiY29uZmlybVBhc3NcIiAobmdNb2RlbENoYW5nZSk9XCJpc0NvbmZpcm1QQXNzd29yZFZhbGlkKGNvbmZpcm1QYXNzKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggKGNsaWNrKT1cIlBhc3N3b3JkSGlkZSA9ICFQYXNzd29yZEhpZGVcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleWUtaWNvblwiPnt7UGFzc3dvcmRIaWRlID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXNzd29yZC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFscmVhZHkgaGF2ZSBhbiBhY2NvdW50P1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJvcGVuTG9naW4oKVwiIGNsYXNzPVwiYmFja1RvTG9naW5cIj5Mb2dpbjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lnbmluXCIgKGNsaWNrKT1cImNyZWF0ZVBhc3N3b3JkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNpZ25pbi1idXR0b25cIiBbZGlzYWJsZWRdPVwiY29uZmlybSB8fCBlbWFpbFZhbGlkXCIgPlNpZ251cDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9zZWN0aW9uPiAgXG4gICAgICAgIDwvbmctY29udGFpbmVyPiBcbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnRuIG9ubHlEZXNrdG9wXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFjay1idG4gb25seURlc2t0b3BcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2JhY2tzcGFjZTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gICAgXG5cbjwvbmctY29udGFpbmVyPlxuXG5cbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICc0MHZoJyxcbiAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcbiAgICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxuICAgICdyaWdodCc6ICc1cHgnXG4gIH1cIj5cbjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cbjxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIgW2Jhc2VaSW5kZXhdPVwiMTAwMDAwMDAwMDBcIiBbYXV0b1pJbmRleF09XCJ0cnVlXCJcbiAgICBbc2hvd1RyYW5zZm9ybU9wdGlvbnNdPVwiaXNNb2JpbGUgPyAndHJhbnNsYXRlWSgtMTAwJSknIDogJydcIj48L3AtdG9hc3Q+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZXM/LmRldmlkZXI/LmRpc3BsYXlcIj5cbiAgICA8c2ltcG8tc3ZnLWRpdmlkZXIgW2RpdmlkZXJUeXBlXT1cInN0eWxlcz8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIiBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXQgfVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG48L2Rpdj4iXX0=
|