@dereekb/dbx-firebase 9.20.3 → 9.20.5
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/esm2020/lib/auth/service/firebase.auth.service.mjs +12 -2
- package/esm2020/lib/model/modules/store/store.collection.mjs +1 -4
- package/esm2020/lib/model/modules/store/store.document.mjs +45 -4
- package/fesm2015/dereekb-dbx-firebase.mjs +56 -8
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +56 -8
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/auth/service/firebase.auth.service.d.ts +1 -0
- package/lib/model/modules/store/store.collection.d.ts +0 -3
- package/lib/model/modules/store/store.document.d.ts +28 -3
- package/package.json +5 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { filterMaybe, isNot, timeoutStartWith } from '@dereekb/rxjs';
|
|
2
2
|
import { Injectable, Optional } from '@angular/core';
|
|
3
3
|
import { loggedOutObsFromIsLoggedIn, loggedInObsFromIsLoggedIn, authUserIdentifier } from '@dereekb/dbx-core';
|
|
4
|
-
import { Auth, authState, idToken, GoogleAuthProvider, signInWithPopup, signInAnonymously, signInWithEmailAndPassword, FacebookAuthProvider, GithubAuthProvider, TwitterAuthProvider, createUserWithEmailAndPassword } from '@angular/fire/auth';
|
|
4
|
+
import { reauthenticateWithPopup, Auth, authState, idToken, GoogleAuthProvider, signInWithPopup, signInAnonymously, signInWithEmailAndPassword, FacebookAuthProvider, GithubAuthProvider, TwitterAuthProvider, createUserWithEmailAndPassword } from '@angular/fire/auth';
|
|
5
5
|
import { of, distinctUntilChanged, shareReplay, map, switchMap, firstValueFrom, catchError } from 'rxjs';
|
|
6
6
|
import { AUTH_ADMIN_ROLE, cachedGetter } from '@dereekb/util';
|
|
7
7
|
import { authUserInfoFromAuthUser, firebaseAuthTokenFromUser } from '../auth';
|
|
@@ -141,6 +141,16 @@ export class DbxFirebaseAuthService {
|
|
|
141
141
|
logOut() {
|
|
142
142
|
return this.firebaseAuth.signOut();
|
|
143
143
|
}
|
|
144
|
+
reauthenticateWithPopup(provider, resolver) {
|
|
145
|
+
return firstValueFrom(this.currentAuthUser$.pipe(switchMap((x) => {
|
|
146
|
+
if (x) {
|
|
147
|
+
return reauthenticateWithPopup(x, provider, resolver);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
throw new Error('User is not logged in currently.');
|
|
151
|
+
}
|
|
152
|
+
})));
|
|
153
|
+
}
|
|
144
154
|
}
|
|
145
155
|
DbxFirebaseAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService, deps: [{ token: i1.Auth }, { token: DbxFirebaseAuthServiceDelegate, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
146
156
|
DbxFirebaseAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService });
|
|
@@ -177,4 +187,4 @@ export class DbxFirebaseAuthContextInfo {
|
|
|
177
187
|
return this._token();
|
|
178
188
|
}
|
|
179
189
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9zZXJ2aWNlL2ZpcmViYXNlLmF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWlDLDBCQUEwQixFQUFFLHlCQUF5QixFQUFzQixrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pLLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBb0Msa0JBQWtCLEVBQUUsZUFBZSxFQUF1QyxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBa0Isb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4VSxPQUFPLEVBQUUsRUFBRSxFQUFjLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckgsT0FBTyxFQUFvRSxlQUFlLEVBQUUsWUFBWSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBZ0Isd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFRcEYsaUJBQWlCO0FBQ2pCLE1BQU0sT0FBZ0IsOEJBQThCO0lBQXBEO1FBQ0UsK0JBQTBCLEdBQWEsS0FBSyxD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QUVHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUFxQixPQUErQixFQUFXLElBQVUsRUFBVyxRQUF1QjtRQUF0RixZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQUFXLFNBQUksR0FBSixJQUFJLENBQU07UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFlO1FBSm5HLFdBQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEUsV0FBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLGFBQVEsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXNCLENBQUM7SUFFL0csSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQXVCLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyTWF5YmUsIGlzTm90LCB0aW1lb3V0U3RhcnRXaXRoIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFVzZXJTdGF0ZSwgRGJ4QXV0aFNlcnZpY2UsIGxvZ2dlZE91dE9ic0Zyb21Jc0xvZ2dlZEluLCBsb2dnZWRJbk9ic0Zyb21Jc0xvZ2dlZEluLCBBdXRoVXNlcklkZW50aWZpZXIsIGF1dGhVc2VySWRlbnRpZmllciB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IEF1dGgsIGF1dGhTdGF0ZSwgaWRUb2tlbiwgVXNlciwgSWRUb2tlblJlc3VsdCwgUGFyc2VkVG9rZW4sIEdvb2dsZUF1dGhQcm92aWRlciwgc2lnbkluV2l0aFBvcHVwLCBBdXRoUHJvdmlkZXIsIFBvcHVwUmVkaXJlY3RSZXNvbHZlciwgc2lnbkluQW5vbnltb3VzbHksIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkLCBVc2VyQ3JlZGVudGlhbCwgRmFjZWJvb2tBdXRoUHJvdmlkZXIsIEdpdGh1YkF1dGhQcm92aWRlciwgVHdpdHRlckF1dGhQcm92aWRlciwgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXksIG1hcCwgc3dpdGNoTWFwLCBmaXJzdFZhbHVlRnJvbSwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aENsYWltcywgQXV0aENsYWltc09iamVjdCwgQXV0aFJvbGVDbGFpbXNTZXJ2aWNlLCBBdXRoUm9sZVNldCwgQVVUSF9BRE1JTl9ST0xFLCBjYWNoZWRHZXR0ZXIsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBdXRoVXNlckluZm8sIGF1dGhVc2VySW5mb0Zyb21BdXRoVXNlciwgZmlyZWJhc2VBdXRoVG9rZW5Gcm9tVXNlciB9IGZyb20gJy4uL2F1dGgnO1xuaW1wb3J0IHsgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbCB9IGZyb20gJ2ZpcmViYXNlL2F1dGgnO1xuaW1wb3J0IHsgYXV0aFVzZXJTdGF0ZUZyb21GaXJlYmFzZUF1dGhTZXJ2aWNlRnVuY3Rpb24gfSBmcm9tICcuL2ZpcmViYXNlLmF1dGgucnhqcyc7XG5pbXBvcnQgeyBGaXJlYmFzZUF1dGhDb250ZXh0SW5mbywgRmlyZWJhc2VBdXRoVG9rZW4gfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgcmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlXG4gKi9cbmV4cG9ydCB0eXBlIEF1dGhVc2VyU3RhdGVPYnNGdW5jdGlvbiA9IChkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKSA9PiBPYnNlcnZhYmxlPEF1dGhVc2VyU3RhdGU+O1xuXG4vLyBNQVJLOiBEZWxlZ2F0ZVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZpcmViYXNlQXV0aFNlcnZpY2VEZWxlZ2F0ZSB7XG4gIGZ1bGxDb250cm9sT2ZBdXRoVXNlclN0YXRlPzogYm9vbGVhbiA9IGZhbHNlO1xuICBhYnN0cmFjdCBhdXRoVXNlclN0YXRlT2JzOiBBdXRoVXNlclN0YXRlT2JzRnVuY3Rpb247XG4gIGFic3RyYWN0IGF1dGhSb2xlc09icyhkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKTogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD47XG4gIGFic3RyYWN0IGlzT25ib2FyZGVkKGRieEZpcmViYXNlQXV0aFNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIGlucHV0IHJvbGVzIGltcGx5IHRoZSBhZG1pbiBwcml2aWxlZGdlcy5cbiAgICovXG4gIGFic3RyYWN0IGlzQWRtaW5JbkF1dGhSb2xlU2V0KGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGF1dGhSb2xlQ2xhaW1zU2VydmljZT86IE1heWJlPEF1dGhSb2xlQ2xhaW1zU2VydmljZTxBdXRoQ2xhaW1zT2JqZWN0Pj47XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RCWF9GSVJFQkFTRV9BVVRIX1NFUlZJQ0VfREVMRUdBVEU6IERieEZpcmViYXNlQXV0aFNlcnZpY2VEZWxlZ2F0ZSA9IHtcbiAgYXV0aFVzZXJTdGF0ZU9iczogYXV0aFVzZXJTdGF0ZUZyb21GaXJlYmFzZUF1dGhTZXJ2aWNlRnVuY3Rpb24oKSxcbiAgYXV0aFJvbGVzT2JzKGRieEZpcmViYXNlQXV0aFNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPEF1dGhSb2xlU2V0PiB7XG4gICAgcmV0dXJuIGRieEZpcmViYXNlQXV0aFNlcnZpY2UuYXV0aFVzZXJTdGF0ZSQucGlwZShtYXAoKHgpID0+ICh4ID09PSAndXNlcicgPyBuZXcgU2V0KFsndXNlciddKSA6IG5ldyBTZXQoKSkpKTtcbiAgfSxcbiAgaXNPbmJvYXJkZWQoZGJ4RmlyZWJhc2VBdXRoU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoU2VydmljZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLmF1dGhVc2VyU3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4ID09PSAndXNlcicpKTtcbiAgfSxcbiAgaXNBZG1pbkluQXV0aFJvbGVTZXQoYXV0aFJvbGVTZXQ6IEF1dGhSb2xlU2V0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGF1dGhSb2xlU2V0LmhhcyhBVVRIX0FETUlOX1JPTEUpO1xuICB9XG59O1xuXG4vLyBNQVJLOiBTZXJ2aWNlXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VBdXRoU2VydmljZSBpbXBsZW1lbnRzIERieEF1dGhTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgX2F1dGhTdGF0ZSQ6IE9ic2VydmFibGU8TWF5YmU8VXNlcj4+ID0gYXV0aFN0YXRlKHRoaXMuZmlyZWJhc2VBdXRoKTtcblxuICByZWFkb25seSBjdXJyZW50QXV0aFVzZXIkOiBPYnNlcnZhYmxlPE1heWJlPFVzZXI+PiA9IHRoaXMuX2F1dGhTdGF0ZSQucGlwZSh0aW1lb3V0U3RhcnRXaXRoKG51bGwgYXMgTWF5YmU8VXNlcj4sIDEwMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEF1dGhVc2VySW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8QXV0aFVzZXJJbmZvPj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShtYXAoKHgpID0+ICh4ID8gYXV0aFVzZXJJbmZvRnJvbUF1dGhVc2VyKHgpIDogdW5kZWZpbmVkKSkpO1xuXG4gIHJlYWRvbmx5IGF1dGhVc2VyJDogT2JzZXJ2YWJsZTxVc2VyPiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKGZpbHRlck1heWJlKCkpO1xuICByZWFkb25seSBhdXRoVXNlckluZm8kOiBPYnNlcnZhYmxlPEF1dGhVc2VySW5mbz4gPSB0aGlzLmF1dGhVc2VyJC5waXBlKG1hcChhdXRoVXNlckluZm9Gcm9tQXV0aFVzZXIpKTtcblxuICByZWFkb25seSBoYXNBdXRoVXNlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICBtYXAoKHgpID0+IEJvb2xlYW4oeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgaXNBbm9ueW1vdXNVc2VyJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYXV0aFVzZXIkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlzQW5vbnltb3VzKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGlzTm90QW5vbnltb3VzVXNlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmlzQW5vbnltb3VzVXNlciQucGlwZShpc05vdCgpKTtcblxuICByZWFkb25seSBpc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaGFzQXV0aFVzZXIkO1xuXG4gIHJlYWRvbmx5IGlzTm90TG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0xvZ2dlZEluJC5waXBlKGlzTm90KCkpO1xuICByZWFkb25seSBvbkxvZ0luJDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZEluT2JzRnJvbUlzTG9nZ2VkSW4odGhpcy5pc0xvZ2dlZEluJCk7XG4gIHJlYWRvbmx5IG9uTG9nT3V0JDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZE91dE9ic0Zyb21Jc0xvZ2dlZEluKHRoaXMuaXNMb2dnZWRJbiQpO1xuICByZWFkb25seSB1c2VySWRlbnRpZmllciQ6IE9ic2VydmFibGU8QXV0aFVzZXJJZGVudGlmaWVyPiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKG1hcCgoeCkgPT4gYXV0aFVzZXJJZGVudGlmaWVyKHg/LnVpZCkpKTtcbiAgcmVhZG9ubHkgdWlkJDogT2JzZXJ2YWJsZTxBdXRoVXNlcklkZW50aWZpZXI+ID0gdGhpcy51c2VySWRlbnRpZmllciQ7XG5cbiAgcmVhZG9ubHkgY3VycmVudElkVG9rZW5TdHJpbmckOiBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+ID0gaWRUb2tlbih0aGlzLmZpcmViYXNlQXV0aCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgaWRUb2tlblN0cmluZyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuY3VycmVudElkVG9rZW5TdHJpbmckLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG4gIHJlYWRvbmx5IGlkVG9rZW5SZXN1bHQkOiBPYnNlcnZhYmxlPElkVG9rZW5SZXN1bHQ+ID0gdGhpcy5hdXRoVXNlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHRoaXMuaWRUb2tlblN0cmluZyQucGlwZShzd2l0Y2hNYXAoKHkpID0+IHguZ2V0SWRUb2tlblJlc3VsdCgpKSkpKTtcblxuICByZWFkb25seSBjbGFpbXMkOiBPYnNlcnZhYmxlPFBhcnNlZFRva2VuPiA9IHRoaXMuaWRUb2tlblJlc3VsdCQucGlwZShtYXAoKHgpID0+IHguY2xhaW1zKSk7XG4gIHJlYWRvbmx5IGN1cnJlbnRBdXRoQ29udGV4dEluZm8kOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMubG9hZEF1dGhDb250ZXh0SW5mb0ZvclVzZXIoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGF1dGhDb250ZXh0SW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiA9IHRoaXMuY3VycmVudEF1dGhDb250ZXh0SW5mbyQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBhdXRoVXNlclN0YXRlJDogT2JzZXJ2YWJsZTxBdXRoVXNlclN0YXRlPjtcbiAgcmVhZG9ubHkgYXV0aFJvbGVzJDogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD47XG4gIHJlYWRvbmx5IGlzT25ib2FyZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIF9hdXRoUm9sZUNsYWltc1NlcnZpY2U/OiBNYXliZTxBdXRoUm9sZUNsYWltc1NlcnZpY2U8QXV0aENsYWltc09iamVjdD4+O1xuICByZWFkb25seSBpc0FkbWluSW5BdXRoUm9sZVNldDogKGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCkgPT4gYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJlYmFzZUF1dGg6IEF1dGgsIEBPcHRpb25hbCgpIGRlbGVnYXRlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUpIHtcbiAgICBkZWxlZ2F0ZSA9IGRlbGVnYXRlID8/IERFRkFVTFRfREJYX0ZJUkVCQVNFX0FVVEhfU0VSVklDRV9ERUxFR0FURTtcblxuICAgIGNvbnN0IGRlbGVnYXRlQXV0aFVzZXJTdGF0ZU9icyA9IGRlbGVnYXRlLmF1dGhVc2VyU3RhdGVPYnModGhpcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoJ2Vycm9yJyBhcyBBdXRoVXNlclN0YXRlKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgaWYgKGRlbGVnYXRlLmZ1bGxDb250cm9sT2ZBdXRoVXNlclN0YXRlKSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gdGhpcy5fYXV0aFN0YXRlJC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgICAgICBpZiAoeCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJ25vbmUnIGFzIEF1dGhVc2VyU3RhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRoUm9sZXMkID0gZGVsZWdhdGUuYXV0aFJvbGVzT2JzKHRoaXMpO1xuICAgIHRoaXMuaXNPbmJvYXJkZWQkID0gZGVsZWdhdGUuaXNPbmJvYXJkZWQodGhpcyk7XG4gICAgdGhpcy5fYXV0aFJvbGVDbGFpbXNTZXJ2aWNlID0gZGVsZWdhdGUuYXV0aFJvbGVDbGFpbXNTZXJ2aWNlO1xuICAgIHRoaXMuaXNBZG1pbkluQXV0aFJvbGVTZXQgPSBkZWxlZ2F0ZS5pc0FkbWluSW5BdXRoUm9sZVNldDtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPElkVG9rZW5SZXN1bHQ+IHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5maXJlYmFzZUF1dGguY3VycmVudFVzZXI7XG5cbiAgICBpZiAoIXVzZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gdXNlciB0byByZWZyZXNoIHRoZSB0b2tlbiBmb3IuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXIuZ2V0SWRUb2tlblJlc3VsdCh0cnVlKTtcbiAgfVxuXG4gIHJvbGVzRm9yQ2xhaW1zPFQgZXh0ZW5kcyBBdXRoQ2xhaW1zT2JqZWN0ID0gQXV0aENsYWltc09iamVjdD4oY2xhaW1zOiBBdXRoQ2xhaW1zPFQ+KTogQXV0aFJvbGVTZXQge1xuICAgIGxldCByZXN1bHQ6IEF1dGhSb2xlU2V0O1xuXG4gICAgaWYgKHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZS50b1JvbGVzKGNsYWltcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignRGJ4RmlyZWJhc2VBdXRoU2VydmljZTogcm9sZXNGb3JDbGFpbXMgY2FsbGVkIHdpdGggbm8gYXV0aFJvbGVDbGFpbXNTZXJ2aWNlIHByb3ZpZGVkLiBBbiBlbXB0eSBzZXQgaXMgcmV0dXJuZWQuJyk7XG4gICAgICByZXN1bHQgPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldEF1dGhDb250ZXh0SW5mbygpOiBQcm9taXNlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGhVc2VyJCkudGhlbigodXNlcikgPT4gdGhpcy5sb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyKSk7XG4gIH1cblxuICBhc3luYyBsb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyOiBNYXliZTxVc2VyPik6IFByb21pc2U8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiB7XG4gICAgbGV0IHJlc3VsdDogTWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+O1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIGNvbnN0IGp3dFRva2VuOiBJZFRva2VuUmVzdWx0ID0gYXdhaXQgdXNlci5nZXRJZFRva2VuUmVzdWx0KCk7XG4gICAgICByZXN1bHQgPSBuZXcgRGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8odGhpcywgdXNlciwgand0VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBsb2dJbldpdGhHb29nbGUoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHb29nbGVBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhGYWNlYm9vaygpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IEZhY2Vib29rQXV0aFByb3ZpZGVyKCkpO1xuICB9XG5cbiAgbG9nSW5XaXRoVHdpdHRlcigpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IFR3aXR0ZXJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhHaXRodWIoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHaXRodWJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhBcHBsZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhNaWNyb3NvZnQoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIC8vIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBNaWNyb3NvZnRBdXRoUHJvdmlkZXIoKSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhQaG9uZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gICAgLy8gcmV0dXJuIHNpZ25JbldpdGhQaG9uZU51bWJlcih0aGlzLmZpcmViYXNlQXV0aCwgKVxuICB9XG5cbiAgbG9nSW5XaXRoUG9wdXAocHJvdmlkZXI6IEF1dGhQcm92aWRlciwgcmVzb2x2ZXI/OiBQb3B1cFJlZGlyZWN0UmVzb2x2ZXIpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLmZpcmViYXNlQXV0aCwgcHJvdmlkZXIsIHJlc29sdmVyKTtcbiAgfVxuXG4gIHJlZ2lzdGVyV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuZmlyZWJhc2VBdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHNlbmRQYXNzd29yZFJlc2V0RW1haWwodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsKTtcbiAgfVxuXG4gIGxvZ0luV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBsb2dJbkFzQW5vbnltb3VzKCk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluQW5vbnltb3VzbHkodGhpcy5maXJlYmFzZUF1dGgpO1xuICB9XG5cbiAgbG9nT3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmZpcmViYXNlQXV0aC5zaWduT3V0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGaXJlYmFzZUF1dGhDb250ZXh0SW5mbyBpbXBsZW1lbnRhdGlvbiBmcm9tIERieEZpcmViYXNlQXV0aFNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUF1dGhDb250ZXh0SW5mbyBpbXBsZW1lbnRzIEZpcmViYXNlQXV0aENvbnRleHRJbmZvIHtcbiAgcHJpdmF0ZSBfdG9rZW4gPSBjYWNoZWRHZXR0ZXIoKCkgPT4gZmlyZWJhc2VBdXRoVG9rZW5Gcm9tVXNlcih0aGlzLnVzZXIpKTtcbiAgcHJpdmF0ZSBfcm9sZXMgPSBjYWNoZWRHZXR0ZXIoKCkgPT4gdGhpcy5zZXJ2aWNlLnJvbGVzRm9yQ2xhaW1zKHRoaXMuZ2V0Q2xhaW1zKCkpKTtcbiAgcHJpdmF0ZSBfaXNBZG1pbiA9IGNhY2hlZEdldHRlcigoKSA9PiB0aGlzLnNlcnZpY2UuaXNBZG1pbkluQXV0aFJvbGVTZXQodGhpcy5fcm9sZXMoKSkpO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UsIHJlYWRvbmx5IHVzZXI6IFVzZXIsIHJlYWRvbmx5IGp3dFRva2VuOiBJZFRva2VuUmVzdWx0KSB7fVxuXG4gIGdldCB1aWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlci51aWQ7XG4gIH1cblxuICBpc0FkbWluKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0FkbWluKCk7XG4gIH1cblxuICBnZXRDbGFpbXM8VCBleHRlbmRzIEF1dGhDbGFpbXNPYmplY3QgPSBBdXRoQ2xhaW1zT2JqZWN0PigpOiBBdXRoQ2xhaW1zPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5qd3RUb2tlbi5jbGFpbXMgYXMgQXV0aENsYWltczxUPjtcbiAgfVxuXG4gIGdldEF1dGhSb2xlcygpOiBBdXRoUm9sZVNldCB7XG4gICAgcmV0dXJuIHRoaXMuX3JvbGVzKCk7XG4gIH1cblxuICBnZXQgdG9rZW4oKTogRmlyZWJhc2VBdXRoVG9rZW4ge1xuICAgIHJldHVybiB0aGlzLl90b2tlbigpO1xuICB9XG59XG4iXX0=
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9zZXJ2aWNlL2ZpcmViYXNlLmF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQWlDLDBCQUEwQixFQUFFLHlCQUF5QixFQUFzQixrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pLLE9BQU8sRUFBZ0MsdUJBQXVCLEVBQTZELElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFvQyxrQkFBa0IsRUFBRSxlQUFlLEVBQXVDLGlCQUFpQixFQUFFLDBCQUEwQixFQUFrQixvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFiLE9BQU8sRUFBRSxFQUFFLEVBQWMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNySCxPQUFPLEVBQW9FLGVBQWUsRUFBRSxZQUFZLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFnQix3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1RixPQUFPLEVBQWtCLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFRcEYsaUJBQWlCO0FBQ2pCLE1BQU0sT0FBZ0IsOEJBQThCO0lBQXBEO1FBQ0UsK0JB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UCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBdUIsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSwgaXNOb3QsIHRpbWVvdXRTdGFydFdpdGggfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoVXNlclN0YXRlLCBEYnhBdXRoU2VydmljZSwgbG9nZ2VkT3V0T2JzRnJvbUlzTG9nZ2VkSW4sIGxvZ2dlZEluT2JzRnJvbUlzTG9nZ2VkSW4sIEF1dGhVc2VySWRlbnRpZmllciwgYXV0aFVzZXJJZGVudGlmaWVyIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgcmVhdXRoZW50aWNhdGVXaXRoQ3JlZGVudGlhbCwgcmVhdXRoZW50aWNhdGVXaXRoUG9wdXAsIHJlYXV0aGVudGljYXRlV2l0aFJlZGlyZWN0LCByZWF1dGhlbnRpY2F0ZVdpdGhQaG9uZU51bWJlciwgQXV0aCwgYXV0aFN0YXRlLCBpZFRva2VuLCBVc2VyLCBJZFRva2VuUmVzdWx0LCBQYXJzZWRUb2tlbiwgR29vZ2xlQXV0aFByb3ZpZGVyLCBzaWduSW5XaXRoUG9wdXAsIEF1dGhQcm92aWRlciwgUG9wdXBSZWRpcmVjdFJlc29sdmVyLCBzaWduSW5Bbm9ueW1vdXNseSwgc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQsIFVzZXJDcmVkZW50aWFsLCBGYWNlYm9va0F1dGhQcm92aWRlciwgR2l0aHViQXV0aFByb3ZpZGVyLCBUd2l0dGVyQXV0aFByb3ZpZGVyLCBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQgfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHsgb2YsIE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzaGFyZVJlcGxheSwgbWFwLCBzd2l0Y2hNYXAsIGZpcnN0VmFsdWVGcm9tLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoQ2xhaW1zLCBBdXRoQ2xhaW1zT2JqZWN0LCBBdXRoUm9sZUNsYWltc1NlcnZpY2UsIEF1dGhSb2xlU2V0LCBBVVRIX0FETUlOX1JPTEUsIGNhY2hlZEdldHRlciwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEF1dGhVc2VySW5mbywgYXV0aFVzZXJJbmZvRnJvbUF1dGhVc2VyLCBmaXJlYmFzZUF1dGhUb2tlbkZyb21Vc2VyIH0gZnJvbSAnLi4vYXV0aCc7XG5pbXBvcnQgeyBBdXRoQ3JlZGVudGlhbCwgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbCB9IGZyb20gJ2ZpcmViYXNlL2F1dGgnO1xuaW1wb3J0IHsgYXV0aFVzZXJTdGF0ZUZyb21GaXJlYmFzZUF1dGhTZXJ2aWNlRnVuY3Rpb24gfSBmcm9tICcuL2ZpcmViYXNlLmF1dGgucnhqcyc7XG5pbXBvcnQgeyBGaXJlYmFzZUF1dGhDb250ZXh0SW5mbywgRmlyZWJhc2VBdXRoVG9rZW4gfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgcmV0dXJucyB0aGUgc3RhdGUgb2YgdGhlXG4gKi9cbmV4cG9ydCB0eXBlIEF1dGhVc2VyU3RhdGVPYnNGdW5jdGlvbiA9IChkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKSA9PiBPYnNlcnZhYmxlPEF1dGhVc2VyU3RhdGU+O1xuXG4vLyBNQVJLOiBEZWxlZ2F0ZVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZpcmViYXNlQXV0aFNlcnZpY2VEZWxlZ2F0ZSB7XG4gIGZ1bGxDb250cm9sT2ZBdXRoVXNlclN0YXRlPzogYm9vbGVhbiA9IGZhbHNlO1xuICBhYnN0cmFjdCBhdXRoVXNlclN0YXRlT2JzOiBBdXRoVXNlclN0YXRlT2JzRnVuY3Rpb247XG4gIGFic3RyYWN0IGF1dGhSb2xlc09icyhkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlKTogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD47XG4gIGFic3RyYWN0IGlzT25ib2FyZGVkKGRieEZpcmViYXNlQXV0aFNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIGlucHV0IHJvbGVzIGltcGx5IHRoZSBhZG1pbiBwcml2aWxlZGdlcy5cbiAgICovXG4gIGFic3RyYWN0IGlzQWRtaW5JbkF1dGhSb2xlU2V0KGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCk6IGJvb2xlYW47XG4gIGFic3RyYWN0IGF1dGhSb2xlQ2xhaW1zU2VydmljZT86IE1heWJlPEF1dGhSb2xlQ2xhaW1zU2VydmljZTxBdXRoQ2xhaW1zT2JqZWN0Pj47XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RCWF9GSVJFQkFTRV9BVVRIX1NFUlZJQ0VfREVMRUdBVEU6IERieEZpcmViYXNlQXV0aFNlcnZpY2VEZWxlZ2F0ZSA9IHtcbiAgYXV0aFVzZXJTdGF0ZU9iczogYXV0aFVzZXJTdGF0ZUZyb21GaXJlYmFzZUF1dGhTZXJ2aWNlRnVuY3Rpb24oKSxcbiAgYXV0aFJvbGVzT2JzKGRieEZpcmViYXNlQXV0aFNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UpOiBPYnNlcnZhYmxlPEF1dGhSb2xlU2V0PiB7XG4gICAgcmV0dXJuIGRieEZpcmViYXNlQXV0aFNlcnZpY2UuYXV0aFVzZXJTdGF0ZSQucGlwZShtYXAoKHgpID0+ICh4ID09PSAndXNlcicgPyBuZXcgU2V0KFsndXNlciddKSA6IG5ldyBTZXQoKSkpKTtcbiAgfSxcbiAgaXNPbmJvYXJkZWQoZGJ4RmlyZWJhc2VBdXRoU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoU2VydmljZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLmF1dGhVc2VyU3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4ID09PSAndXNlcicpKTtcbiAgfSxcbiAgaXNBZG1pbkluQXV0aFJvbGVTZXQoYXV0aFJvbGVTZXQ6IEF1dGhSb2xlU2V0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGF1dGhSb2xlU2V0LmhhcyhBVVRIX0FETUlOX1JPTEUpO1xuICB9XG59O1xuXG4vLyBNQVJLOiBTZXJ2aWNlXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VBdXRoU2VydmljZSBpbXBsZW1lbnRzIERieEF1dGhTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgX2F1dGhTdGF0ZSQ6IE9ic2VydmFibGU8TWF5YmU8VXNlcj4+ID0gYXV0aFN0YXRlKHRoaXMuZmlyZWJhc2VBdXRoKTtcblxuICByZWFkb25seSBjdXJyZW50QXV0aFVzZXIkOiBPYnNlcnZhYmxlPE1heWJlPFVzZXI+PiA9IHRoaXMuX2F1dGhTdGF0ZSQucGlwZSh0aW1lb3V0U3RhcnRXaXRoKG51bGwgYXMgTWF5YmU8VXNlcj4sIDEwMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEF1dGhVc2VySW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8QXV0aFVzZXJJbmZvPj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShtYXAoKHgpID0+ICh4ID8gYXV0aFVzZXJJbmZvRnJvbUF1dGhVc2VyKHgpIDogdW5kZWZpbmVkKSkpO1xuXG4gIHJlYWRvbmx5IGF1dGhVc2VyJDogT2JzZXJ2YWJsZTxVc2VyPiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKGZpbHRlck1heWJlKCkpO1xuICByZWFkb25seSBhdXRoVXNlckluZm8kOiBPYnNlcnZhYmxlPEF1dGhVc2VySW5mbz4gPSB0aGlzLmF1dGhVc2VyJC5waXBlKG1hcChhdXRoVXNlckluZm9Gcm9tQXV0aFVzZXIpKTtcblxuICByZWFkb25seSBoYXNBdXRoVXNlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICBtYXAoKHgpID0+IEJvb2xlYW4oeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgaXNBbm9ueW1vdXNVc2VyJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYXV0aFVzZXIkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlzQW5vbnltb3VzKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGlzTm90QW5vbnltb3VzVXNlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmlzQW5vbnltb3VzVXNlciQucGlwZShpc05vdCgpKTtcblxuICByZWFkb25seSBpc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaGFzQXV0aFVzZXIkO1xuXG4gIHJlYWRvbmx5IGlzTm90TG9nZ2VkSW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0xvZ2dlZEluJC5waXBlKGlzTm90KCkpO1xuICByZWFkb25seSBvbkxvZ0luJDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZEluT2JzRnJvbUlzTG9nZ2VkSW4odGhpcy5pc0xvZ2dlZEluJCk7XG4gIHJlYWRvbmx5IG9uTG9nT3V0JDogT2JzZXJ2YWJsZTx2b2lkPiA9IGxvZ2dlZE91dE9ic0Zyb21Jc0xvZ2dlZEluKHRoaXMuaXNMb2dnZWRJbiQpO1xuICByZWFkb25seSB1c2VySWRlbnRpZmllciQ6IE9ic2VydmFibGU8QXV0aFVzZXJJZGVudGlmaWVyPiA9IHRoaXMuY3VycmVudEF1dGhVc2VyJC5waXBlKG1hcCgoeCkgPT4gYXV0aFVzZXJJZGVudGlmaWVyKHg/LnVpZCkpKTtcbiAgcmVhZG9ubHkgdWlkJDogT2JzZXJ2YWJsZTxBdXRoVXNlcklkZW50aWZpZXI+ID0gdGhpcy51c2VySWRlbnRpZmllciQ7XG5cbiAgcmVhZG9ubHkgY3VycmVudElkVG9rZW5TdHJpbmckOiBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+ID0gaWRUb2tlbih0aGlzLmZpcmViYXNlQXV0aCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgaWRUb2tlblN0cmluZyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuY3VycmVudElkVG9rZW5TdHJpbmckLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG4gIHJlYWRvbmx5IGlkVG9rZW5SZXN1bHQkOiBPYnNlcnZhYmxlPElkVG9rZW5SZXN1bHQ+ID0gdGhpcy5hdXRoVXNlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHRoaXMuaWRUb2tlblN0cmluZyQucGlwZShzd2l0Y2hNYXAoKHkpID0+IHguZ2V0SWRUb2tlblJlc3VsdCgpKSkpKTtcblxuICByZWFkb25seSBjbGFpbXMkOiBPYnNlcnZhYmxlPFBhcnNlZFRva2VuPiA9IHRoaXMuaWRUb2tlblJlc3VsdCQucGlwZShtYXAoKHgpID0+IHguY2xhaW1zKSk7XG4gIHJlYWRvbmx5IGN1cnJlbnRBdXRoQ29udGV4dEluZm8kOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4gPSB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMubG9hZEF1dGhDb250ZXh0SW5mb0ZvclVzZXIoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IGF1dGhDb250ZXh0SW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiA9IHRoaXMuY3VycmVudEF1dGhDb250ZXh0SW5mbyQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBhdXRoVXNlclN0YXRlJDogT2JzZXJ2YWJsZTxBdXRoVXNlclN0YXRlPjtcbiAgcmVhZG9ubHkgYXV0aFJvbGVzJDogT2JzZXJ2YWJsZTxBdXRoUm9sZVNldD47XG4gIHJlYWRvbmx5IGlzT25ib2FyZGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIF9hdXRoUm9sZUNsYWltc1NlcnZpY2U/OiBNYXliZTxBdXRoUm9sZUNsYWltc1NlcnZpY2U8QXV0aENsYWltc09iamVjdD4+O1xuICByZWFkb25seSBpc0FkbWluSW5BdXRoUm9sZVNldDogKGF1dGhSb2xlU2V0OiBBdXRoUm9sZVNldCkgPT4gYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBmaXJlYmFzZUF1dGg6IEF1dGgsIEBPcHRpb25hbCgpIGRlbGVnYXRlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlRGVsZWdhdGUpIHtcbiAgICBkZWxlZ2F0ZSA9IGRlbGVnYXRlID8/IERFRkFVTFRfREJYX0ZJUkVCQVNFX0FVVEhfU0VSVklDRV9ERUxFR0FURTtcblxuICAgIGNvbnN0IGRlbGVnYXRlQXV0aFVzZXJTdGF0ZU9icyA9IGRlbGVnYXRlLmF1dGhVc2VyU3RhdGVPYnModGhpcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoJ2Vycm9yJyBhcyBBdXRoVXNlclN0YXRlKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgaWYgKGRlbGVnYXRlLmZ1bGxDb250cm9sT2ZBdXRoVXNlclN0YXRlKSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dGhVc2VyU3RhdGUkID0gdGhpcy5fYXV0aFN0YXRlJC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgICAgICBpZiAoeCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZWdhdGVBdXRoVXNlclN0YXRlT2JzO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJ25vbmUnIGFzIEF1dGhVc2VyU3RhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hdXRoUm9sZXMkID0gZGVsZWdhdGUuYXV0aFJvbGVzT2JzKHRoaXMpO1xuICAgIHRoaXMuaXNPbmJvYXJkZWQkID0gZGVsZWdhdGUuaXNPbmJvYXJkZWQodGhpcyk7XG4gICAgdGhpcy5fYXV0aFJvbGVDbGFpbXNTZXJ2aWNlID0gZGVsZWdhdGUuYXV0aFJvbGVDbGFpbXNTZXJ2aWNlO1xuICAgIHRoaXMuaXNBZG1pbkluQXV0aFJvbGVTZXQgPSBkZWxlZ2F0ZS5pc0FkbWluSW5BdXRoUm9sZVNldDtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPElkVG9rZW5SZXN1bHQ+IHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5maXJlYmFzZUF1dGguY3VycmVudFVzZXI7XG5cbiAgICBpZiAoIXVzZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gdXNlciB0byByZWZyZXNoIHRoZSB0b2tlbiBmb3IuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXIuZ2V0SWRUb2tlblJlc3VsdCh0cnVlKTtcbiAgfVxuXG4gIHJvbGVzRm9yQ2xhaW1zPFQgZXh0ZW5kcyBBdXRoQ2xhaW1zT2JqZWN0ID0gQXV0aENsYWltc09iamVjdD4oY2xhaW1zOiBBdXRoQ2xhaW1zPFQ+KTogQXV0aFJvbGVTZXQge1xuICAgIGxldCByZXN1bHQ6IEF1dGhSb2xlU2V0O1xuXG4gICAgaWYgKHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2F1dGhSb2xlQ2xhaW1zU2VydmljZS50b1JvbGVzKGNsYWltcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignRGJ4RmlyZWJhc2VBdXRoU2VydmljZTogcm9sZXNGb3JDbGFpbXMgY2FsbGVkIHdpdGggbm8gYXV0aFJvbGVDbGFpbXNTZXJ2aWNlIHByb3ZpZGVkLiBBbiBlbXB0eSBzZXQgaXMgcmV0dXJuZWQuJyk7XG4gICAgICByZXN1bHQgPSBuZXcgU2V0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldEF1dGhDb250ZXh0SW5mbygpOiBQcm9taXNlPE1heWJlPERieEZpcmViYXNlQXV0aENvbnRleHRJbmZvPj4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGhVc2VyJCkudGhlbigodXNlcikgPT4gdGhpcy5sb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyKSk7XG4gIH1cblxuICBhc3luYyBsb2FkQXV0aENvbnRleHRJbmZvRm9yVXNlcih1c2VyOiBNYXliZTxVc2VyPik6IFByb21pc2U8TWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+PiB7XG4gICAgbGV0IHJlc3VsdDogTWF5YmU8RGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8+O1xuXG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIGNvbnN0IGp3dFRva2VuOiBJZFRva2VuUmVzdWx0ID0gYXdhaXQgdXNlci5nZXRJZFRva2VuUmVzdWx0KCk7XG4gICAgICByZXN1bHQgPSBuZXcgRGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8odGhpcywgdXNlciwgand0VG9rZW4pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBsb2dJbldpdGhHb29nbGUoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHb29nbGVBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhGYWNlYm9vaygpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IEZhY2Vib29rQXV0aFByb3ZpZGVyKCkpO1xuICB9XG5cbiAgbG9nSW5XaXRoVHdpdHRlcigpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9nSW5XaXRoUG9wdXAobmV3IFR3aXR0ZXJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhHaXRodWIoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBHaXRodWJBdXRoUHJvdmlkZXIoKSk7XG4gIH1cblxuICBsb2dJbldpdGhBcHBsZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhNaWNyb3NvZnQoKTogUHJvbWlzZTxVc2VyQ3JlZGVudGlhbD4ge1xuICAgIC8vIHJldHVybiB0aGlzLmxvZ0luV2l0aFBvcHVwKG5ldyBNaWNyb3NvZnRBdXRoUHJvdmlkZXIoKSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gIH1cblxuICBsb2dJbldpdGhQaG9uZSgpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0b2RvJyk7XG4gICAgLy8gcmV0dXJuIHNpZ25JbldpdGhQaG9uZU51bWJlcih0aGlzLmZpcmViYXNlQXV0aCwgKVxuICB9XG5cbiAgbG9nSW5XaXRoUG9wdXAocHJvdmlkZXI6IEF1dGhQcm92aWRlciwgcmVzb2x2ZXI/OiBQb3B1cFJlZGlyZWN0UmVzb2x2ZXIpOiBQcm9taXNlPFVzZXJDcmVkZW50aWFsPiB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLmZpcmViYXNlQXV0aCwgcHJvdmlkZXIsIHJlc29sdmVyKTtcbiAgfVxuXG4gIHJlZ2lzdGVyV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuZmlyZWJhc2VBdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHNlbmRQYXNzd29yZFJlc2V0RW1haWwodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsKTtcbiAgfVxuXG4gIGxvZ0luV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQodGhpcy5maXJlYmFzZUF1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBsb2dJbkFzQW5vbnltb3VzKCk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gc2lnbkluQW5vbnltb3VzbHkodGhpcy5maXJlYmFzZUF1dGgpO1xuICB9XG5cbiAgbG9nT3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmZpcmViYXNlQXV0aC5zaWduT3V0KCk7XG4gIH1cblxuICByZWF1dGhlbnRpY2F0ZVdpdGhQb3B1cChwcm92aWRlcjogQXV0aFByb3ZpZGVyLCByZXNvbHZlcj86IFBvcHVwUmVkaXJlY3RSZXNvbHZlcik6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmN1cnJlbnRBdXRoVXNlciQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh4OiBNYXliZTxVc2VyPikgPT4ge1xuICAgICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVhdXRoZW50aWNhdGVXaXRoUG9wdXAoeCwgcHJvdmlkZXIsIHJlc29sdmVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVc2VyIGlzIG5vdCBsb2dnZWQgaW4gY3VycmVudGx5LicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRmlyZWJhc2VBdXRoQ29udGV4dEluZm8gaW1wbGVtZW50YXRpb24gZnJvbSBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VBdXRoQ29udGV4dEluZm8gaW1wbGVtZW50cyBGaXJlYmFzZUF1dGhDb250ZXh0SW5mbyB7XG4gIHByaXZhdGUgX3Rva2VuID0gY2FjaGVkR2V0dGVyKCgpID0+IGZpcmViYXNlQXV0aFRva2VuRnJvbVVzZXIodGhpcy51c2VyKSk7XG4gIHByaXZhdGUgX3JvbGVzID0gY2FjaGVkR2V0dGVyKCgpID0+IHRoaXMuc2VydmljZS5yb2xlc0ZvckNsYWltcyh0aGlzLmdldENsYWltcygpKSk7XG4gIHByaXZhdGUgX2lzQWRtaW4gPSBjYWNoZWRHZXR0ZXIoKCkgPT4gdGhpcy5zZXJ2aWNlLmlzQWRtaW5JbkF1dGhSb2xlU2V0KHRoaXMuX3JvbGVzKCkpKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLCByZWFkb25seSB1c2VyOiBVc2VyLCByZWFkb25seSBqd3RUb2tlbjogSWRUb2tlblJlc3VsdCkge31cblxuICBnZXQgdWlkKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXIudWlkO1xuICB9XG5cbiAgaXNBZG1pbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNBZG1pbigpO1xuICB9XG5cbiAgZ2V0Q2xhaW1zPFQgZXh0ZW5kcyBBdXRoQ2xhaW1zT2JqZWN0ID0gQXV0aENsYWltc09iamVjdD4oKTogQXV0aENsYWltczxUPiB7XG4gICAgcmV0dXJuIHRoaXMuand0VG9rZW4uY2xhaW1zIGFzIEF1dGhDbGFpbXM8VD47XG4gIH1cblxuICBnZXRBdXRoUm9sZXMoKTogQXV0aFJvbGVTZXQge1xuICAgIHJldHVybiB0aGlzLl9yb2xlcygpO1xuICB9XG5cbiAgZ2V0IHRva2VuKCk6IEZpcmViYXNlQXV0aFRva2VuIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4oKTtcbiAgfVxufVxuIl19
|
|
@@ -4,9 +4,6 @@ import { cleanupDestroyable, filterMaybe } from '@dereekb/rxjs';
|
|
|
4
4
|
import { LockSetComponentStore } from '@dereekb/dbx-core';
|
|
5
5
|
import { dbxFirebaseCollectionLoaderInstance } from '../../loader/collection.loader.instance';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Used for storing the state of a Person and related email threads.
|
|
9
|
-
*/
|
|
10
7
|
export class AbstractDbxFirebaseCollectionStore extends LockSetComponentStore {
|
|
11
8
|
constructor() {
|
|
12
9
|
super(...arguments);
|
|
@@ -52,4 +49,4 @@ AbstractDbxFirebaseCollectionStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVers
|
|
|
52
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, decorators: [{
|
|
53
50
|
type: Injectable
|
|
54
51
|
}] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQWdCLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0gsT0FBTyxFQUFxQixrQkFBa0IsRUFBd0IsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBdUMsbUNBQW1DLEVBQTJDLE1BQU0seUNBQXlDLENBQUM7O0FBaUM1Szs7R0FFRztBQUVILE1BQU0sT0FBTyxrQ0FBb00sU0FBUSxxQkFBd0I7SUFEalA7O1FBRUUsZ0JBQWdCO1FBQ1AsZ0JBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQ3RFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsQ0FBQyxDQUFDLENBQUM7UUFFTSxvQkFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7WUFDMUUsT0FBTyxLQUFLLENBQUMsSUFBSSxD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LEdBQUcsS0FBSyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3ZLOztnSUE1RVksa0NBQWtDO29JQUFsQyxrQ0FBa0M7NEZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3Vic2NyaXB0aW9uLCBleGhhdXN0TWFwLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvciwgRmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UsIEZpcmVzdG9yZURvY3VtZW50LCBGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlLCBGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQsIEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlciwgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LCBEb2N1bWVudFJlZmVyZW5jZSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlLCBjbGVhbnVwRGVzdHJveWFibGUsIFBhZ2VMaXN0TG9hZGluZ1N0YXRlLCBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgTG9ja1NldENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2UsIGRieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZURhdGEgfSBmcm9tICcuLi8uLi9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyQWNjZXNzb3IgfSBmcm9tICcuLi8uLi9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yPFQ+LCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZURhdGE8VCwgRD4ge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+O1xuICByZWFkb25seSBsb2FkZXIkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+PjtcblxuICByZWFkb25seSBmaXJlc3RvcmVJdGVyYXRpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0aW9uSW5zdGFuY2U8VD4+O1xuICByZWFkb25seSBxdWVyeUNoYW5nZVdhdGNoZXIkOiBPYnNlcnZhYmxlPEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlcjxUPj47XG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yPFQ+PjtcbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj47XG5cbiAgcmVhZG9ubHkgaGFzRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnRSZWZzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdPjtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxEW10+O1xuICByZWFkb25seSBhbGxEb2N1bWVudERhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPjtcblxuICBzZXRNYXhQYWdlcyhvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8bnVtYmVyPj4pOiBTdWJzY3JpcHRpb247XG4gIHNldEl0ZW1zUGVyUGFnZShvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8bnVtYmVyPj4pOiBTdWJzY3JpcHRpb247XG4gIHNldENvbnN0cmFpbnRzKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4+KTogU3Vic2NyaXB0aW9uO1xuICBuZXh0KG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTx2b2lkPik6IHZvaWQ7XG4gIHJlc3RhcnQob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPHZvaWQ+KTogdm9pZDtcblxuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uOiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlQ29udGV4dFN0YXRlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiB7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj47XG4gIHJlYWRvbmx5IG1heFBhZ2VzPzogTWF5YmU8bnVtYmVyPjtcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlPzogTWF5YmU8bnVtYmVyPjtcbiAgcmVhZG9ubHkgY29uc3RyYWludHM/OiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj47XG59XG5cbi8qKlxuICogVXNlZCBmb3Igc3RvcmluZyB0aGUgc3RhdGUgb2YgYSBQZXJzb24gYW5kIHJlbGF0ZWQgZW1haWwgdGhyZWFkcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnRTdG9yZTxDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+IHtcbiAgLy8gTUFSSzogRWZmZWN0c1xuICByZWFkb25seSBzZXRNYXhQYWdlcyA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxudW1iZXI+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKHN3aXRjaE1hcCgobWF4UGFnZXMpID0+IHRoaXMubG9hZGVyJC5waXBlKHRhcCgoeCkgPT4gKHgubWF4UGFnZXMgPSBtYXhQYWdlcykpKSkpO1xuICB9KTtcblxuICByZWFkb25seSBzZXRJdGVtc1BlclBhZ2UgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8TWF5YmU8bnVtYmVyPj4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShzd2l0Y2hNYXAoKGl0ZW1zUGVyUGFnZSkgPT4gdGhpcy5sb2FkZXIkLnBpcGUodGFwKCh4KSA9PiAoeC5pdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2UpKSkpKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2V0Q29uc3RyYWludHMgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKHN3aXRjaE1hcCgoY29uc3RyYWludHMpID0+IHRoaXMubG9hZGVyJC5waXBlKHRhcCgoeCkgPT4geC5zZXRDb25zdHJhaW50cyhjb25zdHJhaW50cykpKSkpO1xuICB9KTtcblxuICByZWFkb25seSBuZXh0ID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBleGhhdXN0TWFwKCgpID0+XG4gICAgICAgIHRoaXMubG9hZGVyJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh4KSA9PiB4Lm5leHQoKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJlc3RhcnQgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5sb2FkZXIkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHgucmVzdGFydCgpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmlyZXN0b3JlQ29sbGVjdGlvbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PiA9IHRoaXMuY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgbG9hZGVyJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPj4gPSB0aGlzLmN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoY29sbGVjdGlvbikgPT5cbiAgICAgIHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoeCkgPT5cbiAgICAgICAgICBkYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZSh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgbWF4UGFnZXM6IHgubWF4UGFnZXMsXG4gICAgICAgICAgICBpdGVtc1BlclBhZ2U6IHguaXRlbXNQZXJQYWdlLFxuICAgICAgICAgICAgY29uc3RyYWludHM6IHguY29uc3RyYWludHNcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKSxcbiAgICBjbGVhbnVwRGVzdHJveWFibGUoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY29uc3RyYWludHMkOiBPYnNlcnZhYmxlPE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguY29uc3RyYWludHMkKSk7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUl0ZXJhdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZTxUPj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZmlyZXN0b3JlSXRlcmF0aW9uJCkpO1xuICByZWFkb25seSBxdWVyeUNoYW5nZVdhdGNoZXIkOiBPYnNlcnZhYmxlPEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlcjxUPj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgucXVlcnlDaGFuZ2VXYXRjaGVyJCkpO1xuICByZWFkb25seSBhY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguYWNjdW11bGF0b3IkKSk7XG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnBhZ2VMb2FkaW5nU3RhdGUkKSk7XG5cbiAgcmVhZG9ubHkgaGFzRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5oYXNEb2N1bWVudHMkKSk7XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguYWxsRG9jdW1lbnRSZWZzJCkpO1xuICByZWFkb25seSBhbGxEb2N1bWVudHMkOiBPYnNlcnZhYmxlPERbXT4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguYWxsRG9jdW1lbnRzJCkpO1xuICByZWFkb25seSBhbGxEb2N1bWVudERhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hbGxEb2N1bWVudERhdGEkKSk7XG5cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb246IEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+IHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gKHsgLi4uc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb24gfSkpO1xufVxuIl19
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQWdCLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0gsT0FBTyxFQUFxQixrQkFBa0IsRUFBd0IsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBdUMsbUNBQW1DLEVBQTJDLE1BQU0seUNBQXlDLENBQUM7O0FBa0M1SyxNQUFNLE9BQU8sa0NBQW9NLFNBQVEscUJBQXdCO0lBRGpQOztRQUVFLGdCQUFnQjtRQUNQLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWdDLEVBQUUsRUFBRTtZQUN0RSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBRU0sb0JBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQzFFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENB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RUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN2Szs7Z0lBNUVZLGtDQUFrQztvSUFBbEMsa0NBQWtDOzRGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YnNjcmlwdGlvbiwgZXhoYXVzdE1hcCwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3IsIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZSwgRmlyZXN0b3JlUXVlcnlDb25zdHJhaW50LCBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIsIERvY3VtZW50RGF0YVdpdGhJZEFuZEtleSwgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlT3JWYWx1ZSwgY2xlYW51cERlc3Ryb3lhYmxlLCBQYWdlTGlzdExvYWRpbmdTdGF0ZSwgZmlsdGVyTWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IExvY2tTZXRDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlLCBkYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZSwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhIH0gZnJvbSAnLi4vLi4vbG9hZGVyL2NvbGxlY3Rpb24ubG9hZGVyLmluc3RhbmNlJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yIH0gZnJvbSAnLi4vLi4vbG9hZGVyL2NvbGxlY3Rpb24ubG9hZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcjxUPiwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhPFQsIEQ+IHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PjtcbiAgcmVhZG9ubHkgbG9hZGVyJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPj47XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PjtcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VXYXRjaGVyJDogT2JzZXJ2YWJsZTxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXI8VD4+O1xuICByZWFkb25seSBhY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPj47XG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+O1xuXG4gIHJlYWRvbmx5IGhhc0RvY3VtZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT47XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdPjtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnREYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT47XG5cbiAgc2V0TWF4UGFnZXMob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRJdGVtc1BlclBhZ2Uob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRDb25zdHJhaW50cyhvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+Pik6IFN1YnNjcmlwdGlvbjtcbiAgbmV4dChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8dm9pZD4pOiB2b2lkO1xuICByZXN0YXJ0KG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTx2b2lkPik6IHZvaWQ7XG5cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PikgPT4gU3Vic2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4ge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uPzogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+O1xuICByZWFkb25seSBtYXhQYWdlcz86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZT86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzPzogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVDb250ZXh0U3RhdGU8VCwgRD4+IGV4dGVuZHMgTG9ja1NldENvbXBvbmVudFN0b3JlPEM+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4ge1xuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHNldE1heFBhZ2VzID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPE1heWJlPG51bWJlcj4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoc3dpdGNoTWFwKChtYXhQYWdlcykgPT4gdGhpcy5sb2FkZXIkLnBpcGUodGFwKCh4KSA9PiAoeC5tYXhQYWdlcyA9IG1heFBhZ2VzKSkpKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNldEl0ZW1zUGVyUGFnZSA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxudW1iZXI+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKHN3aXRjaE1hcCgoaXRlbXNQZXJQYWdlKSA9PiB0aGlzLmxvYWRlciQucGlwZSh0YXAoKHgpID0+ICh4Lml0ZW1zUGVyUGFnZSA9IGl0ZW1zUGVyUGFnZSkpKSkpO1xuICB9KTtcblxuICByZWFkb25seSBzZXRDb25zdHJhaW50cyA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoc3dpdGNoTWFwKChjb25zdHJhaW50cykgPT4gdGhpcy5sb2FkZXIkLnBpcGUodGFwKCh4KSA9PiB4LnNldENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKSkpKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG5leHQgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5sb2FkZXIkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHgubmV4dCgpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmVzdGFydCA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmxvYWRlciQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4geC5yZXN0YXJ0KCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICAvLyBNQVJLOiBBY2Nlc3NvcnNcbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5maXJlc3RvcmVDb2xsZWN0aW9uKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBsb2FkZXIkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+PiA9IHRoaXMuY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uKSA9PlxuICAgICAgdGhpcy5zdGF0ZSQucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgbWFwKCh4KSA9PlxuICAgICAgICAgIGRieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBtYXhQYWdlczogeC5tYXhQYWdlcyxcbiAgICAgICAgICAgIGl0ZW1zUGVyUGFnZTogeC5pdGVtc1BlclBhZ2UsXG4gICAgICAgICAgICBjb25zdHJhaW50czogeC5jb25zdHJhaW50c1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb25zdHJhaW50cyQ6IE9ic2VydmFibGU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5jb25zdHJhaW50cyQpKTtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5maXJlc3RvcmVJdGVyYXRpb24kKSk7XG4gIHJlYWRvbmx5IHF1ZXJ5Q2hhbmdlV2F0Y2hlciQ6IE9ic2VydmFibGU8SXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5xdWVyeUNoYW5nZVdhdGNoZXIkKSk7XG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hY2N1bXVsYXRvciQpKTtcbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgucGFnZUxvYWRpbmdTdGF0ZSQpKTtcblxuICByZWFkb25seSBoYXNEb2N1bWVudHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Lmhhc0RvY3VtZW50cyQpKTtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnRSZWZzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hbGxEb2N1bWVudFJlZnMkKSk7XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hbGxEb2N1bWVudHMkKSk7XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50RGF0YSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmFsbERvY3VtZW50RGF0YSQpKTtcblxuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogRmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4gfCBudWxsIHwgdW5kZWZpbmVkKSA9PiAoeyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbiB9KSk7XG59XG4iXX0=
|
|
@@ -6,9 +6,6 @@ import { isMaybeSo } from '@dereekb/util';
|
|
|
6
6
|
import { LockSetComponentStore } from '@dereekb/dbx-core';
|
|
7
7
|
import { modelDoesNotExistError } from '../../error';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
/**
|
|
10
|
-
* Used for storing the state of a Person and related email threads.
|
|
11
|
-
*/
|
|
12
9
|
export class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
|
|
13
10
|
constructor() {
|
|
14
11
|
super(...arguments);
|
|
@@ -106,4 +103,48 @@ AbstractDbxFirebaseDocumentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersio
|
|
|
106
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, decorators: [{
|
|
107
104
|
type: Injectable
|
|
108
105
|
}] });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFVTCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBRTFCLDJCQUEyQixFQUUzQix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBRzNCLHVDQUF1QyxFQUN4QyxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQWdCLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQVMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBc0ZyRDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQ0FBOEwsU0FBUSxxQkFBd0I7SUFEM087O1FBRUUsZ0JBQWdCO1FBRWhCLGtCQUFrQjtRQUNULG9DQUErQixHQUFxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDM0csR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLElBQUksQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEVBQzlELG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FD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SUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRW5HLDJCQUFzQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsbUJBQXFELEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3SSwrQkFBMEIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLHVCQUE2RCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDdks7OzhIQTdMWSxnQ0FBZ0M7a0lBQWhDLGdDQUFnQzs0RkFBaEMsZ0NBQWdDO2tCQUQ1QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRG9jdW1lbnRTbmFwc2hvdCxcbiAgRG9jdW1lbnRSZWZlcmVuY2UsXG4gIEZpcmVzdG9yZUNvbGxlY3Rpb24sXG4gIEZpcmVzdG9yZURvY3VtZW50LFxuICBEb2N1bWVudERhdGFXaXRoSWRBbmRLZXksXG4gIEZpcmVzdG9yZU1vZGVsSWQsXG4gIEZpcmVzdG9yZU1vZGVsS2V5LFxuICBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSxcbiAgRmlyZXN0b3JlTW9kZWxJZGVudGl0eSxcbiAgZmlyZXN0b3JlTW9kZWxJZHNGcm9tS2V5LFxuICBmaXJlc3RvcmVNb2RlbEtleVBhcnRQYWlycyxcbiAgRmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyLFxuICBmaXJlc3RvcmVNb2RlbEtleVBhaXJPYmplY3QsXG4gIEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpck9iamVjdCxcbiAgZG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LFxuICBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUsXG4gIEZsYXRGaXJlc3RvcmVNb2RlbEtleSxcbiAgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LFxuICBpbmZlcktleUZyb21Ud29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXlcbn0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIExvYWRpbmdTdGF0ZSwgYmVnaW5Mb2FkaW5nLCBzdWNjZXNzUmVzdWx0LCBsb2FkaW5nU3RhdGVGcm9tT2JzLCBlcnJvclJlc3VsdCwgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1heWJlLCBpc01heWJlU28gfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IExvY2tTZXRDb21wb25lbnQsIExvY2tTZXRDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IG1vZGVsRG9lc05vdEV4aXN0RXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnQge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+O1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PjtcblxuICByZWFkb25seSBjdXJyZW50SW5wdXRJZCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+O1xuICByZWFkb25seSBpbnB1dElkJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkPjtcbiAgcmVhZG9ubHkgY3VycmVudElucHV0S2V5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+O1xuICByZWFkb25seSBpbnB1dEtleSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxLZXk+O1xuICByZWFkb25seSBjdXJyZW50SW5wdXRSZWYkOiBPYnNlcnZhYmxlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj47XG4gIHJlYWRvbmx5IGlucHV0UmVmJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPj47XG5cbiAgcmVhZG9ubHkgc3RyZWFtTW9kZSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlPjtcblxuICByZWFkb25seSBjdXJyZW50RG9jdW1lbnQkOiBPYnNlcnZhYmxlPE1heWJlPEQ+PjtcbiAgcmVhZG9ubHkgZG9jdW1lbnQkOiBPYnNlcnZhYmxlPEQ+O1xuICByZWFkb25seSBpZCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZD47XG4gIHJlYWRvbmx5IGtleSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxLZXk+O1xuICByZWFkb25seSByZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PjtcbiAgcmVhZG9ubHkgaGFzUmVmJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICByZWFkb25seSBrZXlNb2RlbElkcyQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZFtdPjtcbiAgcmVhZG9ubHkga2V5UGFpcnMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpcltdPjtcbiAgcmVhZG9ubHkga2V5UGFpck9iamVjdCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyT2JqZWN0PjtcblxuICByZWFkb25seSBkb2N1bWVudExvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPEQ+PjtcbiAgcmVhZG9ubHkgc25hcHNob3QkOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD4+O1xuICByZWFkb25seSBzbmFwc2hvdExvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50U25hcHNob3Q8VD4+PjtcbiAgcmVhZG9ubHkgY3VycmVudERhdGEkOiBPYnNlcnZhYmxlPE1heWJlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+O1xuICByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+O1xuICByZWFkb25seSBkYXRhTG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj47XG4gIHJlYWRvbmx5IGN1cnJlbnRFeGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBleGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICByZWFkb25seSBtb2RlbElkZW50aXR5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkZW50aXR5PjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgaWQgb2YgdGhlIGRvY3VtZW50IHRvIGxvYWQuXG4gICAqL1xuICByZWFkb25seSBzZXRJZDogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVNb2RlbElkPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUga2V5IG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0S2V5OiAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUga2V5IG9mIHRoZSBkb2N1bWVudCB0byBsb2FkIHVzaW5nIGEgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RmxhdEtleTogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByZWYgb2YgdGhlIGRvY3VtZW50IHRvIGxvYWQuXG4gICAqL1xuICByZWFkb25seSBzZXRSZWY6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIGtleS9pZC9yZWYgYW5kIGN1cnJlbnQgZG9jdW1lbnQgZnJvbSB0aGUgc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBjbGVhclJlZnM6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHN0cmVhbSBtb2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0U3RyZWFtTW9kZTogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGU+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb24gdG8gcmV0cmlldmUgZG9jdW1lbnRzIGZyb20uXG4gICAqL1xuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uOiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+Pj4pID0+IFN1YnNjcmlwdGlvbik7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlIHRvIHJldHJpZXZlIGRvY3VtZW50cyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U6ICgoKSA9PiB2b2lkKSB8ICgob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pj4pID0+IFN1YnNjcmlwdGlvbik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiB7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPzogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+O1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uPzogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj47XG4gIHJlYWRvbmx5IHN0cmVhbU1vZGU/OiBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGU7XG4gIHJlYWRvbmx5IGlkPzogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD47XG4gIHJlYWRvbmx5IGtleT86IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgcmVmPzogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xufVxuXG4vKipcbiAqIFVzZWQgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIG9mIGEgUGVyc29uIGFuZCByZWxhdGVkIGVtYWlsIHRocmVhZHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEPj4gZXh0ZW5kcyBMb2NrU2V0Q29tcG9uZW50U3RvcmU8Qz4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8VCwgRD4ge1xuICAvLyBNQVJLOiBFZmZlY3RzXG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZpcmVzdG9yZUNvbGxlY3Rpb24gPz8geC5maXJlc3RvcmVDb2xsZWN0aW9uTGlrZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5maXJlc3RvcmVDb2xsZWN0aW9uKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PiA9IHRoaXMuY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJC5waXBlKGZpbHRlck1heWJlKCkpO1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PiA9IHRoaXMuY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0SWQkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlkKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaW5wdXRJZCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZD4gPSB0aGlzLmN1cnJlbnRJbnB1dElkJC5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBjdXJyZW50SW5wdXRLZXkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5rZXkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpbnB1dEtleSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxLZXk+ID0gdGhpcy5jdXJyZW50SW5wdXRLZXkkLnBpcGUoZmlsdGVyTWF5YmUoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dFJlZiQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnJlZiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlucHV0UmVmJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4gPSB0aGlzLmN1cnJlbnRJbnB1dFJlZiQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgc3RyZWFtTW9kZSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlPiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnN0cmVhbU1vZGUgPz8gRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLlNUUkVBTSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnREb2N1bWVudCQ6IE9ic2VydmFibGU8TWF5YmU8RD4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5jdXJyZW50SW5wdXRJZCQsIHRoaXMuY3VycmVudElucHV0S2V5JCwgdGhpcy5jdXJyZW50SW5wdXRSZWYkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtpZCwga2V5LCByZWZdKSA9PiB7XG4gICAgICBsZXQgZG9jdW1lbnQ6IE9ic2VydmFibGU8TWF5YmU8RD4+O1xuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRvY3VtZW50ID0gdGhpcy5maXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQucGlwZShtYXAoKHgpID0+IHguZG9jdW1lbnRBY2Nlc3NvcigpLmxvYWREb2N1bWVudChyZWYpKSk7XG4gICAgICB9IGVsc2UgaWYgKGtleSkge1xuICAgICAgICBkb2N1bWVudCA9IHRoaXMuZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkLnBpcGUobWFwKCh4KSA9PiB4LmRvY3VtZW50QWNjZXNzb3IoKS5sb2FkRG9jdW1lbnRGb3JLZXkoa2V5KSkpO1xuICAgICAgfSBlbHNlIGlmIChpZCkge1xuICAgICAgICBkb2N1bWVudCA9IHRoaXMuZmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShtYXAoKHgpID0+IHguZG9jdW1lbnRBY2Nlc3NvcigpLmxvYWREb2N1bWVudEZvcklkKGlkKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9jdW1lbnQgPSBvZih1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCBhbiBpZC9yZWYva2V5IGhhcyBiZWVuIGlucHV0IGFuZCBjdXJyZW50RG9jdW1lbnQgaXMgbm90IG51bGwuXG4gICAqL1xuICByZWFkb25seSBoYXNSZWYkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5kb2N1bWVudFJlZiAhPSBudWxsKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnQkOiBPYnNlcnZhYmxlPEQ+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoZmlsdGVyTWF5YmUoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RD4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAoeCA/IHN1Y2Nlc3NSZXN1bHQoeCkgOiBiZWdpbkxvYWRpbmc8RD4oKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaWQkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWQ+ID0gdGhpcy5kb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaWQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkga2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmRvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5rZXkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkga2V5TW9kZWxJZHMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWRbXT4gPSB0aGlzLmtleSQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxJZHNGcm9tS2V5KSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBrZXlQYWlycyQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyW10+ID0gdGhpcy5rZXkkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsS2V5UGFydFBhaXJzKSwgZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBrZXlQYWlyT2JqZWN0JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3Q+ID0gdGhpcy5rZXkkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsS2V5UGFpck9iamVjdCksIGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSByZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmRvY3VtZW50UmVmKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90JDogT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PFQ+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZG9jdW1lbnQkLCB0aGlzLnN0cmVhbU1vZGUkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFt4LCBtb2RlXSkgPT4geC5zbmFwc2hvdFN0cmVhbShtb2RlKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdExvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50U25hcHNob3Q8VD4+PiA9IHRoaXMuY3VycmVudERvY3VtZW50JC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiBsb2FkaW5nU3RhdGVGcm9tT2JzKHRoaXMuc25hcHNob3QkKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50RGF0YSQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSB0aGlzLnNuYXBzaG90JC5waXBlKFxuICAgIG1hcCgoeCkgPT4gZG9jdW1lbnREYXRhV2l0aElkQW5kS2V5KHgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jdXJyZW50RGF0YSQucGlwZShmaWx0ZXJNYXliZSgpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRhTG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSB0aGlzLnNuYXBzaG90TG9hZGluZ1N0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogTG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj47XG5cbiAgICAgIGlmICh4LnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBkb2N1bWVudERhdGFXaXRoSWRBbmRLZXkoeC52YWx1ZSk7XG5cbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICByZXN1bHQgPSBzdWNjZXNzUmVzdWx0KGRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGVycm9yUmVzdWx0KG1vZGVsRG9lc05vdEV4aXN0RXJyb3IoKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAuLi54LFxuICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZhbHNlIHdoaWxlIGhhc1JlZiQgaXMgZmFsc2UsIGFuZCB0aGVuIHJldHVybnMgZXhpc3RzJC5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnRFeGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5oYXNSZWYkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChoYXNSZWYpID0+IHtcbiAgICAgIGlmIChoYXNSZWYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhpc3RzJDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBleGlzdHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5jdXJyZW50RGF0YSQucGlwZShcbiAgICBtYXAoKHgpID0+IGlzTWF5YmVTbyh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkb2VzTm90RXhpc3QkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5leGlzdHMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAheCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtb2RlbElkZW50aXR5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkZW50aXR5PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1vZGVsSWRlbnRpdHkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICByZWFkb25seSBzZXRJZCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlkOiBNYXliZTxGaXJlc3RvcmVNb2RlbElkPikgPT4gKGlkID8geyAuLi5zdGF0ZSwgaWQsIGtleTogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9IDogeyAuLi5zdGF0ZSwgaWQgfSkpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcbiAgcmVhZG9ubHkgc2V0S2V5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwga2V5OiBNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4pID0+IChrZXkgPyB7IC4uLnN0YXRlLCBrZXksIGlkOiB1bmRlZmluZWQsIHJlZjogdW5kZWZpbmVkIH0gOiB7IC4uLnN0YXRlLCBrZXkgfSkpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcbiAgcmVhZG9ubHkgc2V0RmxhdEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogTWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5PikgPT4gKGtleSA/IHsgLi4uc3RhdGUsIGtleTogaW5mZXJLZXlGcm9tVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5KGtleSksIGlkOiB1bmRlZmluZWQsIHJlZjogdW5kZWZpbmVkIH0gOiB7IC4uLnN0YXRlLCBrZXkgfSkpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcbiAgcmVhZG9ubHkgc2V0UmVmID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcmVmOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4pID0+IChyZWYgPyB7IC4uLnN0YXRlLCBrZXk6IHVuZGVmaW5lZCwgaWQ6IHVuZGVmaW5lZCwgcmVmIH0gOiB7IC4uLnN0YXRlLCByZWYgfSkpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+IHwgT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgcmVhZG9ubHkgc2V0U3RyZWFtTW9kZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHN0cmVhbU1vZGU6IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSkgPT4gKHsgLi4uc3RhdGUsIHN0cmVhbU1vZGUgfSkpO1xuXG4gIHJlYWRvbmx5IGNsZWFyUmVmcyA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+ICh7IC4uLnN0YXRlLCBpZDogdW5kZWZpbmVkLCBrZXk6IHVuZGVmaW5lZCwgcmVmOiB1bmRlZmluZWQgfSkpO1xuXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb24gPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PikgPT4gKHsgLi4uc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb24gfSkpO1xuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4pID0+ICh7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSB9KSk7XG59XG4iXX0=
|
|
106
|
+
/**
|
|
107
|
+
* AbstractDbxFirebaseDocumentWithParentStore extension for use with RootSingleItemFirestoreCollection.
|
|
108
|
+
*/
|
|
109
|
+
export class AbstractRootSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentStore {
|
|
110
|
+
constructor() {
|
|
111
|
+
super(...arguments);
|
|
112
|
+
/**
|
|
113
|
+
* Sets the SingleItemFirestoreCollection to use.
|
|
114
|
+
*/
|
|
115
|
+
this.setFirestoreCollection = this.updater((state, firestoreCollection) => {
|
|
116
|
+
if (firestoreCollection != null) {
|
|
117
|
+
const id = firestoreCollection.singleItemIdentifier;
|
|
118
|
+
if (id != null) {
|
|
119
|
+
return { ...state, firestoreCollection, id };
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
throw new Error('AbstractRootSingleItemDbxFirebaseDocument only accepts RootSingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
return { ...state, firestoreCollection: null };
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
/**
|
|
130
|
+
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
131
|
+
*
|
|
132
|
+
* Ref is set with the FirestoreCollection
|
|
133
|
+
*/
|
|
134
|
+
this.setId = this.updater((state, id) => state);
|
|
135
|
+
/**
|
|
136
|
+
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
137
|
+
*
|
|
138
|
+
* Ref is set with the FirestoreCollection
|
|
139
|
+
*/
|
|
140
|
+
this.setKey = this.updater((state, key) => state);
|
|
141
|
+
/**
|
|
142
|
+
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
143
|
+
*
|
|
144
|
+
* Ref is set with the FirestoreCollection
|
|
145
|
+
*/
|
|
146
|
+
this.setRef = this.updater((state, ref) => state);
|
|
147
|
+
this.clearRefs = this.updater((state) => state);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFVTCx3QkFBd0IsRUFDeEIsMEJBQTBCLEVBRTFCLDJCQUEyQixFQUUzQix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBRTNCLHVDQUF1QyxFQUV4QyxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQWdCLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQVMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBdUZyRCxNQUFNLE9BQU8sZ0NBQThMLFNBQVEscUJBQXdCO0lBRDNPOztRQUVFLGdCQUFnQjtRQUVoQixrQkFBa0I7UUFDVCxvQ0FBK0IsR0FBcUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzNHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUM5RCxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVP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QUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQW1GLENBQUM7UUFDM04sV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQW1GLENBQUM7UUFDaE8sZUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBdUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLHVDQUF1QyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQW1GLENBQUM7UUFDNVIsV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBZ0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQStHLENBQUM7UUFFL1Asa0JBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFN0csY0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVuRywyQkFBc0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLG1CQUFxRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0ksK0JBQTBCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSx1QkFBNkQsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3ZLOzs4SEE3TFksZ0NBQWdDO2tJQUFoQyxnQ0FBZ0M7NEZBQWhDLGdDQUFnQztrQkFENUMsVUFBVTs7QUFnTVg7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUNBQXVNLFNBQVEsZ0NBQXlDO0lBQXJROztRQUNFOztXQUVHO1FBQ2UsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxtQkFBcUQsRUFBRSxFQUFFO1lBQ3ZILElBQUksbUJBQW1CLElBQUksSUFBSSxFQUFFO2dCQUMvQixNQUFNLEVBQUUsR0FBSSxtQkFBK0QsQ0FBQyxvQkFBb0IsQ0FBQztnQkFFakcsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO29CQUNkLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsQ0FBQztpQkFDOUM7cUJBQU07b0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyw2SkFBNkosQ0FBQyxDQUFDO2lCQUNoTDthQUNGO2lCQUFNO2dCQUNMLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNoRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUg7Ozs7V0FJRztRQUNlLFVBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQTJCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBbUYsQ0FBQztRQUV4Szs7OztXQUlHO1FBQ2UsV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBNkIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFtRixDQUFDO1FBRTNLOzs7O1dBSUc7UUFDZSxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFnQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQStHLENBQUM7UUFFeEwsY0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERvY3VtZW50U25hcHNob3QsXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBGaXJlc3RvcmVDb2xsZWN0aW9uLFxuICBGaXJlc3RvcmVEb2N1bWVudCxcbiAgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LFxuICBGaXJlc3RvcmVNb2RlbElkLFxuICBGaXJlc3RvcmVNb2RlbEtleSxcbiAgRmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UsXG4gIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksXG4gIGZpcmVzdG9yZU1vZGVsSWRzRnJvbUtleSxcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYXJ0UGFpcnMsXG4gIEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpcixcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYWlyT2JqZWN0LFxuICBGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3QsXG4gIGRvY3VtZW50RGF0YVdpdGhJZEFuZEtleSxcbiAgRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLFxuICBUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXksXG4gIGluZmVyS2V5RnJvbVR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSxcbiAgUm9vdFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uXG59IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGJlZ2luTG9hZGluZywgc3VjY2Vzc1Jlc3VsdCwgbG9hZGluZ1N0YXRlRnJvbU9icywgZXJyb3JSZXN1bHQsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSwgaXNNYXliZVNvIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBMb2NrU2V0Q29tcG9uZW50LCBMb2NrU2V0Q29tcG9uZW50U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBtb2RlbERvZXNOb3RFeGlzdEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gZXh0ZW5kcyBMb2NrU2V0Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj47XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0SWQkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+PjtcbiAgcmVhZG9ubHkgaW5wdXRJZCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZD47XG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dEtleSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+PjtcbiAgcmVhZG9ubHkgaW5wdXRLZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgY3VycmVudElucHV0UmVmJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+O1xuICByZWFkb25seSBpbnB1dFJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xuXG4gIHJlYWRvbmx5IHN0cmVhbU1vZGUkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZT47XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG4gIHJlYWRvbmx5IGRvY3VtZW50JDogT2JzZXJ2YWJsZTxEPjtcbiAgcmVhZG9ubHkgaWQkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWQ+O1xuICByZWFkb25seSBrZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgcmVmJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPj47XG4gIHJlYWRvbmx5IGhhc1JlZiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcmVhZG9ubHkga2V5TW9kZWxJZHMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWRbXT47XG4gIHJlYWRvbmx5IGtleVBhaXJzJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJbXT47XG4gIHJlYWRvbmx5IGtleVBhaXJPYmplY3QkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpck9iamVjdD47XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEPj47XG4gIHJlYWRvbmx5IHNuYXBzaG90JDogT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PFQ+PjtcbiAgcmVhZG9ubHkgc25hcHNob3RMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudFNuYXBzaG90PFQ+Pj47XG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PjtcbiAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+PjtcbiAgcmVhZG9ubHkgZGF0YUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+O1xuICByZWFkb25seSBjdXJyZW50RXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgZXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZGVudGl0eT47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGlkIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0SWQ6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldEtleTogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZCB1c2luZyBhIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZsYXRLZXk6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVmIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0UmVmOiAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBrZXkvaWQvcmVmIGFuZCBjdXJyZW50IGRvY3VtZW50IGZyb20gdGhlIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYXJSZWZzOiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdHJlYW0gbW9kZS5cbiAgICovXG4gIHJlYWRvbmx5IHNldFN0cmVhbU1vZGU6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8RmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlPikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uIHRvIHJldHJpZXZlIGRvY3VtZW50cyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSB0byByZXRyaWV2ZSBkb2N1bWVudHMgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlOiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4ge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZT86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbj86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+O1xuICByZWFkb25seSBzdHJlYW1Nb2RlPzogRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlO1xuICByZWFkb25seSBpZD86IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+O1xuICByZWFkb25seSBrZXk/OiBNYXliZTxGaXJlc3RvcmVNb2RlbEtleT47XG4gIHJlYWRvbmx5IHJlZj86IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnRTdG9yZTxDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiB7XG4gIC8vIE1BUks6IEVmZmVjdHNcblxuICAvLyBNQVJLOiBBY2Nlc3NvcnNcbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmlyZXN0b3JlQ29sbGVjdGlvbiA/PyB4LmZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZpcmVzdG9yZUNvbGxlY3Rpb24pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBjdXJyZW50SW5wdXRJZCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpbnB1dElkJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkPiA9IHRoaXMuY3VycmVudElucHV0SWQkLnBpcGUoZmlsdGVyTWF5YmUoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dEtleSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmtleSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlucHV0S2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT4gPSB0aGlzLmN1cnJlbnRJbnB1dEtleSQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0UmVmJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgucmVmKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaW5wdXRSZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiA9IHRoaXMuY3VycmVudElucHV0UmVmJC5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBzdHJlYW1Nb2RlJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGU+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguc3RyZWFtTW9kZSA/PyBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUuU1RSRUFNKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRJbnB1dElkJCwgdGhpcy5jdXJyZW50SW5wdXRLZXkkLCB0aGlzLmN1cnJlbnRJbnB1dFJlZiRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2lkLCBrZXksIHJlZl0pID0+IHtcbiAgICAgIGxldCBkb2N1bWVudDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG5cbiAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgZG9jdW1lbnQgPSB0aGlzLmZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJC5waXBlKG1hcCgoeCkgPT4geC5kb2N1bWVudEFjY2Vzc29yKCkubG9hZERvY3VtZW50KHJlZikpKTtcbiAgICAgIH0gZWxzZSBpZiAoa2V5KSB7XG4gICAgICAgIGRvY3VtZW50ID0gdGhpcy5maXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQucGlwZShtYXAoKHgpID0+IHguZG9jdW1lbnRBY2Nlc3NvcigpLmxvYWREb2N1bWVudEZvcktleShrZXkpKSk7XG4gICAgICB9IGVsc2UgaWYgKGlkKSB7XG4gICAgICAgIGRvY3VtZW50ID0gdGhpcy5maXJlc3RvcmVDb2xsZWN0aW9uJC5waXBlKG1hcCgoeCkgPT4geC5kb2N1bWVudEFjY2Vzc29yKCkubG9hZERvY3VtZW50Rm9ySWQoaWQpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb2N1bWVudCA9IG9mKHVuZGVmaW5lZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkb2N1bWVudDtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGFuIGlkL3JlZi9rZXkgaGFzIGJlZW4gaW5wdXQgYW5kIGN1cnJlbnREb2N1bWVudCBpcyBub3QgbnVsbC5cbiAgICovXG4gIHJlYWRvbmx5IGhhc1JlZiQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LmRvY3VtZW50UmVmICE9IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkb2N1bWVudCQ6IE9ic2VydmFibGU8RD4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEPj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+ICh4ID8gc3VjY2Vzc1Jlc3VsdCh4KSA6IGJlZ2luTG9hZGluZzxEPigpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpZCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZD4gPSB0aGlzLmRvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pZCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBrZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmtleSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBrZXlNb2RlbElkcyQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZFtdPiA9IHRoaXMua2V5JC5waXBlKG1hcChmaXJlc3RvcmVNb2RlbElkc0Zyb21LZXkpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGtleVBhaXJzJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJbXT4gPSB0aGlzLmtleSQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxLZXlQYXJ0UGFpcnMpLCBmaWx0ZXJNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGtleVBhaXJPYmplY3QkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpck9iamVjdD4gPSB0aGlzLmtleSQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxLZXlQYWlyT2JqZWN0KSwgZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+ID0gdGhpcy5kb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZG9jdW1lbnRSZWYpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3QkOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5kb2N1bWVudCQsIHRoaXMuc3RyZWFtTW9kZSRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3gsIG1vZGVdKSA9PiB4LnNuYXBzaG90U3RyZWFtKG1vZGUpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IGxvYWRpbmdTdGF0ZUZyb21PYnModGhpcy5zbmFwc2hvdCQpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PiA9IHRoaXMuc25hcHNob3QkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBkb2N1bWVudERhdGFXaXRoSWRBbmRLZXkoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+PiA9IHRoaXMuY3VycmVudERvY3VtZW50JC5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmN1cnJlbnREYXRhJC5waXBlKGZpbHRlck1heWJlKCkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGFMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PiA9IHRoaXMuc25hcHNob3RMb2FkaW5nU3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+PjtcblxuICAgICAgaWYgKHgudmFsdWUpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGRvY3VtZW50RGF0YVdpdGhJZEFuZEtleSh4LnZhbHVlKTtcblxuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIHJlc3VsdCA9IHN1Y2Nlc3NSZXN1bHQoZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gZXJyb3JSZXN1bHQobW9kZWxEb2VzTm90RXhpc3RFcnJvcigpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgIC4uLngsXG4gICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgZmFsc2Ugd2hpbGUgaGFzUmVmJCBpcyBmYWxzZSwgYW5kIHRoZW4gcmV0dXJucyBleGlzdHMkLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudEV4aXN0cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmhhc1JlZiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGhhc1JlZikgPT4ge1xuICAgICAgaWYgKGhhc1JlZikge1xuICAgICAgICByZXR1cm4gdGhpcy5leGlzdHMkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGV4aXN0cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmN1cnJlbnREYXRhJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gaXNNYXliZVNvKHgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRvZXNOb3RFeGlzdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmV4aXN0cyQucGlwZShcbiAgICBtYXAoKHgpID0+ICF4KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG1vZGVsSWRlbnRpdHkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWRlbnRpdHk+ID0gdGhpcy5kb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHgubW9kZWxJZGVudGl0eSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIHJlYWRvbmx5IHNldElkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+KSA9PiAoaWQgPyB7IC4uLnN0YXRlLCBpZCwga2V5OiB1bmRlZmluZWQsIHJlZjogdW5kZWZpbmVkIH0gOiB7IC4uLnN0YXRlLCBpZCB9KSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuICByZWFkb25seSBzZXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5PikgPT4gKGtleSA/IHsgLi4uc3RhdGUsIGtleSwgaWQ6IHVuZGVmaW5lZCwgcmVmOiB1bmRlZmluZWQgfSA6IHsgLi4uc3RhdGUsIGtleSB9KSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuICByZWFkb25seSBzZXRGbGF0S2V5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwga2V5OiBNYXliZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+KSA9PiAoa2V5ID8geyAuLi5zdGF0ZSwga2V5OiBpbmZlcktleUZyb21Ud29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkoa2V5KSwgaWQ6IHVuZGVmaW5lZCwgcmVmOiB1bmRlZmluZWQgfSA6IHsgLi4uc3RhdGUsIGtleSB9KSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuICByZWFkb25seSBzZXRSZWYgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCByZWY6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PikgPT4gKHJlZiA/IHsgLi4uc3RhdGUsIGtleTogdW5kZWZpbmVkLCBpZDogdW5kZWZpbmVkLCByZWYgfSA6IHsgLi4uc3RhdGUsIHJlZiB9KSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4gfCBPYnNlcnZhYmxlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICByZWFkb25seSBzZXRTdHJlYW1Nb2RlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc3RyZWFtTW9kZTogRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlKSA9PiAoeyAuLi5zdGF0ZSwgc3RyZWFtTW9kZSB9KSk7XG5cbiAgcmVhZG9ubHkgY2xlYXJSZWZzID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4gKHsgLi4uc3RhdGUsIGlkOiB1bmRlZmluZWQsIGtleTogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9KSk7XG5cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+KSA9PiAoeyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbiB9KSk7XG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U6IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PikgPT4gKHsgLi4uc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlIH0pKTtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmUgZXh0ZW5zaW9uIGZvciB1c2Ugd2l0aCBSb290U2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFJvb3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudDxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEPj4gZXh0ZW5kcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBELCBDPiB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbiB0byB1c2UuXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4pID0+IHtcbiAgICBpZiAoZmlyZXN0b3JlQ29sbGVjdGlvbiAhPSBudWxsKSB7XG4gICAgICBjb25zdCBpZCA9IChmaXJlc3RvcmVDb2xsZWN0aW9uIGFzIFJvb3RTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPikuc2luZ2xlSXRlbUlkZW50aWZpZXI7XG5cbiAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uLCBpZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBYnN0cmFjdFJvb3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudCBvbmx5IGFjY2VwdHMgUm9vdFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uIHZhbHVlcyB3aXRoIGEgc2luZ2xlSXRlbUlkZW50aWZpZXIgc2V0IGZvciBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uLicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogbnVsbCB9O1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIERvZXMgbm90aGluZyBvbiBhIEFic3RyYWN0Um9vdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50LlxuICAgKlxuICAgKiBSZWYgaXMgc2V0IHdpdGggdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb25cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHNldElkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+KSA9PiBzdGF0ZSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBEb2VzIG5vdGhpbmcgb24gYSBBYnN0cmFjdFJvb3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudC5cbiAgICpcbiAgICogUmVmIGlzIHNldCB3aXRoIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5PikgPT4gc3RhdGUpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRG9lcyBub3RoaW5nIG9uIGEgQWJzdHJhY3RSb290U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQuXG4gICAqXG4gICAqIFJlZiBpcyBzZXQgd2l0aCB0aGUgRmlyZXN0b3JlQ29sbGVjdGlvblxuICAgKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgc2V0UmVmID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcmVmOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4pID0+IHN0YXRlKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB8IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGNsZWFyUmVmcyA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+IHN0YXRlKTtcbn1cbiJdfQ==
|
|
@@ -6,7 +6,7 @@ import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject,
|
|
|
6
6
|
import * as i2$2 from '@dereekb/dbx-core';
|
|
7
7
|
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, AbstractSubscriptionDirective, AbstractIfDirective, DbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance, LockSetComponentStore } from '@dereekb/dbx-core';
|
|
8
8
|
import * as i1 from '@angular/fire/auth';
|
|
9
|
-
import { authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
9
|
+
import { authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, reauthenticateWithPopup, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
10
10
|
import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, PromiseUtility, forEachKeyValue, readableError, isMaybeSo, firstValue } from '@dereekb/util';
|
|
11
11
|
import { sendPasswordResetEmail } from 'firebase/auth';
|
|
12
12
|
import { getToken, initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
|
|
@@ -234,6 +234,16 @@ class DbxFirebaseAuthService {
|
|
|
234
234
|
logOut() {
|
|
235
235
|
return this.firebaseAuth.signOut();
|
|
236
236
|
}
|
|
237
|
+
reauthenticateWithPopup(provider, resolver) {
|
|
238
|
+
return firstValueFrom(this.currentAuthUser$.pipe(switchMap((x) => {
|
|
239
|
+
if (x) {
|
|
240
|
+
return reauthenticateWithPopup(x, provider, resolver);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
throw new Error('User is not logged in currently.');
|
|
244
|
+
}
|
|
245
|
+
})));
|
|
246
|
+
}
|
|
237
247
|
}
|
|
238
248
|
DbxFirebaseAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService, deps: [{ token: i1.Auth }, { token: DbxFirebaseAuthServiceDelegate, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
239
249
|
DbxFirebaseAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService });
|
|
@@ -3631,9 +3641,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
3631
3641
|
}]
|
|
3632
3642
|
}] });
|
|
3633
3643
|
|
|
3634
|
-
/**
|
|
3635
|
-
* Used for storing the state of a Person and related email threads.
|
|
3636
|
-
*/
|
|
3637
3644
|
class AbstractDbxFirebaseCollectionStore extends LockSetComponentStore {
|
|
3638
3645
|
constructor() {
|
|
3639
3646
|
super(...arguments);
|
|
@@ -3685,9 +3692,6 @@ function modelDoesNotExistError() {
|
|
|
3685
3692
|
return readableError(DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, 'The document does not exist.');
|
|
3686
3693
|
}
|
|
3687
3694
|
|
|
3688
|
-
/**
|
|
3689
|
-
* Used for storing the state of a Person and related email threads.
|
|
3690
|
-
*/
|
|
3691
3695
|
class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
|
|
3692
3696
|
constructor() {
|
|
3693
3697
|
super(...arguments);
|
|
@@ -3782,6 +3786,50 @@ AbstractDbxFirebaseDocumentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersio
|
|
|
3782
3786
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, decorators: [{
|
|
3783
3787
|
type: Injectable
|
|
3784
3788
|
}] });
|
|
3789
|
+
/**
|
|
3790
|
+
* AbstractDbxFirebaseDocumentWithParentStore extension for use with RootSingleItemFirestoreCollection.
|
|
3791
|
+
*/
|
|
3792
|
+
class AbstractRootSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentStore {
|
|
3793
|
+
constructor() {
|
|
3794
|
+
super(...arguments);
|
|
3795
|
+
/**
|
|
3796
|
+
* Sets the SingleItemFirestoreCollection to use.
|
|
3797
|
+
*/
|
|
3798
|
+
this.setFirestoreCollection = this.updater((state, firestoreCollection) => {
|
|
3799
|
+
if (firestoreCollection != null) {
|
|
3800
|
+
const id = firestoreCollection.singleItemIdentifier;
|
|
3801
|
+
if (id != null) {
|
|
3802
|
+
return Object.assign(Object.assign({}, state), { firestoreCollection, id });
|
|
3803
|
+
}
|
|
3804
|
+
else {
|
|
3805
|
+
throw new Error('AbstractRootSingleItemDbxFirebaseDocument only accepts RootSingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
|
|
3806
|
+
}
|
|
3807
|
+
}
|
|
3808
|
+
else {
|
|
3809
|
+
return Object.assign(Object.assign({}, state), { firestoreCollection: null });
|
|
3810
|
+
}
|
|
3811
|
+
});
|
|
3812
|
+
/**
|
|
3813
|
+
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
3814
|
+
*
|
|
3815
|
+
* Ref is set with the FirestoreCollection
|
|
3816
|
+
*/
|
|
3817
|
+
this.setId = this.updater((state, id) => state);
|
|
3818
|
+
/**
|
|
3819
|
+
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
3820
|
+
*
|
|
3821
|
+
* Ref is set with the FirestoreCollection
|
|
3822
|
+
*/
|
|
3823
|
+
this.setKey = this.updater((state, key) => state);
|
|
3824
|
+
/**
|
|
3825
|
+
* Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
|
|
3826
|
+
*
|
|
3827
|
+
* Ref is set with the FirestoreCollection
|
|
3828
|
+
*/
|
|
3829
|
+
this.setRef = this.updater((state, ref) => state);
|
|
3830
|
+
this.clearRefs = this.updater((state) => state);
|
|
3831
|
+
}
|
|
3832
|
+
}
|
|
3785
3833
|
|
|
3786
3834
|
/**
|
|
3787
3835
|
* Creates a function for a store that DbxFirebaseDocumentStore captures the ModelFirebaseCreateFunction result and sets the key of the created value.
|
|
@@ -4250,5 +4298,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
4250
4298
|
* Generated bundle index. Do not edit.
|
|
4251
4299
|
*/
|
|
4252
4300
|
|
|
4253
|
-
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentModuleRootConfig, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseInContextFirebaseModelServiceInstance, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelContextService, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent, DbxFirebaseModelTypesModule, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelTypesServiceInstance, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, DbxfirebaseModelViewedEventDirective, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, SystemStateCollectionStore, SystemStateDocumentStore, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseStorageModuleContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, provideSystemStateFirestoreCollections, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction };
|
|
4301
|
+
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentModuleRootConfig, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseInContextFirebaseModelServiceInstance, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelContextService, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent, DbxFirebaseModelTypesModule, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelTypesServiceInstance, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, DbxfirebaseModelViewedEventDirective, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, SystemStateCollectionStore, SystemStateDocumentStore, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseStorageModuleContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, provideSystemStateFirestoreCollections, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction };
|
|
4254
4302
|
//# sourceMappingURL=dereekb-dbx-firebase.mjs.map
|