@dereekb/dbx-firebase 10.0.19 → 10.0.20
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.
|
@@ -19,4 +19,4 @@ export function firebaseAuthTokenFromUser(user) {
|
|
|
19
19
|
lastSignInTime: safeFormatToISO8601DateString(user.metadata.lastSignInTime)
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2F1dGgvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFnQjlELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUFVO0lBQ2pELE9BQU87UUFDTCxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVc7UUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1FBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztRQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1FBQ2IsWUFBWSxFQUFFLDZCQUE2QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3ZFLGNBQWMsRUFBRSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztLQUM1RSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFVO0lBQ2xELE9BQU87UUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1FBQ2pDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztRQUM3QixZQUFZLEVBQUUsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDdkUsY0FBYyxFQUFFLDZCQUE2QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO0tBQzVFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2FmZUZvcm1hdFRvSVNPODYwMURhdGVTdHJpbmcgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IEZpcmViYXNlQXV0aFRva2VuIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgSVNPODYwMURhdGVTdHJpbmcsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBVc2VyLCBVc2VySW5mbyB9IGZyb20gJ2ZpcmViYXNlL2F1dGgnO1xuXG5leHBvcnQgdHlwZSBBdXRoVXNlckluZm8gPSBPbWl0PFVzZXJJbmZvLCAncHJvdmlkZXJJZCc+ICYge1xuICAvKipcbiAgICogVGhlIGNyZWF0aW9uIHRpbWUgb2YgdGhlIHVzZXIncyBhY2NvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRpb25UaW1lPzogTWF5YmU8SVNPODYwMURhdGVTdHJpbmc+O1xuICAvKipcbiAgICogVGhlIGxhc3QgdGltZSB0aGUgdXNlciBzaWduZWQgaW4gYW5kIHJlY2lldmVkIGEgcmVmcmVzaCB0b2tlbi5cbiAgICovXG4gIHJlYWRvbmx5IGxhc3RTaWduSW5UaW1lPzogTWF5YmU8SVNPODYwMURhdGVTdHJpbmc+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGF1dGhVc2VySW5mb0Zyb21BdXRoVXNlcih1c2VyOiBVc2VyKTogQXV0aFVzZXJJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICBkaXNwbGF5TmFtZTogdXNlcj8uZGlzcGxheU5hbWUsXG4gICAgZW1haWw6IHVzZXIuZW1haWwsXG4gICAgcGhvbmVOdW1iZXI6IHVzZXIucGhvbmVOdW1iZXIsXG4gICAgcGhvdG9VUkw6IHVzZXIucGhvdG9VUkwsXG4gICAgdWlkOiB1c2VyLnVpZCxcbiAgICBjcmVhdGlvblRpbWU6IHNhZmVGb3JtYXRUb0lTTzg2MDFEYXRlU3RyaW5nKHVzZXIubWV0YWRhdGEuY3JlYXRpb25UaW1lKSxcbiAgICBsYXN0U2lnbkluVGltZTogc2FmZUZvcm1hdFRvSVNPODYwMURhdGVTdHJpbmcodXNlci5tZXRhZGF0YS5sYXN0U2lnbkluVGltZSlcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpcmViYXNlQXV0aFRva2VuRnJvbVVzZXIodXNlcjogVXNlcik6IEZpcmViYXNlQXV0aFRva2VuIHtcbiAgcmV0dXJuIHtcbiAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICBlbWFpbFZlcmlmaWVkOiB1c2VyLmVtYWlsVmVyaWZpZWQsXG4gICAgcGhvbmVOdW1iZXI6IHVzZXIucGhvbmVOdW1iZXIsXG4gICAgY3JlYXRpb25UaW1lOiBzYWZlRm9ybWF0VG9JU084NjAxRGF0ZVN0cmluZyh1c2VyLm1ldGFkYXRhLmNyZWF0aW9uVGltZSksXG4gICAgbGFzdFNpZ25JblRpbWU6IHNhZmVGb3JtYXRUb0lTTzg2MDFEYXRlU3RyaW5nKHVzZXIubWV0YWRhdGEubGFzdFNpZ25JblRpbWUpXG4gIH07XG59XG4iXX0=
|
|
@@ -193,4 +193,4 @@ export class DbxFirebaseAuthContextInfo {
|
|
|
193
193
|
return this._token();
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9zZXJ2aWNlL2ZpcmViYXNlLmF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWlDLDBCQUEwQixFQUFFLHlCQUF5QixFQUFzQixrQkFBa0IsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN2TCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQW9DLGtCQUFrQixFQUFFLGVBQWUsRUFBdUMsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQWtCLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDalcsT0FBTyxFQUFFLEVBQUUsRUFBYyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1SCxPQUFPLEVBQW9FLGVBQWUsRUFBRSxZQUFZLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFnQix3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQVFwRixpQkFBaUI7QUFDakIsTUFBTSxPQUFnQiw4QkFBOEI7SUFBcEQ7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QU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlLCBpc05vdCwgdGltZW91dFN0YXJ0V2l0aCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhVc2VyU3RhdGUsIERieEF1dGhTZXJ2aWNlLCBsb2dnZWRPdXRPYnNGcm9tSXNMb2dnZWRJbiwgbG9nZ2VkSW5PYnNGcm9tSXNMb2dnZWRJbiwgQXV0aFVzZXJJZGVudGlmaWVyLCBhdXRoVXNlcklkZW50aWZpZXIsIE5vQXV0aFVzZXJJZGVudGlmaWVyIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgcmVhdXRoZW50aWNhdGVXaXRoUG9wdXAsIEF1dGgsIGF1dGhTdGF0ZSwgaWRUb2tlbiwgVXNlciwgSWRUb2tlblJlc3VsdCwgUGFyc2VkVG9rZW4sIEdvb2dsZUF1dGhQcm92aWRlciwgc2lnbkluV2l0aFBvcHVwLCBBdXRoUHJvdmlkZXIsIFBvcHVwUmVkaXJlY3RSZXNvbHZlciwgc2lnbkluQW5vbnltb3VzbHksIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkLCBVc2VyQ3JlZGVudGlhbCwgRmFjZWJvb2tBdXRoUHJvdmlkZXIsIEdpdGh1YkF1dGhQcm92aWRlciwgVHdpdHRlckF1dGhQcm92aWRlciwgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXksIG1hcCwgc3dpdGNoTWFwLCBmaXJzdFZhbHVlRnJvbSwgY2F0Y2hFcnJvciwgRU1QVFkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhDbGFpbXMsIEF1dGhDbGFpbXNPYmplY3QsIEF1dGhSb2xlQ2xhaW1zU2VydmljZSwgQXV0aFJvbGVTZXQsIEFVVEhfQURNSU5fUk9MRSwgY2FjaGVkR2V0dGVyLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQXV0aFVzZXJJbmZvLCBhdXRoVXNlckluZm9Gcm9tQXV0aFVzZXIsIGZpcmViYXNlQXV0aFRva2VuRnJvbVVzZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7IHNlbmRQYXNzd29yZFJlc2V0RW1haWwgfSBmcm9tICdmaXJlYmFzZS9hdXRoJztcbmltcG9ydCB7IGF1dGhVc2VyU3RhdGVGcm9tRmlyZWJhc2VBdXRoU2VydmljZUZ1bmN0aW9uIH0gZnJvbSAnLi9maXJlYmFzZS5hdXRoLnJ4anMnO1xuaW1wb3J0IHsgRmlyZWJhc2VBdXRoQ29udGV4dEluZm8sIEZpcmViYXNlQXV0aFRva2VuIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IHJldHVybnMgdGhlIHN0YXRlIG9mIHRoZVxuICovXG5leHBvcnQgdHlwZSBBdXRoVXNlclN0YXRlT2JzRnVuY3Rpb24gPSAoZGJ4RmlyZWJhc2VBdXRoU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoU2VydmljZSkgPT4gT2JzZXJ2YWJsZTxBdXRoVXNlclN0YXRlPjtcblxuLy8gTUFSSzogRGVsZWdhdGVcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUge1xuICBmdWxsQ29udHJvbE9mQXV0aFVzZXJTdGF0ZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWJzdHJhY3QgYXV0aFVzZXJTdGF0ZU9iczogQXV0aFVzZXJTdGF0ZU9ic0Z1bmN0aW9uO1xuICBhYnN0cmFjdCBhdXRoUm9sZXNPYnMoZGJ4RmlyZWJhc2VBdXRoU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoU2VydmljZSk6IE9ic2VydmFibGU8QXV0aFJvbGVTZXQ+O1xuICBhYnN0cmFjdCBpc09uYm9hcmRlZChkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCByb2xlcyBpbXBseSB0aGUgYWRtaW4gcHJpdmlsZWRnZXMuXG4gICAqL1xuICBhYnN0cmFjdCBpc0FkbWluSW5BdXRoUm9sZVNldChhdXRoUm9sZVNldDogQXV0aFJvbGVTZXQpOiBib29sZWFuO1xuICBhYnN0cmFjdCBhdXRoUm9sZUNsYWltc1NlcnZpY2U/OiBNYXliZTxBdXRoUm9sZUNsYWltc1NlcnZpY2U8QXV0aENsYWltc09iamVjdD4+O1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRklSRUJBU0VfQVVUSF9TRVJWSUNFX0RFTEVHQVRFOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUgPSB7XG4gIGF1dGhVc2VyU3RhdGVPYnM6IGF1dGhVc2VyU3RhdGVGcm9tRmlyZWJhc2VBdXRoU2VydmljZUZ1bmN0aW9uKCksXG4gIGF1dGhSb2xlc09icyhkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKTogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD4ge1xuICAgIHJldHVybiBkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLmF1dGhVc2VyU3RhdGUkLnBpcGUobWFwKCh4KSA9PiAoeCA9PT0gJ3VzZXInID8gbmV3IFNldChbJ3VzZXInXSkgOiBuZXcgU2V0KCkpKSk7XG4gIH0sXG4gIGlzT25ib2FyZGVkKGRieEZpcmViYXNlQXV0aFNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZGJ4RmlyZWJhc2VBdXRoU2VydmljZS5hdXRoVXNlclN0YXRlJC5waXBlKG1hcCgoeCkgPT4geCA9PT0gJ3VzZXInKSk7XG4gIH0sXG4gIGlzQWRtaW5JbkF1dGhSb2xlU2V0KGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhdXRoUm9sZVNldC5oYXMoQVVUSF9BRE1JTl9ST0xFKTtcbiAgfVxufTtcblxuLy8gTUFSSzogU2VydmljZVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQXV0aFNlcnZpY2UgaW1wbGVtZW50cyBEYnhBdXRoU2VydmljZSB7XG4gIHJlYWRvbmx5IF9hdXRoU3RhdGUkOiBPYnNlcnZhYmxlPE1heWJlPFVzZXI+PiA9IGF1dGhTdGF0ZSh0aGlzLmZpcmViYXNlQXV0aCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEF1dGhVc2VyJDogT2JzZXJ2YWJsZTxNYXliZTxVc2VyPj4gPSB0aGlzLl9hdXRoU3RhdGUkLnBpcGUodGltZW91dFN0YXJ0V2l0aChudWxsIGFzIE1heWJlPFVzZXI+LCAxMDAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBjdXJyZW50QXV0aFVzZXJJbmZvJDogT2JzZXJ2YWJsZTxNYXliZTxBdXRoVXNlckluZm8+PiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKG1hcCgoeCkgPT4gKHggPyBhdXRoVXNlckluZm9Gcm9tQXV0aFVzZXIoeCkgOiB1bmRlZmluZWQpKSk7XG5cbiAgcmVhZG9ubHkgYXV0aFVzZXIkOiBPYnNlcnZhYmxlPFVzZXI+ID0gdGhpcy5jdXJyZW50QXV0aFVzZXIkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG4gIHJlYWRvbmx5IGF1dGhVc2VySW5mbyQ6IE9ic2VydmFibGU8QXV0aFVzZXJJbmZvPiA9IHRoaXMuYXV0aFVzZXIkLnBpcGUobWFwKGF1dGhVc2VySW5mb0Zyb21BdXRoVXNlcikpO1xuXG4gIHJlYWRvbmx5IGhhc0F1dGhVc2VyJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gQm9vbGVhbih4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzQW5vbnltb3VzVXNlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmF1dGhVc2VyJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pc0Fub255bW91cyksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICByZWFkb25seSBpc05vdEFub255bW91c1VzZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0Fub255bW91c1VzZXIkLnBpcGUoaXNOb3QoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGlzTG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5oYXNBdXRoVXNlciQ7XG4gIHJlYWRvbmx5IGlzTm90TG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0xvZ2dlZEluJC5waXBlKGlzTm90KCkpO1xuICByZWFkb25seSBvbkxvZ0luJDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZEluT2JzRnJvbUlzTG9nZ2VkSW4odGhpcy5pc0xvZ2dlZEluJCk7XG4gIHJlYWRvbmx5IG9uTG9nT3V0JDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZE91dE9ic0Zyb21Jc0xvZ2dlZEluKHRoaXMuaXNMb2dnZWRJbiQpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRVaWQkOiBPYnNlcnZhYmxlPE1heWJlPEF1dGhVc2VySWRlbnRpZmllcj4+ID0gdGhpcy5jdXJyZW50QXV0aFVzZXIkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py51aWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSB1aWQkOiBPYnNlcnZhYmxlPEF1dGhVc2VySWRlbnRpZmllciB8IE5vQXV0aFVzZXJJZGVudGlmaWVyPiA9IHRoaXMuY3VycmVudFVpZCQucGlwZShtYXAoYXV0aFVzZXJJZGVudGlmaWVyKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICAvKipcbiAgICogQWxpYXMgZm9yIHVpZCRcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJJZGVudGlmaWVyJDogT2JzZXJ2YWJsZTxBdXRoVXNlcklkZW50aWZpZXIgfCBOb0F1dGhVc2VySWRlbnRpZmllcj4gPSB0aGlzLnVpZCQ7XG5cbiAgcmVhZG9ubHkgY3VycmVudElkVG9rZW5TdHJpbmckOiBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+ID0gaWRUb2tlbih0aGlzLmZpcmViYXNlQXV0aCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGlkVG9rZW5TdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmN1cnJlbnRVaWQkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiAoeCA/IHRoaXMuY3VycmVudElkVG9rZW5TdHJpbmckLnBpcGUoZmlsdGVyTWF5YmUoKSkgOiBFTVBUWSkpKTtcblxuICByZWFkb25seSBjdXJyZW50SWRUb2tlblJlc3VsdCQ6IE9ic2VydmFibGU8TWF5YmU8SWRUb2tlblJlc3VsdD4+ID0gdGhpcy5jdXJyZW50QXV0aFVzZXIkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiAoeCA/IHRoaXMuY3VycmVudElkVG9rZW5TdHJpbmckLnBpcGUoc3dpdGNoTWFwKCh5KSA9PiAoeSA/IHguZ2V0SWRUb2tlblJlc3VsdCgpIDogb2YobnVsbCkpKSkgOiBvZihudWxsKSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgaWRUb2tlblJlc3VsdCQ6IE9ic2VydmFibGU8SWRUb2tlblJlc3VsdD4gPSB0aGlzLmN1cnJlbnRJZFRva2VuUmVzdWx0JC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRDbGFpbXMkOiBPYnNlcnZhYmxlPE1heWJlPFBhcnNlZFRva2VuPj4gPSB0aGlzLmN1cnJlbnRJZFRva2VuUmVzdWx0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4gKHggPyB4LmNsYWltcyA6IG51bGwpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGNsYWltcyQ6IE9ic2VydmFibGU8UGFyc2VkVG9rZW4+ID0gdGhpcy5jdXJyZW50Q2xhaW1zJC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRBdXRoQ29udGV4dEluZm8kOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMubG9hZEF1dGhDb250ZXh0SW5mb0ZvclVzZXIoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGF1dGhDb250ZXh0SW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiA9IHRoaXMuY3VycmVudEF1dGhDb250ZXh0SW5mbyQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBhdXRoVXNlclN0YXRlJDogT2JzZXJ2YWJsZTxBdXRoVXNlclN0YXRlPjtcbiAgcmVhZG9ubHkgYXV0aFJvbGVzJDogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD47XG4gIHJlYWRvbmx5IGlzT25ib2FyZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIF9hdXRoUm9sZUNsYWltc1NlcnZpY2U/OiBNYXliZTxBdXRoUm9sZUNsYWltc1NlcnZpY2U8QXV0aENsYWltc09iamVjdD4+O1xuICByZWFkb25seSBpc0FkbWluSW5BdXRoUm9sZVNldDogKGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCkgPT4gYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJlYmFzZUF1dGg6IEF1dGgsIEBPcHRpb25hbCgpIGRlbGVnYXRlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUpIHtcbiAgICBkZWxlZ2F0ZSA9IGRlbGVnYXRlID8/IERFRkFVTFRfREJYX0ZJUkVCQVNFX0FVVEhfU0VSVklDRV9ERUxFR0FURTtcblxuICAgIGNvbnN0IGRlbGVnYXRlQXV0aFVzZXJTdGF0ZU9icyA9IGRlbGVnYXRlLmF1dGhVc2VyU3RhdGVPYnModGhpcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoJ2Vycm9yJyBhcyBBdXRoVXNlclN0YXRlKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgaWYgKGRlbGVnYXRlLmZ1bGxDb250cm9sT2ZBdXRoVXNlclN0YXRlKSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gdGhpcy5fYXV0aFN0YXRlJC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgICAgICBpZiAoeCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJ25vbmUnIGFzIEF1dGhVc2VyU3RhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRoUm9sZXMkID0gZGVsZWdhdGUuYXV0aFJvbGVzT2JzKHRoaXMpO1xuICAgIHRoaXMuaXNPbmJvYXJkZWQkID0gZGVsZWdhdGUuaXNPbmJvYXJkZWQodGhpcyk7XG4gICAgdGhpcy5fYXV0aFJvbGVDbGFpbXNTZXJ2aWNlID0gZGVsZWdhdGUuYXV0aFJvbGVDbGFpbXNTZXJ2aWNlO1xuICAgIHRoaXMuaXNBZG1pbkluQXV0aFJvbGVTZXQgPSBkZWxlZ2F0ZS5pc0FkbWluSW5BdXRoUm9sZVNldDtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPElkVG9rZW5SZXN1bHQ+IHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5maXJlYmFzZUF1dGguY3VycmVudFVzZXI7XG5cbiAgICBpZiAoIXVzZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gdXNlciB0byByZWZyZXNoIHRoZSB0b2tlbiBmb3IuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXIuZ2V0SWRUb2tlblJlc3VsdCh0cnVlKTtcbiAgfVxuXG4gIHJvbGVzRm9yQ2xhaW1zPFQgZXh0ZW5kcyBBdXRoQ2xhaW1zT2JqZWN0ID0gQXV0aENsYWltc09iamVjdD4oY2xhaW1zOiBBdXRoQ2xhaW1zPFQ+KTogQXV0aFJvbGVTZXQge1xuICAgIGxldCByZXN1bHQ6IEF1dGhSb2xlU2V0O1xuXG4gICAgaWYgKHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZS50b1JvbGVzKGNsYWltcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignRGJ4RmlyZWJhc2VBdXRoU2VydmljZTogcm9sZXNGb3JDbGFpbXMgY2FsbGVkIHdpdGggbm8gYXV0aFJvbGVDbGFpbXNTZXJ2aWNlIHByb3ZpZGVkLiBBbiBlbXB0eSBzZXQgaXMgcmV0dXJuZWQuJyk7XG4gICAgICByZXN1bHQgPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldEF1dGhDb250ZXh0SW5mbygpOiBQcm9taXNlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGhVc2VyJCkudGhlbigodXNlcikgPT4gdGhpcy5sb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyKSk7XG4gIH1cblxuICBhc3luYyBsb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyOiBNYXliZTxVc2VyPik6IFByb21pc2U8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiB7XG4gICAgbGV0IHJlc3VsdDogTWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+O1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIGNvbnN0IGp3dFRva2VuOiBJZFRva2VuUmVzdWx0ID0gYXdhaXQgdXNlci5nZXRJZFRva2VuUmVzdWx0KCk7XG4gICAgICByZXN1bHQgPSBuZXcgRGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8odGhpcywgdXNlciwgand0VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBsb2dJbldpdGhHb29nbGUoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHb29nbGVBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhGYWNlYm9vaygpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IEZhY2Vib29rQXV0aFByb3ZpZGVyKCkpO1xuICB9XG5cbiAgbG9nSW5XaXRoVHdpdHRlcigpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IFR3aXR0ZXJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhHaXRodWIoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHaXRodWJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhBcHBsZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhNaWNyb3NvZnQoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIC8vIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBNaWNyb3NvZnRBdXRoUHJvdmlkZXIoKSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhQaG9uZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gICAgLy8gcmV0dXJuIHNpZ25JbldpdGhQaG9uZU51bWJlcih0aGlzLmZpcmViYXNlQXV0aCwgKVxuICB9XG5cbiAgbG9nSW5XaXRoUG9wdXAocHJvdmlkZXI6IEF1dGhQcm92aWRlciwgcmVzb2x2ZXI/OiBQb3B1cFJlZGlyZWN0UmVzb2x2ZXIpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLmZpcmViYXNlQXV0aCwgcHJvdmlkZXIsIHJlc29sdmVyKTtcbiAgfVxuXG4gIHJlZ2lzdGVyV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuZmlyZWJhc2VBdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHNlbmRQYXNzd29yZFJlc2V0RW1haWwodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsKTtcbiAgfVxuXG4gIGxvZ0luV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBsb2dJbkFzQW5vbnltb3VzKCk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluQW5vbnltb3VzbHkodGhpcy5maXJlYmFzZUF1dGgpO1xuICB9XG5cbiAgbG9nT3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmZpcmViYXNlQXV0aC5zaWduT3V0KCk7XG4gIH1cblxuICByZWF1dGhlbnRpY2F0ZVdpdGhQb3B1cChwcm92aWRlcjogQXV0aFByb3ZpZGVyLCByZXNvbHZlcj86IFBvcHVwUmVkaXJlY3RSZXNvbHZlcik6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh4OiBNYXliZTxVc2VyPikgPT4ge1xuICAgICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVhdXRoZW50aWNhdGVXaXRoUG9wdXAoeCwgcHJvdmlkZXIsIHJlc29sdmVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVc2VyIGlzIG5vdCBsb2dnZWQgaW4gY3VycmVudGx5LicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRmlyZWJhc2VBdXRoQ29udGV4dEluZm8gaW1wbGVtZW50YXRpb24gZnJvbSBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8gaW1wbGVtZW50cyBGaXJlYmFzZUF1dGhDb250ZXh0SW5mbyB7XG4gIHByaXZhdGUgX3Rva2VuID0gY2FjaGVkR2V0dGVyKCgpID0+IGZpcmViYXNlQXV0aFRva2VuRnJvbVVzZXIodGhpcy51c2VyKSk7XG4gIHByaXZhdGUgX3JvbGVzID0gY2FjaGVkR2V0dGVyKCgpID0+IHRoaXMuc2VydmljZS5yb2xlc0ZvckNsYWltcyh0aGlzLmdldENsYWltcygpKSk7XG4gIHByaXZhdGUgX2lzQWRtaW4gPSBjYWNoZWRHZXR0ZXIoKCkgPT4gdGhpcy5zZXJ2aWNlLmlzQWRtaW5JbkF1dGhSb2xlU2V0KHRoaXMuX3JvbGVzKCkpKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLCByZWFkb25seSB1c2VyOiBVc2VyLCByZWFkb25seSBqd3RUb2tlbjogSWRUb2tlblJlc3VsdCkge31cblxuICBnZXQgdWlkKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXIudWlkO1xuICB9XG5cbiAgaXNBZG1pbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNBZG1pbigpO1xuICB9XG5cbiAgZ2V0Q2xhaW1zPFQgZXh0ZW5kcyBBdXRoQ2xhaW1zT2JqZWN0ID0gQXV0aENsYWltc09iamVjdD4oKTogQXV0aENsYWltczxUPiB7XG4gICAgcmV0dXJuIHRoaXMuand0VG9rZW4uY2xhaW1zIGFzIEF1dGhDbGFpbXM8VD47XG4gIH1cblxuICBnZXRBdXRoUm9sZXMoKTogQXV0aFJvbGVTZXQge1xuICAgIHJldHVybiB0aGlzLl9yb2xlcygpO1xuICB9XG5cbiAgZ2V0IHRva2VuKCk6IEZpcmViYXNlQXV0aFRva2VuIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4oKTtcbiAgfVxufVxuIl19
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9zZXJ2aWNlL2ZpcmViYXNlLmF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWlDLDBCQUEwQixFQUFFLHlCQUF5QixFQUFzQixrQkFBa0IsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN2TCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQW9DLGtCQUFrQixFQUFFLGVBQWUsRUFBdUMsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQWtCLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLDhCQUE4QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDalcsT0FBTyxFQUFFLEVBQUUsRUFBYyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1SCxPQUFPLEVBQW9FLGVBQWUsRUFBRSxZQUFZLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFnQix3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQVFwRixpQkFBaUI7QUFDakIsTUFBTSxPQUFnQiw4QkFBOEI7SUFBcEQ7UUFDVywrQkFBMEIsR0FBYSxLQUFLLENBQUM7SUFTeEQsQ0FBQztDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQW1DO0lBQ3hGLGdCQUFnQixFQUFFLDRDQUE0QyxFQUFFO0lBQ2hFLFlBQVksQ0FBQyxzQkFBOEM7UUFDekQsT0FBTyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUNELFdBQVcsQ0FBQyxzQkFBOEM7UUFDeEQsT0FBTyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELG9CQUFvQixDQUFDLFdBQXdCO1FBQzNDLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0YsQ0FBQztBQUVGLGdCQUFnQjtBQUVoQixNQUFNLE9BQU8sc0JBQXNCO0lBcUVqQyxZQUFxQixZQUFrQixFQUFjLFFBQXdDO1FBQXhFLGlCQUFZLEdBQVosWUFBWSxDQUFNO1FBcEU5QixnQkFBVyxHQUE0QixTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBFLHFCQUFnQixHQUE0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFtQixFQUFFLElBQUksQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkoseUJBQW9CLEdBQW9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5SSxjQUFTLEdBQXFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN4RSxrQkFBYSxHQUE2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1FBRTdGLGlCQUFZLEdBQXdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3JFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3RCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8scUJBQWdCLEdBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNsRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFDekIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFDTyx3QkFBbUIsR0FBd0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZILGdCQUFXLEdBQXdCLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDckQsbUJBQWMsR0FBd0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRSxhQUFRLEdBQXFCLHlCQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RSxjQUFTLEdBQXFCLDBCQUEwQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzRSxnQkFBVyxHQUEwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN0RixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFDbEIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxTQUFJLEdBQTBELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUo7O1dBRUc7UUFDTSxvQkFBZSxHQUEwRCxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRW5GLDBCQUFxQixHQUE4QixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNILG1CQUFjLEdBQXVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNJLDBCQUFxQixHQUFxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMzRixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQzNILG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBQ08sbUJBQWMsR0FBOEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTNGLG1CQUFjLEdBQW1DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ2pDLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBQ08sWUFBTyxHQUE0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTNFLDRCQUF1QixHQUFrRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMxRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUNPLHFCQUFnQixHQUFrRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFVMUgsUUFBUSxHQUFHLFFBQVEsSUFBSSwwQ0FBMEMsQ0FBQztRQUVsRSxNQUFNLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ25FLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBd0IsQ0FBQyxDQUFDLEVBQzlDLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsMEJBQTBCLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDekMsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO29CQUNiLE9BQU8sd0JBQXdCLENBQUM7aUJBQ2pDO3FCQUFNO29CQUNMLE9BQU8sRUFBRSxDQUFDLE1BQXVCLENBQUMsQ0FBQztpQkFDcEM7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUM7UUFDN0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVk7UUFDaEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7UUFFM0MsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxjQUFjLENBQWdELE1BQXFCO1FBQ2pGLElBQUksTUFBbUIsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDcEQ7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUhBQWlILENBQUMsQ0FBQztZQUNoSSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNwQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxJQUFpQjtRQUNoRCxJQUFJLE1BQXlDLENBQUM7UUFFOUMsSUFBSSxJQUFJLEVBQUU7WUFDUixNQUFNLFFBQVEsR0FBa0IsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5RCxNQUFNLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLDJEQUEyRDtRQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixvREFBb0Q7SUFDdEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFzQixFQUFFLFFBQWdDO1FBQ3JFLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxLQUFhLEVBQUUsUUFBZ0I7UUFDMUQsT0FBTyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBYTtRQUNsQyxPQUFPLHNCQUFzQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUN2RCxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsUUFBc0IsRUFBRSxRQUFnQztRQUM5RSxPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZEO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQzthQUNyRDtRQUNILENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7K0dBM01VLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVOzswQkFzRWlDLFFBQVE7O0FBeUlwRDs7R0FFRztBQUNILE1BQU0sT0FBTywwQkFBMEI7SUFLckMsWUFBcUIsT0FBK0IsRUFBVyxJQUFVLEVBQVcsUUFBdUI7UUFBdEYsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFBVyxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUpuRyxXQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLFdBQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRSxhQUFRLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVzQixDQUFDO0lBRS9HLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUF1QixDQUFDO0lBQy9DLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlLCBpc05vdCwgdGltZW91dFN0YXJ0V2l0aCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhVc2VyU3RhdGUsIERieEF1dGhTZXJ2aWNlLCBsb2dnZWRPdXRPYnNGcm9tSXNMb2dnZWRJbiwgbG9nZ2VkSW5PYnNGcm9tSXNMb2dnZWRJbiwgQXV0aFVzZXJJZGVudGlmaWVyLCBhdXRoVXNlcklkZW50aWZpZXIsIE5vQXV0aFVzZXJJZGVudGlmaWVyIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgcmVhdXRoZW50aWNhdGVXaXRoUG9wdXAsIEF1dGgsIGF1dGhTdGF0ZSwgaWRUb2tlbiwgVXNlciwgSWRUb2tlblJlc3VsdCwgUGFyc2VkVG9rZW4sIEdvb2dsZUF1dGhQcm92aWRlciwgc2lnbkluV2l0aFBvcHVwLCBBdXRoUHJvdmlkZXIsIFBvcHVwUmVkaXJlY3RSZXNvbHZlciwgc2lnbkluQW5vbnltb3VzbHksIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkLCBVc2VyQ3JlZGVudGlhbCwgRmFjZWJvb2tBdXRoUHJvdmlkZXIsIEdpdGh1YkF1dGhQcm92aWRlciwgVHdpdHRlckF1dGhQcm92aWRlciwgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXksIG1hcCwgc3dpdGNoTWFwLCBmaXJzdFZhbHVlRnJvbSwgY2F0Y2hFcnJvciwgRU1QVFkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhDbGFpbXMsIEF1dGhDbGFpbXNPYmplY3QsIEF1dGhSb2xlQ2xhaW1zU2VydmljZSwgQXV0aFJvbGVTZXQsIEFVVEhfQURNSU5fUk9MRSwgY2FjaGVkR2V0dGVyLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQXV0aFVzZXJJbmZvLCBhdXRoVXNlckluZm9Gcm9tQXV0aFVzZXIsIGZpcmViYXNlQXV0aFRva2VuRnJvbVVzZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7IHNlbmRQYXNzd29yZFJlc2V0RW1haWwgfSBmcm9tICdmaXJlYmFzZS9hdXRoJztcbmltcG9ydCB7IGF1dGhVc2VyU3RhdGVGcm9tRmlyZWJhc2VBdXRoU2VydmljZUZ1bmN0aW9uIH0gZnJvbSAnLi9maXJlYmFzZS5hdXRoLnJ4anMnO1xuaW1wb3J0IHsgRmlyZWJhc2VBdXRoQ29udGV4dEluZm8sIEZpcmViYXNlQXV0aFRva2VuIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IHJldHVybnMgdGhlIHN0YXRlIG9mIHRoZVxuICovXG5leHBvcnQgdHlwZSBBdXRoVXNlclN0YXRlT2JzRnVuY3Rpb24gPSAoZGJ4RmlyZWJhc2VBdXRoU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoU2VydmljZSkgPT4gT2JzZXJ2YWJsZTxBdXRoVXNlclN0YXRlPjtcblxuLy8gTUFSSzogRGVsZWdhdGVcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUge1xuICByZWFkb25seSBmdWxsQ29udHJvbE9mQXV0aFVzZXJTdGF0ZT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWJzdHJhY3QgYXV0aFVzZXJTdGF0ZU9iczogQXV0aFVzZXJTdGF0ZU9ic0Z1bmN0aW9uO1xuICBhYnN0cmFjdCBhdXRoUm9sZXNPYnMoZGJ4RmlyZWJhc2VBdXRoU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoU2VydmljZSk6IE9ic2VydmFibGU8QXV0aFJvbGVTZXQ+O1xuICBhYnN0cmFjdCBpc09uYm9hcmRlZChkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCByb2xlcyBpbXBseSB0aGUgYWRtaW4gcHJpdmlsZWRnZXMuXG4gICAqL1xuICBhYnN0cmFjdCBpc0FkbWluSW5BdXRoUm9sZVNldChhdXRoUm9sZVNldDogQXV0aFJvbGVTZXQpOiBib29sZWFuO1xuICBhYnN0cmFjdCBhdXRoUm9sZUNsYWltc1NlcnZpY2U/OiBNYXliZTxBdXRoUm9sZUNsYWltc1NlcnZpY2U8QXV0aENsYWltc09iamVjdD4+O1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRklSRUJBU0VfQVVUSF9TRVJWSUNFX0RFTEVHQVRFOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUgPSB7XG4gIGF1dGhVc2VyU3RhdGVPYnM6IGF1dGhVc2VyU3RhdGVGcm9tRmlyZWJhc2VBdXRoU2VydmljZUZ1bmN0aW9uKCksXG4gIGF1dGhSb2xlc09icyhkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKTogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD4ge1xuICAgIHJldHVybiBkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLmF1dGhVc2VyU3RhdGUkLnBpcGUobWFwKCh4KSA9PiAoeCA9PT0gJ3VzZXInID8gbmV3IFNldChbJ3VzZXInXSkgOiBuZXcgU2V0KCkpKSk7XG4gIH0sXG4gIGlzT25ib2FyZGVkKGRieEZpcmViYXNlQXV0aFNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZGJ4RmlyZWJhc2VBdXRoU2VydmljZS5hdXRoVXNlclN0YXRlJC5waXBlKG1hcCgoeCkgPT4geCA9PT0gJ3VzZXInKSk7XG4gIH0sXG4gIGlzQWRtaW5JbkF1dGhSb2xlU2V0KGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhdXRoUm9sZVNldC5oYXMoQVVUSF9BRE1JTl9ST0xFKTtcbiAgfVxufTtcblxuLy8gTUFSSzogU2VydmljZVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQXV0aFNlcnZpY2UgaW1wbGVtZW50cyBEYnhBdXRoU2VydmljZSB7XG4gIHJlYWRvbmx5IF9hdXRoU3RhdGUkOiBPYnNlcnZhYmxlPE1heWJlPFVzZXI+PiA9IGF1dGhTdGF0ZSh0aGlzLmZpcmViYXNlQXV0aCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEF1dGhVc2VyJDogT2JzZXJ2YWJsZTxNYXliZTxVc2VyPj4gPSB0aGlzLl9hdXRoU3RhdGUkLnBpcGUodGltZW91dFN0YXJ0V2l0aChudWxsIGFzIE1heWJlPFVzZXI+LCAxMDAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBjdXJyZW50QXV0aFVzZXJJbmZvJDogT2JzZXJ2YWJsZTxNYXliZTxBdXRoVXNlckluZm8+PiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKG1hcCgoeCkgPT4gKHggPyBhdXRoVXNlckluZm9Gcm9tQXV0aFVzZXIoeCkgOiB1bmRlZmluZWQpKSk7XG5cbiAgcmVhZG9ubHkgYXV0aFVzZXIkOiBPYnNlcnZhYmxlPFVzZXI+ID0gdGhpcy5jdXJyZW50QXV0aFVzZXIkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG4gIHJlYWRvbmx5IGF1dGhVc2VySW5mbyQ6IE9ic2VydmFibGU8QXV0aFVzZXJJbmZvPiA9IHRoaXMuYXV0aFVzZXIkLnBpcGUobWFwKGF1dGhVc2VySW5mb0Zyb21BdXRoVXNlcikpO1xuXG4gIHJlYWRvbmx5IGhhc0F1dGhVc2VyJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gQm9vbGVhbih4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzQW5vbnltb3VzVXNlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmF1dGhVc2VyJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pc0Fub255bW91cyksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICByZWFkb25seSBpc05vdEFub255bW91c1VzZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0Fub255bW91c1VzZXIkLnBpcGUoaXNOb3QoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGlzTG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5oYXNBdXRoVXNlciQ7XG4gIHJlYWRvbmx5IGlzTm90TG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0xvZ2dlZEluJC5waXBlKGlzTm90KCkpO1xuICByZWFkb25seSBvbkxvZ0luJDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZEluT2JzRnJvbUlzTG9nZ2VkSW4odGhpcy5pc0xvZ2dlZEluJCk7XG4gIHJlYWRvbmx5IG9uTG9nT3V0JDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZE91dE9ic0Zyb21Jc0xvZ2dlZEluKHRoaXMuaXNMb2dnZWRJbiQpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRVaWQkOiBPYnNlcnZhYmxlPE1heWJlPEF1dGhVc2VySWRlbnRpZmllcj4+ID0gdGhpcy5jdXJyZW50QXV0aFVzZXIkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py51aWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSB1aWQkOiBPYnNlcnZhYmxlPEF1dGhVc2VySWRlbnRpZmllciB8IE5vQXV0aFVzZXJJZGVudGlmaWVyPiA9IHRoaXMuY3VycmVudFVpZCQucGlwZShtYXAoYXV0aFVzZXJJZGVudGlmaWVyKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICAvKipcbiAgICogQWxpYXMgZm9yIHVpZCRcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJJZGVudGlmaWVyJDogT2JzZXJ2YWJsZTxBdXRoVXNlcklkZW50aWZpZXIgfCBOb0F1dGhVc2VySWRlbnRpZmllcj4gPSB0aGlzLnVpZCQ7XG5cbiAgcmVhZG9ubHkgY3VycmVudElkVG9rZW5TdHJpbmckOiBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+ID0gaWRUb2tlbih0aGlzLmZpcmViYXNlQXV0aCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGlkVG9rZW5TdHJpbmckOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmN1cnJlbnRVaWQkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiAoeCA/IHRoaXMuY3VycmVudElkVG9rZW5TdHJpbmckLnBpcGUoZmlsdGVyTWF5YmUoKSkgOiBFTVBUWSkpKTtcblxuICByZWFkb25seSBjdXJyZW50SWRUb2tlblJlc3VsdCQ6IE9ic2VydmFibGU8TWF5YmU8SWRUb2tlblJlc3VsdD4+ID0gdGhpcy5jdXJyZW50QXV0aFVzZXIkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiAoeCA/IHRoaXMuY3VycmVudElkVG9rZW5TdHJpbmckLnBpcGUoc3dpdGNoTWFwKCh5KSA9PiAoeSA/IHguZ2V0SWRUb2tlblJlc3VsdCgpIDogb2YobnVsbCkpKSkgOiBvZihudWxsKSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgaWRUb2tlblJlc3VsdCQ6IE9ic2VydmFibGU8SWRUb2tlblJlc3VsdD4gPSB0aGlzLmN1cnJlbnRJZFRva2VuUmVzdWx0JC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRDbGFpbXMkOiBPYnNlcnZhYmxlPE1heWJlPFBhcnNlZFRva2VuPj4gPSB0aGlzLmN1cnJlbnRJZFRva2VuUmVzdWx0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4gKHggPyB4LmNsYWltcyA6IG51bGwpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGNsYWltcyQ6IE9ic2VydmFibGU8UGFyc2VkVG9rZW4+ID0gdGhpcy5jdXJyZW50Q2xhaW1zJC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRBdXRoQ29udGV4dEluZm8kOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMubG9hZEF1dGhDb250ZXh0SW5mb0ZvclVzZXIoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGF1dGhDb250ZXh0SW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiA9IHRoaXMuY3VycmVudEF1dGhDb250ZXh0SW5mbyQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBhdXRoVXNlclN0YXRlJDogT2JzZXJ2YWJsZTxBdXRoVXNlclN0YXRlPjtcbiAgcmVhZG9ubHkgYXV0aFJvbGVzJDogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD47XG4gIHJlYWRvbmx5IGlzT25ib2FyZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIF9hdXRoUm9sZUNsYWltc1NlcnZpY2U/OiBNYXliZTxBdXRoUm9sZUNsYWltc1NlcnZpY2U8QXV0aENsYWltc09iamVjdD4+O1xuICByZWFkb25seSBpc0FkbWluSW5BdXRoUm9sZVNldDogKGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCkgPT4gYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJlYmFzZUF1dGg6IEF1dGgsIEBPcHRpb25hbCgpIGRlbGVnYXRlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUpIHtcbiAgICBkZWxlZ2F0ZSA9IGRlbGVnYXRlID8/IERFRkFVTFRfREJYX0ZJUkVCQVNFX0FVVEhfU0VSVklDRV9ERUxFR0FURTtcblxuICAgIGNvbnN0IGRlbGVnYXRlQXV0aFVzZXJTdGF0ZU9icyA9IGRlbGVnYXRlLmF1dGhVc2VyU3RhdGVPYnModGhpcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoJ2Vycm9yJyBhcyBBdXRoVXNlclN0YXRlKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgaWYgKGRlbGVnYXRlLmZ1bGxDb250cm9sT2ZBdXRoVXNlclN0YXRlKSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gdGhpcy5fYXV0aFN0YXRlJC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgICAgICBpZiAoeCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJ25vbmUnIGFzIEF1dGhVc2VyU3RhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRoUm9sZXMkID0gZGVsZWdhdGUuYXV0aFJvbGVzT2JzKHRoaXMpO1xuICAgIHRoaXMuaXNPbmJvYXJkZWQkID0gZGVsZWdhdGUuaXNPbmJvYXJkZWQodGhpcyk7XG4gICAgdGhpcy5fYXV0aFJvbGVDbGFpbXNTZXJ2aWNlID0gZGVsZWdhdGUuYXV0aFJvbGVDbGFpbXNTZXJ2aWNlO1xuICAgIHRoaXMuaXNBZG1pbkluQXV0aFJvbGVTZXQgPSBkZWxlZ2F0ZS5pc0FkbWluSW5BdXRoUm9sZVNldDtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPElkVG9rZW5SZXN1bHQ+IHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5maXJlYmFzZUF1dGguY3VycmVudFVzZXI7XG5cbiAgICBpZiAoIXVzZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gdXNlciB0byByZWZyZXNoIHRoZSB0b2tlbiBmb3IuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXIuZ2V0SWRUb2tlblJlc3VsdCh0cnVlKTtcbiAgfVxuXG4gIHJvbGVzRm9yQ2xhaW1zPFQgZXh0ZW5kcyBBdXRoQ2xhaW1zT2JqZWN0ID0gQXV0aENsYWltc09iamVjdD4oY2xhaW1zOiBBdXRoQ2xhaW1zPFQ+KTogQXV0aFJvbGVTZXQge1xuICAgIGxldCByZXN1bHQ6IEF1dGhSb2xlU2V0O1xuXG4gICAgaWYgKHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZS50b1JvbGVzKGNsYWltcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignRGJ4RmlyZWJhc2VBdXRoU2VydmljZTogcm9sZXNGb3JDbGFpbXMgY2FsbGVkIHdpdGggbm8gYXV0aFJvbGVDbGFpbXNTZXJ2aWNlIHByb3ZpZGVkLiBBbiBlbXB0eSBzZXQgaXMgcmV0dXJuZWQuJyk7XG4gICAgICByZXN1bHQgPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldEF1dGhDb250ZXh0SW5mbygpOiBQcm9taXNlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGhVc2VyJCkudGhlbigodXNlcikgPT4gdGhpcy5sb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyKSk7XG4gIH1cblxuICBhc3luYyBsb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyOiBNYXliZTxVc2VyPik6IFByb21pc2U8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiB7XG4gICAgbGV0IHJlc3VsdDogTWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+O1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIGNvbnN0IGp3dFRva2VuOiBJZFRva2VuUmVzdWx0ID0gYXdhaXQgdXNlci5nZXRJZFRva2VuUmVzdWx0KCk7XG4gICAgICByZXN1bHQgPSBuZXcgRGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8odGhpcywgdXNlciwgand0VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBsb2dJbldpdGhHb29nbGUoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHb29nbGVBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhGYWNlYm9vaygpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IEZhY2Vib29rQXV0aFByb3ZpZGVyKCkpO1xuICB9XG5cbiAgbG9nSW5XaXRoVHdpdHRlcigpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IFR3aXR0ZXJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhHaXRodWIoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHaXRodWJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhBcHBsZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhNaWNyb3NvZnQoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIC8vIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBNaWNyb3NvZnRBdXRoUHJvdmlkZXIoKSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhQaG9uZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gICAgLy8gcmV0dXJuIHNpZ25JbldpdGhQaG9uZU51bWJlcih0aGlzLmZpcmViYXNlQXV0aCwgKVxuICB9XG5cbiAgbG9nSW5XaXRoUG9wdXAocHJvdmlkZXI6IEF1dGhQcm92aWRlciwgcmVzb2x2ZXI/OiBQb3B1cFJlZGlyZWN0UmVzb2x2ZXIpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLmZpcmViYXNlQXV0aCwgcHJvdmlkZXIsIHJlc29sdmVyKTtcbiAgfVxuXG4gIHJlZ2lzdGVyV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuZmlyZWJhc2VBdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHNlbmRQYXNzd29yZFJlc2V0RW1haWwodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsKTtcbiAgfVxuXG4gIGxvZ0luV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBsb2dJbkFzQW5vbnltb3VzKCk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluQW5vbnltb3VzbHkodGhpcy5maXJlYmFzZUF1dGgpO1xuICB9XG5cbiAgbG9nT3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmZpcmViYXNlQXV0aC5zaWduT3V0KCk7XG4gIH1cblxuICByZWF1dGhlbnRpY2F0ZVdpdGhQb3B1cChwcm92aWRlcjogQXV0aFByb3ZpZGVyLCByZXNvbHZlcj86IFBvcHVwUmVkaXJlY3RSZXNvbHZlcik6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh4OiBNYXliZTxVc2VyPikgPT4ge1xuICAgICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVhdXRoZW50aWNhdGVXaXRoUG9wdXAoeCwgcHJvdmlkZXIsIHJlc29sdmVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVc2VyIGlzIG5vdCBsb2dnZWQgaW4gY3VycmVudGx5LicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRmlyZWJhc2VBdXRoQ29udGV4dEluZm8gaW1wbGVtZW50YXRpb24gZnJvbSBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8gaW1wbGVtZW50cyBGaXJlYmFzZUF1dGhDb250ZXh0SW5mbyB7XG4gIHByaXZhdGUgX3Rva2VuID0gY2FjaGVkR2V0dGVyKCgpID0+IGZpcmViYXNlQXV0aFRva2VuRnJvbVVzZXIodGhpcy51c2VyKSk7XG4gIHByaXZhdGUgX3JvbGVzID0gY2FjaGVkR2V0dGVyKCgpID0+IHRoaXMuc2VydmljZS5yb2xlc0ZvckNsYWltcyh0aGlzLmdldENsYWltcygpKSk7XG4gIHByaXZhdGUgX2lzQWRtaW4gPSBjYWNoZWRHZXR0ZXIoKCkgPT4gdGhpcy5zZXJ2aWNlLmlzQWRtaW5JbkF1dGhSb2xlU2V0KHRoaXMuX3JvbGVzKCkpKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLCByZWFkb25seSB1c2VyOiBVc2VyLCByZWFkb25seSBqd3RUb2tlbjogSWRUb2tlblJlc3VsdCkge31cblxuICBnZXQgdWlkKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXIudWlkO1xuICB9XG5cbiAgaXNBZG1pbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNBZG1pbigpO1xuICB9XG5cbiAgZ2V0Q2xhaW1zPFQgZXh0ZW5kcyBBdXRoQ2xhaW1zT2JqZWN0ID0gQXV0aENsYWltc09iamVjdD4oKTogQXV0aENsYWltczxUPiB7XG4gICAgcmV0dXJuIHRoaXMuand0VG9rZW4uY2xhaW1zIGFzIEF1dGhDbGFpbXM8VD47XG4gIH1cblxuICBnZXRBdXRoUm9sZXMoKTogQXV0aFJvbGVTZXQge1xuICAgIHJldHVybiB0aGlzLl9yb2xlcygpO1xuICB9XG5cbiAgZ2V0IHRva2VuKCk6IEZpcmViYXNlQXV0aFRva2VuIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4oKTtcbiAgfVxufVxuIl19
|