@frontegg/angular 6.12.0 → 6.13.0-alpha.7274991440
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/bundles/frontegg-angular.umd.js +2 -2
- package/bundles/frontegg-angular.umd.js.map +1 -1
- package/esm2015/lib/frontegg-auth.service.js +3 -3
- package/fesm2015/frontegg-angular.js +2 -2
- package/fesm2015/frontegg-angular.js.map +1 -1
- package/lib/frontegg-auth.service.d.ts +2 -1
- package/lib/frontegg-auth.service.d.ts.map +1 -1
- package/package.json +2 -2
- package/CHANGELOG.md +0 -514
|
@@ -39,11 +39,11 @@ export class FronteggAuthService {
|
|
|
39
39
|
this.setLoginState = (state) => this.dispatchAction('setLoginState', state);
|
|
40
40
|
this.resetLoginState = () => this.dispatchAction('resetLoginState');
|
|
41
41
|
this.requestAuthorize = (firstTime) => this.dispatchAction('requestAuthorize', firstTime);
|
|
42
|
-
this.loginWithRedirect = (params, shouldRedirectToLogin = true, firstTime = false) => {
|
|
42
|
+
this.loginWithRedirect = (params, shouldRedirectToLogin = true, firstTime = false, loginDirectAction) => {
|
|
43
43
|
if (this.isHostedLoginCallbackRoute()) {
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
this.dispatchAction('requestHostedLoginAuthorizeV2', { additionalParams: params, shouldRedirectToLogin, firstTime });
|
|
46
|
+
this.dispatchAction('requestHostedLoginAuthorizeV2', { additionalParams: params, shouldRedirectToLogin, firstTime, loginDirectAction });
|
|
47
47
|
this.setState({ isLoading: true });
|
|
48
48
|
};
|
|
49
49
|
this.preLogin = (payload) => this.dispatchAction('preLogin', payload);
|
|
@@ -313,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
313
313
|
providedIn: 'root',
|
|
314
314
|
}]
|
|
315
315
|
}], ctorParameters: function () { return [{ type: i1.FronteggAppService }, { type: i2.Router }]; } });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlZ2ctYXBwL3NyYy9saWIvZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBdUNMLGFBQWEsR0FHZCxNQUFNLHVCQUF1QixDQUFDOzs7O0FBMkQvQixNQUFNLE9BQU8sbUJBQW1CO0lBOEg5QixZQUFvQixrQkFBc0MsRUFBVSxNQUFjO1FBQTlELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBN0gxRSxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBWSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBZSxDQUFDLENBQUM7UUFDNUcsaUNBQTRCLEdBQUcsSUFBSSxlQUFlLENBQXFDLEVBQXdDLENBQUMsQ0FBQztRQUNqSSxnQ0FBMkIsR0FBRyxJQUFJLGVBQWUsQ0FBb0MsRUFBdUMsQ0FBQyxDQUFDO1FBQzlILHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUE2QixFQUFnQyxDQUFDLENBQUM7UUFDekcsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQThCLEVBQWlDLENBQUMsQ0FBQztRQUM1RywrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsRUFBc0MsQ0FBQyxDQUFDO1FBQzNILHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUEwQixFQUE2QixDQUFDLENBQUM7UUFDaEcsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsRUFBMkIsQ0FBQyxDQUFDO1FBQzFGLHdCQUFtQixHQUFHLElB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LENBQUMsc0JBQXNCLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxlQUFlLEVBQUU7WUFDbkUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWSxFQUFFLE9BQWE7UUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDeEQsYUFBYTtRQUNiLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxhQUFhLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR00sMEJBQTBCO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ2hELE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLGFBQXRCLHNCQUFzQixjQUF0QixzQkFBc0IsR0FBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7O2lIQTNMVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZyb250ZWdnQXBwU2VydmljZSB9IGZyb20gJy4vZnJvbnRlZ2ctYXBwLnNlcnZpY2UnO1xuaW1wb3J0IEZhc3REZWVwRXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7XG4gIFJvbGVzU3RhdGUsXG4gIFRlbmFudHNTdGF0ZSxcbiAgQWNjb3VudFNldHRpbmdzU3RhdGUsXG4gIFNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVBheWxvYWQsXG4gIFNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXRQYXlsb2FkLFxuICBTYXZlU2VjdXJpdHlQb2xpY3lNZmFQYXlsb2FkLFxuICBQYXNzd29yZFBvbGljeVN0YXRlLFxuICBQYXNzd29yZEhpc3RvcnlQb2xpY3lTdGF0ZSxcbiAgTWZhUG9saWN5U3RhdGUsXG4gIENhcHRjaGFQb2xpY3lTdGF0ZSxcbiAgTG9ja291dFBvbGljeVN0YXRlLFxuICBQdWJsaWNQb2xpY3lTdGF0ZSxcbiAgR2xvYmFsUG9saWN5U3RhdGUsXG4gIFNlY3VyaXR5UG9saWN5U3RhdGUsXG4gIEFkZFVzZXJBcGlUb2tlblBheWxvYWQsXG4gIEFkZFRlbmFudEFwaVRva2VuUGF5bG9hZCxcbiAgQXBpVG9rZW5UeXBlLFxuICBBcGlUb2tlbnNTdGF0ZSxcbiAgQXBpU3RhdGVJbmRpY2F0b3IsXG4gIElTZXREZWxldGVVc2VyRGlhbG9nLFxuICBJU2V0QWRkVXNlckRpYWxvZyxcbiAgTG9hZFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkLFxuICBUZWFtU3RhdGUsXG4gIFRlYW1TdGF0ZUluZGljYXRvcixcbiAgTUZBU3RhdGUsXG4gIFNhdmVTU09Db25maWd1cmF0aW9uUGF5bG9hZCxcbiAgU1NPU3RhdGUsXG4gIFByb2ZpbGVTdGF0ZSxcbiAgU2F2ZVNTT0NvbmZpZ3VyYXRpb25GaWxlUGF5bG9hZCxcbiAgVXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzUGF5bG9hZCxcbiAgRGVsZXRlU2FtbEdyb3VwUGF5bG9hZCxcbiAgQ3JlYXRlU2FtbEdyb3VwUGF5bG9hZCxcbiAgU2F2ZVByb2ZpbGVQYXlsb2FkLFxuICBTaWduVXBTdGF0ZSxcbiAgRm9yZ290UGFzc3dvcmRTdGF0ZSxcbiAgQWNjZXB0SW52aXRhdGlvblN0YXRlLFxuICBBdXRoU3RhdGUsXG4gIFVzZXIsXG4gIGF1dGhTdG9yZU5hbWUsXG4gIExvZ2luU3RhdGUsXG4gIEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5U3RhdGUsXG59IGZyb20gJ0Bmcm9udGVnZy9yZWR1eC1zdG9yZSc7XG5pbXBvcnQge1xuICBJTG9naW4sXG4gIElMb2dpbldpdGhNZmEsXG4gIElQb3N0TG9naW4sXG4gIElQcmVMb2dpbixcbiAgSVJlY292ZXJNRkFUb2tlbixcbiAgSUFjdGl2YXRlQWNjb3VudCxcbiAgSUxvZ2luVmlhU29jaWFsTG9naW4sXG4gIElTZXRTb2NpYWxMb2dpbkVycm9yLFxuICBJUmVzZW5kQWN0aXZhdGlvbkVtYWlsLFxuICBJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3ksXG4gIElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneVJlc3BvbnNlLFxuICBJQWNjZXB0SW52aXRhdGlvbixcbiAgSUZvcmdvdFBhc3N3b3JkLFxuICBJUmVzZXRQYXNzd29yZCxcbiAgSUdldFVzZXJQYXNzd29yZENvbmZpZyxcbiAgSVNpZ25VcFVzZXIsXG4gIElDaGFuZ2VQYXNzd29yZCxcbiAgSU9pZGNQb3N0TG9naW4sXG4gIElWZXJpZnlNZmEsXG4gIElEaXNhYmxlTWZhLFxuICBJTG9hZFVzZXJzLFxuICBJVGVhbVVzZXIsXG4gIElBZGRVc2VyLFxuICBJVXBkYXRlVXNlcixcbiAgSURlbGV0ZVVzZXIsXG4gIElSZXNlbmRBY3RpdmF0aW9uTGluayxcbiAgSVNldHRpbmdzUmVzcG9uc2UsXG4gIElTd2l0Y2hUZW5hbnQsXG4gIElUZW5hbnRzUmVzcG9uc2UsXG4gIElBZGRSb2xlLFxuICBJUm9sZSxcbiAgSVVwZGF0ZVJvbGUsXG4gIElEZWxldGVSb2xlLFxuICBJQXR0YWNoUGVybWlzc2lvbnNUb1JvbGUsXG4gIElSZXNlbmRJbnZpdGF0aW9uTGluayxcbiAgSVJvbGVQZXJtaXNzaW9uLFxufSBmcm9tICdAZnJvbnRlZ2cvcmVzdC1hcGknO1xuaW1wb3J0IHR5cGUgeyBGcm9udGVnZ1N0YXRlLCBBY3RpdmF0ZUFjY291bnRTdGF0ZSwgU29jaWFsTG9naW5TdGF0ZSB9IGZyb20gJ0Bmcm9udGVnZy9yZWR1eC1zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbnRlcmZhY2UgQXV0aFN1YlN0YXRlcyB7XG4gIGZpZWxkOiBQYXJ0aWFsPGtleW9mIEF1dGhTdGF0ZT47XG4gIHN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBXaXRoQ2FsbGJhY2s8VCA9IHt9LCBSID0gYm9vbGVhbj4gPSBUICYge1xuICBjYWxsYmFjaz86IChkYXRhOiBSIHwgbnVsbCwgZXJyb3I/OiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBXaXRoU2lsZW50TG9hZDxUPiA9IFQgJiB7XG4gIHNpbGVudExvYWRpbmc/OiBib29sZWFuO1xufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZyb250ZWdnQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIGF1dGhTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZT4oeyBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLCBpc0xvYWRpbmc6IHRydWUgfSBhcyBBdXRoU3RhdGUpO1xuICBwcml2YXRlIGFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10pO1xuICBwcml2YXRlIGFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FjY291bnRTZXR0aW5nc1N0YXRlJ10pO1xuICBwcml2YXRlIGFjdGl2YXRlU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FjdGl2YXRlU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhY3RpdmF0ZVN0YXRlJ10pO1xuICBwcml2YXRlIGFwaVRva2Vuc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhcGlUb2tlbnNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10pO1xuICBwcml2YXRlIGZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydmb3Jnb3RQYXNzd29yZFN0YXRlJ10pO1xuICBwcml2YXRlIGxvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2xvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydsb2dpblN0YXRlJ10pO1xuICBwcml2YXRlIG1mYVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydtZmFTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ21mYVN0YXRlJ10pO1xuICBwcml2YXRlIHByb2ZpbGVTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10pO1xuICBwcml2YXRlIHJvbGVzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3JvbGVzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydyb2xlc1N0YXRlJ10pO1xuICBwcml2YXRlIHJvdXRlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncm91dGVzJ10+KHt9IGFzIEF1dGhTdGF0ZVsncm91dGVzJ10pO1xuICBwcml2YXRlIHNlY3VyaXR5UG9saWN5U3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NlY3VyaXR5UG9saWN5U3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10pO1xuICBwcml2YXRlIHNpZ25VcFN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzaWduVXBTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3NpZ25VcFN0YXRlJ10pO1xuICBwcml2YXRlIHNvY2lhbExvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NvY2lhbExvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10pO1xuICBwcml2YXRlIHNzb1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzc29TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Nzb1N0YXRlJ10pO1xuICBwcml2YXRlIHRlYW1TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10pO1xuICBwcml2YXRlIHRlbmFudHNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10pO1xuICBwcml2YXRlIHVzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3VzZXInXT4oe30gYXMgQXV0aFN0YXRlWyd1c2VyJ10pO1xuICBwcml2YXRlIGlzQXV0aGVudGljYXRlZFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10+KGZhbHNlKTtcbiAgcHJpdmF0ZSBpc0xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzTG9hZGluZyddPih0cnVlKTtcbiAgcHJpdmF0ZSBpc1NTT0F1dGhTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzU1NPQXV0aCddPihmYWxzZSk7XG4gIHByaXZhdGUgc3NvQUNTU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzc29BQ1MnXT4oJycpO1xuXG5cbiAgZ2V0QXV0aFN0YXRlKCk6IEF1dGhTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkuYXV0aDtcbiAgfVxuXG4gIGdldCBhdXRoU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhY2NlcHRJbnZpdGF0aW9uU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NlcHRJbnZpdGF0aW9uU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYWNjb3VudFNldHRpbmdzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNldHRpbmdzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFjdGl2YXRlU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY3RpdmF0ZVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhcGlUb2tlbnNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlUb2tlbnNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZm9yZ290UGFzc3dvcmRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGxvZ2luU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydsb2dpblN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5sb2dpblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBtZmFTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ21mYVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5tZmFTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcHJvZmlsZVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJvbGVzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydyb2xlc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5yb2xlc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByb3V0ZXNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3JvdXRlcyddPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzZWN1cml0eVBvbGljeVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc2VjdXJpdHlQb2xpY3lTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VjdXJpdHlQb2xpY3lTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2lnblVwU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzaWduVXBTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2lnblVwU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNvY2lhbExvZ2luU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zb2NpYWxMb2dpblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzc29TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Nzb1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zc29TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdGVhbVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy50ZWFtU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHRlbmFudHNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3RlbmFudHNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMudGVuYW50c1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB1c2VyJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndXNlciddPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdXNlcigpOiBBdXRoU3RhdGVbJ3VzZXInXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkuYXV0aC51c2VyO1xuICB9XG5cblxuICBnZXQgaXNBdXRoZW50aWNhdGVkJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGlzQXV0aGVudGljYXRlZCgpOiBBdXRoU3RhdGVbJ2lzQXV0aGVudGljYXRlZCddIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKS5hdXRoLmlzQXV0aGVudGljYXRlZDtcbiAgfVxuXG4gIGdldCBpc0xvYWRpbmckKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpc0xvYWRpbmcnXT4ge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNTU09BdXRoJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaXNTU09BdXRoJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pc1NTT0F1dGhTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNzb0FDUyQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Nzb0FDUyddPiB7XG4gICAgcmV0dXJuIHRoaXMuc3NvQUNTU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJvbnRlZ2dBcHBTZXJ2aWNlOiBGcm9udGVnZ0FwcFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICBjb25zdCBhdXRoU3ViU3RhdGVzOiBBdXRoU3ViU3RhdGVzW10gPSBbXG4gICAgICB7IGZpZWxkOiAnYWNjZXB0SW52aXRhdGlvblN0YXRlJywgc3ViamVjdDogdGhpcy5hY2NlcHRJbnZpdGF0aW9uU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYWNjb3VudFNldHRpbmdzU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2FjdGl2YXRlU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjdGl2YXRlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYXBpVG9rZW5zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFwaVRva2Vuc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAndGVuYW50c1N0YXRlJywgc3ViamVjdDogdGhpcy50ZW5hbnRzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnbG9naW5TdGF0ZScsIHN1YmplY3Q6IHRoaXMubG9naW5TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdtZmFTdGF0ZScsIHN1YmplY3Q6IHRoaXMubWZhU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncHJvZmlsZVN0YXRlJywgc3ViamVjdDogdGhpcy5wcm9maWxlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncm9sZXNTdGF0ZScsIHN1YmplY3Q6IHRoaXMucm9sZXNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyb3V0ZXMnLCBzdWJqZWN0OiB0aGlzLnJvdXRlc1N1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzZWN1cml0eVBvbGljeVN0YXRlJywgc3ViamVjdDogdGhpcy5zZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NpZ25VcFN0YXRlJywgc3ViamVjdDogdGhpcy5zaWduVXBTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzb2NpYWxMb2dpblN0YXRlJywgc3ViamVjdDogdGhpcy5zb2NpYWxMb2dpblN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb1N0YXRlJywgc3ViamVjdDogdGhpcy5zc29TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd0ZWFtU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnRlYW1TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd1c2VyJywgc3ViamVjdDogdGhpcy51c2VyU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2lzU1NPQXV0aCcsIHN1YmplY3Q6IHRoaXMuaXNTU09BdXRoU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb0FDUycsIHN1YmplY3Q6IHRoaXMuc3NvQUNTU3ViamVjdCB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkgYXMgRnJvbnRlZ2dTdGF0ZTtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHN0YXRlLmF1dGgsIGF1dGhTdWJTdGF0ZXMpO1xuICAgIC8vIE1lbW9pemVkIEF1dGggU3RhdGVcbiAgICB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdG9yZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdG9yZS5nZXRTdGF0ZSgpIGFzIEZyb250ZWdnU3RhdGU7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLmF1dGgsIGF1dGhTdWJTdGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhdXRoU3RhdGU6IEF1dGhTdGF0ZSwgYXV0aFN1YlN0YXRlczogQXV0aFN1YlN0YXRlc1tdKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5hdXRoU3RhdGVTdWJqZWN0LnZhbHVlICE9PSBhdXRoU3RhdGUpIHtcbiAgICAgIHRoaXMuYXV0aFN0YXRlU3ViamVjdC5uZXh0KGF1dGhTdGF0ZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgYXV0aFN1YlN0YXRlIG9mIGF1dGhTdWJTdGF0ZXMpIHtcbiAgICAgIGlmICghRmFzdERlZXBFcXVhbChhdXRoU3ViU3RhdGUuc3ViamVjdC52YWx1ZSwgYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pKSB7XG4gICAgICAgIGF1dGhTdWJTdGF0ZS5zdWJqZWN0Lm5leHQoYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0LnZhbHVlICE9PSBhdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dChhdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nU3ViamVjdC52YWx1ZSAhPT0gYXV0aFN0YXRlLmlzTG9hZGluZykge1xuICAgICAgdGhpcy5pc0xvYWRpbmdTdWJqZWN0Lm5leHQoYXV0aFN0YXRlLmlzTG9hZGluZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaEFjdGlvbih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBzdG9yZS5kaXNwYXRjaCh7IHR5cGU6IGAke2F1dGhTdG9yZU5hbWV9LyR7dHlwZX1gLCBwYXlsb2FkIH0pO1xuICB9XG5cblxuICBwdWJsaWMgaXNIb3N0ZWRMb2dpbkNhbGxiYWNrUm91dGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLnJvdXRlci51cmw7XG4gICAgY29uc3QgaG9zdGVkTG9naW5SZWRpcmVjdFVybCA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmF1dGhSb3V0ZXMuaG9zdGVkTG9naW5SZWRpcmVjdFVybDtcbiAgICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKGhvc3RlZExvZ2luUmVkaXJlY3RVcmwgPz8gJy9vYXV0aC9jYWxsYmFjaycpO1xuICB9XG5cblxuICAvLyBSb290IEFjdGlvbnNcbiAgc2V0U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QXV0aFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFN0YXRlJyk7XG4gIHNldFVzZXIgPSAodXNlcjogVXNlcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VXNlcicsIHVzZXIpO1xuXG4gIC8vIExvZ2luIEFjdGlvbnNcbiAgc2V0TG9naW5TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2dpblN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0TG9naW5TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRMb2dpblN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRMb2dpblN0YXRlJyk7XG4gIHJlcXVlc3RBdXRob3JpemUgPSAoZmlyc3RUaW1lPzogYm9vbGVhbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEF1dGhvcml6ZScsIGZpcnN0VGltZSk7XG5cbiAgbG9naW5XaXRoUmVkaXJlY3QgPSAocGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgc2hvdWxkUmVkaXJlY3RUb0xvZ2luOiBib29sZWFuID0gdHJ1ZSwgZmlyc3RUaW1lOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICBpZiAodGhpcy5pc0hvc3RlZExvZ2luQ2FsbGJhY2tSb3V0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3JlcXVlc3RIb3N0ZWRMb2dpbkF1dGhvcml6ZVYyJywgeyBhZGRpdGlvbmFsUGFyYW1zOiBwYXJhbXMsIHNob3VsZFJlZGlyZWN0VG9Mb2dpbiwgZmlyc3RUaW1lIH0pO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBpc0xvYWRpbmc6IHRydWUgfSk7XG4gIH07XG4gIHByZUxvZ2luID0gKHBheWxvYWQ6IElQcmVMb2dpbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncHJlTG9naW4nLCBwYXlsb2FkKTtcbiAgcG9zdExvZ2luID0gKHBheWxvYWQ6IElQb3N0TG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Bvc3RMb2dpbicsIHBheWxvYWQpO1xuICBsb2dpbiA9IChwYXlsb2FkOiBJTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ2luJywgcGF5bG9hZCk7XG4gIGxvZ2luV2l0aE1mYSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUxvZ2luV2l0aE1mYT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ2luV2l0aE1mYScsIHBheWxvYWQpO1xuICByZWNvdmVyTWZhID0gKHBheWxvYWQ6IElSZWNvdmVyTUZBVG9rZW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3JlY292ZXJNZmEnLCBwYXlsb2FkKTtcbiAgbG9nb3V0ID0gKGNhbGxiYWNrPzogKCkgPT4gdm9pZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9nb3V0JywgY2FsbGJhY2spO1xuICBzaWxlbnRMb2dvdXQgPSAoY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzaWxlbnRMb2dvdXQnLCBjYWxsYmFjayk7XG4gIGNoZWNrSWZBbGxvd1RvUmVtZW1iZXJNZmFEZXZpY2UgPSAocGF5bG9hZDogeyBtZmFUb2tlbjogc3RyaW5nIH0pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignY2hlY2tJZkFsbG93VG9SZW1lbWJlck1mYURldmljZScsIHBheWxvYWQpO1xuXG4gIC8vIFNvY2lhbCBMb2dpbnMgQWN0aW9uc1xuICBzZXRTb2NpYWxMb2dpbnNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTb2NpYWxMb2dpblN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U29jaWFsTG9naW5zU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U29jaWFsTG9naW5zU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNvY2lhbExvZ2luc1N0YXRlJyk7XG4gIGxvYWRTb2NpYWxMb2dpbnNDb25maWd1cmF0aW9uID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNvY2lhbExvZ2luc0NvbmZpZ3VyYXRpb24nKTtcbiAgbG9naW5WaWFTb2NpYWxMb2dpbiA9IChwYXlsb2FkOiBJTG9naW5WaWFTb2NpYWxMb2dpbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9naW5WaWFTb2NpYWxMb2dpbicsIHBheWxvYWQpO1xuICBzZXRTb2NpYWxMb2dpbkVycm9yID0gKHBheWxvYWQ6IElTZXRTb2NpYWxMb2dpbkVycm9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTb2NpYWxMb2dpbkVycm9yJywgcGF5bG9hZCk7XG5cbiAgLy8gQWN0aXZhdGUgQWNjb3VudCBBY3Rpb25zXG4gIHNldEFjdGl2YXRlU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QWN0aXZhdGVBY2NvdW50U3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY3RpdmF0ZVN0YXRlJywgc3RhdGUpO1xuICByZXNldEFjdGl2YXRlU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjdGl2YXRlU3RhdGUnKTtcbiAgc2V0QWN0aXZhdGVTdHJhdGVneVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFjdGl2YXRlU3RyYXRlZ3lTdGF0ZScsIHN0YXRlKTtcbiAgYWN0aXZhdGVBY2NvdW50ID0gKHBheWxvYWQ6IElBY3RpdmF0ZUFjY291bnQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FjdGl2YXRlQWNjb3VudCcsIHBheWxvYWQpO1xuICByZXNlbmRBY3RpdmF0aW9uRW1haWwgPSAocGF5bG9hZDogSVJlc2VuZEFjdGl2YXRpb25FbWFpbCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kQWN0aXZhdGlvbkVtYWlsJywgcGF5bG9hZCk7XG4gIGdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5ID0gKFxuICAgIHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3ksIElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneVJlc3BvbnNlPixcbiAgKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdnZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneScsIHBheWxvYWQpO1xuXG4gIC8vIEFjY2VwdCBJbnZpdGF0aW9uIEFjdGlvbnNcbiAgc2V0QWNjZXB0SW52aXRhdGlvblN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjY2VwdEludml0YXRpb25TdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWNjZXB0SW52aXRhdGlvblN0YXRlJywgc3RhdGUpO1xuICByZXNldEFjY2VwdEludml0YXRpb25TdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0QWNjZXB0SW52aXRhdGlvblN0YXRlJyk7XG4gIGFjY2VwdEludml0YXRpb24gPSAocGF5bG9hZDogSUFjY2VwdEludml0YXRpb24pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FjY2VwdEludml0YXRpb24nLCBwYXlsb2FkKTtcblxuICAvLyBGb3Jnb3QgUGFzc3dvcmQgQWN0aW9uc1xuICBzZXRGb3Jnb3RQYXNzd29yZFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEZvcmdvdFBhc3N3b3JkU3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEZvcmdvdFBhc3N3b3JkU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZScpO1xuICBmb3Jnb3RQYXNzd29yZCA9IChwYXlsb2FkOiBJRm9yZ290UGFzc3dvcmQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2ZvcmdvdFBhc3N3b3JkJywgcGF5bG9hZCk7XG4gIHJlc2V0UGFzc3dvcmQgPSAocGF5bG9hZDogSVJlc2V0UGFzc3dvcmQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0UGFzc3dvcmQnLCBwYXlsb2FkKTtcbiAgbG9hZFBhc3N3b3JkQ29uZmlnID0gKHBheWxvYWQ/OiBJR2V0VXNlclBhc3N3b3JkQ29uZmlnKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUGFzc3dvcmRDb25maWcnLCBwYXlsb2FkKTtcblxuICAvLyBTaWduIFVwIEFjdGlvbnNcbiAgc2V0U2lnblVwU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8U2lnblVwU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTaWduVXBTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRTaWduVXBTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U2lnblVwU3RhdGUnKTtcbiAgc2lnblVwVXNlciA9IChwYXlsb2FkOiBJU2lnblVwVXNlcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2lnblVwVXNlcicsIHBheWxvYWQpO1xuICByZXNldFNpZ25VcFN0YXRlU29mdCA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U2lnblVwU3RhdGVTb2Z0Jyk7XG5cbiAgLy8gUHJvZmlsZSBBY3Rpb25zXG4gIHNldFByb2ZpbGVTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxQcm9maWxlU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRQcm9maWxlU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0UHJvZmlsZVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRQcm9maWxlU3RhdGUnKTtcbiAgbG9hZFByb2ZpbGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUHJvZmlsZScpO1xuICBzYXZlUHJvZmlsZSA9IChwYXlsb2FkOiBTYXZlUHJvZmlsZVBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVQcm9maWxlJywgcGF5bG9hZCk7XG4gIGNoYW5nZVBhc3N3b3JkID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQ2hhbmdlUGFzc3dvcmQ+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdjaGFuZ2VQYXNzd29yZCcsIHBheWxvYWQpO1xuXG4gIC8vIFNTTyBhY3Rpb25zXG4gIHNldFNTT1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNTT1N0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U1NPU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U1NPU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNTT1N0YXRlJyk7XG4gIGxvYWRTU09Db25maWd1cmF0aW9ucyA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTU09Db25maWd1cmF0aW9ucycpO1xuICBsb2FkU1NPQXV0aG9yaXphdGlvblJvbGVzID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNTT0F1dGhvcml6YXRpb25Sb2xlcycpO1xuICBzYXZlU1NPQ29uZmlndXJhdGlvbnMgPSAocGF5bG9hZDogU2F2ZVNTT0NvbmZpZ3VyYXRpb25QYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9ucycsIHBheWxvYWQpO1xuICBzYXZlU1NPQ29uZmlndXJhdGlvbnNGaWxlID0gKHBheWxvYWQ6IEZpbGVbXSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZScsIHBheWxvYWQpO1xuICBzYXZlU1NPQ29uZmlndXJhdGlvbnNGaWxlV2l0aENhbGxiYWNrID0gKHBheWxvYWQ6IFNhdmVTU09Db25maWd1cmF0aW9uRmlsZVBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZVdpdGhDYWxsYmFjaycsIHBheWxvYWQpO1xuICB2YWxpZGF0ZVNTT0RvbWFpbiA9IChwYXlsb2FkPzogV2l0aENhbGxiYWNrKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd2YWxpZGF0ZVNTT0RvbWFpbicsIHBheWxvYWQpO1xuICB1cGRhdGVTU09BdXRob3JpemF0aW9uUm9sZXMgPSAocGF5bG9hZDogVXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzUGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCd1cGRhdGVTU09BdXRob3JpemF0aW9uUm9sZXMnLCBwYXlsb2FkKTtcbiAgZGVsZXRlU2FtbEdyb3VwID0gKHBheWxvYWQ6IERlbGV0ZVNhbWxHcm91cFBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVNhbWxHcm91cCcsIHBheWxvYWQpO1xuICBjcmVhdGVTYW1sR3JvdXAgPSAocGF5bG9hZDogQ3JlYXRlU2FtbEdyb3VwUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY3JlYXRlU2FtbEdyb3VwJywgcGF5bG9hZCk7XG4gIG9pZGNQb3N0bG9naW4gPSAocGF5bG9hZDogSU9pZGNQb3N0TG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ29pZGNQb3N0bG9naW4nLCBwYXlsb2FkKTtcblxuICAvLyBNZmEgYWN0aW9uc1xuICBzZXRNZmFTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxNRkFTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldE1mYVN0YXRlJywgc3RhdGUpO1xuICByZXNldE1mYVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRNZmFTdGF0ZScpO1xuICBlbnJvbGxNZmEgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdlbnJvbGxNZmEnKTtcbiAgdmVyaWZ5TWZhID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVmVyaWZ5TWZhLCBzdHJpbmcgfCB1bmRlZmluZWQ+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd2ZXJpZnlNZmEnLCBwYXlsb2FkKTtcbiAgdmVyaWZ5TWZhQWZ0ZXJGb3JjZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUxvZ2luV2l0aE1mYSwgc3RyaW5nIHwgdW5kZWZpbmVkPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCd2ZXJpZnlNZmFBZnRlckZvcmNlJywgcGF5bG9hZCk7XG4gIGRpc2FibGVNZmEgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElEaXNhYmxlTWZhPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGlzYWJsZU1mYScsIHBheWxvYWQpO1xuXG4gIC8vIFRlYW0gYWN0aW9uc1xuICBzZXRUZWFtTG9hZGVyID0gKHBheWxvYWQ6IFRlYW1TdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVhbUxvYWRlcicsIHBheWxvYWQpO1xuICBzZXRUZWFtRXJyb3IgPSAocGF5bG9hZDogVGVhbVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRUZWFtRXJyb3InLCBwYXlsb2FkKTtcbiAgc2V0VGVhbVN0YXRlID0gKHBheWxvYWQ6IFBhcnRpYWw8VGVhbVN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVhbVN0YXRlJywgcGF5bG9hZCk7XG4gIHJlc2V0VGVhbVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRUZWFtU3RhdGUnKTtcbiAgbG9hZFVzZXJzID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxXaXRoU2lsZW50TG9hZDxJTG9hZFVzZXJzPiwgSVRlYW1Vc2VyW10+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRVc2VycycsIHBheWxvYWQpO1xuICBsb2FkUm9sZXMgPSAocGF5bG9hZD86IExvYWRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFJvbGVzJywgcGF5bG9hZCk7XG4gIGFkZFVzZXIgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElBZGRVc2VyLCBJVGVhbVVzZXI+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRVc2VyJywgcGF5bG9hZCk7XG4gIHVwZGF0ZVVzZXIgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElVcGRhdGVVc2VyLCBJVGVhbVVzZXI+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd1cGRhdGVVc2VyJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVVzZXIgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElEZWxldGVVc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlVXNlcicsIHBheWxvYWQpO1xuICByZXNlbmRBY3RpdmF0aW9uTGluayA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVJlc2VuZEFjdGl2YXRpb25MaW5rPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNlbmRBY3RpdmF0aW9uTGluaycsIHBheWxvYWQpO1xuICByZXNlbmRJbnZpdGF0aW9uTGluayA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVJlc2VuZEludml0YXRpb25MaW5rPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNlbmRJbnZpdGF0aW9uTGluaycsIHBheWxvYWQpO1xuICBvcGVuQWRkVXNlckRpYWxvZyA9IChwYXlsb2FkPzogSVNldEFkZFVzZXJEaWFsb2cpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ29wZW5BZGRVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG4gIGNsb3NlQWRkVXNlckRpYWxvZyA9IChwYXlsb2FkPzogYW55KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdjbG9zZUFkZFVzZXJEaWFsb2cnLCBwYXlsb2FkKTtcbiAgb3BlbkRlbGV0ZVVzZXJEaWFsb2cgPSAocGF5bG9hZD86IElTZXREZWxldGVVc2VyRGlhbG9nKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvcGVuRGVsZXRlVXNlckRpYWxvZycsIHBheWxvYWQpO1xuICBjbG9zZURlbGV0ZVVzZXJEaWFsb2cgPSAocGF5bG9hZD86IGFueSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2xvc2VEZWxldGVVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG5cbiAgLy8gQVBJIFRva2VuIEFjdGlvbnNcbiAgc2V0QXBpVG9rZW5zTG9hZGVyID0gKHBheWxvYWQ6IEFwaVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBcGlUb2tlbnNMb2FkZXInLCBwYXlsb2FkKTtcbiAgc2V0QXBpVG9rZW5zRXJyb3IgPSAocGF5bG9hZDogQXBpU3RhdGVJbmRpY2F0b3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFwaVRva2Vuc0Vycm9yJywgcGF5bG9hZCk7XG4gIHNldEFwaVRva2Vuc1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFwaVRva2Vuc1N0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QXBpVG9rZW5zU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0QXBpVG9rZW5zU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFwaVRva2Vuc1N0YXRlJyk7XG4gIGxvYWRBcGlUb2tlbnMgPSAocGF5bG9hZD86IFdpdGhTaWxlbnRMb2FkPFdpdGhDYWxsYmFjaz4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRBcGlUb2tlbnMnLCBwYXlsb2FkKTtcbiAgaW5pdEFwaVRva2Vuc0RhdGEgPSAocGF5bG9hZDogQXBpVG9rZW5UeXBlKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdpbml0QXBpVG9rZW5zRGF0YScsIHBheWxvYWQpO1xuICBhZGRUZW5hbnRBcGlUb2tlbiA9IChwYXlsb2FkOiBBZGRUZW5hbnRBcGlUb2tlblBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FkZFRlbmFudEFwaVRva2VuJywgcGF5bG9hZCk7XG4gIGFkZFVzZXJBcGlUb2tlbiA9IChwYXlsb2FkOiBBZGRVc2VyQXBpVG9rZW5QYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRVc2VyQXBpVG9rZW4nLCBwYXlsb2FkKTtcbiAgZGVsZXRlVXNlckFwaVRva2VuID0gKHBheWxvYWQ6IHN0cmluZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlVXNlckFwaVRva2VuJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVRlbmFudEFwaVRva2VuID0gKHBheWxvYWQ6IHN0cmluZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlVGVuYW50QXBpVG9rZW4nLCBwYXlsb2FkKTtcblxuICAvLyBTZWN1cml0eSBQb2xpY3kgQWN0aW9uc1xuICBzZXRTZWN1cml0eVBvbGljeVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNlY3VyaXR5UG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5U3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5R2xvYmFsU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8R2xvYmFsUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5R2xvYmFsU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5UHVibGljU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UHVibGljUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5UHVibGljU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5TWZhU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8TWZhUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5TWZhU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5TG9ja291dFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPExvY2tvdXRQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lMb2Nrb3V0U3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5Q2FwdGNoYVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPENhcHRjaGFQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lDYXB0Y2hhU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UGFzc3dvcmRIaXN0b3J5UG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5U3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZScpO1xuICBzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UGFzc3dvcmRQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lQYXNzd29yZFN0YXRlJywgc3RhdGUpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3kgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3knKTtcbiAgbG9hZFB1YmxpY1NlY3VyaXR5UG9saWN5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFB1YmxpY1NlY3VyaXR5UG9saWN5Jyk7XG4gIGxvYWRWZW5kb3JQYXNzd29yZENvbmZpZyA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRWZW5kb3JQYXNzd29yZENvbmZpZycpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lNZmEgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3lNZmEnKTtcbiAgc2F2ZVNlY3VyaXR5UG9saWN5TWZhID0gKHBheWxvYWQ6IFNhdmVTZWN1cml0eVBvbGljeU1mYVBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNlY3VyaXR5UG9saWN5TWZhJywgcGF5bG9hZCk7XG4gIGxvYWRTZWN1cml0eVBvbGljeUxvY2tvdXQgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3lMb2Nrb3V0Jyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXQgPSAocGF5bG9hZDogU2F2ZVNlY3VyaXR5UG9saWN5TG9ja291dFBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNlY3VyaXR5UG9saWN5TG9ja291dCcsIHBheWxvYWQpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lDYXB0Y2hhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5Q2FwdGNoYScpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnkgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnknKTtcbiAgc2F2ZVNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5ID0gKHBheWxvYWQ6IFNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5JywgcGF5bG9hZCk7XG5cbiAgLy8gQWNjb3VudCBTZXR0aW5ncyBBY3Rpb25zXG4gIHNldEFjY291bnRTZXR0aW5nc1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjY291bnRTZXR0aW5nc1N0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0QWNjb3VudFNldHRpbmdzU3RhdGUnKTtcbiAgbG9hZEFjY291bnRTZXR0aW5ncyA9IChwYXlsb2FkPzogV2l0aENhbGxiYWNrPFdpdGhTaWxlbnRMb2FkPHt9Pj4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZEFjY291bnRTZXR0aW5ncycsIHBheWxvYWQpO1xuICBzYXZlQWNjb3VudFNldHRpbmdzID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJU2V0dGluZ3NSZXNwb25zZSwgSVNldHRpbmdzUmVzcG9uc2U+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVBY2NvdW50U2V0dGluZ3MnLCBwYXlsb2FkKTtcblxuICAvLyBUZW5hbnRzIEFjdGlvbnNcbiAgc2V0VGVuYW50c1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFRlbmFudHNTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlbmFudHNTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRUZW5hbnRzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFRlbmFudHNTdGF0ZScpO1xuICBzd2l0Y2hUZW5hbnQgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElTd2l0Y2hUZW5hbnQ+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzd2l0Y2hUZW5hbnQnLCBwYXlsb2FkKTtcbiAgbG9hZFRlbmFudHMgPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjazx7fSwgSVRlbmFudHNSZXNwb25zZVtdPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFRlbmFudHMnLCBwYXlsb2FkKTtcblxuICAvLyBSb2xlcyBBY3Rpb25zXG4gIHNldFJvbGVzU3RhdGUgPSAoc3RhdGU6IFJvbGVzU3RhdGUpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFJvbGVzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0Um9sZXNTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0Um9sZXNTdGF0ZScpO1xuICBsb2FkUm9sZXNBbmRQZXJtaXNzaW9ucyA9IChwYXlsb2FkPzogV2l0aFNpbGVudExvYWQ8e30+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUm9sZXNBbmRQZXJtaXNzaW9ucycsIHBheWxvYWQpO1xuICBhZGRSb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQWRkUm9sZSwgSVJvbGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRSb2xlJywgcGF5bG9hZCk7XG4gIHVwZGF0ZVJvbGUgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElVcGRhdGVSb2xlLCBJUm9sZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3VwZGF0ZVJvbGUnLCBwYXlsb2FkKTtcbiAgZGVsZXRlUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SURlbGV0ZVJvbGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVSb2xlJywgcGF5bG9hZCk7XG4gIGF0dGFjaFBlcm1pc3Npb25zVG9Sb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQXR0YWNoUGVybWlzc2lvbnNUb1JvbGUsIElSb2xlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhdHRhY2hQZXJtaXNzaW9uc1RvUm9sZScsIHBheWxvYWQpO1xuXG4gIGF0dGFjaFBlcm1pc3Npb25Ub1JvbGVzID0gKFxuICAgIHBheWxvYWQ6IFdpdGhDYWxsYmFjazx7XG4gICAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICAgIHJvbGVJZHM6IHN0cmluZ1tdO1xuICAgIH0sXG4gICAgICBJUm9sZVBlcm1pc3Npb24+LFxuICApID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2F0dGFjaFBlcm1pc3Npb25Ub1JvbGVzJywgcGF5bG9hZCk7XG59XG4iXX0=
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlZ2ctYXBwL3NyYy9saWIvZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBdUNMLGFBQWEsR0FHZCxNQUFNLHVCQUF1QixDQUFDOzs7O0FBNEQvQixNQUFNLE9BQU8sbUJBQW1CO0lBOEg5QixZQUFvQixrQkFBc0MsRUFBVSxNQUFjO1FBQTlELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBN0gxRSxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBWSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBZSxDQUFDLENBQUM7UUFDNUcsaUNBQTRCLEdBQUcsSUFBSSxlQUFlLENBQXFDLEVBQXdDLENBQUMsQ0FBQztRQUNqSSxnQ0FBMkIsR0FBRyxJQUFJLGVBQWUsQ0FBb0MsRUFBdUMsQ0FBQyxDQUFDO1FBQzlILHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUE2QixFQUFnQyxDQUFDLENBQUM7UUFDekcsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQThCLEVBQWlDLENBQUMsQ0FBQztRQUM1RywrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsRUFBc0MsQ0FBQyxDQUFDO1FBQzNILHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUEwQixFQUE2QixDQUFDLENBQUM7UUFDaEcsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsRUFBMkIsQ0FBQyxDQUFDO1FBQzFGLHdCQUFtQixHQUFHLElB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QzthQUMxRDtTQUNGO1FBQ0QsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxlQUFlLEVBQUU7WUFDbkUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWSxFQUFFLE9BQWE7UUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDeEQsYUFBYTtRQUNiLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxhQUFhLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR00sMEJBQTBCO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ2hELE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLGFBQXRCLHNCQUFzQixjQUF0QixzQkFBc0IsR0FBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7O2lIQTNMVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZyb250ZWdnQXBwU2VydmljZSB9IGZyb20gJy4vZnJvbnRlZ2ctYXBwLnNlcnZpY2UnO1xuaW1wb3J0IEZhc3REZWVwRXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7XG4gIFJvbGVzU3RhdGUsXG4gIFRlbmFudHNTdGF0ZSxcbiAgQWNjb3VudFNldHRpbmdzU3RhdGUsXG4gIFNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVBheWxvYWQsXG4gIFNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXRQYXlsb2FkLFxuICBTYXZlU2VjdXJpdHlQb2xpY3lNZmFQYXlsb2FkLFxuICBQYXNzd29yZFBvbGljeVN0YXRlLFxuICBQYXNzd29yZEhpc3RvcnlQb2xpY3lTdGF0ZSxcbiAgTWZhUG9saWN5U3RhdGUsXG4gIENhcHRjaGFQb2xpY3lTdGF0ZSxcbiAgTG9ja291dFBvbGljeVN0YXRlLFxuICBQdWJsaWNQb2xpY3lTdGF0ZSxcbiAgR2xvYmFsUG9saWN5U3RhdGUsXG4gIFNlY3VyaXR5UG9saWN5U3RhdGUsXG4gIEFkZFVzZXJBcGlUb2tlblBheWxvYWQsXG4gIEFkZFRlbmFudEFwaVRva2VuUGF5bG9hZCxcbiAgQXBpVG9rZW5UeXBlLFxuICBBcGlUb2tlbnNTdGF0ZSxcbiAgQXBpU3RhdGVJbmRpY2F0b3IsXG4gIElTZXREZWxldGVVc2VyRGlhbG9nLFxuICBJU2V0QWRkVXNlckRpYWxvZyxcbiAgTG9hZFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkLFxuICBUZWFtU3RhdGUsXG4gIFRlYW1TdGF0ZUluZGljYXRvcixcbiAgTUZBU3RhdGUsXG4gIFNhdmVTU09Db25maWd1cmF0aW9uUGF5bG9hZCxcbiAgU1NPU3RhdGUsXG4gIFByb2ZpbGVTdGF0ZSxcbiAgU2F2ZVNTT0NvbmZpZ3VyYXRpb25GaWxlUGF5bG9hZCxcbiAgVXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzUGF5bG9hZCxcbiAgRGVsZXRlU2FtbEdyb3VwUGF5bG9hZCxcbiAgQ3JlYXRlU2FtbEdyb3VwUGF5bG9hZCxcbiAgU2F2ZVByb2ZpbGVQYXlsb2FkLFxuICBTaWduVXBTdGF0ZSxcbiAgRm9yZ290UGFzc3dvcmRTdGF0ZSxcbiAgQWNjZXB0SW52aXRhdGlvblN0YXRlLFxuICBBdXRoU3RhdGUsXG4gIFVzZXIsXG4gIGF1dGhTdG9yZU5hbWUsXG4gIExvZ2luU3RhdGUsXG4gIEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5U3RhdGUsXG59IGZyb20gJ0Bmcm9udGVnZy9yZWR1eC1zdG9yZSc7XG5pbXBvcnQge1xuICBJTG9naW4sXG4gIElMb2dpbldpdGhNZmEsXG4gIElQb3N0TG9naW4sXG4gIElQcmVMb2dpbixcbiAgSVJlY292ZXJNRkFUb2tlbixcbiAgSUFjdGl2YXRlQWNjb3VudCxcbiAgSUxvZ2luVmlhU29jaWFsTG9naW4sXG4gIElTZXRTb2NpYWxMb2dpbkVycm9yLFxuICBJUmVzZW5kQWN0aXZhdGlvbkVtYWlsLFxuICBJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3ksXG4gIElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneVJlc3BvbnNlLFxuICBJQWNjZXB0SW52aXRhdGlvbixcbiAgSUZvcmdvdFBhc3N3b3JkLFxuICBJUmVzZXRQYXNzd29yZCxcbiAgSUdldFVzZXJQYXNzd29yZENvbmZpZyxcbiAgSVNpZ25VcFVzZXIsXG4gIElDaGFuZ2VQYXNzd29yZCxcbiAgSU9pZGNQb3N0TG9naW4sXG4gIElWZXJpZnlNZmEsXG4gIElEaXNhYmxlTWZhLFxuICBJTG9hZFVzZXJzLFxuICBJVGVhbVVzZXIsXG4gIElBZGRVc2VyLFxuICBJVXBkYXRlVXNlcixcbiAgSURlbGV0ZVVzZXIsXG4gIElSZXNlbmRBY3RpdmF0aW9uTGluayxcbiAgSVNldHRpbmdzUmVzcG9uc2UsXG4gIElTd2l0Y2hUZW5hbnQsXG4gIElUZW5hbnRzUmVzcG9uc2UsXG4gIElBZGRSb2xlLFxuICBJUm9sZSxcbiAgSVVwZGF0ZVJvbGUsXG4gIElEZWxldGVSb2xlLFxuICBJQXR0YWNoUGVybWlzc2lvbnNUb1JvbGUsXG4gIElSZXNlbmRJbnZpdGF0aW9uTGluayxcbiAgSVJvbGVQZXJtaXNzaW9uLFxufSBmcm9tICdAZnJvbnRlZ2cvcmVzdC1hcGknO1xuaW1wb3J0IHR5cGUgeyBGcm9udGVnZ1N0YXRlLCBBY3RpdmF0ZUFjY291bnRTdGF0ZSwgU29jaWFsTG9naW5TdGF0ZSB9IGZyb20gJ0Bmcm9udGVnZy9yZWR1eC1zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9naW5EaXJlY3RBY3Rpb24gfSBmcm9tICdAZnJvbnRlZ2cvcmVkdXgtc3RvcmUvYXV0aC9Mb2dpblN0YXRlL2ludGVyZmFjZXMnO1xuXG5pbnRlcmZhY2UgQXV0aFN1YlN0YXRlcyB7XG4gIGZpZWxkOiBQYXJ0aWFsPGtleW9mIEF1dGhTdGF0ZT47XG4gIHN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBXaXRoQ2FsbGJhY2s8VCA9IHt9LCBSID0gYm9vbGVhbj4gPSBUICYge1xuICBjYWxsYmFjaz86IChkYXRhOiBSIHwgbnVsbCwgZXJyb3I/OiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBXaXRoU2lsZW50TG9hZDxUPiA9IFQgJiB7XG4gIHNpbGVudExvYWRpbmc/OiBib29sZWFuO1xufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZyb250ZWdnQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIGF1dGhTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZT4oeyBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLCBpc0xvYWRpbmc6IHRydWUgfSBhcyBBdXRoU3RhdGUpO1xuICBwcml2YXRlIGFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10pO1xuICBwcml2YXRlIGFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FjY291bnRTZXR0aW5nc1N0YXRlJ10pO1xuICBwcml2YXRlIGFjdGl2YXRlU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FjdGl2YXRlU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhY3RpdmF0ZVN0YXRlJ10pO1xuICBwcml2YXRlIGFwaVRva2Vuc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhcGlUb2tlbnNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10pO1xuICBwcml2YXRlIGZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydmb3Jnb3RQYXNzd29yZFN0YXRlJ10pO1xuICBwcml2YXRlIGxvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2xvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydsb2dpblN0YXRlJ10pO1xuICBwcml2YXRlIG1mYVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydtZmFTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ21mYVN0YXRlJ10pO1xuICBwcml2YXRlIHByb2ZpbGVTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10pO1xuICBwcml2YXRlIHJvbGVzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3JvbGVzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydyb2xlc1N0YXRlJ10pO1xuICBwcml2YXRlIHJvdXRlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncm91dGVzJ10+KHt9IGFzIEF1dGhTdGF0ZVsncm91dGVzJ10pO1xuICBwcml2YXRlIHNlY3VyaXR5UG9saWN5U3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NlY3VyaXR5UG9saWN5U3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10pO1xuICBwcml2YXRlIHNpZ25VcFN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzaWduVXBTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3NpZ25VcFN0YXRlJ10pO1xuICBwcml2YXRlIHNvY2lhbExvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NvY2lhbExvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10pO1xuICBwcml2YXRlIHNzb1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzc29TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Nzb1N0YXRlJ10pO1xuICBwcml2YXRlIHRlYW1TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10pO1xuICBwcml2YXRlIHRlbmFudHNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10pO1xuICBwcml2YXRlIHVzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3VzZXInXT4oe30gYXMgQXV0aFN0YXRlWyd1c2VyJ10pO1xuICBwcml2YXRlIGlzQXV0aGVudGljYXRlZFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10+KGZhbHNlKTtcbiAgcHJpdmF0ZSBpc0xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzTG9hZGluZyddPih0cnVlKTtcbiAgcHJpdmF0ZSBpc1NTT0F1dGhTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzU1NPQXV0aCddPihmYWxzZSk7XG4gIHByaXZhdGUgc3NvQUNTU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzc29BQ1MnXT4oJycpO1xuXG5cbiAgZ2V0QXV0aFN0YXRlKCk6IEF1dGhTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkuYXV0aDtcbiAgfVxuXG4gIGdldCBhdXRoU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhY2NlcHRJbnZpdGF0aW9uU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NlcHRJbnZpdGF0aW9uU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYWNjb3VudFNldHRpbmdzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNldHRpbmdzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFjdGl2YXRlU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY3RpdmF0ZVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhcGlUb2tlbnNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlUb2tlbnNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZm9yZ290UGFzc3dvcmRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGxvZ2luU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydsb2dpblN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5sb2dpblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBtZmFTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ21mYVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5tZmFTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcHJvZmlsZVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJvbGVzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydyb2xlc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5yb2xlc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByb3V0ZXNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3JvdXRlcyddPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzZWN1cml0eVBvbGljeVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc2VjdXJpdHlQb2xpY3lTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VjdXJpdHlQb2xpY3lTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2lnblVwU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzaWduVXBTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2lnblVwU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNvY2lhbExvZ2luU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zb2NpYWxMb2dpblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzc29TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Nzb1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zc29TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdGVhbVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy50ZWFtU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHRlbmFudHNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3RlbmFudHNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMudGVuYW50c1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB1c2VyJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndXNlciddPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdXNlcigpOiBBdXRoU3RhdGVbJ3VzZXInXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkuYXV0aC51c2VyO1xuICB9XG5cblxuICBnZXQgaXNBdXRoZW50aWNhdGVkJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGlzQXV0aGVudGljYXRlZCgpOiBBdXRoU3RhdGVbJ2lzQXV0aGVudGljYXRlZCddIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKS5hdXRoLmlzQXV0aGVudGljYXRlZDtcbiAgfVxuXG4gIGdldCBpc0xvYWRpbmckKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpc0xvYWRpbmcnXT4ge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNTU09BdXRoJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaXNTU09BdXRoJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pc1NTT0F1dGhTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNzb0FDUyQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Nzb0FDUyddPiB7XG4gICAgcmV0dXJuIHRoaXMuc3NvQUNTU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJvbnRlZ2dBcHBTZXJ2aWNlOiBGcm9udGVnZ0FwcFNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICBjb25zdCBhdXRoU3ViU3RhdGVzOiBBdXRoU3ViU3RhdGVzW10gPSBbXG4gICAgICB7IGZpZWxkOiAnYWNjZXB0SW52aXRhdGlvblN0YXRlJywgc3ViamVjdDogdGhpcy5hY2NlcHRJbnZpdGF0aW9uU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYWNjb3VudFNldHRpbmdzU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2FjdGl2YXRlU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjdGl2YXRlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYXBpVG9rZW5zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFwaVRva2Vuc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAndGVuYW50c1N0YXRlJywgc3ViamVjdDogdGhpcy50ZW5hbnRzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnbG9naW5TdGF0ZScsIHN1YmplY3Q6IHRoaXMubG9naW5TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdtZmFTdGF0ZScsIHN1YmplY3Q6IHRoaXMubWZhU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncHJvZmlsZVN0YXRlJywgc3ViamVjdDogdGhpcy5wcm9maWxlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncm9sZXNTdGF0ZScsIHN1YmplY3Q6IHRoaXMucm9sZXNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyb3V0ZXMnLCBzdWJqZWN0OiB0aGlzLnJvdXRlc1N1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzZWN1cml0eVBvbGljeVN0YXRlJywgc3ViamVjdDogdGhpcy5zZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NpZ25VcFN0YXRlJywgc3ViamVjdDogdGhpcy5zaWduVXBTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzb2NpYWxMb2dpblN0YXRlJywgc3ViamVjdDogdGhpcy5zb2NpYWxMb2dpblN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb1N0YXRlJywgc3ViamVjdDogdGhpcy5zc29TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd0ZWFtU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnRlYW1TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd1c2VyJywgc3ViamVjdDogdGhpcy51c2VyU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2lzU1NPQXV0aCcsIHN1YmplY3Q6IHRoaXMuaXNTU09BdXRoU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb0FDUycsIHN1YmplY3Q6IHRoaXMuc3NvQUNTU3ViamVjdCB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkgYXMgRnJvbnRlZ2dTdGF0ZTtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHN0YXRlLmF1dGgsIGF1dGhTdWJTdGF0ZXMpO1xuICAgIC8vIE1lbW9pemVkIEF1dGggU3RhdGVcbiAgICB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdG9yZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdG9yZS5nZXRTdGF0ZSgpIGFzIEZyb250ZWdnU3RhdGU7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKG5ld1N0YXRlLmF1dGgsIGF1dGhTdWJTdGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhdXRoU3RhdGU6IEF1dGhTdGF0ZSwgYXV0aFN1YlN0YXRlczogQXV0aFN1YlN0YXRlc1tdKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5hdXRoU3RhdGVTdWJqZWN0LnZhbHVlICE9PSBhdXRoU3RhdGUpIHtcbiAgICAgIHRoaXMuYXV0aFN0YXRlU3ViamVjdC5uZXh0KGF1dGhTdGF0ZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgYXV0aFN1YlN0YXRlIG9mIGF1dGhTdWJTdGF0ZXMpIHtcbiAgICAgIGlmICghRmFzdERlZXBFcXVhbChhdXRoU3ViU3RhdGUuc3ViamVjdC52YWx1ZSwgYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pKSB7XG4gICAgICAgIGF1dGhTdWJTdGF0ZS5zdWJqZWN0Lm5leHQoYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0LnZhbHVlICE9PSBhdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dChhdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nU3ViamVjdC52YWx1ZSAhPT0gYXV0aFN0YXRlLmlzTG9hZGluZykge1xuICAgICAgdGhpcy5pc0xvYWRpbmdTdWJqZWN0Lm5leHQoYXV0aFN0YXRlLmlzTG9hZGluZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaEFjdGlvbih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBzdG9yZS5kaXNwYXRjaCh7IHR5cGU6IGAke2F1dGhTdG9yZU5hbWV9LyR7dHlwZX1gLCBwYXlsb2FkIH0pO1xuICB9XG5cblxuICBwdWJsaWMgaXNIb3N0ZWRMb2dpbkNhbGxiYWNrUm91dGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLnJvdXRlci51cmw7XG4gICAgY29uc3QgaG9zdGVkTG9naW5SZWRpcmVjdFVybCA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmF1dGhSb3V0ZXMuaG9zdGVkTG9naW5SZWRpcmVjdFVybDtcbiAgICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKGhvc3RlZExvZ2luUmVkaXJlY3RVcmwgPz8gJy9vYXV0aC9jYWxsYmFjaycpO1xuICB9XG5cblxuICAvLyBSb290IEFjdGlvbnNcbiAgc2V0U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QXV0aFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFN0YXRlJyk7XG4gIHNldFVzZXIgPSAodXNlcjogVXNlcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VXNlcicsIHVzZXIpO1xuXG4gIC8vIExvZ2luIEFjdGlvbnNcbiAgc2V0TG9naW5TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2dpblN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0TG9naW5TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRMb2dpblN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRMb2dpblN0YXRlJyk7XG4gIHJlcXVlc3RBdXRob3JpemUgPSAoZmlyc3RUaW1lPzogYm9vbGVhbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEF1dGhvcml6ZScsIGZpcnN0VGltZSk7XG5cbiAgbG9naW5XaXRoUmVkaXJlY3QgPSAocGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkUmVkaXJlY3RUb0xvZ2luOiBib29sZWFuID0gdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RUaW1lOiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgIGxvZ2luRGlyZWN0QWN0aW9uPzogTG9naW5EaXJlY3RBY3Rpb24pID0+IHtcbiAgICBpZiAodGhpcy5pc0hvc3RlZExvZ2luQ2FsbGJhY2tSb3V0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3JlcXVlc3RIb3N0ZWRMb2dpbkF1dGhvcml6ZVYyJywgeyBhZGRpdGlvbmFsUGFyYW1zOiBwYXJhbXMsIHNob3VsZFJlZGlyZWN0VG9Mb2dpbiwgZmlyc3RUaW1lLCBsb2dpbkRpcmVjdEFjdGlvbiB9KTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xuICB9O1xuICBwcmVMb2dpbiA9IChwYXlsb2FkOiBJUHJlTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3ByZUxvZ2luJywgcGF5bG9hZCk7XG4gIHBvc3RMb2dpbiA9IChwYXlsb2FkOiBJUG9zdExvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdwb3N0TG9naW4nLCBwYXlsb2FkKTtcbiAgbG9naW4gPSAocGF5bG9hZDogSUxvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dpbicsIHBheWxvYWQpO1xuICBsb2dpbldpdGhNZmEgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElMb2dpbldpdGhNZmE+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dpbldpdGhNZmEnLCBwYXlsb2FkKTtcbiAgcmVjb3Zlck1mYSA9IChwYXlsb2FkOiBJUmVjb3Zlck1GQVRva2VuKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZWNvdmVyTWZhJywgcGF5bG9hZCk7XG4gIGxvZ291dCA9IChjYWxsYmFjaz86ICgpID0+IHZvaWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ291dCcsIGNhbGxiYWNrKTtcbiAgc2lsZW50TG9nb3V0ID0gKGNhbGxiYWNrPzogKCkgPT4gdm9pZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2lsZW50TG9nb3V0JywgY2FsbGJhY2spO1xuICBjaGVja0lmQWxsb3dUb1JlbWVtYmVyTWZhRGV2aWNlID0gKHBheWxvYWQ6IHsgbWZhVG9rZW46IHN0cmluZyB9KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2NoZWNrSWZBbGxvd1RvUmVtZW1iZXJNZmFEZXZpY2UnLCBwYXlsb2FkKTtcblxuICAvLyBTb2NpYWwgTG9naW5zIEFjdGlvbnNcbiAgc2V0U29jaWFsTG9naW5zU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8U29jaWFsTG9naW5TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNvY2lhbExvZ2luc1N0YXRlJywgc3RhdGUpO1xuICByZXNldFNvY2lhbExvZ2luc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTb2NpYWxMb2dpbnNTdGF0ZScpO1xuICBsb2FkU29jaWFsTG9naW5zQ29uZmlndXJhdGlvbiA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTb2NpYWxMb2dpbnNDb25maWd1cmF0aW9uJyk7XG4gIGxvZ2luVmlhU29jaWFsTG9naW4gPSAocGF5bG9hZDogSUxvZ2luVmlhU29jaWFsTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ2luVmlhU29jaWFsTG9naW4nLCBwYXlsb2FkKTtcbiAgc2V0U29jaWFsTG9naW5FcnJvciA9IChwYXlsb2FkOiBJU2V0U29jaWFsTG9naW5FcnJvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U29jaWFsTG9naW5FcnJvcicsIHBheWxvYWQpO1xuXG4gIC8vIEFjdGl2YXRlIEFjY291bnQgQWN0aW9uc1xuICBzZXRBY3RpdmF0ZVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjdGl2YXRlQWNjb3VudFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWN0aXZhdGVTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY3RpdmF0ZVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBY3RpdmF0ZVN0YXRlJyk7XG4gIHNldEFjdGl2YXRlU3RyYXRlZ3lTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY3RpdmF0ZUFjY291bnRTdHJhdGVneVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY3RpdmF0ZVN0cmF0ZWd5U3RhdGUnLCBzdGF0ZSk7XG4gIGFjdGl2YXRlQWNjb3VudCA9IChwYXlsb2FkOiBJQWN0aXZhdGVBY2NvdW50KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhY3RpdmF0ZUFjY291bnQnLCBwYXlsb2FkKTtcbiAgcmVzZW5kQWN0aXZhdGlvbkVtYWlsID0gKHBheWxvYWQ6IElSZXNlbmRBY3RpdmF0aW9uRW1haWwpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2VuZEFjdGl2YXRpb25FbWFpbCcsIHBheWxvYWQpO1xuICBnZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneSA9IChcbiAgICBwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5LCBJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3lSZXNwb25zZT4sXG4gICkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZ2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3knLCBwYXlsb2FkKTtcblxuICAvLyBBY2NlcHQgSW52aXRhdGlvbiBBY3Rpb25zXG4gIHNldEFjY2VwdEludml0YXRpb25TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY2NlcHRJbnZpdGF0aW9uU3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFjY2VwdEludml0YXRpb25TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY2NlcHRJbnZpdGF0aW9uU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjY2VwdEludml0YXRpb25TdGF0ZScpO1xuICBhY2NlcHRJbnZpdGF0aW9uID0gKHBheWxvYWQ6IElBY2NlcHRJbnZpdGF0aW9uKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhY2NlcHRJbnZpdGF0aW9uJywgcGF5bG9hZCk7XG5cbiAgLy8gRm9yZ290IFBhc3N3b3JkIEFjdGlvbnNcbiAgc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxGb3Jnb3RQYXNzd29yZFN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRGb3Jnb3RQYXNzd29yZFN0YXRlJywgc3RhdGUpO1xuICByZXNldEZvcmdvdFBhc3N3b3JkU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEZvcmdvdFBhc3N3b3JkU3RhdGUnKTtcbiAgZm9yZ290UGFzc3dvcmQgPSAocGF5bG9hZDogSUZvcmdvdFBhc3N3b3JkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdmb3Jnb3RQYXNzd29yZCcsIHBheWxvYWQpO1xuICByZXNldFBhc3N3b3JkID0gKHBheWxvYWQ6IElSZXNldFBhc3N3b3JkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFBhc3N3b3JkJywgcGF5bG9hZCk7XG4gIGxvYWRQYXNzd29yZENvbmZpZyA9IChwYXlsb2FkPzogSUdldFVzZXJQYXNzd29yZENvbmZpZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFBhc3N3b3JkQ29uZmlnJywgcGF5bG9hZCk7XG5cbiAgLy8gU2lnbiBVcCBBY3Rpb25zXG4gIHNldFNpZ25VcFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNpZ25VcFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2lnblVwU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U2lnblVwU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNpZ25VcFN0YXRlJyk7XG4gIHNpZ25VcFVzZXIgPSAocGF5bG9hZDogSVNpZ25VcFVzZXIpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NpZ25VcFVzZXInLCBwYXlsb2FkKTtcbiAgcmVzZXRTaWduVXBTdGF0ZVNvZnQgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNpZ25VcFN0YXRlU29mdCcpO1xuXG4gIC8vIFByb2ZpbGUgQWN0aW9uc1xuICBzZXRQcm9maWxlU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UHJvZmlsZVN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0UHJvZmlsZVN0YXRlJywgc3RhdGUpO1xuICByZXNldFByb2ZpbGVTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0UHJvZmlsZVN0YXRlJyk7XG4gIGxvYWRQcm9maWxlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFByb2ZpbGUnKTtcbiAgc2F2ZVByb2ZpbGUgPSAocGF5bG9hZDogU2F2ZVByb2ZpbGVQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlUHJvZmlsZScsIHBheWxvYWQpO1xuICBjaGFuZ2VQYXNzd29yZCA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUNoYW5nZVBhc3N3b3JkPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2hhbmdlUGFzc3dvcmQnLCBwYXlsb2FkKTtcblxuICAvLyBTU08gYWN0aW9uc1xuICBzZXRTU09TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTU09TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNTT1N0YXRlJywgc3RhdGUpO1xuICByZXNldFNTT1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTU09TdGF0ZScpO1xuICBsb2FkU1NPQ29uZmlndXJhdGlvbnMgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU1NPQ29uZmlndXJhdGlvbnMnKTtcbiAgbG9hZFNTT0F1dGhvcml6YXRpb25Sb2xlcyA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTU09BdXRob3JpemF0aW9uUm9sZXMnKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zID0gKHBheWxvYWQ6IFNhdmVTU09Db25maWd1cmF0aW9uUGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU1NPQ29uZmlndXJhdGlvbnMnLCBwYXlsb2FkKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZSA9IChwYXlsb2FkOiBGaWxlW10pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9uc0ZpbGUnLCBwYXlsb2FkKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZVdpdGhDYWxsYmFjayA9IChwYXlsb2FkOiBTYXZlU1NPQ29uZmlndXJhdGlvbkZpbGVQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9uc0ZpbGVXaXRoQ2FsbGJhY2snLCBwYXlsb2FkKTtcbiAgdmFsaWRhdGVTU09Eb21haW4gPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjaykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndmFsaWRhdGVTU09Eb21haW4nLCBwYXlsb2FkKTtcbiAgdXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzID0gKHBheWxvYWQ6IFVwZGF0ZVNTT0F1dGhvcml6YXRpb25Sb2xlc1BheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigndXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVNhbWxHcm91cCA9IChwYXlsb2FkOiBEZWxldGVTYW1sR3JvdXBQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVTYW1sR3JvdXAnLCBwYXlsb2FkKTtcbiAgY3JlYXRlU2FtbEdyb3VwID0gKHBheWxvYWQ6IENyZWF0ZVNhbWxHcm91cFBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2NyZWF0ZVNhbWxHcm91cCcsIHBheWxvYWQpO1xuICBvaWRjUG9zdGxvZ2luID0gKHBheWxvYWQ6IElPaWRjUG9zdExvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvaWRjUG9zdGxvZ2luJywgcGF5bG9hZCk7XG5cbiAgLy8gTWZhIGFjdGlvbnNcbiAgc2V0TWZhU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8TUZBU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRNZmFTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRNZmFTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0TWZhU3RhdGUnKTtcbiAgZW5yb2xsTWZhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZW5yb2xsTWZhJyk7XG4gIHZlcmlmeU1mYSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVZlcmlmeU1mYSwgc3RyaW5nIHwgdW5kZWZpbmVkPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndmVyaWZ5TWZhJywgcGF5bG9hZCk7XG4gIHZlcmlmeU1mYUFmdGVyRm9yY2UgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElMb2dpbldpdGhNZmEsIHN0cmluZyB8IHVuZGVmaW5lZD4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigndmVyaWZ5TWZhQWZ0ZXJGb3JjZScsIHBheWxvYWQpO1xuICBkaXNhYmxlTWZhID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJRGlzYWJsZU1mYT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Rpc2FibGVNZmEnLCBwYXlsb2FkKTtcblxuICAvLyBUZWFtIGFjdGlvbnNcbiAgc2V0VGVhbUxvYWRlciA9IChwYXlsb2FkOiBUZWFtU3RhdGVJbmRpY2F0b3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlYW1Mb2FkZXInLCBwYXlsb2FkKTtcbiAgc2V0VGVhbUVycm9yID0gKHBheWxvYWQ6IFRlYW1TdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVhbUVycm9yJywgcGF5bG9hZCk7XG4gIHNldFRlYW1TdGF0ZSA9IChwYXlsb2FkOiBQYXJ0aWFsPFRlYW1TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlYW1TdGF0ZScsIHBheWxvYWQpO1xuICByZXNldFRlYW1TdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0VGVhbVN0YXRlJyk7XG4gIGxvYWRVc2VycyA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8V2l0aFNpbGVudExvYWQ8SUxvYWRVc2Vycz4sIElUZWFtVXNlcltdPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkVXNlcnMnLCBwYXlsb2FkKTtcbiAgbG9hZFJvbGVzID0gKHBheWxvYWQ/OiBMb2FkUm9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRSb2xlcycsIHBheWxvYWQpO1xuICBhZGRVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQWRkVXNlciwgSVRlYW1Vc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkVXNlcicsIHBheWxvYWQpO1xuICB1cGRhdGVVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVXBkYXRlVXNlciwgSVRlYW1Vc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndXBkYXRlVXNlcicsIHBheWxvYWQpO1xuICBkZWxldGVVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJRGVsZXRlVXNlcj4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVVzZXInLCBwYXlsb2FkKTtcbiAgcmVzZW5kQWN0aXZhdGlvbkxpbmsgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElSZXNlbmRBY3RpdmF0aW9uTGluaz4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kQWN0aXZhdGlvbkxpbmsnLCBwYXlsb2FkKTtcbiAgcmVzZW5kSW52aXRhdGlvbkxpbmsgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElSZXNlbmRJbnZpdGF0aW9uTGluaz4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kSW52aXRhdGlvbkxpbmsnLCBwYXlsb2FkKTtcbiAgb3BlbkFkZFVzZXJEaWFsb2cgPSAocGF5bG9hZD86IElTZXRBZGRVc2VyRGlhbG9nKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvcGVuQWRkVXNlckRpYWxvZycsIHBheWxvYWQpO1xuICBjbG9zZUFkZFVzZXJEaWFsb2cgPSAocGF5bG9hZD86IGFueSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2xvc2VBZGRVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG4gIG9wZW5EZWxldGVVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBJU2V0RGVsZXRlVXNlckRpYWxvZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignb3BlbkRlbGV0ZVVzZXJEaWFsb2cnLCBwYXlsb2FkKTtcbiAgY2xvc2VEZWxldGVVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBhbnkpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Nsb3NlRGVsZXRlVXNlckRpYWxvZycsIHBheWxvYWQpO1xuXG4gIC8vIEFQSSBUb2tlbiBBY3Rpb25zXG4gIHNldEFwaVRva2Vuc0xvYWRlciA9IChwYXlsb2FkOiBBcGlTdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QXBpVG9rZW5zTG9hZGVyJywgcGF5bG9hZCk7XG4gIHNldEFwaVRva2Vuc0Vycm9yID0gKHBheWxvYWQ6IEFwaVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBcGlUb2tlbnNFcnJvcicsIHBheWxvYWQpO1xuICBzZXRBcGlUb2tlbnNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBcGlUb2tlbnNTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFwaVRva2Vuc1N0YXRlJywgc3RhdGUpO1xuICByZXNldEFwaVRva2Vuc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBcGlUb2tlbnNTdGF0ZScpO1xuICBsb2FkQXBpVG9rZW5zID0gKHBheWxvYWQ/OiBXaXRoU2lsZW50TG9hZDxXaXRoQ2FsbGJhY2s+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkQXBpVG9rZW5zJywgcGF5bG9hZCk7XG4gIGluaXRBcGlUb2tlbnNEYXRhID0gKHBheWxvYWQ6IEFwaVRva2VuVHlwZSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignaW5pdEFwaVRva2Vuc0RhdGEnLCBwYXlsb2FkKTtcbiAgYWRkVGVuYW50QXBpVG9rZW4gPSAocGF5bG9hZDogQWRkVGVuYW50QXBpVG9rZW5QYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRUZW5hbnRBcGlUb2tlbicsIHBheWxvYWQpO1xuICBhZGRVc2VyQXBpVG9rZW4gPSAocGF5bG9hZDogQWRkVXNlckFwaVRva2VuUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkVXNlckFwaVRva2VuJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVVzZXJBcGlUb2tlbiA9IChwYXlsb2FkOiBzdHJpbmcpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVVzZXJBcGlUb2tlbicsIHBheWxvYWQpO1xuICBkZWxldGVUZW5hbnRBcGlUb2tlbiA9IChwYXlsb2FkOiBzdHJpbmcpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVRlbmFudEFwaVRva2VuJywgcGF5bG9hZCk7XG5cbiAgLy8gU2VjdXJpdHkgUG9saWN5IEFjdGlvbnNcbiAgc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTZWN1cml0eVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUdsb2JhbFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEdsb2JhbFBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeUdsb2JhbFN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeVB1YmxpY1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFB1YmxpY1BvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVB1YmxpY1N0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeU1mYVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPE1mYVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeU1mYVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUxvY2tvdXRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2Nrb3V0UG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5TG9ja291dFN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUNhcHRjaGFTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxDYXB0Y2hhUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5Q2FwdGNoYVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFBhc3N3b3JkSGlzdG9yeVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVN0YXRlJywgc3RhdGUpO1xuICByZXNldFNlY3VyaXR5UG9saWN5U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNlY3VyaXR5UG9saWN5U3RhdGUnKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lQYXNzd29yZFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFBhc3N3b3JkUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRTdGF0ZScsIHN0YXRlKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5Jyk7XG4gIGxvYWRQdWJsaWNTZWN1cml0eVBvbGljeSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRQdWJsaWNTZWN1cml0eVBvbGljeScpO1xuICBsb2FkVmVuZG9yUGFzc3dvcmRDb25maWcgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkVmVuZG9yUGFzc3dvcmRDb25maWcnKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5TWZhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5TWZhJyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeU1mYSA9IChwYXlsb2FkOiBTYXZlU2VjdXJpdHlQb2xpY3lNZmFQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeU1mYScsIHBheWxvYWQpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lMb2Nrb3V0ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5TG9ja291dCcpO1xuICBzYXZlU2VjdXJpdHlQb2xpY3lMb2Nrb3V0ID0gKHBheWxvYWQ6IFNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXRQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeUxvY2tvdXQnLCBwYXlsb2FkKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5Q2FwdGNoYSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTZWN1cml0eVBvbGljeUNhcHRjaGEnKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5Jyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeSA9IChwYXlsb2FkOiBTYXZlU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnlQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeScsIHBheWxvYWQpO1xuXG4gIC8vIEFjY291bnQgU2V0dGluZ3MgQWN0aW9uc1xuICBzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY2NvdW50U2V0dGluZ3NTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWNjb3VudFNldHRpbmdzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0QWNjb3VudFNldHRpbmdzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjY291bnRTZXR0aW5nc1N0YXRlJyk7XG4gIGxvYWRBY2NvdW50U2V0dGluZ3MgPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjazxXaXRoU2lsZW50TG9hZDx7fT4+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRBY2NvdW50U2V0dGluZ3MnLCBwYXlsb2FkKTtcbiAgc2F2ZUFjY291bnRTZXR0aW5ncyA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVNldHRpbmdzUmVzcG9uc2UsIElTZXR0aW5nc1Jlc3BvbnNlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlQWNjb3VudFNldHRpbmdzJywgcGF5bG9hZCk7XG5cbiAgLy8gVGVuYW50cyBBY3Rpb25zXG4gIHNldFRlbmFudHNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxUZW5hbnRzU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRUZW5hbnRzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0VGVuYW50c1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRUZW5hbnRzU3RhdGUnKTtcbiAgc3dpdGNoVGVuYW50ID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJU3dpdGNoVGVuYW50PikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc3dpdGNoVGVuYW50JywgcGF5bG9hZCk7XG4gIGxvYWRUZW5hbnRzID0gKHBheWxvYWQ/OiBXaXRoQ2FsbGJhY2s8e30sIElUZW5hbnRzUmVzcG9uc2VbXT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRUZW5hbnRzJywgcGF5bG9hZCk7XG5cbiAgLy8gUm9sZXMgQWN0aW9uc1xuICBzZXRSb2xlc1N0YXRlID0gKHN0YXRlOiBSb2xlc1N0YXRlKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRSb2xlc1N0YXRlJywgc3RhdGUpO1xuICByZXNldFJvbGVzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFJvbGVzU3RhdGUnKTtcbiAgbG9hZFJvbGVzQW5kUGVybWlzc2lvbnMgPSAocGF5bG9hZD86IFdpdGhTaWxlbnRMb2FkPHt9PikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFJvbGVzQW5kUGVybWlzc2lvbnMnLCBwYXlsb2FkKTtcbiAgYWRkUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUFkZFJvbGUsIElSb2xlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkUm9sZScsIHBheWxvYWQpO1xuICB1cGRhdGVSb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVXBkYXRlUm9sZSwgSVJvbGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd1cGRhdGVSb2xlJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVJvbGUgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElEZWxldGVSb2xlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlUm9sZScsIHBheWxvYWQpO1xuICBhdHRhY2hQZXJtaXNzaW9uc1RvUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUF0dGFjaFBlcm1pc3Npb25zVG9Sb2xlLCBJUm9sZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignYXR0YWNoUGVybWlzc2lvbnNUb1JvbGUnLCBwYXlsb2FkKTtcblxuICBhdHRhY2hQZXJtaXNzaW9uVG9Sb2xlcyA9IChcbiAgICBwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8e1xuICAgICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgICByb2xlSWRzOiBzdHJpbmdbXTtcbiAgICB9LFxuICAgICAgSVJvbGVQZXJtaXNzaW9uPixcbiAgKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhdHRhY2hQZXJtaXNzaW9uVG9Sb2xlcycsIHBheWxvYWQpO1xufVxuIl19
|
|
@@ -277,11 +277,11 @@ class FronteggAuthService {
|
|
|
277
277
|
this.setLoginState = (state) => this.dispatchAction('setLoginState', state);
|
|
278
278
|
this.resetLoginState = () => this.dispatchAction('resetLoginState');
|
|
279
279
|
this.requestAuthorize = (firstTime) => this.dispatchAction('requestAuthorize', firstTime);
|
|
280
|
-
this.loginWithRedirect = (params, shouldRedirectToLogin = true, firstTime = false) => {
|
|
280
|
+
this.loginWithRedirect = (params, shouldRedirectToLogin = true, firstTime = false, loginDirectAction) => {
|
|
281
281
|
if (this.isHostedLoginCallbackRoute()) {
|
|
282
282
|
return;
|
|
283
283
|
}
|
|
284
|
-
this.dispatchAction('requestHostedLoginAuthorizeV2', { additionalParams: params, shouldRedirectToLogin, firstTime });
|
|
284
|
+
this.dispatchAction('requestHostedLoginAuthorizeV2', { additionalParams: params, shouldRedirectToLogin, firstTime, loginDirectAction });
|
|
285
285
|
this.setState({ isLoading: true });
|
|
286
286
|
};
|
|
287
287
|
this.preLogin = (payload) => this.dispatchAction('preLogin', payload);
|