@angular-architects/ngrx-toolkit 18.0.0-rc.2.0 → 18.0.0
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/README.md +4 -2
- package/esm2022/index.mjs +2 -2
- package/esm2022/lib/redux-connector/model.mjs +1 -1
- package/esm2022/lib/redux-connector/signal-redux-store.mjs +3 -3
- package/esm2022/lib/shared/signal-store-models.mjs +1 -1
- package/esm2022/lib/with-call-state.mjs +2 -2
- package/esm2022/lib/with-data-service.mjs +1 -1
- package/esm2022/lib/with-devtools.mjs +4 -4
- package/esm2022/lib/with-pagination.mjs +1 -1
- package/esm2022/lib/with-redux.mjs +1 -1
- package/esm2022/lib/with-storage-sync.mjs +1 -1
- package/esm2022/lib/with-undo-redo.mjs +1 -1
- package/fesm2022/angular-architects-ngrx-toolkit.mjs +112 -112
- package/fesm2022/angular-architects-ngrx-toolkit.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/lib/redux-connector/model.d.ts +6 -7
- package/lib/shared/signal-store-models.d.ts +0 -10
- package/lib/with-call-state.d.ts +3 -14
- package/lib/with-data-service.d.ts +3 -8
- package/lib/with-devtools.d.ts +3 -8
- package/lib/with-pagination.d.ts +3 -6
- package/lib/with-redux.d.ts +2 -3
- package/lib/with-storage-sync.d.ts +2 -6
- package/lib/with-undo-redo.d.ts +6 -19
- package/package.json +2 -2
- package/esm2022/lib/shared/empty.mjs +0 -2
- package/lib/shared/empty.d.ts +0 -1
package/README.md
CHANGED
|
@@ -256,7 +256,7 @@ export class FlightSearchDynamicComponent {
|
|
|
256
256
|
|
|
257
257
|
`withStorageSync` adds automatic or manual synchronization with Web Storage (`localstorage`/`sessionstorage`).
|
|
258
258
|
|
|
259
|
-
> [!WARNING]
|
|
259
|
+
> [!WARNING]
|
|
260
260
|
> As Web Storage only works in browser environments it will fallback to a stub implementation on server environments.
|
|
261
261
|
|
|
262
262
|
Example:
|
|
@@ -434,13 +434,15 @@ To ensure stability, we clone these internal types and run integration tests for
|
|
|
434
434
|
|
|
435
435
|
### I have an idea for a new extension, can I contribute?
|
|
436
436
|
|
|
437
|
-
Yes, please! We are always looking for new ideas and contributions.
|
|
437
|
+
Yes, please! We are always looking for new ideas and contributions.
|
|
438
438
|
|
|
439
439
|
Since we don't want to bloat the library, we are very selective about new features. You also have to provide the following:
|
|
440
440
|
- Good test coverage so that we can update it properly and don't have to call you 😉.
|
|
441
441
|
- A use case showing the feature in action in the demo app of the repository.
|
|
442
442
|
- An entry to the README.md.
|
|
443
443
|
|
|
444
|
+
This project uses [pnpm](https://pnpm.io/) to manage dependencies and run tasks (for local development and CI).
|
|
445
|
+
|
|
444
446
|
### I require a feature that is not available in a lower version. What should I do?
|
|
445
447
|
|
|
446
448
|
Please create an issue. Very likely, we are able to cherry-pick the feature into the lower version.
|
package/esm2022/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ export * from './lib/with-call-state';
|
|
|
4
4
|
export * from './lib/with-undo-redo';
|
|
5
5
|
export * from './lib/with-data-service';
|
|
6
6
|
export { withStorageSync } from './lib/with-storage-sync';
|
|
7
|
+
export * from './lib/with-pagination';
|
|
7
8
|
export * from './lib/redux-connector';
|
|
8
9
|
export * from './lib/redux-connector/rxjs-interop';
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxHQUVaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICB3aXRoRGV2dG9vbHMsXG4gIHBhdGNoU3RhdGUsXG4gIHVwZGF0ZVN0YXRlLFxuICBBY3Rpb24sXG59IGZyb20gJy4vbGliL3dpdGgtZGV2dG9vbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC1yZWR1eCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpdGgtY2FsbC1zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLXVuZG8tcmVkbyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLWRhdGEtc2VydmljZSc7XG5leHBvcnQgeyB3aXRoU3RvcmFnZVN5bmMsIFN5bmNDb25maWcgfSBmcm9tICcuL2xpYi93aXRoLXN0b3JhZ2Utc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWR1eC1jb25uZWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVkdXgtY29ubmVjdG9yL3J4anMtaW50ZXJvcCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLXBhZ2luYXRpb24nO1xuIl19
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxHQUVaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICB3aXRoRGV2dG9vbHMsXG4gIHBhdGNoU3RhdGUsXG4gIHVwZGF0ZVN0YXRlLFxuICBBY3Rpb24sXG59IGZyb20gJy4vbGliL3dpdGgtZGV2dG9vbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2l0aC1yZWR1eCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpdGgtY2FsbC1zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLXVuZG8tcmVkbyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLWRhdGEtc2VydmljZSc7XG5leHBvcnQgeyB3aXRoU3RvcmFnZVN5bmMsIFN5bmNDb25maWcgfSBmcm9tICcuL2xpYi93aXRoLXN0b3JhZ2Utc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aXRoLXBhZ2luYXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWR1eC1jb25uZWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVkdXgtY29ubmVjdG9yL3J4anMtaW50ZXJvcCc7XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3JlZHV4LWNvbm5lY3Rvci9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIFNpZ25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVlcFNpZ25hbCB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMvc3JjL2RlZXAtc2lnbmFsJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgU3RhdGVTaWduYWxzLFxufSBmcm9tICdAbmdyeC9zaWduYWxzL3NyYy9zaWduYWwtc3RvcmUtbW9kZWxzJztcbmltcG9ydCB7XG4gIEFjdGlvbixcbiAgQWN0aW9uQ3JlYXRvcixcbiAgQWN0aW9uVHlwZSxcbiAgUHJldHRpZnksXG59IGZyb20gJ0BuZ3J4L3N0b3JlL3NyYy9tb2RlbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgVW5zdWJzY3JpYmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgSW5jbHVkZVByb3BUeXBlPFxuICBULFxuICBWLFxuICBXaXRoTmV2ZXJzID0ge1xuICAgIFtLIGluIGtleW9mIFRdOiBFeGNsdWRlPFRbS10sIHVuZGVmaW5lZD4gZXh0ZW5kcyBWXG4gICAgICA/IFRbS10gZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICA/IEluY2x1ZGVQcm9wVHlwZTxUW0tdLCBWPlxuICAgICAgICA6IFRbS11cbiAgICAgIDogbmV2ZXI7XG4gIH1cbj4gPSBQcmV0dGlmeTxcbiAgUGljazxcbiAgICBXaXRoTmV2ZXJzLFxuICAgIHtcbiAgICAgIFtLIGluIGtleW9mIFdpdGhOZXZlcnNdOiBXaXRoTmV2ZXJzW0tdIGV4dGVuZHMgbmV2ZXJcbiAgICAgICAgPyBuZXZlclxuICAgICAgICA6IEsgZXh0ZW5kcyBzdHJpbmdcbiAgICAgICAgPyBLXG4gICAgICAgIDogbmV2ZXI7XG4gICAgfVtrZXlvZiBXaXRoTmV2ZXJzXVxuICA+XG4+O1xuXG5leHBvcnQgdHlwZSBTdG9yZSA9IFR5cGU8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYgU3RhdGVTaWduYWxzPFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFsnc3RhdGUnXT5cbj47XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVJlZHV4U3RhdGU8U3RvcmVOYW1lIGV4dGVuZHMgc3RyaW5nLCBTVE9SRSBleHRlbmRzIFN0b3JlPiA9IHtcbiAgW0sgaW4gU3RvcmVOYW1lIGFzIGBwcm92aWRlJHtDYXBpdGFsaXplPEs+fVN0b3JlYF06IChcbiAgICBjb25uZWN0UmVkdXhEZXZ0b29scz86IGJvb2xlYW5cbiAgKSA9PiBFbnZpcm9ubWVudFByb3ZpZGVycztcbn0gJiB7XG4gIFtLIGluIFN0b3JlTmFtZSBhcyBgaW5qZWN0JHtDYXBpdGFsaXplPEs+fVN0b3JlYF06ICgpID0+IEluamVjdGFibGVSZWR1eFNsaWNlPFNUT1JFPjtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdG9yczxTVE9SRSBleHRlbmRzIFN0b3JlPiA9IEluY2x1ZGVQcm9wVHlwZTxcbiAgSW5zdGFuY2VUeXBlPFNUT1JFPixcbiAgU2lnbmFsPHVua25vd24+IHwgRGVlcFNpZ25hbDx1bmtub3duPlxuPjtcbmV4cG9ydCB0eXBlIERpc3BhdGNoID0ge1xuICBkaXNwYXRjaDogKFxuICAgIGlucHV0OiBBY3Rpb24gfCBPYnNlcnZhYmxlPEFjdGlvbj4gfCBTaWduYWw8QWN0aW9uPlxuICApID0+IFVuc3Vic2NyaWJhYmxlO1xufTtcbmV4cG9ydCB0eXBlIEluamVjdGFibGVSZWR1eFNsaWNlPFNUT1JFIGV4dGVuZHMgU3RvcmU+ID0gU2VsZWN0b3JzPFNUT1JFPiAmXG4gIERpc3BhdGNoO1xuXG5leHBvcnQgdHlwZSBFeHRyYWN0QWN0aW9uVHlwZXM8Q3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW10+ID0ge1xuICBbS2V5IGluIGtleW9mIENyZWF0b3JzXTogQ3JlYXRvcnNbS2V5XSBleHRlbmRzIEFjdGlvbkNyZWF0b3I8aW5mZXIgVD5cbiAgICA/IFRcbiAgICA6IG5ldmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25NZXRob2Q8VCwgViBleHRlbmRzIEFjdGlvbiA9IEFjdGlvbj4ge1xuICAoYWN0aW9uOiBWKTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdG9yZU1ldGhvZDxcbiAgQ3JlYXRvcnMgZXh0ZW5kcyByZWFkb25seSBBY3Rpb25DcmVhdG9yW10sXG4gIFJlc3VsdFN0YXRlID0gdW5rbm93blxuPiB7XG4gIChhY3Rpb246IEFjdGlvblR5cGU8Q3JlYXRvcnNbbnVtYmVyXT4pOiBSZXN1bHRTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwZXJUeXBlczxDcmVhdG9ycyBleHRlbmRzIHJlYWRvbmx5IEFjdGlvbkNyZWF0b3JbXT4ge1xuICB0eXBlczogRXh0cmFjdEFjdGlvblR5cGVzPENyZWF0b3JzPjtcbiAgc3RvcmVNZXRob2Q6IFN0b3JlTWV0aG9kPENyZWF0b3JzPjtcbiAgcmVzdWx0TWV0aG9kPzogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bjtcbn1cbiJdfQ==
|
|
@@ -28,10 +28,10 @@ export class SignalReduxStore {
|
|
|
28
28
|
resultMethod: mapper.resultMethod
|
|
29
29
|
}));
|
|
30
30
|
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
32
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SignalReduxStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SignalReduxStore, providedIn: 'root' }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SignalReduxStore, decorators: [{
|
|
35
35
|
type: Injectable,
|
|
36
36
|
args: [{
|
|
37
37
|
providedIn: 'root'
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NpZ25hbC1zdG9yZS1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIGNvcGllcyBvZiB0eXBlcyBvZiB0aGUgU2lnbmFsIFN0b3JlIHdoaWNoIGFyZSBub3QgcHVibGljLlxuICpcbiAqIFNpbmNlIGNlcnRhaW4gZmVhdHVyZXMgZGVwZW5kIG9uIHRoZW0sIGlmIHdlIGRvbid0IHdhbnQgdG8gYnJlYWtcbiAqIHRoZSBlbmNhcHN1bGF0aW9uIG9mIEBuZ3J4L3NpZ25hbHMsIHdlIGRlY2lkZWQgdG8gY29weSB0aGVtLlxuICpcbiAqIFNpbmNlIFR5cGVTY3JpcHQgaXMgYmFzZWQgb24gc3RydWN0dXJhbCB0eXBpbmcsIHdlIGNhbiBnZXQgYXdheSB3aXRoIGl0LlxuICpcbiAqIElmIEBuZ3J4L3NpZ25hbHMgY2hhbmdlcyBpdHMgaW50ZXJuYWwgdHlwZXMsIHdlIGNhdGNoIHRoZW0gdmlhIGludGVncmF0aW9uXG4gKiB0ZXN0cy5cbiAqXG4gKiBCZWNhdXNlIG9mIHRoZSBcInRpZ2h0IGNvdXBsaW5nXCIsIHRoZSB0b29sa2l0IGRvZXNuJ3QgaGF2ZSB2ZXJzaW9uIHJhbmdlXG4gKiB0byBAbmdyeC9zaWduYWwsIGJ1dCBpcyB2ZXJ5IHByZWNpc2UuXG4gKi9cbmltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5SWQgfSBmcm9tICdAbmdyeC9zaWduYWxzL2VudGl0aWVzJztcblxuLy8gd2l0aEVudGl0ZXMgbW9kZWxzXG5leHBvcnQgdHlwZSBFbnRpdHlTdGF0ZTxFbnRpdHk+ID0ge1xuICBlbnRpdHlNYXA6IFJlY29yZDxFbnRpdHlJZCwgRW50aXR5PjtcbiAgaWRzOiBFbnRpdHlJZFtdO1xufTtcblxuZXhwb3J0IHR5cGUgRW50aXR5Q29tcHV0ZWQ8RW50aXR5PiA9IHtcbiAgZW50aXRpZXM6IFNpZ25hbDxFbnRpdHlbXT47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZEVudGl0eUNvbXB1dGVkPEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIGtleW9mIEVudGl0eUNvbXB1dGVkPEVudGl0eT4gYXMgYCR7Q29sbGVjdGlvbn0ke0NhcGl0YWxpemU8Sz59YF06IEVudGl0eUNvbXB1dGVkPEVudGl0eT5bS107XG59O1xuIl19
|
|
@@ -38,7 +38,7 @@ export function setLoaded(prop) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
export function setError(error, prop) {
|
|
41
|
-
let errorMessage
|
|
41
|
+
let errorMessage;
|
|
42
42
|
if (!error) {
|
|
43
43
|
errorMessage = '';
|
|
44
44
|
}
|
|
@@ -57,4 +57,4 @@ export function setError(error, prop) {
|
|
|
57
57
|
return { callState: { error: errorMessage } };
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jYWxsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLWNhbGwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBR0wsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUEwQnZCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFnQztJQUMvRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDO0lBQ2hDLE9BQU87UUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUNsRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6RCxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTztLQUN2RCxDQUFDO0FBQ0osQ0FBQztBQWtCRCxNQUFNLFVBQVUsYUFBYSxDQUE0QixNQUV4RDtJQUNDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FDckQsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0IsT0FBTyxrQkFBa0IsQ0FDdkIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUNyQyxZQUFZLENBQUMsQ0FBQyxLQUFzQyxFQUFFLEVBQUU7UUFDdEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBc0IsQ0FBQztRQUUzRCxPQUFPO1lBQ0wsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssU0FBUyxDQUFDO1lBQ3ZELENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLFFBQVEsQ0FBQztZQUNyRCxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hELENBQUMsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3hCLElBQVc7SUFFWCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBd0IsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQXdCLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQ3ZCLElBQVc7SUFFWCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBd0IsQ0FBQztJQUNsRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUF3QixDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBYyxFQUNkLElBQVc7SUFFWCxJQUFJLFlBQW9CLENBQUM7SUFFekIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzNELFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7U0FBTSxDQUFDO1FBQ04sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE9BQU87WUFDTCxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7U0FDeEIsQ0FBQztJQUMxQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQXdCLENBQUM7SUFDdEUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgc2lnbmFsU3RvcmVGZWF0dXJlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhTdGF0ZSxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5cbmV4cG9ydCB0eXBlIENhbGxTdGF0ZSA9ICdpbml0JyB8ICdsb2FkaW5nJyB8ICdsb2FkZWQnIHwgeyBlcnJvcjogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIENhbGxTdGF0ZVNsaWNlID0ge1xuICBjYWxsU3RhdGU6IENhbGxTdGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkQ2FsbFN0YXRlU2xpY2U8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIGtleW9mIENhbGxTdGF0ZVNsaWNlIGFzIGAke0NvbGxlY3Rpb259JHtDYXBpdGFsaXplPEs+fWBdOiBDYWxsU3RhdGVTbGljZVtLXTtcbn07XG5cbmV4cG9ydCB0eXBlIENhbGxTdGF0ZVNpZ25hbHMgPSB7XG4gIGxvYWRpbmc6IFNpZ25hbDxib29sZWFuPjtcbiAgbG9hZGVkOiBTaWduYWw8Ym9vbGVhbj47XG4gIGVycm9yOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZENhbGxTdGF0ZVNpZ25hbHM8UHJvcCBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIGtleW9mIENhbGxTdGF0ZVNpZ25hbHMgYXMgYCR7UHJvcH0ke0NhcGl0YWxpemU8Sz59YF06IENhbGxTdGF0ZVNpZ25hbHNbS107XG59O1xuXG5leHBvcnQgdHlwZSBTZXRDYWxsU3RhdGU8UHJvcCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZD4gPSBQcm9wIGV4dGVuZHMgc3RyaW5nXG4gID8gTmFtZWRDYWxsU3RhdGVTbGljZTxQcm9wPlxuICA6IENhbGxTdGF0ZVNsaWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FsbFN0YXRlS2V5cyhjb25maWc/OiB7IGNvbGxlY3Rpb24/OiBzdHJpbmcgfSkge1xuICBjb25zdCBwcm9wID0gY29uZmlnPy5jb2xsZWN0aW9uO1xuICByZXR1cm4ge1xuICAgIGNhbGxTdGF0ZUtleTogcHJvcCA/IGAke2NvbmZpZy5jb2xsZWN0aW9ufUNhbGxTdGF0ZWAgOiAnY2FsbFN0YXRlJyxcbiAgICBsb2FkaW5nS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259TG9hZGluZ2AgOiAnbG9hZGluZycsXG4gICAgbG9hZGVkS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259TG9hZGVkYCA6ICdsb2FkZWQnLFxuICAgIGVycm9yS2V5OiBwcm9wID8gYCR7Y29uZmlnLmNvbGxlY3Rpb259RXJyb3JgIDogJ2Vycm9yJyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDYWxsU3RhdGU8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnOiB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIEVtcHR5RmVhdHVyZVJlc3VsdCAmIHtcbiAgICBzdGF0ZTogTmFtZWRDYWxsU3RhdGVTbGljZTxDb2xsZWN0aW9uPjtcbiAgICBjb21wdXRlZDogTmFtZWRDYWxsU3RhdGVTaWduYWxzPENvbGxlY3Rpb24+O1xuICB9XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDYWxsU3RhdGUoKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIEVtcHR5RmVhdHVyZVJlc3VsdCAmIHtcbiAgICBzdGF0ZTogQ2FsbFN0YXRlU2xpY2U7XG4gICAgY29tcHV0ZWQ6IENhbGxTdGF0ZVNpZ25hbHM7XG4gIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aENhbGxTdGF0ZTxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihjb25maWc/OiB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlIHtcbiAgY29uc3QgeyBjYWxsU3RhdGVLZXksIGVycm9yS2V5LCBsb2FkZWRLZXksIGxvYWRpbmdLZXkgfSA9XG4gICAgZ2V0Q2FsbFN0YXRlS2V5cyhjb25maWcpO1xuXG4gIHJldHVybiBzaWduYWxTdG9yZUZlYXR1cmUoXG4gICAgd2l0aFN0YXRlKHsgW2NhbGxTdGF0ZUtleV06ICdpbml0JyB9KSxcbiAgICB3aXRoQ29tcHV0ZWQoKHN0YXRlOiBSZWNvcmQ8c3RyaW5nLCBTaWduYWw8dW5rbm93bj4+KSA9PiB7XG4gICAgICBjb25zdCBjYWxsU3RhdGUgPSBzdGF0ZVtjYWxsU3RhdGVLZXldIGFzIFNpZ25hbDxDYWxsU3RhdGU+O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbbG9hZGluZ0tleV06IGNvbXB1dGVkKCgpID0+IGNhbGxTdGF0ZSgpID09PSAnbG9hZGluZycpLFxuICAgICAgICBbbG9hZGVkS2V5XTogY29tcHV0ZWQoKCkgPT4gY2FsbFN0YXRlKCkgPT09ICdsb2FkZWQnKSxcbiAgICAgICAgW2Vycm9yS2V5XTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHYgPSBjYWxsU3RhdGUoKTtcbiAgICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICdvYmplY3QnID8gdi5lcnJvciA6IG51bGw7XG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TG9hZGluZzxQcm9wIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkPihcbiAgcHJvcD86IFByb3Bcbik6IFNldENhbGxTdGF0ZTxQcm9wPiB7XG4gIGlmIChwcm9wKSB7XG4gICAgcmV0dXJuIHsgW2Ake3Byb3B9Q2FsbFN0YXRlYF06ICdsb2FkaW5nJyB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbiAgfVxuXG4gIHJldHVybiB7IGNhbGxTdGF0ZTogJ2xvYWRpbmcnIH0gYXMgU2V0Q2FsbFN0YXRlPFByb3A+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TG9hZGVkPFByb3AgZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBwcm9wPzogUHJvcFxuKTogU2V0Q2FsbFN0YXRlPFByb3A+IHtcbiAgaWYgKHByb3ApIHtcbiAgICByZXR1cm4geyBbYCR7cHJvcH1DYWxsU3RhdGVgXTogJ2xvYWRlZCcgfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgY2FsbFN0YXRlOiAnbG9hZGVkJyB9IGFzIFNldENhbGxTdGF0ZTxQcm9wPjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RXJyb3I8UHJvcCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4oXG4gIGVycm9yOiB1bmtub3duLFxuICBwcm9wPzogUHJvcFxuKTogU2V0Q2FsbFN0YXRlPFByb3A+IHtcbiAgbGV0IGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIGlmICghZXJyb3IpIHtcbiAgICBlcnJvck1lc3NhZ2UgPSAnJztcbiAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmICdtZXNzYWdlJyBpbiBlcnJvcikge1xuICAgIGVycm9yTWVzc2FnZSA9IFN0cmluZyhlcnJvci5tZXNzYWdlKTtcbiAgfSBlbHNlIHtcbiAgICBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoZXJyb3IpO1xuICB9XG5cbiAgaWYgKHByb3ApIHtcbiAgICByZXR1cm4ge1xuICAgICAgW2Ake3Byb3B9Q2FsbFN0YXRlYF06IHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9LFxuICAgIH0gYXMgU2V0Q2FsbFN0YXRlPFByb3A+O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IGNhbGxTdGF0ZTogeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0gfSBhcyBTZXRDYWxsU3RhdGU8UHJvcD47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -199,4 +199,4 @@ export function withDataService(options) {
|
|
|
199
199
|
};
|
|
200
200
|
}));
|
|
201
201
|
}
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kYXRhLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtZGF0YS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBRUwsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGNBQWMsRUFFZCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksR0FDYixNQUFNLHdCQUF3QixDQUFDO0FBb0JoQyxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQztJQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVTtRQUNsQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxRQUFRO1FBQy9CLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDYixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBVTtRQUN2QyxDQUFDLENBQUMsV0FBVyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLO1FBQ2hELENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDbEIsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsVUFB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O29CQUNGLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLENBQUMsQ0FBQztnQkFDVixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyVG9rZW4sIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBwYXRjaFN0YXRlLFxuICBzaWduYWxTdG9yZUZlYXR1cmUsXG4gIHdpdGhDb21wdXRlZCxcbiAgd2l0aE1ldGhvZHMsXG4gIHdpdGhTdGF0ZSxcbiAgU3RhdGVTaWduYWwsXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHtcbiAgQ2FsbFN0YXRlLFxuICBnZXRDYWxsU3RhdGVLZXlzLFxuICBzZXRFcnJvcixcbiAgc2V0TG9hZGVkLFxuICBzZXRMb2FkaW5nLFxufSBmcm9tICcuL3dpdGgtY2FsbC1zdGF0ZSc7XG5pbXBvcnQge1xuICBzZXRBbGxFbnRpdGllcyxcbiAgRW50aXR5SWQsXG4gIGFkZEVudGl0eSxcbiAgdXBkYXRlRW50aXR5LFxuICByZW1vdmVFbnRpdHksXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMvZW50aXRpZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RhdGUsIE5hbWVkRW50aXR5Q29tcHV0ZWQgfSBmcm9tICcuL3NoYXJlZC9zaWduYWwtc3RvcmUtbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgRmlsdGVyID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5leHBvcnQgdHlwZSBFbnRpdHkgPSB7IGlkOiBFbnRpdHlJZCB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXJ2aWNlPEUgZXh0ZW5kcyBFbnRpdHksIEYgZXh0ZW5kcyBGaWx0ZXI+IHtcbiAgbG9hZChmaWx0ZXI6IEYpOiBQcm9taXNlPEVbXT47XG5cbiAgbG9hZEJ5SWQoaWQ6IEVudGl0eUlkKTogUHJvbWlzZTxFPjtcblxuICBjcmVhdGUoZW50aXR5OiBFKTogUHJvbWlzZTxFPjtcblxuICB1cGRhdGUoZW50aXR5OiBFKTogUHJvbWlzZTxFPjtcblxuICB1cGRhdGVBbGwoZW50aXR5OiBFW10pOiBQcm9taXNlPEVbXT47XG5cbiAgZGVsZXRlKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b1VwcGVyQ2FzZSgpICsgc3RyLnN1YnN0cmluZygxKSA6IHN0cjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFTZXJ2aWNlS2V5cyhvcHRpb25zOiB7IGNvbGxlY3Rpb24/OiBzdHJpbmcgfSkge1xuICBjb25zdCBmaWx0ZXJLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1GaWx0ZXJgXG4gICAgOiAnZmlsdGVyJztcbiAgY29uc3Qgc2VsZWN0ZWRJZHNLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBzZWxlY3RlZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUlkc2BcbiAgICA6ICdzZWxlY3RlZElkcyc7XG4gIGNvbnN0IHNlbGVjdGVkRW50aXRpZXNLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBzZWxlY3RlZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ3NlbGVjdGVkRW50aXRpZXMnO1xuXG4gIGNvbnN0IHVwZGF0ZUZpbHRlcktleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYHVwZGF0ZSR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUZpbHRlcmBcbiAgICA6ICd1cGRhdGVGaWx0ZXInO1xuICBjb25zdCB1cGRhdGVTZWxlY3RlZEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYHVwZGF0ZVNlbGVjdGVkJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9RW50aXRpZXNgXG4gICAgOiAndXBkYXRlU2VsZWN0ZWQnO1xuICBjb25zdCBsb2FkS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgbG9hZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ2xvYWQnO1xuXG4gIGNvbnN0IGN1cnJlbnRLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBjdXJyZW50JHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YFxuICAgIDogJ2N1cnJlbnQnO1xuICBjb25zdCBsb2FkQnlJZEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYGxvYWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1CeUlkYFxuICAgIDogJ2xvYWRCeUlkJztcbiAgY29uc3Qgc2V0Q3VycmVudEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYHNldEN1cnJlbnQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gXG4gICAgOiAnc2V0Q3VycmVudCc7XG4gIGNvbnN0IGNyZWF0ZUtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYGNyZWF0ZSR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfWBcbiAgICA6ICdjcmVhdGUnO1xuICBjb25zdCB1cGRhdGVLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGB1cGRhdGUke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gXG4gICAgOiAndXBkYXRlJztcbiAgY29uc3QgdXBkYXRlQWxsS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgdXBkYXRlQWxsJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YFxuICAgIDogJ3VwZGF0ZUFsbCc7XG4gIGNvbnN0IGRlbGV0ZUtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYGRlbGV0ZSR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfWBcbiAgICA6ICdkZWxldGUnO1xuXG4gIC8vIFRPRE86IFRha2UgdGhlc2UgZnJvbSBAbmdyeC9zaWduYWxzL2VudGl0aWVzLCB3aGVuIHRoZXkgYXJlIGV4cG9ydGVkXG4gIGNvbnN0IGVudGl0aWVzS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259RW50aXRpZXNgXG4gICAgOiAnZW50aXRpZXMnO1xuICBjb25zdCBlbnRpdHlNYXBLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1FbnRpdHlNYXBgXG4gICAgOiAnZW50aXR5TWFwJztcbiAgY29uc3QgaWRzS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUlkc2AgOiAnaWRzJztcblxuICByZXR1cm4ge1xuICAgIGZpbHRlcktleSxcbiAgICBzZWxlY3RlZElkc0tleSxcbiAgICBzZWxlY3RlZEVudGl0aWVzS2V5LFxuICAgIHVwZGF0ZUZpbHRlcktleSxcbiAgICB1cGRhdGVTZWxlY3RlZEtleSxcbiAgICBsb2FkS2V5LFxuICAgIGVudGl0aWVzS2V5LFxuICAgIGVudGl0eU1hcEtleSxcbiAgICBpZHNLZXksXG5cbiAgICBjdXJyZW50S2V5LFxuICAgIGxvYWRCeUlkS2V5LFxuICAgIHNldEN1cnJlbnRLZXksXG4gICAgY3JlYXRlS2V5LFxuICAgIHVwZGF0ZUtleSxcbiAgICB1cGRhdGVBbGxLZXksXG4gICAgZGVsZXRlS2V5LFxuICB9O1xufVxuXG5leHBvcnQgdHlwZSBOYW1lZERhdGFTZXJ2aWNlU3RhdGU8XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIEYgZXh0ZW5kcyBGaWx0ZXIsXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7S31GaWx0ZXJgXTogRjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHNlbGVjdGVkJHtDYXBpdGFsaXplPEs+fUlkc2BdOiBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgY3VycmVudCR7Q2FwaXRhbGl6ZTxLPn1gXTogRTtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFTZXJ2aWNlU3RhdGU8RSBleHRlbmRzIEVudGl0eSwgRiBleHRlbmRzIEZpbHRlcj4gPSB7XG4gIGZpbHRlcjogRjtcbiAgc2VsZWN0ZWRJZHM6IFJlY29yZDxFbnRpdHlJZCwgYm9vbGVhbj47XG4gIGN1cnJlbnQ6IEU7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhU2VydmljZUNvbXB1dGVkPEUgZXh0ZW5kcyBFbnRpdHk+ID0ge1xuICBzZWxlY3RlZEVudGl0aWVzOiBTaWduYWw8RVtdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkRGF0YVNlcnZpY2VDb21wdXRlZDxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2VsZWN0ZWQke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogU2lnbmFsPEVbXT47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZERhdGFTZXJ2aWNlTWV0aG9kczxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgRiBleHRlbmRzIEZpbHRlcixcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlJHtDYXBpdGFsaXplPEs+fUZpbHRlcmBdOiAoZmlsdGVyOiBGKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlU2VsZWN0ZWQke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogKFxuICAgIGlkOiBFbnRpdHlJZCxcbiAgICBzZWxlY3RlZDogYm9vbGVhblxuICApID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBsb2FkJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06ICgpID0+IFByb21pc2U8dm9pZD47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZXRDdXJyZW50JHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgbG9hZCR7Q2FwaXRhbGl6ZTxLPn1CeUlkYF06IChcbiAgICBpZDogRW50aXR5SWRcbiAgKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgY3JlYXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgdXBkYXRlQWxsJHtDYXBpdGFsaXplPEs+fWBdOiAoXG4gICAgZW50aXR5OiBFW11cbiAgKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgZGVsZXRlJHtDYXBpdGFsaXplPEs+fWBdOiAoZW50aXR5OiBFKSA9PiBQcm9taXNlPHZvaWQ+O1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVNlcnZpY2VNZXRob2RzPEUgZXh0ZW5kcyBFbnRpdHksIEYgZXh0ZW5kcyBGaWx0ZXI+ID0ge1xuICB1cGRhdGVGaWx0ZXI6IChmaWx0ZXI6IEYpID0+IHZvaWQ7XG4gIHVwZGF0ZVNlbGVjdGVkOiAoaWQ6IEVudGl0eUlkLCBzZWxlY3RlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICBzZXRDdXJyZW50KGVudGl0eTogRSk6IHZvaWQ7XG4gIGxvYWRCeUlkKGlkOiBFbnRpdHlJZCk6IFByb21pc2U8dm9pZD47XG4gIGNyZWF0ZShlbnRpdHk6IEUpOiBQcm9taXNlPHZvaWQ+O1xuICB1cGRhdGUoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPjtcbiAgdXBkYXRlQWxsKGVudGl0aWVzOiBFW10pOiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGUoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPjtcbn07XG5cbmV4cG9ydCB0eXBlIEVtcHR5ID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aERhdGFTZXJ2aWNlPFxuICBFIGV4dGVuZHMgRW50aXR5LFxuICBGIGV4dGVuZHMgRmlsdGVyLFxuICBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4+KG9wdGlvbnM6IHtcbiAgZGF0YVNlcnZpY2VUeXBlOiBQcm92aWRlclRva2VuPERhdGFTZXJ2aWNlPEUsIEY+PjtcbiAgZmlsdGVyOiBGO1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAge1xuICAgIHN0YXRlOiB7fTtcbiAgICAvLyBUaGVzZSBhbHRlcm5hdGl2ZXMgYnJlYWsgdHlwZSBpbmZlcmVuY2U6XG4gICAgLy8gc3RhdGU6IHsgY2FsbFN0YXRlOiBDYWxsU3RhdGUgfSAmIE5hbWVkRW50aXR5U3RhdGU8RSwgQ29sbGVjdGlvbj4sXG4gICAgLy8gc3RhdGU6IE5hbWVkRW50aXR5U3RhdGU8RSwgQ29sbGVjdGlvbj4sXG5cbiAgICBjb21wdXRlZDogTmFtZWRFbnRpdHlDb21wdXRlZDxFLCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiB7fTtcbiAgfSxcbiAge1xuICAgIHN0YXRlOiBOYW1lZERhdGFTZXJ2aWNlU3RhdGU8RSwgRiwgQ29sbGVjdGlvbj47XG4gICAgY29tcHV0ZWQ6IE5hbWVkRGF0YVNlcnZpY2VDb21wdXRlZDxFLCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiBOYW1lZERhdGFTZXJ2aWNlTWV0aG9kczxFLCBGLCBDb2xsZWN0aW9uPjtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRGF0YVNlcnZpY2U8RSBleHRlbmRzIEVudGl0eSwgRiBleHRlbmRzIEZpbHRlcj4ob3B0aW9uczoge1xuICBkYXRhU2VydmljZVR5cGU6IFByb3ZpZGVyVG9rZW48RGF0YVNlcnZpY2U8RSwgRj4+O1xuICBmaWx0ZXI6IEY7XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7XG4gICAgc3RhdGU6IHsgY2FsbFN0YXRlOiBDYWxsU3RhdGUgfSAmIEVudGl0eVN0YXRlPEU+O1xuICAgIGNvbXB1dGVkOiB7fTtcbiAgICBtZXRob2RzOiB7fTtcbiAgfSxcbiAge1xuICAgIHN0YXRlOiBEYXRhU2VydmljZVN0YXRlPEUsIEY+O1xuICAgIGNvbXB1dGVkOiBEYXRhU2VydmljZUNvbXB1dGVkPEU+O1xuICAgIG1ldGhvZHM6IERhdGFTZXJ2aWNlTWV0aG9kczxFLCBGPjtcbiAgfVxuPjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRGF0YVNlcnZpY2U8XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIEYgZXh0ZW5kcyBGaWx0ZXIsXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4ob3B0aW9uczoge1xuICBkYXRhU2VydmljZVR5cGU6IFByb3ZpZGVyVG9rZW48RGF0YVNlcnZpY2U8RSwgRj4+O1xuICBmaWx0ZXI6IEY7XG4gIGNvbGxlY3Rpb24/OiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxhbnksIGFueT4ge1xuICBjb25zdCB7IGRhdGFTZXJ2aWNlVHlwZSwgZmlsdGVyLCBjb2xsZWN0aW9uOiBwcmVmaXggfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHtcbiAgICBlbnRpdGllc0tleSxcbiAgICBmaWx0ZXJLZXksXG4gICAgbG9hZEtleSxcbiAgICBzZWxlY3RlZEVudGl0aWVzS2V5LFxuICAgIHNlbGVjdGVkSWRzS2V5LFxuICAgIHVwZGF0ZUZpbHRlcktleSxcbiAgICB1cGRhdGVTZWxlY3RlZEtleSxcblxuICAgIGN1cnJlbnRLZXksXG4gICAgY3JlYXRlS2V5LFxuICAgIHVwZGF0ZUtleSxcbiAgICB1cGRhdGVBbGxLZXksXG4gICAgZGVsZXRlS2V5LFxuICAgIGxvYWRCeUlkS2V5LFxuICAgIHNldEN1cnJlbnRLZXksXG4gIH0gPSBnZXREYXRhU2VydmljZUtleXMob3B0aW9ucyk7XG5cbiAgY29uc3QgeyBjYWxsU3RhdGVLZXkgfSA9IGdldENhbGxTdGF0ZUtleXMoeyBjb2xsZWN0aW9uOiBwcmVmaXggfSk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoKCkgPT4gKHtcbiAgICAgIFtmaWx0ZXJLZXldOiBmaWx0ZXIsXG4gICAgICBbc2VsZWN0ZWRJZHNLZXldOiB7fSBhcyBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+LFxuICAgICAgW2N1cnJlbnRLZXldOiB1bmRlZmluZWQgYXMgRSB8IHVuZGVmaW5lZCxcbiAgICB9KSksXG4gICAgd2l0aENvbXB1dGVkKChzdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGNvbnN0IGVudGl0aWVzID0gc3RvcmVbZW50aXRpZXNLZXldIGFzIFNpZ25hbDxFW10+O1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBzdG9yZVtzZWxlY3RlZElkc0tleV0gYXMgU2lnbmFsPFxuICAgICAgICBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+XG4gICAgICA+O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBbc2VsZWN0ZWRFbnRpdGllc0tleV06IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICAgZW50aXRpZXMoKS5maWx0ZXIoKGUpID0+IHNlbGVjdGVkSWRzKClbZS5pZF0pXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH0pLFxuICAgIHdpdGhNZXRob2RzKChzdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiBTdGF0ZVNpZ25hbDxvYmplY3Q+KSA9PiB7XG4gICAgICBjb25zdCBkYXRhU2VydmljZSA9IGluamVjdChkYXRhU2VydmljZVR5cGUpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3VwZGF0ZUZpbHRlcktleV06IChmaWx0ZXI6IEYpOiB2b2lkID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtmaWx0ZXJLZXldOiBmaWx0ZXIgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIFt1cGRhdGVTZWxlY3RlZEtleV06IChpZDogRW50aXR5SWQsIHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgKHN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gKHtcbiAgICAgICAgICAgIFtzZWxlY3RlZElkc0tleV06IHtcbiAgICAgICAgICAgICAgLi4uKHN0YXRlW3NlbGVjdGVkSWRzS2V5XSBhcyBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+KSxcbiAgICAgICAgICAgICAgW2lkXTogc2VsZWN0ZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgW2xvYWRLZXldOiBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyID0gc3RvcmVbZmlsdGVyS2V5XSBhcyBTaWduYWw8Rj47XG4gICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFTZXJ2aWNlLmxvYWQoZmlsdGVyKCkpO1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShcbiAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgICAgID8gc2V0QWxsRW50aXRpZXMocmVzdWx0LCB7IGNvbGxlY3Rpb246IHByZWZpeCB9KVxuICAgICAgICAgICAgICAgIDogc2V0QWxsRW50aXRpZXMocmVzdWx0KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGVkKHByZWZpeCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0RXJyb3IoZSwgcHJlZml4KSk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW2xvYWRCeUlkS2V5XTogYXN5bmMgKGlkOiBFbnRpdHlJZCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgZGF0YVNlcnZpY2UubG9hZEJ5SWQoaWQpO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3VycmVudCB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldEVycm9yKGUsIHByZWZpeCkpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtzZXRDdXJyZW50S2V5XTogKGN1cnJlbnQ6IEUpOiB2b2lkID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3VycmVudCB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgW2NyZWF0ZUtleV06IGFzeW5jIChlbnRpdHk6IEUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogZW50aXR5IH0pO1xuICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgZGF0YVNlcnZpY2UuY3JlYXRlKGVudGl0eSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3JlYXRlZCB9KTtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoXG4gICAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICAgICAgICA/IGFkZEVudGl0eShjcmVhdGVkLCB7IGNvbGxlY3Rpb246IHByZWZpeCB9KVxuICAgICAgICAgICAgICAgIDogYWRkRW50aXR5KGNyZWF0ZWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbdXBkYXRlS2V5XTogYXN5bmMgKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiBlbnRpdHkgfSk7XG4gICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCBkYXRhU2VydmljZS51cGRhdGUoZW50aXR5KTtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiB1cGRhdGVkIH0pO1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVBcmcgPSB7XG4gICAgICAgICAgICAgIGlkOiB1cGRhdGVkLmlkLFxuICAgICAgICAgICAgICBjaGFuZ2VzOiB1cGRhdGVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgdXBkYXRlciA9IChjb2xsZWN0aW9uOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIHVwZGF0ZUVudGl0eSh1cGRhdGVBcmcsIHsgY29sbGVjdGlvbiB9KTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShcbiAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgIHByZWZpeCA/IHVwZGF0ZXIocHJlZml4KSA6IHVwZGF0ZUVudGl0eSh1cGRhdGVBcmcpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbdXBkYXRlQWxsS2V5XTogYXN5bmMgKGVudGl0aWVzOiBFW10pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGF0YVNlcnZpY2UudXBkYXRlQWxsKGVudGl0aWVzKTtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoXG4gICAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICAgICAgICA/IHNldEFsbEVudGl0aWVzKHJlc3VsdCwgeyBjb2xsZWN0aW9uOiBwcmVmaXggfSlcbiAgICAgICAgICAgICAgICA6IHNldEFsbEVudGl0aWVzKHJlc3VsdClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRlZChwcmVmaXgpKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldEVycm9yKGUsIHByZWZpeCkpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtkZWxldGVLZXldOiBhc3luYyAoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBbY3VycmVudEtleV06IGVudGl0eSB9KTtcbiAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlKGVudGl0eSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShcbiAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgICAgID8gcmVtb3ZlRW50aXR5KGVudGl0eS5pZCwgeyBjb2xsZWN0aW9uOiBwcmVmaXggfSlcbiAgICAgICAgICAgICAgICA6IHJlbW92ZUVudGl0eShlbnRpdHkuaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KVxuICApO1xufVxuIl19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kYXRhLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtZGF0YS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBRUwsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGNBQWMsRUFFZCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksR0FDYixNQUFNLHdCQUF3QixDQUFDO0FBb0JoQyxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQztJQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVTtRQUNsQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxRQUFRO1FBQy9CLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDYixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBVTtRQUN2QyxDQUFDLENBQUMsV0FBVyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLO1FBQ2hELENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDbEIsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsVUFB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O29CQUNGLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLENBQUMsQ0FBQztnQkFDVixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDLENBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyVG9rZW4sIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBwYXRjaFN0YXRlLFxuICBzaWduYWxTdG9yZUZlYXR1cmUsXG4gIHdpdGhDb21wdXRlZCxcbiAgd2l0aE1ldGhvZHMsXG4gIHdpdGhTdGF0ZSxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBXcml0YWJsZVN0YXRlU291cmNlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7XG4gIENhbGxTdGF0ZSxcbiAgZ2V0Q2FsbFN0YXRlS2V5cyxcbiAgc2V0RXJyb3IsXG4gIHNldExvYWRlZCxcbiAgc2V0TG9hZGluZyxcbn0gZnJvbSAnLi93aXRoLWNhbGwtc3RhdGUnO1xuaW1wb3J0IHtcbiAgc2V0QWxsRW50aXRpZXMsXG4gIEVudGl0eUlkLFxuICBhZGRFbnRpdHksXG4gIHVwZGF0ZUVudGl0eSxcbiAgcmVtb3ZlRW50aXR5LFxufSBmcm9tICdAbmdyeC9zaWduYWxzL2VudGl0aWVzJztcbmltcG9ydCB7IEVudGl0eVN0YXRlLCBOYW1lZEVudGl0eUNvbXB1dGVkIH0gZnJvbSAnLi9zaGFyZWQvc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEZpbHRlciA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgRW50aXR5ID0geyBpZDogRW50aXR5SWQgfTtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2VydmljZTxFIGV4dGVuZHMgRW50aXR5LCBGIGV4dGVuZHMgRmlsdGVyPiB7XG4gIGxvYWQoZmlsdGVyOiBGKTogUHJvbWlzZTxFW10+O1xuXG4gIGxvYWRCeUlkKGlkOiBFbnRpdHlJZCk6IFByb21pc2U8RT47XG5cbiAgY3JlYXRlKGVudGl0eTogRSk6IFByb21pc2U8RT47XG5cbiAgdXBkYXRlKGVudGl0eTogRSk6IFByb21pc2U8RT47XG5cbiAgdXBkYXRlQWxsKGVudGl0eTogRVtdKTogUHJvbWlzZTxFW10+O1xuXG4gIGRlbGV0ZShlbnRpdHk6IEUpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIgPyBzdHJbMF0udG9VcHBlckNhc2UoKSArIHN0ci5zdWJzdHJpbmcoMSkgOiBzdHI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhU2VydmljZUtleXMob3B0aW9uczogeyBjb2xsZWN0aW9uPzogc3RyaW5nIH0pIHtcbiAgY29uc3QgZmlsdGVyS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259RmlsdGVyYFxuICAgIDogJ2ZpbHRlcic7XG4gIGNvbnN0IHNlbGVjdGVkSWRzS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgc2VsZWN0ZWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1JZHNgXG4gICAgOiAnc2VsZWN0ZWRJZHMnO1xuICBjb25zdCBzZWxlY3RlZEVudGl0aWVzS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgc2VsZWN0ZWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1FbnRpdGllc2BcbiAgICA6ICdzZWxlY3RlZEVudGl0aWVzJztcblxuICBjb25zdCB1cGRhdGVGaWx0ZXJLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGB1cGRhdGUke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1GaWx0ZXJgXG4gICAgOiAndXBkYXRlRmlsdGVyJztcbiAgY29uc3QgdXBkYXRlU2VsZWN0ZWRLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGB1cGRhdGVTZWxlY3RlZCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ3VwZGF0ZVNlbGVjdGVkJztcbiAgY29uc3QgbG9hZEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYGxvYWQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1FbnRpdGllc2BcbiAgICA6ICdsb2FkJztcblxuICBjb25zdCBjdXJyZW50S2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgY3VycmVudCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfWBcbiAgICA6ICdjdXJyZW50JztcbiAgY29uc3QgbG9hZEJ5SWRLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBsb2FkJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9QnlJZGBcbiAgICA6ICdsb2FkQnlJZCc7XG4gIGNvbnN0IHNldEN1cnJlbnRLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBzZXRDdXJyZW50JHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YFxuICAgIDogJ3NldEN1cnJlbnQnO1xuICBjb25zdCBjcmVhdGVLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBjcmVhdGUke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gXG4gICAgOiAnY3JlYXRlJztcbiAgY29uc3QgdXBkYXRlS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgdXBkYXRlJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9YFxuICAgIDogJ3VwZGF0ZSc7XG4gIGNvbnN0IHVwZGF0ZUFsbEtleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYHVwZGF0ZUFsbCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfWBcbiAgICA6ICd1cGRhdGVBbGwnO1xuICBjb25zdCBkZWxldGVLZXkgPSBvcHRpb25zLmNvbGxlY3Rpb25cbiAgICA/IGBkZWxldGUke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1gXG4gICAgOiAnZGVsZXRlJztcblxuICAvLyBUT0RPOiBUYWtlIHRoZXNlIGZyb20gQG5ncngvc2lnbmFscy9lbnRpdGllcywgd2hlbiB0aGV5IGFyZSBleHBvcnRlZFxuICBjb25zdCBlbnRpdGllc0tleSA9IG9wdGlvbnMuY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUVudGl0aWVzYFxuICAgIDogJ2VudGl0aWVzJztcbiAgY29uc3QgZW50aXR5TWFwS2V5ID0gb3B0aW9ucy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259RW50aXR5TWFwYFxuICAgIDogJ2VudGl0eU1hcCc7XG4gIGNvbnN0IGlkc0tleSA9IG9wdGlvbnMuY29sbGVjdGlvbiA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1JZHNgIDogJ2lkcyc7XG5cbiAgcmV0dXJuIHtcbiAgICBmaWx0ZXJLZXksXG4gICAgc2VsZWN0ZWRJZHNLZXksXG4gICAgc2VsZWN0ZWRFbnRpdGllc0tleSxcbiAgICB1cGRhdGVGaWx0ZXJLZXksXG4gICAgdXBkYXRlU2VsZWN0ZWRLZXksXG4gICAgbG9hZEtleSxcbiAgICBlbnRpdGllc0tleSxcbiAgICBlbnRpdHlNYXBLZXksXG4gICAgaWRzS2V5LFxuXG4gICAgY3VycmVudEtleSxcbiAgICBsb2FkQnlJZEtleSxcbiAgICBzZXRDdXJyZW50S2V5LFxuICAgIGNyZWF0ZUtleSxcbiAgICB1cGRhdGVLZXksXG4gICAgdXBkYXRlQWxsS2V5LFxuICAgIGRlbGV0ZUtleSxcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgTmFtZWREYXRhU2VydmljZVN0YXRlPFxuICBFIGV4dGVuZHMgRW50aXR5LFxuICBGIGV4dGVuZHMgRmlsdGVyLFxuICBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4+ID0ge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0t9RmlsdGVyYF06IEY7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZWxlY3RlZCR7Q2FwaXRhbGl6ZTxLPn1JZHNgXTogUmVjb3JkPEVudGl0eUlkLCBib29sZWFuPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGN1cnJlbnQke0NhcGl0YWxpemU8Sz59YF06IEU7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhU2VydmljZVN0YXRlPEUgZXh0ZW5kcyBFbnRpdHksIEYgZXh0ZW5kcyBGaWx0ZXI+ID0ge1xuICBmaWx0ZXI6IEY7XG4gIHNlbGVjdGVkSWRzOiBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+O1xuICBjdXJyZW50OiBFO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVNlcnZpY2VDb21wdXRlZDxFIGV4dGVuZHMgRW50aXR5PiA9IHtcbiAgc2VsZWN0ZWRFbnRpdGllczogU2lnbmFsPEVbXT47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZERhdGFTZXJ2aWNlQ29tcHV0ZWQ8XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHNlbGVjdGVkJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06IFNpZ25hbDxFW10+O1xufTtcblxuZXhwb3J0IHR5cGUgTmFtZWREYXRhU2VydmljZU1ldGhvZHM8XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIEYgZXh0ZW5kcyBGaWx0ZXIsXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHVwZGF0ZSR7Q2FwaXRhbGl6ZTxLPn1GaWx0ZXJgXTogKGZpbHRlcjogRikgPT4gdm9pZDtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHVwZGF0ZVNlbGVjdGVkJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06IChcbiAgICBpZDogRW50aXR5SWQsXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW5cbiAgKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgbG9hZCR7Q2FwaXRhbGl6ZTxLPn1FbnRpdGllc2BdOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2V0Q3VycmVudCR7Q2FwaXRhbGl6ZTxLPn1gXTogKGVudGl0eTogRSkgPT4gdm9pZDtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGxvYWQke0NhcGl0YWxpemU8Sz59QnlJZGBdOiAoXG4gICAgaWQ6IEVudGl0eUlkXG4gICkgPT4gUHJvbWlzZTx2b2lkPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGNyZWF0ZSR7Q2FwaXRhbGl6ZTxLPn1gXTogKGVudGl0eTogRSkgPT4gUHJvbWlzZTx2b2lkPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHVwZGF0ZSR7Q2FwaXRhbGl6ZTxLPn1gXTogKGVudGl0eTogRSkgPT4gUHJvbWlzZTx2b2lkPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHVwZGF0ZUFsbCR7Q2FwaXRhbGl6ZTxLPn1gXTogKFxuICAgIGVudGl0eTogRVtdXG4gICkgPT4gUHJvbWlzZTx2b2lkPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGRlbGV0ZSR7Q2FwaXRhbGl6ZTxLPn1gXTogKGVudGl0eTogRSkgPT4gUHJvbWlzZTx2b2lkPjtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFTZXJ2aWNlTWV0aG9kczxFIGV4dGVuZHMgRW50aXR5LCBGIGV4dGVuZHMgRmlsdGVyPiA9IHtcbiAgdXBkYXRlRmlsdGVyOiAoZmlsdGVyOiBGKSA9PiB2b2lkO1xuICB1cGRhdGVTZWxlY3RlZDogKGlkOiBFbnRpdHlJZCwgc2VsZWN0ZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIGxvYWQ6ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgc2V0Q3VycmVudChlbnRpdHk6IEUpOiB2b2lkO1xuICBsb2FkQnlJZChpZDogRW50aXR5SWQpOiBQcm9taXNlPHZvaWQ+O1xuICBjcmVhdGUoZW50aXR5OiBFKTogUHJvbWlzZTx2b2lkPjtcbiAgdXBkYXRlKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD47XG4gIHVwZGF0ZUFsbChlbnRpdGllczogRVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgZGVsZXRlKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aERhdGFTZXJ2aWNlPFxuICBFIGV4dGVuZHMgRW50aXR5LFxuICBGIGV4dGVuZHMgRmlsdGVyLFxuICBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4+KG9wdGlvbnM6IHtcbiAgZGF0YVNlcnZpY2VUeXBlOiBQcm92aWRlclRva2VuPERhdGFTZXJ2aWNlPEUsIEY+PjtcbiAgZmlsdGVyOiBGO1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgLy8gVGhlc2UgYWx0ZXJuYXRpdmVzIGJyZWFrIHR5cGUgaW5mZXJlbmNlOlxuICAvLyBzdGF0ZTogeyBjYWxsU3RhdGU6IENhbGxTdGF0ZSB9ICYgTmFtZWRFbnRpdHlTdGF0ZTxFLCBDb2xsZWN0aW9uPixcbiAgLy8gc3RhdGU6IE5hbWVkRW50aXR5U3RhdGU8RSwgQ29sbGVjdGlvbj4sXG4gIEVtcHR5RmVhdHVyZVJlc3VsdCAmIHsgY29tcHV0ZWQ6IE5hbWVkRW50aXR5Q29tcHV0ZWQ8RSwgQ29sbGVjdGlvbj4gfSxcbiAge1xuICAgIHN0YXRlOiBOYW1lZERhdGFTZXJ2aWNlU3RhdGU8RSwgRiwgQ29sbGVjdGlvbj47XG4gICAgY29tcHV0ZWQ6IE5hbWVkRGF0YVNlcnZpY2VDb21wdXRlZDxFLCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiBOYW1lZERhdGFTZXJ2aWNlTWV0aG9kczxFLCBGLCBDb2xsZWN0aW9uPjtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRGF0YVNlcnZpY2U8RSBleHRlbmRzIEVudGl0eSwgRiBleHRlbmRzIEZpbHRlcj4ob3B0aW9uczoge1xuICBkYXRhU2VydmljZVR5cGU6IFByb3ZpZGVyVG9rZW48RGF0YVNlcnZpY2U8RSwgRj4+O1xuICBmaWx0ZXI6IEY7XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQgJiB7IHN0YXRlOiB7IGNhbGxTdGF0ZTogQ2FsbFN0YXRlIH0gJiBFbnRpdHlTdGF0ZTxFPiB9LFxuICB7XG4gICAgc3RhdGU6IERhdGFTZXJ2aWNlU3RhdGU8RSwgRj47XG4gICAgY29tcHV0ZWQ6IERhdGFTZXJ2aWNlQ29tcHV0ZWQ8RT47XG4gICAgbWV0aG9kczogRGF0YVNlcnZpY2VNZXRob2RzPEUsIEY+O1xuICB9XG4+O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhEYXRhU2VydmljZTxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgRiBleHRlbmRzIEZpbHRlcixcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPihvcHRpb25zOiB7XG4gIGRhdGFTZXJ2aWNlVHlwZTogUHJvdmlkZXJUb2tlbjxEYXRhU2VydmljZTxFLCBGPj47XG4gIGZpbHRlcjogRjtcbiAgY29sbGVjdGlvbj86IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPGFueSwgYW55PiB7XG4gIGNvbnN0IHsgZGF0YVNlcnZpY2VUeXBlLCBmaWx0ZXIsIGNvbGxlY3Rpb246IHByZWZpeCB9ID0gb3B0aW9ucztcbiAgY29uc3Qge1xuICAgIGVudGl0aWVzS2V5LFxuICAgIGZpbHRlcktleSxcbiAgICBsb2FkS2V5LFxuICAgIHNlbGVjdGVkRW50aXRpZXNLZXksXG4gICAgc2VsZWN0ZWRJZHNLZXksXG4gICAgdXBkYXRlRmlsdGVyS2V5LFxuICAgIHVwZGF0ZVNlbGVjdGVkS2V5LFxuXG4gICAgY3VycmVudEtleSxcbiAgICBjcmVhdGVLZXksXG4gICAgdXBkYXRlS2V5LFxuICAgIHVwZGF0ZUFsbEtleSxcbiAgICBkZWxldGVLZXksXG4gICAgbG9hZEJ5SWRLZXksXG4gICAgc2V0Q3VycmVudEtleSxcbiAgfSA9IGdldERhdGFTZXJ2aWNlS2V5cyhvcHRpb25zKTtcblxuICBjb25zdCB7IGNhbGxTdGF0ZUtleSB9ID0gZ2V0Q2FsbFN0YXRlS2V5cyh7IGNvbGxlY3Rpb246IHByZWZpeCB9KTtcblxuICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgW2ZpbHRlcktleV06IGZpbHRlcixcbiAgICAgIFtzZWxlY3RlZElkc0tleV06IHt9IGFzIFJlY29yZDxFbnRpdHlJZCwgYm9vbGVhbj4sXG4gICAgICBbY3VycmVudEtleV06IHVuZGVmaW5lZCBhcyBFIHwgdW5kZWZpbmVkLFxuICAgIH0pKSxcbiAgICB3aXRoQ29tcHV0ZWQoKHN0b3JlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgY29uc3QgZW50aXRpZXMgPSBzdG9yZVtlbnRpdGllc0tleV0gYXMgU2lnbmFsPEVbXT47XG4gICAgICBjb25zdCBzZWxlY3RlZElkcyA9IHN0b3JlW3NlbGVjdGVkSWRzS2V5XSBhcyBTaWduYWw8XG4gICAgICAgIFJlY29yZDxFbnRpdHlJZCwgYm9vbGVhbj5cbiAgICAgID47XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtzZWxlY3RlZEVudGl0aWVzS2V5XTogY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgICBlbnRpdGllcygpLmZpbHRlcigoZSkgPT4gc2VsZWN0ZWRJZHMoKVtlLmlkXSlcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfSksXG4gICAgd2l0aE1ldGhvZHMoXG4gICAgICAoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxvYmplY3Q+KSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gaW5qZWN0KGRhdGFTZXJ2aWNlVHlwZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgW3VwZGF0ZUZpbHRlcktleV06IChmaWx0ZXI6IEYpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2ZpbHRlcktleV06IGZpbHRlciB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIFt1cGRhdGVTZWxlY3RlZEtleV06IChpZDogRW50aXR5SWQsIHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCAoc3RhdGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiAoe1xuICAgICAgICAgICAgICBbc2VsZWN0ZWRJZHNLZXldOiB7XG4gICAgICAgICAgICAgICAgLi4uKHN0YXRlW3NlbGVjdGVkSWRzS2V5XSBhcyBSZWNvcmQ8RW50aXR5SWQsIGJvb2xlYW4+KSxcbiAgICAgICAgICAgICAgICBbaWRdOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIFtsb2FkS2V5XTogYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gc3RvcmVbZmlsdGVyS2V5XSBhcyBTaWduYWw8Rj47XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFTZXJ2aWNlLmxvYWQoZmlsdGVyKCkpO1xuICAgICAgICAgICAgICBwYXRjaFN0YXRlKFxuICAgICAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgICAgICAgPyBzZXRBbGxFbnRpdGllcyhyZXN1bHQsIHsgY29sbGVjdGlvbjogcHJlZml4IH0pXG4gICAgICAgICAgICAgICAgICA6IHNldEFsbEVudGl0aWVzKHJlc3VsdClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0RXJyb3IoZSwgcHJlZml4KSk7XG4gICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbbG9hZEJ5SWRLZXldOiBhc3luYyAoaWQ6IEVudGl0eUlkKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCBkYXRhU2VydmljZS5sb2FkQnlJZChpZCk7XG4gICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGVkKHByZWZpeCkpO1xuICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogY3VycmVudCB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFtzZXRDdXJyZW50S2V5XTogKGN1cnJlbnQ6IEUpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiBjdXJyZW50IH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgW2NyZWF0ZUtleV06IGFzeW5jIChlbnRpdHk6IEUpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiBlbnRpdHkgfSk7XG4gICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRpbmcocHJlZml4KSk7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBkYXRhU2VydmljZS5jcmVhdGUoZW50aXR5KTtcbiAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBbY3VycmVudEtleV06IGNyZWF0ZWQgfSk7XG4gICAgICAgICAgICAgIHBhdGNoU3RhdGUoXG4gICAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgICA/IGFkZEVudGl0eShjcmVhdGVkLCB7IGNvbGxlY3Rpb246IHByZWZpeCB9KVxuICAgICAgICAgICAgICAgICAgOiBhZGRFbnRpdHkoY3JlYXRlZClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0RXJyb3IoZSwgcHJlZml4KSk7XG4gICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbdXBkYXRlS2V5XTogYXN5bmMgKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBbY3VycmVudEtleV06IGVudGl0eSB9KTtcbiAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZShlbnRpdHkpO1xuICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IFtjdXJyZW50S2V5XTogdXBkYXRlZCB9KTtcblxuICAgICAgICAgICAgICBjb25zdCB1cGRhdGVBcmcgPSB7XG4gICAgICAgICAgICAgICAgaWQ6IHVwZGF0ZWQuaWQsXG4gICAgICAgICAgICAgICAgY2hhbmdlczogdXBkYXRlZCxcbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBjb25zdCB1cGRhdGVyID0gKGNvbGxlY3Rpb246IHN0cmluZykgPT5cbiAgICAgICAgICAgICAgICB1cGRhdGVFbnRpdHkodXBkYXRlQXJnLCB7IGNvbGxlY3Rpb24gfSk7XG5cbiAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShcbiAgICAgICAgICAgICAgICBzdG9yZSxcbiAgICAgICAgICAgICAgICBwcmVmaXggPyB1cGRhdGVyKHByZWZpeCkgOiB1cGRhdGVFbnRpdHkodXBkYXRlQXJnKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldExvYWRlZChwcmVmaXgpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRFcnJvcihlLCBwcmVmaXgpKTtcbiAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFt1cGRhdGVBbGxLZXldOiBhc3luYyAoZW50aXRpZXM6IEVbXSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkaW5nKHByZWZpeCkpO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhU2VydmljZS51cGRhdGVBbGwoZW50aXRpZXMpO1xuICAgICAgICAgICAgICBwYXRjaFN0YXRlKFxuICAgICAgICAgICAgICAgIHN0b3JlLFxuICAgICAgICAgICAgICAgIHByZWZpeFxuICAgICAgICAgICAgICAgICAgPyBzZXRBbGxFbnRpdGllcyhyZXN1bHQsIHsgY29sbGVjdGlvbjogcHJlZml4IH0pXG4gICAgICAgICAgICAgICAgICA6IHNldEFsbEVudGl0aWVzKHJlc3VsdClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgc3RvcmVbY2FsbFN0YXRlS2V5XSAmJiBwYXRjaFN0YXRlKHN0b3JlLCBzZXRMb2FkZWQocHJlZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0RXJyb3IoZSwgcHJlZml4KSk7XG4gICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbZGVsZXRlS2V5XTogYXN5bmMgKGVudGl0eTogRSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBbY3VycmVudEtleV06IGVudGl0eSB9KTtcbiAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGluZyhwcmVmaXgpKTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlKGVudGl0eSk7XG4gICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgW2N1cnJlbnRLZXldOiB1bmRlZmluZWQgfSk7XG4gICAgICAgICAgICAgIHBhdGNoU3RhdGUoXG4gICAgICAgICAgICAgICAgc3RvcmUsXG4gICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgICA/IHJlbW92ZUVudGl0eShlbnRpdHkuaWQsIHsgY29sbGVjdGlvbjogcHJlZml4IH0pXG4gICAgICAgICAgICAgICAgICA6IHJlbW92ZUVudGl0eShlbnRpdHkuaWQpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHN0b3JlW2NhbGxTdGF0ZUtleV0gJiYgcGF0Y2hTdGF0ZShzdG9yZSwgc2V0TG9hZGVkKHByZWZpeCkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBzdG9yZVtjYWxsU3RhdGVLZXldICYmIHBhdGNoU3RhdGUoc3RvcmUsIHNldEVycm9yKGUsIHByZWZpeCkpO1xuICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgKVxuICApO1xufVxuIl19
|
|
@@ -81,12 +81,12 @@ export const patchState = (state, action, ...rest) => {
|
|
|
81
81
|
/**
|
|
82
82
|
* Wrapper of `patchState` for DevTools integration. Next to updating the state,
|
|
83
83
|
* it also sends the action to the DevTools.
|
|
84
|
-
* @param
|
|
84
|
+
* @param stateSource state of Signal Store
|
|
85
85
|
* @param action name of action how it will show in DevTools
|
|
86
86
|
* @param updaters updater functions or objects
|
|
87
87
|
*/
|
|
88
|
-
export function updateState(
|
|
88
|
+
export function updateState(stateSource, action, ...updaters) {
|
|
89
89
|
currentActionNames.add(action);
|
|
90
|
-
return originalPatchState(
|
|
90
|
+
return originalPatchState(stateSource, ...updaters);
|
|
91
91
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kZXZ0b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvd2l0aC1kZXZ0b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsVUFBVSxJQUFJLGtCQUFrQixHQUdqQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBaUJuRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQWtDLEVBQUUsQ0FBQyxDQUFDO0FBRWxFLElBQUksa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUUzQyxJQUFJLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUV2QyxTQUFTLG1CQUFtQjtJQUMxQixNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUM5QyxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FB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ZVJlc3VsdCxcbiAgUGFydGlhbFN0YXRlVXBkYXRlcixcbiAgcGF0Y2hTdGF0ZSBhcyBvcmlnaW5hbFBhdGNoU3RhdGUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgV3JpdGFibGVTdGF0ZVNvdXJjZSxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBlZmZlY3QsIGluamVjdCwgUExBVEZPUk1fSUQsIHNpZ25hbCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByZXR0aWZ5IH0gZnJvbSAnLi9zaGFyZWQvcHJldHRpZnknO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX186XG4gICAgICB8IHtcbiAgICAgICAgICBjb25uZWN0OiAob3B0aW9uczogeyBuYW1lOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgc2VuZDogKGFjdGlvbjogQWN0aW9uLCBzdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQ7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfCB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9uID0geyB0eXBlOiBzdHJpbmcgfTtcblxuY29uc3Qgc3RvcmVSZWdpc3RyeSA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBTaWduYWw8dW5rbm93bj4+Pih7fSk7XG5cbmxldCBjdXJyZW50QWN0aW9uTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxubGV0IHN5bmNocm9uaXphdGlvbkluaXRpYWxpemVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGluaXRTeW5jaHJvbml6YXRpb24oKSB7XG4gIGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjb25uZWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVzID0gc3RvcmVSZWdpc3RyeSgpO1xuICAgIGNvbnN0IHJvb3RTdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gc3RvcmVzKSB7XG4gICAgICBjb25zdCBzdG9yZSA9IHN0b3Jlc1tuYW1lXTtcbiAgICAgIHJvb3RTdGF0ZVtuYW1lXSA9IHN0b3JlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZXMgPSBBcnJheS5mcm9tKGN1cnJlbnRBY3Rpb25OYW1lcyk7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVzLmxlbmd0aCA/IG5hbWVzLmpvaW4oJywgJykgOiAnU3RvcmUgVXBkYXRlJztcbiAgICBjdXJyZW50QWN0aW9uTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGNvbm5lY3Rpb24uc2VuZCh7IHR5cGUgfSwgcm9vdFN0YXRlKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlRnJvbVN5bWJvbChvYmo6IHVua25vd24sIHN5bWJvbDogc3ltYm9sKSB7XG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogJiYgc3ltYm9sIGluIG9iaikge1xuICAgIHJldHVybiAob2JqIGFzIHsgW2tleTogc3ltYm9sXTogYW55IH0pW3N5bWJvbF07XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U3RvcmVTaWduYWwoc3RvcmU6IHVua25vd24pOiBTaWduYWw8dW5rbm93bj4ge1xuICBjb25zdCBbc2lnbmFsU3RhdGVLZXldID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzdG9yZSk7XG4gIGlmICghc2lnbmFsU3RhdGVLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmaW5kIFN0YXRlIFNpZ25hbCcpO1xuICB9XG5cbiAgcmV0dXJuIGdldFZhbHVlRnJvbVN5bWJvbChzdG9yZSwgc2lnbmFsU3RhdGVLZXkpO1xufVxuXG50eXBlIENvbm5lY3RSZXNwb25zZSA9IHtcbiAgc2VuZDogKGFjdGlvbjogQWN0aW9uLCBzdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHZvaWQ7XG59O1xubGV0IGNvbm5lY3Rpb246IENvbm5lY3RSZXNwb25zZSB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiByZXF1aXJlZCBmb3IgdGVzdGluZy4gaXMgbm90IGV4cG9ydGVkIGR1cmluZyBidWlsZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzZXQoKSB7XG4gIGNvbm5lY3Rpb24gPSB1bmRlZmluZWQ7XG4gIHN5bmNocm9uaXphdGlvbkluaXRpYWxpemVkID0gZmFsc2U7XG4gIHN0b3JlUmVnaXN0cnkuc2V0KHt9KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gbmFtZSBzdG9yZSdzIG5hbWUgYXMgaXQgc2hvdWxkIGFwcGVhciBpbiB0aGUgRGV2VG9vbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhEZXZ0b29sczxJbnB1dCBleHRlbmRzIEVtcHR5RmVhdHVyZVJlc3VsdD4oXG4gIG5hbWU6IHN0cmluZ1xuKTogU2lnbmFsU3RvcmVGZWF0dXJlPElucHV0LCBFbXB0eUZlYXR1cmVSZXN1bHQ+IHtcbiAgcmV0dXJuIChzdG9yZSkgPT4ge1xuICAgIGNvbnN0IGlzU2VydmVyID0gaXNQbGF0Zm9ybVNlcnZlcihpbmplY3QoUExBVEZPUk1fSUQpKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybiBzdG9yZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbnNpb25zID0gd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX187XG4gICAgaWYgKCFleHRlbnNpb25zKSB7XG4gICAgICByZXR1cm4gc3RvcmU7XG4gICAgfVxuXG4gICAgaWYgKCFjb25uZWN0aW9uKSB7XG4gICAgICBjb25uZWN0aW9uID0gZXh0ZW5zaW9ucy5jb25uZWN0KHtcbiAgICAgICAgbmFtZTogJ05nUnggU2lnbmFsIFN0b3JlJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlU2lnbmFsID0gZ2V0U3RvcmVTaWduYWwoc3RvcmUpO1xuICAgIHN0b3JlUmVnaXN0cnkudXBkYXRlKCh2YWx1ZSkgPT4gKHtcbiAgICAgIC4uLnZhbHVlLFxuICAgICAgW25hbWVdOiBzdG9yZVNpZ25hbCxcbiAgICB9KSk7XG5cbiAgICBpZiAoIXN5bmNocm9uaXphdGlvbkluaXRpYWxpemVkKSB7XG4gICAgICBpbml0U3luY2hyb25pemF0aW9uKCk7XG4gICAgICBzeW5jaHJvbml6YXRpb25Jbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0b3JlO1xuICB9O1xufVxuXG50eXBlIFBhdGNoRm4gPSB0eXBlb2Ygb3JpZ2luYWxQYXRjaFN0YXRlIGV4dGVuZHMgKFxuICBhcmcxOiBpbmZlciBGaXJzdCxcbiAgLi4uYXJnczogaW5mZXIgUmVzdFxuKSA9PiBpbmZlciBSZXR1cm5lclxuICA/IChzdGF0ZTogRmlyc3QsIGFjdGlvbjogc3RyaW5nLCAuLi5yZXN0OiBSZXN0KSA9PiBSZXR1cm5lclxuICA6IG5ldmVyO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIEhhcyBiZWVuIHJlbmFtZWQgdG8gYHVwZGF0ZVN0YXRlYFxuICovXG5leHBvcnQgY29uc3QgcGF0Y2hTdGF0ZTogUGF0Y2hGbiA9IChzdGF0ZSwgYWN0aW9uLCAuLi5yZXN0KSA9PiB7XG4gIHVwZGF0ZVN0YXRlKHN0YXRlLCBhY3Rpb24sIC4uLnJlc3QpO1xufTtcblxuLyoqXG4gKiBXcmFwcGVyIG9mIGBwYXRjaFN0YXRlYCBmb3IgRGV2VG9vbHMgaW50ZWdyYXRpb24uIE5leHQgdG8gdXBkYXRpbmcgdGhlIHN0YXRlLFxuICogaXQgYWxzbyBzZW5kcyB0aGUgYWN0aW9uIHRvIHRoZSBEZXZUb29scy5cbiAqIEBwYXJhbSBzdGF0ZVNvdXJjZSBzdGF0ZSBvZiBTaWduYWwgU3RvcmVcbiAqIEBwYXJhbSBhY3Rpb24gbmFtZSBvZiBhY3Rpb24gaG93IGl0IHdpbGwgc2hvdyBpbiBEZXZUb29sc1xuICogQHBhcmFtIHVwZGF0ZXJzIHVwZGF0ZXIgZnVuY3Rpb25zIG9yIG9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVTb3VyY2U6IFdyaXRhYmxlU3RhdGVTb3VyY2U8U3RhdGU+LFxuICBhY3Rpb246IHN0cmluZyxcbiAgLi4udXBkYXRlcnM6IEFycmF5PFxuICAgIFBhcnRpYWw8UHJldHRpZnk8U3RhdGU+PiB8IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8UHJldHRpZnk8U3RhdGU+PlxuICA+XG4pOiB2b2lkIHtcbiAgY3VycmVudEFjdGlvbk5hbWVzLmFkZChhY3Rpb24pO1xuICByZXR1cm4gb3JpZ2luYWxQYXRjaFN0YXRlKHN0YXRlU291cmNlLCAuLi51cGRhdGVycyk7XG59XG4iXX0=
|
|
@@ -206,4 +206,4 @@ export function createPageArray(currentPage, itemsPerPage, totalItems, paginatio
|
|
|
206
206
|
}
|
|
207
207
|
return pages;
|
|
208
208
|
}
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1wYWdpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLXBhZ2luYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBR0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUErSGpELE1BQU0sVUFBVSxjQUFjLENBQStCLE9BRzVEO0lBQ0MsTUFBTSxFQUNKLE9BQU8sRUFDUCxXQUFXLEVBQ1gsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsWUFBWSxFQUNaLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsV0FBVyxFQUNYLFlBQVksRUFDWixXQUFXLEVBQ1gsY0FBYyxFQUNkLGtCQUFrQixHQUNuQixHQUFHLG9CQUFvQixDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBRTlDLE9BQU8sa0JBQWtCLENBQ3ZCLFNBQVMsQ0FBQztRQUNSLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNaLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUNqQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztLQUMvQixDQUFDLEVBQ0YsWUFBWSxDQUFDLENBQUMsS0FBOEIsRUFBRSxFQUFFO1FBQzlDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQWdCLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBbUIsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFtQixD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b21lcyBpbiB0d28gZmxhdm9ycyB0aGUgZmlyc3Qgb25lIGlzIGxvY2FsIHBhZ2luYXRpb24gb3IgaW4gbWVtb3J5IHBhZ2luYXRpb24uIEZvciBleGFtcGxlIHdlIGhhdmUgMjAwMCBpdGVtcyB3aGljaCB3ZSB3YW50XG4gKiB0byBkaXNwbGF5IGluIGEgdGFibGUgYW5kIHRoZSByZXNwb25zZSBwYXlsb2FkIGlzIHNtYWxsIGVub3VnaCB0byBiZSBzdG9yZWQgaW4gdGhlIG1lbW9yeS4gQnV0IHdlIGNhbiBub3QgZGlzcGxheSBhbGwgMjAwMCBpdGVtcyBhdCBvbmNlXG4gKiBzbyB3ZSBuZWVkIHRvIHBhZ2luYXRlIHRoZSBkYXRhLiBUaGUgc2Vjb25kIGZsYXZvciBpcyBzZXJ2ZXIgc2lkZSBwYWdpbmF0aW9uIHdoZXJlIHRoZSByZXNwb25zZSBwYXlsb2FkIGlzIHRvbyBsYXJnZSB0byBiZSBzdG9yZWQgaW4gdGhlIG1lbW9yeVxuICogYW5kIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIGRhdGEgZnJvbSB0aGUgc2VydmVyIGluIGNodW5rcy4gSW4gdGhlIHNlY29uZCBjYXNlIHdlICdjb3VsZCcgYWxzbyBjYWNoZSB0aGUgZGF0YSBpbiB0aGUgbWVtb3J5IGJ1dCB0aGF0IGNvdWxkIGxlYWQgdG9cbiAqIG90aGVyIHByb2JsZW1zIGxpa2UgbWVtb3J5IGxlYWtzIGFuZCBzdGFsZSBkYXRhLiBTbyB3ZSB3aWxsIG5vdCBjYWNoZSB0aGUgZGF0YSBpbiB0aGUgbWVtb3J5IGluIHRoZSBzZWNvbmQgY2FzZS5cbiAqIFRoaXMgZmVhdHVyZSBpbXBsZW1lbnRzIHRoZSBsb2NhbCBwYWdpbmF0aW9uLlxuICovXG5cbmltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU3RhdGVTaWduYWwsXG4gIHBhdGNoU3RhdGUsXG4gIHNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgd2l0aENvbXB1dGVkLFxuICB3aXRoTWV0aG9kcyxcbiAgd2l0aFN0YXRlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGNhcGl0YWxpemUgfSBmcm9tICcuL3dpdGgtZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEVudGl0eUNvbXB1dGVkLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlDb21wdXRlZCxcbn0gZnJvbSAnLi9zaGFyZWQvc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5cbi8vIFRoaXMgaXMgYSB2aXJ0dWFsIHBhZ2Ugd2hpY2ggaXMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgcGFnaW5hdGlvbiBjb250cm9sXG5leHBvcnQgdHlwZSBQYWdlID0geyBsYWJlbDogc3RyaW5nIHwgbnVtYmVyOyB2YWx1ZTogbnVtYmVyIH07XG5cbmV4cG9ydCB0eXBlIE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2VsZWN0ZWRQYWdlJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06IEFycmF5PEU+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59Q3VycmVudFBhZ2VgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZVNpemVgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59VG90YWxDb3VudGBdOiBudW1iZXI7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlQ291bnRgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZU5hdmlnYXRpb25BcnJheWBdOiBudW1iZXI7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YF06IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTaWduYWxzPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZWxlY3RlZFBhZ2Uke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogU2lnbmFsPEVbXT47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1DdXJyZW50UGFnZWBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VTaXplYF06IFNpZ25hbDxudW1iZXI+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59VG90YWxDb3VudGBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VDb3VudGBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VOYXZpZ2F0aW9uQXJyYXlgXTogU2lnbmFsPFBhZ2VbXT47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YF06IFNpZ25hbDxudW1iZXI+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgaGFzTmV4dCR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06IFNpZ25hbDxib29sZWFuPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGhhc1ByZXZpb3VzJHtDYXBpdGFsaXplPEs+fVBhZ2VgXTogU2lnbmFsPGJvb2xlYW4+O1xufTtcblxuZXhwb3J0IHR5cGUgTmFtZWRQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHNldCR7Q2FwaXRhbGl6ZTxLPn1QYWdlU2l6ZWBdOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgbmV4dCR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06ICgpID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBwcmV2aW91cyR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06ICgpID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBsYXN0JHtDYXBpdGFsaXplPEs+fVBhZ2VgXTogKCkgPT4gdm9pZDtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGZpcnN0JHtDYXBpdGFsaXplPEs+fVBhZ2VgXTogKCkgPT4gdm9pZDtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGdvdG8ke0NhcGl0YWxpemU8Sz59UGFnZWBdOiAocGFnZTogbnVtYmVyKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFPiA9IHtcbiAgc2VsZWN0ZWRQYWdlRW50aXRpZXM6IEFycmF5PEU+O1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIHBhZ2VDb3VudDogbnVtYmVyO1xuICBwYWdlTmF2aWdhdGlvbkFycmF5OiBQYWdlW107XG4gIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25TZXJ2aWNlU2lnbmFsczxFPiA9IHtcbiAgc2VsZWN0ZWRQYWdlRW50aXRpZXM6IFNpZ25hbDxFW10+O1xuICBjdXJyZW50UGFnZTogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VTaXplOiBTaWduYWw8bnVtYmVyPjtcbiAgdG90YWxDb3VudDogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VDb3VudDogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VOYXZpZ2F0aW9uQXJyYXk6IFNpZ25hbDxQYWdlW10+O1xuICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4OiBTaWduYWw8bnVtYmVyPjtcbiAgaGFzTmV4dFBhZ2U6IFNpZ25hbDxib29sZWFuPjtcbiAgaGFzUHJldmlvdXNQYWdlOiBTaWduYWw8Ym9vbGVhbj47XG59O1xuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uU2VydmljZU1ldGhvZHMgPSB7XG4gIHNldFBhZ2VTaXplOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBuZXh0UGFnZUtleTogKCkgPT4gdm9pZDtcbiAgcHJldmlvdXNQYWdlOiAoKSA9PiB2b2lkO1xuICBsYXN0UGFnZTogKCkgPT4gdm9pZDtcbiAgZmlyc3RQYWdlOiAoKSA9PiB2b2lkO1xuICBnb3RvUGFnZTogKHBhZ2U6IG51bWJlcikgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIFNldFBhZ2luYXRpb25TdGF0ZTxcbiAgRSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZFxuPiA9IENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbiAgPyBOYW1lZFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RSwgQ29sbGVjdGlvbj5cbiAgOiBQYWdpbmF0aW9uU2VydmljZVN0YXRlPEU+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFBhZ2luYXRpb248RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9uczoge1xuICBlbnRpdHk6IEU7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7XG4gICAgc3RhdGU6IHt9O1xuICAgIGNvbXB1dGVkOiBOYW1lZEVudGl0eUNvbXB1dGVkPEUsIENvbGxlY3Rpb24+O1xuICAgIG1ldGhvZHM6IHt9O1xuICB9LFxuICB7XG4gICAgc3RhdGU6IE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFLCBDb2xsZWN0aW9uPjtcbiAgICBjb21wdXRlZDogTmFtZWRQYWdpbmF0aW9uU2VydmljZVNpZ25hbHM8RSwgQ29sbGVjdGlvbj47XG4gICAgbWV0aG9kczogTmFtZWRQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM8Q29sbGVjdGlvbj47XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGFnaW5hdGlvbjxFPigpOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RT47XG4gICAgY29tcHV0ZWQ6IEVudGl0eUNvbXB1dGVkPEU+O1xuICAgIG1ldGhvZHM6IHt9O1xuICB9LFxuICB7XG4gICAgc3RhdGU6IFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RT47XG4gICAgY29tcHV0ZWQ6IFBhZ2luYXRpb25TZXJ2aWNlU2lnbmFsczxFPjtcbiAgICBtZXRob2RzOiBQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM7XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGFnaW5hdGlvbjxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zPzoge1xuICBlbnRpdHk6IEU7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPGFueSwgYW55PiB7XG4gIGNvbnN0IHtcbiAgICBwYWdlS2V5LFxuICAgIHBhZ2VTaXplS2V5LFxuICAgIGVudGl0aWVzS2V5LFxuICAgIHNlbGVjdGVkUGFnZUVudGl0aWVzS2V5LFxuICAgIHRvdGFsQ291bnRLZXksXG4gICAgcGFnZUNvdW50S2V5LFxuICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXksXG4gICAgcGFnZU5hdmlnYXRpb25BcnJheUtleSxcbiAgICBzZXRQYWdlU2l6ZUtleSxcbiAgICBuZXh0UGFnZUtleSxcbiAgICBwcmV2aW91c1BhZ2VLZXksXG4gICAgbGFzdFBhZ2VLZXksXG4gICAgZmlyc3RQYWdlS2V5LFxuICAgIGdvdG9QYWdlS2V5LFxuICAgIGhhc05leHRQYWdlS2V5LFxuICAgIGhhc1ByZXZpb3VzUGFnZUtleSxcbiAgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiBzaWduYWxTdG9yZUZlYXR1cmUoXG4gICAgd2l0aFN0YXRlKHtcbiAgICAgIFtwYWdlS2V5XTogMCxcbiAgICAgIFtwYWdlU2l6ZUtleV06IDEwLFxuICAgICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXldOiA3LFxuICAgIH0pLFxuICAgIHdpdGhDb21wdXRlZCgoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBjb25zdCBlbnRpdGllcyA9IHN0b3JlW2VudGl0aWVzS2V5XSBhcyBTaWduYWw8RVtdPjtcbiAgICAgIGNvbnN0IHBhZ2UgPSBzdG9yZVtwYWdlS2V5XSBhcyBTaWduYWw8bnVtYmVyPjtcbiAgICAgIGNvbnN0IHBhZ2VTaXplID0gc3RvcmVbcGFnZVNpemVLZXldIGFzIFNpZ25hbDxudW1iZXI+O1xuICAgICAgY29uc3QgcGFnZU5hdmlnYXRpb25BcnJheU1heCA9IHN0b3JlW1xuICAgICAgICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4S2V5XG4gICAgICBdIGFzIFNpZ25hbDxudW1iZXI+O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAvLyBUaGUgZGVyaXZlZCBlbml0aXRlcyB3aGljaCBhcmUgZGlzcGxheWVkIG9uIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgW3NlbGVjdGVkUGFnZUVudGl0aWVzS2V5XTogY29tcHV0ZWQ8RVtdPigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFnZVNpemVWYWx1ZSA9IHBhZ2VTaXplKCk7XG4gICAgICAgICAgY29uc3QgcGFnZVZhbHVlID0gcGFnZSgpO1xuXG4gICAgICAgICAgcmV0dXJuIGVudGl0aWVzKCkuc2xpY2UoXG4gICAgICAgICAgICBwYWdlVmFsdWUgKiBwYWdlU2l6ZVZhbHVlLFxuICAgICAgICAgICAgKHBhZ2VWYWx1ZSArIDEpICogcGFnZVNpemVWYWx1ZVxuICAgICAgICAgICkgYXMgRVtdO1xuICAgICAgICB9KSxcbiAgICAgICAgW3RvdGFsQ291bnRLZXldOiBjb21wdXRlZCgoKSA9PiBlbnRpdGllcygpLmxlbmd0aCksXG4gICAgICAgIFtwYWdlQ291bnRLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdG90YWxDb3VudFZhbHVlID0gZW50aXRpZXMoKS5sZW5ndGg7XG4gICAgICAgICAgY29uc3QgcGFnZVNpemVWYWx1ZSA9IHBhZ2VTaXplKCk7XG5cbiAgICAgICAgICBpZiAodG90YWxDb3VudFZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHRvdGFsQ291bnRWYWx1ZSAvIHBhZ2VTaXplVmFsdWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlLZXldOiBjb21wdXRlZCgoKSA9PlxuICAgICAgICAgIGNyZWF0ZVBhZ2VBcnJheShcbiAgICAgICAgICAgIHBhZ2UoKSxcbiAgICAgICAgICAgIHBhZ2VTaXplKCksXG4gICAgICAgICAgICBlbnRpdGllcygpLmxlbmd0aCxcbiAgICAgICAgICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXgoKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcblxuICAgICAgICBbaGFzTmV4dFBhZ2VLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2UoKSA8IHBhZ2VTaXplKCk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIFtoYXNQcmV2aW91c1BhZ2VLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2UoKSA+IDE7XG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB3aXRoTWV0aG9kcygoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYgU3RhdGVTaWduYWw8b2JqZWN0PikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3NldFBhZ2VTaXplS2V5XTogKHNpemU6IG51bWJlcikgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHNldFBhZ2VTaXplKHNpemUsIG9wdGlvbnMpKTtcbiAgICAgICAgfSxcbiAgICAgICAgW25leHRQYWdlS2V5XTogKCkgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIG5leHRQYWdlKG9wdGlvbnMpKTtcbiAgICAgICAgfSxcblxuICAgICAgICBbcHJldmlvdXNQYWdlS2V5XTogKCkgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHByZXZpb3VzUGFnZShvcHRpb25zKSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgW2xhc3RQYWdlS2V5XTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxhc3RQYWdlID0gKHN0b3JlW3BhZ2VDb3VudEtleV0gYXMgU2lnbmFsPG51bWJlcj4pKCk7XG4gICAgICAgICAgaWYgKGxhc3RQYWdlID09PSAwKSByZXR1cm47XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgZ290b1BhZ2UobGFzdFBhZ2UgLSAxLCBvcHRpb25zKSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgW2ZpcnN0UGFnZUtleV06ICgpID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBmaXJzdFBhZ2UoKSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgW2dvdG9QYWdlS2V5XTogKHBhZ2U6IG51bWJlcikgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIGdvdG9QYWdlKHBhZ2UsIG9wdGlvbnMpKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdvdG9QYWdlPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBwYWdlOiBudW1iZXIsXG4gIG9wdGlvbnM/OiB7XG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbiAgfVxuKTogUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+IHtcbiAgY29uc3QgeyBwYWdlS2V5IH0gPSBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uPihvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIFtwYWdlS2V5XTogcGFnZSxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQYWdlU2l6ZTxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihcbiAgcGFnZVNpemU6IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xuICB9XG4pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VTaXplS2V5IH0gPSBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uPihvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIFtwYWdlU2l6ZUtleV06IHBhZ2VTaXplLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5leHRQYWdlPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM/OiB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+IHtcbiAgY29uc3QgeyBwYWdlS2V5IH0gPSBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uPihvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIFtwYWdlS2V5XTogKGN1cnJlbnRQYWdlOiBudW1iZXIpID0+IGN1cnJlbnRQYWdlICsgMSxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmV2aW91c1BhZ2U8RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9ucz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiAoY3VycmVudFBhZ2U6IG51bWJlcikgPT4gTWF0aC5tYXgoY3VycmVudFBhZ2UgLSAxLCAxKSxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFBhZ2U8RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9ucz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiAxLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE1heFBhZ2VOYXZpZ2F0aW9uQXJyYXlJdGVtczxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihcbiAgbWF4UGFnZU5hdmlnYXRpb25BcnJheUl0ZW1zOiBudW1iZXIsXG4gIG9wdGlvbnM/OiB7XG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbiAgfVxuKTogUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+IHtcbiAgY29uc3QgeyBwYWdlTmF2aWdhdGlvbkFycmF5TWF4S2V5IH0gPVxuICAgIGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXldOiBtYXhQYWdlTmF2aWdhdGlvbkFycmF5SXRlbXMsXG4gIH0gYXMgUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihcbiAgb3B0aW9uczogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uIH0gfCB1bmRlZmluZWRcbikge1xuICBjb25zdCBlbnRpdGllc0tleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1FbnRpdGllc2BcbiAgICA6ICdlbnRpdGllcyc7XG5cbiAgY29uc3Qgc2VsZWN0ZWRQYWdlRW50aXRpZXNLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgc2VsZWN0ZWRQYWdlJHtjYXBpdGFsaXplKG9wdGlvbnM/LmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ3NlbGVjdGVkUGFnZUVudGl0aWVzJztcbiAgY29uc3QgcGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1DdXJyZW50UGFnZWBcbiAgICA6ICdjdXJyZW50UGFnZSc7XG4gIGNvbnN0IHBhZ2VTaXplS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufVBhZ2VTaXplYFxuICAgIDogJ3BhZ2VTaXplJztcbiAgY29uc3QgdG90YWxDb3VudEtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1Ub3RhbENvdW50YFxuICAgIDogJ3RvdGFsQ291bnQnO1xuICBjb25zdCBwYWdlQ291bnRLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259UGFnZUNvdW50YFxuICAgIDogJ3BhZ2VDb3VudCc7XG4gIGNvbnN0IHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259UGFnZU5hdmlnYXRpb25BcnJheU1heGBcbiAgICA6ICdwYWdlTmF2aWdhdGlvbkFycmF5TWF4JztcbiAgY29uc3QgcGFnZU5hdmlnYXRpb25BcnJheUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1QYWdlTmF2aWdhdGlvbkFycmF5YFxuICAgIDogJ3BhZ2VOYXZpZ2F0aW9uQXJyYXknO1xuXG4gIGNvbnN0IHNldFBhZ2VTaXplS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYHNldCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VTaXplYFxuICAgIDogJ3NldFBhZ2VTaXplJztcblxuICBjb25zdCBuZXh0UGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGBuZXh0JHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9UGFnZWBcbiAgICA6ICduZXh0UGFnZSc7XG5cbiAgY29uc3QgcHJldmlvdXNQYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYHByZXZpb3VzJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9UGFnZWBcbiAgICA6ICdwcmV2aW91c1BhZ2UnO1xuXG4gIGNvbnN0IGxhc3RQYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYGxhc3Qke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2xhc3RQYWdlJztcblxuICBjb25zdCBmaXJzdFBhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgZmlyc3Qke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2ZpcnN0UGFnZSc7XG5cbiAgY29uc3QgZ290b1BhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgZ290byR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VgXG4gICAgOiAnZ290b1BhZ2UnO1xuXG4gIGNvbnN0IGhhc05leHRQYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYGhhc05leHQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2hhc05leHRQYWdlJztcblxuICBjb25zdCBoYXNQcmV2aW91c1BhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgaGFzUHJldmlvdXMke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2hhc1ByZXZpb3VzUGFnZSc7XG5cbiAgcmV0dXJuIHtcbiAgICBwYWdlS2V5LFxuICAgIHBhZ2VTaXplS2V5LFxuICAgIGVudGl0aWVzS2V5LFxuICAgIHNlbGVjdGVkUGFnZUVudGl0aWVzS2V5LFxuICAgIHRvdGFsQ291bnRLZXksXG4gICAgcGFnZUNvdW50S2V5LFxuICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlLZXksXG4gICAgcGFnZU5hdmlnYXRpb25BcnJheU1heEtleSxcbiAgICBzZXRQYWdlU2l6ZUtleSxcbiAgICBuZXh0UGFnZUtleSxcbiAgICBwcmV2aW91c1BhZ2VLZXksXG4gICAgbGFzdFBhZ2VLZXksXG4gICAgZmlyc3RQYWdlS2V5LFxuICAgIGdvdG9QYWdlS2V5LFxuICAgIGhhc05leHRQYWdlS2V5LFxuICAgIGhhc1ByZXZpb3VzUGFnZUtleSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhZ2VBcnJheShcbiAgY3VycmVudFBhZ2U6IG51bWJlcixcbiAgaXRlbXNQZXJQYWdlOiBudW1iZXIsXG4gIHRvdGFsSXRlbXM6IG51bWJlcixcbiAgcGFnaW5hdGlvblJhbmdlOiBudW1iZXJcbik6IFBhZ2VbXSB7XG4gIC8vIENvbnZlcnQgcGFnaW5hdGlvblJhbmdlIHRvIG51bWJlciBpbiBjYXNlIGl0J3MgYSBzdHJpbmdcbiAgcGFnaW5hdGlvblJhbmdlID0gK3BhZ2luYXRpb25SYW5nZTtcblxuICAvLyBDYWxjdWxhdGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG4gIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLm1heChNYXRoLmNlaWwodG90YWxJdGVtcyAvIGl0ZW1zUGVyUGFnZSksIDEpO1xuICBjb25zdCBoYWxmV2F5ID0gTWF0aC5jZWlsKHBhZ2luYXRpb25SYW5nZSAvIDIpO1xuXG4gIGNvbnN0IGlzU3RhcnQgPSBjdXJyZW50UGFnZSA8PSBoYWxmV2F5O1xuICBjb25zdCBpc0VuZCA9IHRvdGFsUGFnZXMgLSBoYWxmV2F5IDwgY3VycmVudFBhZ2U7XG4gIGNvbnN0IGlzTWlkZGxlID0gIWlzU3RhcnQgJiYgIWlzRW5kO1xuXG4gIGNvbnN0IGVsbGlwc2VzTmVlZGVkID0gcGFnaW5hdGlvblJhbmdlIDwgdG90YWxQYWdlcztcbiAgY29uc3QgcGFnZXM6IFBhZ2VbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IHRvdGFsUGFnZXMgJiYgaSA8PSBwYWdpbmF0aW9uUmFuZ2U7IGkrKykge1xuICAgIGxldCBwYWdlTnVtYmVyID0gaTtcblxuICAgIGlmIChpID09PSBwYWdpbmF0aW9uUmFuZ2UpIHtcbiAgICAgIHBhZ2VOdW1iZXIgPSB0b3RhbFBhZ2VzO1xuICAgIH0gZWxzZSBpZiAoZWxsaXBzZXNOZWVkZWQpIHtcbiAgICAgIGlmIChpc0VuZCkge1xuICAgICAgICBwYWdlTnVtYmVyID0gdG90YWxQYWdlcyAtIHBhZ2luYXRpb25SYW5nZSArIGk7XG4gICAgICB9IGVsc2UgaWYgKGlzTWlkZGxlKSB7XG4gICAgICAgIHBhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZSAtIGhhbGZXYXkgKyBpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9wZW5pbmdFbGxpcHNlc05lZWRlZCA9IGkgPT09IDIgJiYgKGlzTWlkZGxlIHx8IGlzRW5kKTtcbiAgICBjb25zdCBjbG9zaW5nRWxsaXBzZXNOZWVkZWQgPVxuICAgICAgaSA9PT0gcGFnaW5hdGlvblJhbmdlIC0gMSAmJiAoaXNNaWRkbGUgfHwgaXNTdGFydCk7XG5cbiAgICBjb25zdCBsYWJlbCA9XG4gICAgICBlbGxpcHNlc05lZWRlZCAmJiAob3BlbmluZ0VsbGlwc2VzTmVlZGVkIHx8IGNsb3NpbmdFbGxpcHNlc05lZWRlZClcbiAgICAgICAgPyAnLi4uJ1xuICAgICAgICA6IHBhZ2VOdW1iZXI7XG5cbiAgICBwYWdlcy5wdXNoKHsgbGFiZWwsIHZhbHVlOiBwYWdlTnVtYmVyIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBhZ2VzO1xufVxuIl19
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1wYWdpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLXBhZ2luYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBRUwsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUEwSGpELE1BQU0sVUFBVSxjQUFjLENBQStCLE9BRzVEO0lBQ0MsTUFBTSxFQUNKLE9BQU8sRUFDUCxXQUFXLEVBQ1gsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsWUFBWSxFQUNaLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsV0FBVyxFQUNYLFlBQVksRUFDWixXQUFXLEVBQ1gsY0FBYyxFQUNkLGtCQUFrQixHQUNuQixHQUFHLG9CQUFvQixDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBRTlDLE9BQU8sa0JBQWtCLENBQ3ZCLFNBQVMsQ0FBQztRQUNSLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNaLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUNqQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztLQUMvQixDQUFDLEVBQ0YsWUFBWSxDQUFDLENBQUMsS0FBOEIsRUFBRSxFQUFFO1FBQzlDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQWdCLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBbUIsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFtQixDQUFDO1FBQ3RELE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUNsQyx5QkFBeUIsQ0FDUixDQUFDO1FBRXBCLE9BQU87WUFDTCwrREFBK0Q7WUFDL0QsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFFBQVEsQ0FBTSxHQUFHLEVBQUU7Z0JBQzVDLE1BQU0sYUFBYSxHQUFHLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsQ0FBQztnQkFFekIsT0FBTyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQ3JCLFNBQVMsR0FBRyxhQUFhLEVBQ3pCLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FDekIsQ0FBQztZQUNYLENBQUMsQ0FBQztZQUNGLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNsRCxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVCLE1BQU0sZUFBZSxHQUFHLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQztnQkFDMUMsTUFBTSxhQUFhLEdBQUcsUUFBUSxFQUFFLENBQUM7Z0JBRWpDLElBQUksZUFBZSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMxQixPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDO1lBQ0YsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdEMsZUFBZSxDQUNiLElBQUksRUFBRSxFQUNOLFFBQVEsRUFBRSxFQUNWLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFDakIsc0JBQXNCLEVBQUUsQ0FDekIsQ0FDRjtZQUVELENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDOUIsT0FBTyxJQUFJLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUM7WUFFRixDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDbEMsT0FBTyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FDVCxDQUFDLEtBQTRELEVBQUUsRUFBRTtRQUMvRCxPQUFPO1lBQ0wsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUNqQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUVELENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUN0QixVQUFVLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFFRCxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxRQUFRLEdBQUksS0FBSyxDQUFDLFlBQVksQ0FBb0IsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLFFBQVEsS0FBSyxDQUFDO29CQUFFLE9BQU87Z0JBQzNCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBRUQsQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBRUQsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUM5QixVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FDRixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsSUFBWSxFQUNaLE9BRUM7SUFFRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsb0JBQW9CLENBQWEsT0FBTyxDQUFDLENBQUM7SUFFOUQsT0FBTztRQUNMLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSTtLQUM4QixDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUN6QixRQUFnQixFQUNoQixPQUVDO0lBRUQsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLG9CQUFvQixDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBRWxFLE9BQU87UUFDTCxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVE7S0FDc0IsQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBK0IsT0FFdEQ7SUFDQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsb0JBQW9CLENBQWEsT0FBTyxDQUFDLENBQUM7SUFFOUQsT0FBTztRQUNMLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsQ0FBQztLQUNOLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQStCLE9BRTFEO0lBQ0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLG9CQUFvQixDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBRTlELE9BQU87UUFDTCxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNuQixDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUErQixPQUV2RDtJQUNDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxvQkFBb0IsQ0FBYSxPQUFPLENBQUMsQ0FBQztJQUU5RCxPQUFPO1FBQ0wsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0tBQ2lDLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsMkJBQW1DLEVBQ25DLE9BRUM7SUFFRCxNQUFNLEVBQUUseUJBQXlCLEVBQUUsR0FDakMsb0JBQW9CLENBQWEsT0FBTyxDQUFDLENBQUM7SUFFNUMsT0FBTztRQUNMLENBQUMseUJBQXlCLENBQUMsRUFBRSwyQkFBMkI7S0FDWCxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixPQUErQztJQUUvQyxNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsVUFBVTtRQUNyQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxVQUFVO1FBQ2pDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFFZixNQUFNLHVCQUF1QixHQUFHLE9BQU8sRUFBRSxVQUFVO1FBQ2pELENBQUMsQ0FBQyxlQUFlLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFVBQVU7UUFDMUQsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBQzNCLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxVQUFVO1FBQ2pDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLGFBQWE7UUFDcEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUNsQixNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsVUFBVTtRQUNyQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxVQUFVO1FBQ2pDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDZixNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsVUFBVTtRQUN2QyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxZQUFZO1FBQ25DLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDakIsTUFBTSxZQUFZLEdBQUcsT0FBTyxFQUFFLFVBQVU7UUFDdEMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsV0FBVztRQUNsQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2hCLE1BQU0seUJBQXlCLEdBQUcsT0FBTyxFQUFFLFVBQVU7UUFDbkQsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsd0JBQXdCO1FBQy9DLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztJQUM3QixNQUFNLHNCQUFzQixHQUFHLE9BQU8sRUFBRSxVQUFVO1FBQ2hELENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLHFCQUFxQjtRQUM1QyxDQUFDLENBQUMscUJBQXFCLENBQUM7SUFFMUIsTUFBTSxjQUFjLEdBQUcsT0FBTyxFQUFFLFVBQVU7UUFDeEMsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVTtRQUNoRCxDQUFDLENBQUMsYUFBYSxDQUFDO0lBRWxCLE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxVQUFVO1FBQ3JDLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU07UUFDN0MsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUVmLE1BQU0sZUFBZSxHQUFHLE9BQU8sRUFBRSxVQUFVO1FBQ3pDLENBQUMsQ0FBQyxXQUFXLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU07UUFDakQsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUVuQixNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsVUFBVTtRQUNyQyxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNO1FBQzdDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFFZixNQUFNLFlBQVksR0FBRyxPQUFPLEVBQUUsVUFBVTtRQUN0QyxDQUFDLENBQUMsUUFBUSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNO1FBQzlDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFFaEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxFQUFFLFVBQVU7UUFDckMsQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTTtRQUM3QyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBRWYsTUFBTSxjQUFjLEdBQUcsT0FBTyxFQUFFLFVBQVU7UUFDeEMsQ0FBQyxDQUFDLFVBQVUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTTtRQUNoRCxDQUFDLENBQUMsYUFBYSxDQUFDO0lBRWxCLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxFQUFFLFVBQVU7UUFDNUMsQ0FBQyxDQUFDLGNBQWMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTTtRQUNwRCxDQUFDLENBQUMsaUJBQWlCLENBQUM7SUFFdEIsT0FBTztRQUNMLE9BQU87UUFDUCxXQUFXO1FBQ1gsV0FBVztRQUNYLHVCQUF1QjtRQUN2QixhQUFhO1FBQ2IsWUFBWTtRQUNaLHNCQUFzQjtRQUN0Qix5QkFBeUI7UUFDekIsY0FBYztRQUNkLFdBQVc7UUFDWCxlQUFlO1FBQ2YsV0FBVztRQUNYLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGtCQUFrQjtLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQzdCLFdBQW1CLEVBQ25CLFlBQW9CLEVBQ3BCLFVBQWtCLEVBQ2xCLGVBQXVCO0lBRXZCLDBEQUEwRDtJQUMxRCxlQUFlLEdBQUcsQ0FBQyxlQUFlLENBQUM7SUFFbkMsa0NBQWtDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFL0MsTUFBTSxPQUFPLEdBQUcsV0FBVyxJQUFJLE9BQU8sQ0FBQztJQUN2QyxNQUFNLEtBQUssR0FBRyxVQUFVLEdBQUcsT0FBTyxHQUFHLFdBQVcsQ0FBQztJQUNqRCxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUVwQyxNQUFNLGNBQWMsR0FBRyxlQUFlLEdBQUcsVUFBVSxDQUFDO0lBQ3BELE1BQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUV6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksVUFBVSxJQUFJLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM3RCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFFbkIsSUFBSSxDQUFDLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDMUIsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUMxQixDQUFDO2FBQU0sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUMxQixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLFVBQVUsR0FBRyxVQUFVLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQztZQUNoRCxDQUFDO2lCQUFNLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLFVBQVUsR0FBRyxXQUFXLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLHFCQUFxQixHQUN6QixDQUFDLEtBQUssZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQztRQUVyRCxNQUFNLEtBQUssR0FDVCxjQUFjLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxxQkFBcUIsQ0FBQztZQUNoRSxDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFFakIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFdpdGggcGFnaW5hdGlvbiBjb21lcyBpbiB0d28gZmxhdm9ycyB0aGUgZmlyc3Qgb25lIGlzIGxvY2FsIHBhZ2luYXRpb24gb3IgaW4gbWVtb3J5IHBhZ2luYXRpb24uIEZvciBleGFtcGxlIHdlIGhhdmUgMjAwMCBpdGVtcyB3aGljaCB3ZSB3YW50XG4gKiB0byBkaXNwbGF5IGluIGEgdGFibGUgYW5kIHRoZSByZXNwb25zZSBwYXlsb2FkIGlzIHNtYWxsIGVub3VnaCB0byBiZSBzdG9yZWQgaW4gdGhlIG1lbW9yeS4gQnV0IHdlIGNhbiBub3QgZGlzcGxheSBhbGwgMjAwMCBpdGVtcyBhdCBvbmNlXG4gKiBzbyB3ZSBuZWVkIHRvIHBhZ2luYXRlIHRoZSBkYXRhLiBUaGUgc2Vjb25kIGZsYXZvciBpcyBzZXJ2ZXIgc2lkZSBwYWdpbmF0aW9uIHdoZXJlIHRoZSByZXNwb25zZSBwYXlsb2FkIGlzIHRvbyBsYXJnZSB0byBiZSBzdG9yZWQgaW4gdGhlIG1lbW9yeVxuICogYW5kIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIGRhdGEgZnJvbSB0aGUgc2VydmVyIGluIGNodW5rcy4gSW4gdGhlIHNlY29uZCBjYXNlIHdlICdjb3VsZCcgYWxzbyBjYWNoZSB0aGUgZGF0YSBpbiB0aGUgbWVtb3J5IGJ1dCB0aGF0IGNvdWxkIGxlYWQgdG9cbiAqIG90aGVyIHByb2JsZW1zIGxpa2UgbWVtb3J5IGxlYWtzIGFuZCBzdGFsZSBkYXRhLiBTbyB3ZSB3aWxsIG5vdCBjYWNoZSB0aGUgZGF0YSBpbiB0aGUgbWVtb3J5IGluIHRoZSBzZWNvbmQgY2FzZS5cbiAqIFRoaXMgZmVhdHVyZSBpbXBsZW1lbnRzIHRoZSBsb2NhbCBwYWdpbmF0aW9uLlxuICovXG5cbmltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgcGF0Y2hTdGF0ZSxcbiAgc2lnbmFsU3RvcmVGZWF0dXJlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhNZXRob2RzLFxuICB3aXRoU3RhdGUsXG4gIFdyaXRhYmxlU3RhdGVTb3VyY2UsXG4gIEVtcHR5RmVhdHVyZVJlc3VsdCxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjYXBpdGFsaXplIH0gZnJvbSAnLi93aXRoLWRhdGEtc2VydmljZSc7XG5pbXBvcnQge1xuICBFbnRpdHlDb21wdXRlZCxcbiAgRW50aXR5U3RhdGUsXG4gIE5hbWVkRW50aXR5Q29tcHV0ZWQsXG59IGZyb20gJy4vc2hhcmVkL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuXG4vLyBUaGlzIGlzIGEgdmlydHVhbCBwYWdlIHdoaWNoIGlzIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHBhZ2luYXRpb24gY29udHJvbFxuZXhwb3J0IHR5cGUgUGFnZSA9IHsgbGFiZWw6IHN0cmluZyB8IG51bWJlcjsgdmFsdWU6IG51bWJlciB9O1xuXG5leHBvcnQgdHlwZSBOYW1lZFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHNlbGVjdGVkUGFnZSR7Q2FwaXRhbGl6ZTxLPn1FbnRpdGllc2BdOiBBcnJheTxFPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fUN1cnJlbnRQYWdlYF06IG51bWJlcjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VTaXplYF06IG51bWJlcjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVRvdGFsQ291bnRgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZUNvdW50YF06IG51bWJlcjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VOYXZpZ2F0aW9uQXJyYXlgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZU5hdmlnYXRpb25BcnJheU1heGBdOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZFBhZ2luYXRpb25TZXJ2aWNlU2lnbmFsczxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2VsZWN0ZWRQYWdlJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06IFNpZ25hbDxFW10+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59Q3VycmVudFBhZ2VgXTogU2lnbmFsPG51bWJlcj47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlU2l6ZWBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVRvdGFsQ291bnRgXTogU2lnbmFsPG51bWJlcj47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlQ291bnRgXTogU2lnbmFsPG51bWJlcj47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlTmF2aWdhdGlvbkFycmF5YF06IFNpZ25hbDxQYWdlW10+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZU5hdmlnYXRpb25BcnJheU1heGBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGhhc05leHQke0NhcGl0YWxpemU8Sz59UGFnZWBdOiBTaWduYWw8Ym9vbGVhbj47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBoYXNQcmV2aW91cyR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06IFNpZ25hbDxib29sZWFuPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkUGFnaW5hdGlvblNlcnZpY2VNZXRob2RzPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZXQke0NhcGl0YWxpemU8Sz59UGFnZVNpemVgXTogKHNpemU6IG51bWJlcikgPT4gdm9pZDtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYG5leHQke0NhcGl0YWxpemU8Sz59UGFnZWBdOiAoKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgcHJldmlvdXMke0NhcGl0YWxpemU8Sz59UGFnZWBdOiAoKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgbGFzdCR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06ICgpID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBmaXJzdCR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06ICgpID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBnb3RvJHtDYXBpdGFsaXplPEs+fVBhZ2VgXTogKHBhZ2U6IG51bWJlcikgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RT4gPSB7XG4gIHNlbGVjdGVkUGFnZUVudGl0aWVzOiBBcnJheTxFPjtcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcbiAgcGFnZVNpemU6IG51bWJlcjtcbiAgdG90YWxDb3VudDogbnVtYmVyO1xuICBwYWdlQ291bnQ6IG51bWJlcjtcbiAgcGFnZU5hdmlnYXRpb25BcnJheTogUGFnZVtdO1xuICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uU2VydmljZVNpZ25hbHM8RT4gPSB7XG4gIHNlbGVjdGVkUGFnZUVudGl0aWVzOiBTaWduYWw8RVtdPjtcbiAgY3VycmVudFBhZ2U6IFNpZ25hbDxudW1iZXI+O1xuICBwYWdlU2l6ZTogU2lnbmFsPG51bWJlcj47XG4gIHRvdGFsQ291bnQ6IFNpZ25hbDxudW1iZXI+O1xuICBwYWdlQ291bnQ6IFNpZ25hbDxudW1iZXI+O1xuICBwYWdlTmF2aWdhdGlvbkFycmF5OiBTaWduYWw8UGFnZVtdPjtcbiAgcGFnZU5hdmlnYXRpb25BcnJheU1heDogU2lnbmFsPG51bWJlcj47XG4gIGhhc05leHRQYWdlOiBTaWduYWw8Ym9vbGVhbj47XG4gIGhhc1ByZXZpb3VzUGFnZTogU2lnbmFsPGJvb2xlYW4+O1xufTtcblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblNlcnZpY2VNZXRob2RzID0ge1xuICBzZXRQYWdlU2l6ZTogKHNpemU6IG51bWJlcikgPT4gdm9pZDtcbiAgbmV4dFBhZ2VLZXk6ICgpID0+IHZvaWQ7XG4gIHByZXZpb3VzUGFnZTogKCkgPT4gdm9pZDtcbiAgbGFzdFBhZ2U6ICgpID0+IHZvaWQ7XG4gIGZpcnN0UGFnZTogKCkgPT4gdm9pZDtcbiAgZ290b1BhZ2U6IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBTZXRQYWdpbmF0aW9uU3RhdGU8XG4gIEUsXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWRcbj4gPSBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4gID8gTmFtZWRQYWdpbmF0aW9uU2VydmljZVN0YXRlPEUsIENvbGxlY3Rpb24+XG4gIDogUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhQYWdpbmF0aW9uPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM6IHtcbiAgZW50aXR5OiBFO1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0ICYgeyBjb21wdXRlZDogTmFtZWRFbnRpdHlDb21wdXRlZDxFLCBDb2xsZWN0aW9uPiB9LFxuICB7XG4gICAgc3RhdGU6IE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFLCBDb2xsZWN0aW9uPjtcbiAgICBjb21wdXRlZDogTmFtZWRQYWdpbmF0aW9uU2VydmljZVNpZ25hbHM8RSwgQ29sbGVjdGlvbj47XG4gICAgbWV0aG9kczogTmFtZWRQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM8Q29sbGVjdGlvbj47XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGFnaW5hdGlvbjxFPigpOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIEVtcHR5RmVhdHVyZVJlc3VsdCAmIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RT47XG4gICAgY29tcHV0ZWQ6IEVudGl0eUNvbXB1dGVkPEU+O1xuICB9LFxuICB7XG4gICAgc3RhdGU6IFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RT47XG4gICAgY29tcHV0ZWQ6IFBhZ2luYXRpb25TZXJ2aWNlU2lnbmFsczxFPjtcbiAgICBtZXRob2RzOiBQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM7XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGFnaW5hdGlvbjxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zPzoge1xuICBlbnRpdHk6IEU7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPGFueSwgYW55PiB7XG4gIGNvbnN0IHtcbiAgICBwYWdlS2V5LFxuICAgIHBhZ2VTaXplS2V5LFxuICAgIGVudGl0aWVzS2V5LFxuICAgIHNlbGVjdGVkUGFnZUVudGl0aWVzS2V5LFxuICAgIHRvdGFsQ291bnRLZXksXG4gICAgcGFnZUNvdW50S2V5LFxuICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXksXG4gICAgcGFnZU5hdmlnYXRpb25BcnJheUtleSxcbiAgICBzZXRQYWdlU2l6ZUtleSxcbiAgICBuZXh0UGFnZUtleSxcbiAgICBwcmV2aW91c1BhZ2VLZXksXG4gICAgbGFzdFBhZ2VLZXksXG4gICAgZmlyc3RQYWdlS2V5LFxuICAgIGdvdG9QYWdlS2V5LFxuICAgIGhhc05leHRQYWdlS2V5LFxuICAgIGhhc1ByZXZpb3VzUGFnZUtleSxcbiAgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiBzaWduYWxTdG9yZUZlYXR1cmUoXG4gICAgd2l0aFN0YXRlKHtcbiAgICAgIFtwYWdlS2V5XTogMCxcbiAgICAgIFtwYWdlU2l6ZUtleV06IDEwLFxuICAgICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXldOiA3LFxuICAgIH0pLFxuICAgIHdpdGhDb21wdXRlZCgoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBjb25zdCBlbnRpdGllcyA9IHN0b3JlW2VudGl0aWVzS2V5XSBhcyBTaWduYWw8RVtdPjtcbiAgICAgIGNvbnN0IHBhZ2UgPSBzdG9yZVtwYWdlS2V5XSBhcyBTaWduYWw8bnVtYmVyPjtcbiAgICAgIGNvbnN0IHBhZ2VTaXplID0gc3RvcmVbcGFnZVNpemVLZXldIGFzIFNpZ25hbDxudW1iZXI+O1xuICAgICAgY29uc3QgcGFnZU5hdmlnYXRpb25BcnJheU1heCA9IHN0b3JlW1xuICAgICAgICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4S2V5XG4gICAgICBdIGFzIFNpZ25hbDxudW1iZXI+O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAvLyBUaGUgZGVyaXZlZCBlbml0aXRlcyB3aGljaCBhcmUgZGlzcGxheWVkIG9uIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgW3NlbGVjdGVkUGFnZUVudGl0aWVzS2V5XTogY29tcHV0ZWQ8RVtdPigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFnZVNpemVWYWx1ZSA9IHBhZ2VTaXplKCk7XG4gICAgICAgICAgY29uc3QgcGFnZVZhbHVlID0gcGFnZSgpO1xuXG4gICAgICAgICAgcmV0dXJuIGVudGl0aWVzKCkuc2xpY2UoXG4gICAgICAgICAgICBwYWdlVmFsdWUgKiBwYWdlU2l6ZVZhbHVlLFxuICAgICAgICAgICAgKHBhZ2VWYWx1ZSArIDEpICogcGFnZVNpemVWYWx1ZVxuICAgICAgICAgICkgYXMgRVtdO1xuICAgICAgICB9KSxcbiAgICAgICAgW3RvdGFsQ291bnRLZXldOiBjb21wdXRlZCgoKSA9PiBlbnRpdGllcygpLmxlbmd0aCksXG4gICAgICAgIFtwYWdlQ291bnRLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdG90YWxDb3VudFZhbHVlID0gZW50aXRpZXMoKS5sZW5ndGg7XG4gICAgICAgICAgY29uc3QgcGFnZVNpemVWYWx1ZSA9IHBhZ2VTaXplKCk7XG5cbiAgICAgICAgICBpZiAodG90YWxDb3VudFZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHRvdGFsQ291bnRWYWx1ZSAvIHBhZ2VTaXplVmFsdWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlLZXldOiBjb21wdXRlZCgoKSA9PlxuICAgICAgICAgIGNyZWF0ZVBhZ2VBcnJheShcbiAgICAgICAgICAgIHBhZ2UoKSxcbiAgICAgICAgICAgIHBhZ2VTaXplKCksXG4gICAgICAgICAgICBlbnRpdGllcygpLmxlbmd0aCxcbiAgICAgICAgICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXgoKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcblxuICAgICAgICBbaGFzTmV4dFBhZ2VLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2UoKSA8IHBhZ2VTaXplKCk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIFtoYXNQcmV2aW91c1BhZ2VLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2UoKSA+IDE7XG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB3aXRoTWV0aG9kcyhcbiAgICAgIChzdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiBXcml0YWJsZVN0YXRlU291cmNlPG9iamVjdD4pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBbc2V0UGFnZVNpemVLZXldOiAoc2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBzZXRQYWdlU2l6ZShzaXplLCBvcHRpb25zKSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBbbmV4dFBhZ2VLZXldOiAoKSA9PiB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBuZXh0UGFnZShvcHRpb25zKSk7XG4gICAgICAgICAgfSxcblxuICAgICAgICAgIFtwcmV2aW91c1BhZ2VLZXldOiAoKSA9PiB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBwcmV2aW91c1BhZ2Uob3B0aW9ucykpO1xuICAgICAgICAgIH0sXG5cbiAgICAgICAgICBbbGFzdFBhZ2VLZXldOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXN0UGFnZSA9IChzdG9yZVtwYWdlQ291bnRLZXldIGFzIFNpZ25hbDxudW1iZXI+KSgpO1xuICAgICAgICAgICAgaWYgKGxhc3RQYWdlID09PSAwKSByZXR1cm47XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBnb3RvUGFnZShsYXN0UGFnZSAtIDEsIG9wdGlvbnMpKTtcbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgW2ZpcnN0UGFnZUtleV06ICgpID0+IHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIGZpcnN0UGFnZSgpKTtcbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgW2dvdG9QYWdlS2V5XTogKHBhZ2U6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgZ290b1BhZ2UocGFnZSwgb3B0aW9ucykpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ290b1BhZ2U8RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oXG4gIHBhZ2U6IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xuICB9XG4pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiBwYWdlLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFBhZ2VTaXplPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBwYWdlU2l6ZTogbnVtYmVyLFxuICBvcHRpb25zPzoge1xuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG4gIH1cbik6IFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+PiB7XG4gIGNvbnN0IHsgcGFnZVNpemVLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VTaXplS2V5XTogcGFnZVNpemUsXG4gIH0gYXMgUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV4dFBhZ2U8RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9ucz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiAoY3VycmVudFBhZ2U6IG51bWJlcikgPT4gY3VycmVudFBhZ2UgKyAxLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXZpb3VzUGFnZTxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zPzoge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+PiB7XG4gIGNvbnN0IHsgcGFnZUtleSB9ID0gY3JlYXRlUGFnaW5hdGlvbktleXM8Q29sbGVjdGlvbj4ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHtcbiAgICBbcGFnZUtleV06IChjdXJyZW50UGFnZTogbnVtYmVyKSA9PiBNYXRoLm1heChjdXJyZW50UGFnZSAtIDEsIDEpLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0UGFnZTxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zPzoge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+PiB7XG4gIGNvbnN0IHsgcGFnZUtleSB9ID0gY3JlYXRlUGFnaW5hdGlvbktleXM8Q29sbGVjdGlvbj4ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHtcbiAgICBbcGFnZUtleV06IDEsXG4gIH0gYXMgUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWF4UGFnZU5hdmlnYXRpb25BcnJheUl0ZW1zPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBtYXhQYWdlTmF2aWdhdGlvbkFycmF5SXRlbXM6IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xuICB9XG4pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXkgfSA9XG4gICAgY3JlYXRlUGFnaW5hdGlvbktleXM8Q29sbGVjdGlvbj4ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHtcbiAgICBbcGFnZU5hdmlnYXRpb25BcnJheU1heEtleV06IG1heFBhZ2VOYXZpZ2F0aW9uQXJyYXlJdGVtcyxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBvcHRpb25zOiB7IGNvbGxlY3Rpb246IENvbGxlY3Rpb24gfSB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IGVudGl0aWVzS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUVudGl0aWVzYFxuICAgIDogJ2VudGl0aWVzJztcblxuICBjb25zdCBzZWxlY3RlZFBhZ2VFbnRpdGllc0tleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGBzZWxlY3RlZFBhZ2Uke2NhcGl0YWxpemUob3B0aW9ucz8uY29sbGVjdGlvbil9RW50aXRpZXNgXG4gICAgOiAnc2VsZWN0ZWRQYWdlRW50aXRpZXMnO1xuICBjb25zdCBwYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUN1cnJlbnRQYWdlYFxuICAgIDogJ2N1cnJlbnRQYWdlJztcbiAgY29uc3QgcGFnZVNpemVLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259UGFnZVNpemVgXG4gICAgOiAncGFnZVNpemUnO1xuICBjb25zdCB0b3RhbENvdW50S2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufVRvdGFsQ291bnRgXG4gICAgOiAndG90YWxDb3VudCc7XG4gIGNvbnN0IHBhZ2VDb3VudEtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1QYWdlQ291bnRgXG4gICAgOiAncGFnZUNvdW50JztcbiAgY29uc3QgcGFnZU5hdmlnYXRpb25BcnJheU1heEtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YFxuICAgIDogJ3BhZ2VOYXZpZ2F0aW9uQXJyYXlNYXgnO1xuICBjb25zdCBwYWdlTmF2aWdhdGlvbkFycmF5S2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufVBhZ2VOYXZpZ2F0aW9uQXJyYXlgXG4gICAgOiAncGFnZU5hdmlnYXRpb25BcnJheSc7XG5cbiAgY29uc3Qgc2V0UGFnZVNpemVLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgc2V0JHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9UGFnZVNpemVgXG4gICAgOiAnc2V0UGFnZVNpemUnO1xuXG4gIGNvbnN0IG5leHRQYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYG5leHQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ25leHRQYWdlJztcblxuICBjb25zdCBwcmV2aW91c1BhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgcHJldmlvdXMke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ3ByZXZpb3VzUGFnZSc7XG5cbiAgY29uc3QgbGFzdFBhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgbGFzdCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VgXG4gICAgOiAnbGFzdFBhZ2UnO1xuXG4gIGNvbnN0IGZpcnN0UGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGBmaXJzdCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VgXG4gICAgOiAnZmlyc3RQYWdlJztcblxuICBjb25zdCBnb3RvUGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGBnb3RvJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9UGFnZWBcbiAgICA6ICdnb3RvUGFnZSc7XG5cbiAgY29uc3QgaGFzTmV4dFBhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgaGFzTmV4dCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VgXG4gICAgOiAnaGFzTmV4dFBhZ2UnO1xuXG4gIGNvbnN0IGhhc1ByZXZpb3VzUGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGBoYXNQcmV2aW91cyR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VgXG4gICAgOiAnaGFzUHJldmlvdXNQYWdlJztcblxuICByZXR1cm4ge1xuICAgIHBhZ2VLZXksXG4gICAgcGFnZVNpemVLZXksXG4gICAgZW50aXRpZXNLZXksXG4gICAgc2VsZWN0ZWRQYWdlRW50aXRpZXNLZXksXG4gICAgdG90YWxDb3VudEtleSxcbiAgICBwYWdlQ291bnRLZXksXG4gICAgcGFnZU5hdmlnYXRpb25BcnJheUtleSxcbiAgICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4S2V5LFxuICAgIHNldFBhZ2VTaXplS2V5LFxuICAgIG5leHRQYWdlS2V5LFxuICAgIHByZXZpb3VzUGFnZUtleSxcbiAgICBsYXN0UGFnZUtleSxcbiAgICBmaXJzdFBhZ2VLZXksXG4gICAgZ290b1BhZ2VLZXksXG4gICAgaGFzTmV4dFBhZ2VLZXksXG4gICAgaGFzUHJldmlvdXNQYWdlS2V5LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFnZUFycmF5KFxuICBjdXJyZW50UGFnZTogbnVtYmVyLFxuICBpdGVtc1BlclBhZ2U6IG51bWJlcixcbiAgdG90YWxJdGVtczogbnVtYmVyLFxuICBwYWdpbmF0aW9uUmFuZ2U6IG51bWJlclxuKTogUGFnZVtdIHtcbiAgLy8gQ29udmVydCBwYWdpbmF0aW9uUmFuZ2UgdG8gbnVtYmVyIGluIGNhc2UgaXQncyBhIHN0cmluZ1xuICBwYWdpbmF0aW9uUmFuZ2UgPSArcGFnaW5hdGlvblJhbmdlO1xuXG4gIC8vIENhbGN1bGF0ZSB0b3RhbCBudW1iZXIgb2YgcGFnZXNcbiAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGgubWF4KE1hdGguY2VpbCh0b3RhbEl0ZW1zIC8gaXRlbXNQZXJQYWdlKSwgMSk7XG4gIGNvbnN0IGhhbGZXYXkgPSBNYXRoLmNlaWwocGFnaW5hdGlvblJhbmdlIC8gMik7XG5cbiAgY29uc3QgaXNTdGFydCA9IGN1cnJlbnRQYWdlIDw9IGhhbGZXYXk7XG4gIGNvbnN0IGlzRW5kID0gdG90YWxQYWdlcyAtIGhhbGZXYXkgPCBjdXJyZW50UGFnZTtcbiAgY29uc3QgaXNNaWRkbGUgPSAhaXNTdGFydCAmJiAhaXNFbmQ7XG5cbiAgY29uc3QgZWxsaXBzZXNOZWVkZWQgPSBwYWdpbmF0aW9uUmFuZ2UgPCB0b3RhbFBhZ2VzO1xuICBjb25zdCBwYWdlczogUGFnZVtdID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWxQYWdlcyAmJiBpIDw9IHBhZ2luYXRpb25SYW5nZTsgaSsrKSB7XG4gICAgbGV0IHBhZ2VOdW1iZXIgPSBpO1xuXG4gICAgaWYgKGkgPT09IHBhZ2luYXRpb25SYW5nZSkge1xuICAgICAgcGFnZU51bWJlciA9IHRvdGFsUGFnZXM7XG4gICAgfSBlbHNlIGlmIChlbGxpcHNlc05lZWRlZCkge1xuICAgICAgaWYgKGlzRW5kKSB7XG4gICAgICAgIHBhZ2VOdW1iZXIgPSB0b3RhbFBhZ2VzIC0gcGFnaW5hdGlvblJhbmdlICsgaTtcbiAgICAgIH0gZWxzZSBpZiAoaXNNaWRkbGUpIHtcbiAgICAgICAgcGFnZU51bWJlciA9IGN1cnJlbnRQYWdlIC0gaGFsZldheSArIGk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3BlbmluZ0VsbGlwc2VzTmVlZGVkID0gaSA9PT0gMiAmJiAoaXNNaWRkbGUgfHwgaXNFbmQpO1xuICAgIGNvbnN0IGNsb3NpbmdFbGxpcHNlc05lZWRlZCA9XG4gICAgICBpID09PSBwYWdpbmF0aW9uUmFuZ2UgLSAxICYmIChpc01pZGRsZSB8fCBpc1N0YXJ0KTtcblxuICAgIGNvbnN0IGxhYmVsID1cbiAgICAgIGVsbGlwc2VzTmVlZGVkICYmIChvcGVuaW5nRWxsaXBzZXNOZWVkZWQgfHwgY2xvc2luZ0VsbGlwc2VzTmVlZGVkKVxuICAgICAgICA/ICcuLi4nXG4gICAgICAgIDogcGFnZU51bWJlcjtcblxuICAgIHBhZ2VzLnB1c2goeyBsYWJlbCwgdmFsdWU6IHBhZ2VOdW1iZXIgfSk7XG4gIH1cblxuICByZXR1cm4gcGFnZXM7XG59XG4iXX0=
|
|
@@ -97,4 +97,4 @@ export function withRedux(redux) {
|
|
|
97
97
|
};
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZWR1eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvd2l0aC1yZWR1eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBZ0Q5RCxNQUFNLFVBQVUsT0FBTztJQUNyQixPQUFPLEVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQW1DNUIsU0FBUyxlQUFlLENBQ3RCLGFBQW1CLEVBQ25CLGVBR0MsRUFDRCxlQUFnQyxFQUNoQyxLQUFjO0lBRWQsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUUvQyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1gsT0FBc0QsQ0FDckQsS0FBSyxFQUNMLFdBQXNCLENBQ3ZCLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMzQixLQUFLLE1BQU0sYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUMxQyxhQUE2QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFD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VUFBVSxHQUFHLDRCQUE0QixDQUM3QyxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLENBQ04sQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBRTVDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMzRSxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPLEVBQUUsZ0JBQThCO1FBQ3ZDLGFBQWEsRUFBRSxhQUFhO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FLdkIsS0FJRDtJQUlDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxZQUFZLENBQzlCLEtBQUssQ0FBQyxPQUFPLEVBQ2IsS0FBSyxDQUFDLE9BQTZDLEVBQ25ELEtBQUssQ0FBQyxPQUFvQyxFQUMxQyxLQUFLLENBQ04sQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaWduYWxTdG9yZUZlYXR1cmUsIFN0YXRlU2lnbmFsIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBhc3NlcnRBY3Rpb25GblNwZWNzIH0gZnJvbSAnLi9hc3NlcnRpb25zL2Fzc2VydGlvbnMnO1xuaW1wb3J0IHtcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG59IGZyb20gJy4vc2hhcmVkL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuXG4vKiogQWN0aW9ucyAqKi9cblxudHlwZSBQYXlsb2FkID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbnR5cGUgQWN0aW9uRm48XG4gIFR5cGUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEFjdGlvblBheWxvYWQgZXh0ZW5kcyBQYXlsb2FkID0gUGF5bG9hZFxuPiA9ICgocGF5bG9hZDogQWN0aW9uUGF5bG9hZCkgPT4gQWN0aW9uUGF5bG9hZCAmIHsgdHlwZTogVHlwZSB9KSAmIHtcbiAgdHlwZTogVHlwZTtcbn07XG5cbnR5cGUgQWN0aW9uRm5zID0gUmVjb3JkPHN0cmluZywgQWN0aW9uRm4+O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25zRm5TcGVjcyA9IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xuXG50eXBlIEFjdGlvbkZuQ3JlYXRvcjxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+ID0ge1xuICBbQWN0aW9uTmFtZSBpbiBrZXlvZiBTcGVjXTogKFJlY29yZDxuZXZlciwgbmV2ZXI+IGV4dGVuZHMgU3BlY1tBY3Rpb25OYW1lXVxuICAgID8gKCkgPT4gU3BlY1tBY3Rpb25OYW1lXSAmIHsgdHlwZTogQWN0aW9uTmFtZSB9XG4gICAgOiAoXG4gICAgICAgIHBheWxvYWQ6IFNwZWNbQWN0aW9uTmFtZV1cbiAgICAgICkgPT4gU3BlY1tBY3Rpb25OYW1lXSAmIHsgdHlwZTogQWN0aW9uTmFtZSB9KSAmIHtcbiAgICB0eXBlOiBBY3Rpb25OYW1lICYgc3RyaW5nO1xuICB9O1xufTtcblxudHlwZSBBY3Rpb25GblBheWxvYWQ8QWN0aW9uPiA9IEFjdGlvbiBleHRlbmRzIChwYXlsb2FkOiBpbmZlciBQYXlsb2FkKSA9PiB2b2lkXG4gID8gUGF5bG9hZFxuICA6IG5ldmVyO1xuXG50eXBlIEFjdGlvbkZuc0NyZWF0b3I8U3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzPiA9IFNwZWMgZXh0ZW5kcyB7XG4gIHByaXZhdGU6IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xuICBwdWJsaWM6IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xufVxuICA/IEFjdGlvbkZuQ3JlYXRvcjxTcGVjWydwcml2YXRlJ10+ICYgQWN0aW9uRm5DcmVhdG9yPFNwZWNbJ3B1YmxpYyddPlxuICA6IEFjdGlvbkZuQ3JlYXRvcjxTcGVjPjtcblxudHlwZSBQdWJsaWNBY3Rpb25GbnM8U3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzPiA9IFNwZWMgZXh0ZW5kcyB7XG4gIHB1YmxpYzogUmVjb3JkPHN0cmluZywgUGF5bG9hZD47XG59XG4gID8gQWN0aW9uRm5DcmVhdG9yPFNwZWNbJ3B1YmxpYyddPlxuICA6IEFjdGlvbkZuQ3JlYXRvcjxTcGVjPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBheWxvYWQ8VHlwZSBleHRlbmRzIFBheWxvYWQ+KCk6IFR5cGUge1xuICByZXR1cm4ge30gYXMgVHlwZTtcbn1cblxuZXhwb3J0IGNvbnN0IG5vUGF5bG9hZCA9IHt9O1xuXG4vKiogUmVkdWNlciAqKi9cblxudHlwZSBSZWR1Y2VyRnVuY3Rpb248UmVkdWNlckFjdGlvbiwgU3RhdGU+ID0gKFxuICBzdGF0ZTogU3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uRm5QYXlsb2FkPFJlZHVjZXJBY3Rpb24+XG4pID0+IHZvaWQ7XG5cbnR5cGUgUmVkdWNlckZhY3Rvcnk8U3RhdGVBY3Rpb25GbnMgZXh0ZW5kcyBBY3Rpb25GbnMsIFN0YXRlPiA9IChcbiAgYWN0aW9uczogU3RhdGVBY3Rpb25GbnMsXG4gIG9uOiA8UmVkdWNlckFjdGlvbiBleHRlbmRzIHsgdHlwZTogc3RyaW5nIH0+KFxuICAgIGFjdGlvbjogUmVkdWNlckFjdGlvbixcbiAgICByZWR1Y2VyRm46IFJlZHVjZXJGdW5jdGlvbjxSZWR1Y2VyQWN0aW9uLCBTdGF0ZT5cbiAgKSA9PiB2b2lkXG4pID0+IHZvaWQ7XG5cbi8qKiBFZmZlY3QgKiovXG5cbnR5cGUgRWZmZWN0c0ZhY3Rvcnk8U3RhdGVBY3Rpb25GbnMgZXh0ZW5kcyBBY3Rpb25GbnM+ID0gKFxuICBhY3Rpb25zOiBTdGF0ZUFjdGlvbkZucyxcbiAgY3JlYXRlOiA8RWZmZWN0QWN0aW9uIGV4dGVuZHMgeyB0eXBlOiBzdHJpbmcgfT4oXG4gICAgYWN0aW9uOiBFZmZlY3RBY3Rpb25cbiAgKSA9PiBPYnNlcnZhYmxlPEFjdGlvbkZuUGF5bG9hZDxFZmZlY3RBY3Rpb24+PlxuKSA9PiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPHVua25vd24+PjtcblxuLy8gaW50ZXJuYWwgdHlwZXNcblxuLyoqXG4gKiBSZWNvcmQgd2hpY2ggaG9sZHMgYWxsIGVmZmVjdHMgZm9yIGEgc3BlY2lmaWMgYWN0aW9uIHR5cGUuXG4gKiBUaGUgdmFsdWVzIGFyZSBTdWJqZWN0IHdoaWNoIHRoZSBlZmZlY3QgYXJlIHN1YnNjcmliZWQgdG8uXG4gKiBgY3JlYXRlQWN0aW9uRm5zYCB3aWxsIGNhbGwgbmV4dCBvbiB0aGVzZSBzdWJqZWN0cy5cbiAqL1xudHlwZSBFZmZlY3RzUmVnaXN0cnkgPSBSZWNvcmQ8c3RyaW5nLCBTdWJqZWN0PEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPj5bXT47XG5cbmZ1bmN0aW9uIGNyZWF0ZUFjdGlvbkZuczxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+KFxuICBhY3Rpb25GblNwZWNzOiBTcGVjLFxuICByZWR1Y2VyUmVnaXN0cnk6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiBBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4pID0+IHZvaWRcbiAgPixcbiAgZWZmZWN0c1JlZ2lzdHJ5OiBFZmZlY3RzUmVnaXN0cnksXG4gIHN0YXRlOiB1bmtub3duXG4pIHtcbiAgY29uc3QgYWN0aW9uRm5zOiBSZWNvcmQ8c3RyaW5nLCBBY3Rpb25Gbj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IHR5cGUgaW4gYWN0aW9uRm5TcGVjcykge1xuICAgIGNvbnN0IGFjdGlvbkZuID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxQYXlsb2FkID0geyAuLi5wYXlsb2FkLCB0eXBlIH07XG4gICAgICBjb25zdCByZWR1Y2VyID0gcmVkdWNlclJlZ2lzdHJ5W3R5cGVdO1xuICAgICAgaWYgKHJlZHVjZXIpIHtcbiAgICAgICAgKHJlZHVjZXIgYXMgKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiB1bmtub3duKSA9PiB2b2lkKShcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBmdWxsUGF5bG9hZCBhcyB1bmtub3duXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBlZmZlY3RTdWJqZWN0cyA9IGVmZmVjdHNSZWdpc3RyeVt0eXBlXTtcbiAgICAgIGlmIChlZmZlY3RTdWJqZWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgIGZvciAoY29uc3QgZWZmZWN0U3ViamVjdCBvZiBlZmZlY3RTdWJqZWN0cykge1xuICAgICAgICAgIChlZmZlY3RTdWJqZWN0IGFzIHVua25vd24gYXMgU3ViamVjdDx1bmtub3duPikubmV4dChmdWxsUGF5bG9hZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmdWxsUGF5bG9hZDtcbiAgICB9O1xuICAgIGFjdGlvbkZuLnR5cGUgPSB0eXBlLnRvU3RyaW5nKCk7XG4gICAgYWN0aW9uRm5zW3R5cGVdID0gYWN0aW9uRm47XG4gIH1cblxuICByZXR1cm4gYWN0aW9uRm5zO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQdWJsaWNBbmRBbGxBY3Rpb25zRm5zPFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcz4oXG4gIGFjdGlvbkZuU3BlY3M6IFNwZWMsXG4gIHJlZHVjZXJSZWdpc3RyeTogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICAoc3RhdGU6IHVua25vd24sIHBheWxvYWQ6IEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPikgPT4gdm9pZFxuICA+LFxuICBlZmZlY3RzUmVnaXN0cnk6IEVmZmVjdHNSZWdpc3RyeSxcbiAgc3RhdGU6IHVua25vd25cbik6IHsgYWxsOiBBY3Rpb25GbnM7IHB1YmxpY3M6IEFjdGlvbkZucyB9IHtcbiAgaWYgKCdwdWJsaWMnIGluIGFjdGlvbkZuU3BlY3MgfHwgJ3ByaXZhdGUnIGluIGFjdGlvbkZuU3BlY3MpIHtcbiAgICBjb25zdCBwcml2YXRlcyA9IGFjdGlvbkZuU3BlY3NbJ3ByaXZhdGUnXSB8fCB7fTtcbiAgICBjb25zdCBwdWJsaWNzID0gYWN0aW9uRm5TcGVjc1sncHVibGljJ10gfHwge307XG5cbiAgICBhc3NlcnRBY3Rpb25GblNwZWNzKHByaXZhdGVzKTtcbiAgICBhc3NlcnRBY3Rpb25GblNwZWNzKHB1YmxpY3MpO1xuXG4gICAgY29uc3QgcHJpdmF0ZUFjdGlvbkZucyA9IGNyZWF0ZUFjdGlvbkZucyhcbiAgICAgIHByaXZhdGVzLFxuICAgICAgcmVkdWNlclJlZ2lzdHJ5LFxuICAgICAgZWZmZWN0c1JlZ2lzdHJ5LFxuICAgICAgc3RhdGVcbiAgICApO1xuICAgIGNvbnN0IHB1YmxpY0FjdGlvbkZucyA9IGNyZWF0ZUFjdGlvbkZucyhcbiAgICAgIHB1YmxpY3MsXG4gICAgICByZWR1Y2VyUmVnaXN0cnksXG4gICAgICBlZmZlY3RzUmVnaXN0cnksXG4gICAgICBzdGF0ZVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWxsOiB7IC4uLnByaXZhdGVBY3Rpb25GbnMsIC4uLnB1YmxpY0FjdGlvbkZucyB9LFxuICAgICAgcHVibGljczogcHVibGljQWN0aW9uRm5zLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBhY3Rpb25GbnMgPSBjcmVhdGVBY3Rpb25GbnMoXG4gICAgYWN0aW9uRm5TcGVjcyxcbiAgICByZWR1Y2VyUmVnaXN0cnksXG4gICAgZWZmZWN0c1JlZ2lzdHJ5LFxuICAgIHN0YXRlXG4gICk7XG5cbiAgcmV0dXJuIHsgYWxsOiBhY3Rpb25GbnMsIHB1YmxpY3M6IGFjdGlvbkZucyB9O1xufVxuXG5mdW5jdGlvbiBmaWxsUmVkdWNlclJlZ2lzdHJ5KFxuICByZWR1Y2VyOiBSZWR1Y2VyRmFjdG9yeTxBY3Rpb25GbnMsIHVua25vd24+LFxuICBhY3Rpb25GbnM6IEFjdGlvbkZucyxcbiAgcmVkdWNlclJlZ2lzdHJ5OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gID5cbikge1xuICBmdW5jdGlvbiBvbihcbiAgICBhY3Rpb246IHsgdHlwZTogc3RyaW5nIH0sXG4gICAgcmVkdWNlckZuOiAoc3RhdGU6IHVua25vd24sIHBheWxvYWQ6IEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPikgPT4gdm9pZFxuICApIHtcbiAgICByZWR1Y2VyUmVnaXN0cnlbYWN0aW9uLnR5cGVdID0gcmVkdWNlckZuO1xuICB9XG5cbiAgcmVkdWNlcihhY3Rpb25GbnMsIG9uKTtcblxuICByZXR1cm4gcmVkdWNlclJlZ2lzdHJ5O1xufVxuXG5mdW5jdGlvbiBmaWxsRWZmZWN0cyhcbiAgZWZmZWN0czogRWZmZWN0c0ZhY3Rvcnk8QWN0aW9uRm5zPixcbiAgYWN0aW9uRm5zOiBBY3Rpb25GbnMsXG4gIGVmZmVjdHNSZWdpc3RyeTogRWZmZWN0c1JlZ2lzdHJ5ID0ge31cbik6IE9ic2VydmFibGU8dW5rbm93bj5bXSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShhY3Rpb246IHsgdHlwZTogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QWN0aW9uRm5QYXlsb2FkPHVua25vd24+PigpO1xuICAgIGlmICghKGFjdGlvbi50eXBlIGluIGVmZmVjdHNSZWdpc3RyeSkpIHtcbiAgICAgIGVmZmVjdHNSZWdpc3RyeVthY3Rpb24udHlwZV0gPSBbXTtcbiAgICB9XG4gICAgZWZmZWN0c1JlZ2lzdHJ5W2FjdGlvbi50eXBlXS5wdXNoKHN1YmplY3QpO1xuICAgIHJldHVybiBzdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3QgZWZmZWN0T2JzZXJ2YWJsZXMgPSBlZmZlY3RzKGFjdGlvbkZucywgY3JlYXRlKTtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZWZmZWN0T2JzZXJ2YWJsZXMpO1xufVxuXG5mdW5jdGlvbiBzdGFydFN1YnNjcmlwdGlvbnMob2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8dW5rbm93bj5bXSkge1xuICByZXR1cm4gb2JzZXJ2YWJsZXMubWFwKChvYnNlcnZhYmxlKSA9PiBvYnNlcnZhYmxlLnN1YnNjcmliZSgpKTtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc1JlZHV4PFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcywgUmV0dXJuVHlwZT4oXG4gIGFjdGlvbkZuU3BlY3M6IFNwZWMsXG4gIHJlZHVjZXI6IFJlZHVjZXJGYWN0b3J5PEFjdGlvbkZucywgdW5rbm93bj4sXG4gIGVmZmVjdHM6IEVmZmVjdHNGYWN0b3J5PEFjdGlvbkZucz4sXG4gIHN0b3JlOiB1bmtub3duXG4pIHtcbiAgY29uc3QgcmVkdWNlclJlZ2lzdHJ5OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gID4gPSB7fTtcbiAgY29uc3QgZWZmZWN0c1JlZ2lzdHJ5OiBSZWNvcmQ8c3RyaW5nLCBTdWJqZWN0PEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPj5bXT4gPVxuICAgIHt9O1xuICBjb25zdCBhY3Rpb25zTWFwID0gY3JlYXRlUHVibGljQW5kQWxsQWN0aW9uc0ZucyhcbiAgICBhY3Rpb25GblNwZWNzLFxuICAgIHJlZHVjZXJSZWdpc3RyeSxcbiAgICBlZmZlY3RzUmVnaXN0cnksXG4gICAgc3RvcmVcbiAgKTtcbiAgY29uc3QgYWN0aW9uRm5zID0gYWN0aW9uc01hcC5hbGw7XG4gIGNvbnN0IHB1YmxpY0FjdGlvbnNGbnMgPSBhY3Rpb25zTWFwLnB1YmxpY3M7XG5cbiAgZmlsbFJlZHVjZXJSZWdpc3RyeShyZWR1Y2VyLCBhY3Rpb25GbnMsIHJlZHVjZXJSZWdpc3RyeSk7XG4gIGNvbnN0IGVmZmVjdE9ic2VydmFibGVzID0gZmlsbEVmZmVjdHMoZWZmZWN0cywgYWN0aW9uRm5zLCBlZmZlY3RzUmVnaXN0cnkpO1xuICBjb25zdCBzdWJzY3JpcHRpb25zID0gc3RhcnRTdWJzY3JpcHRpb25zKGVmZmVjdE9ic2VydmFibGVzKTtcblxuICByZXR1cm4ge1xuICAgIG1ldGhvZHM6IHB1YmxpY0FjdGlvbnNGbnMgYXMgUmV0dXJuVHlwZSxcbiAgICBzdWJzY3JpcHRpb25zOiBzdWJzY3JpcHRpb25zLFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSByZWR1eCByZWR1eFxuICpcbiAqIHByb3BlcnRpZXMgZG8gbm90IHN0YXJ0IHdpdGggYHdpdGhgIHNpbmNlIHRoZXkgYXJlIG5vdCBleHRlbnNpb24gZnVuY3Rpb25zIG9uIHRoZWlyIG93bi5cbiAqXG4gKiBubyBkZXBlbmRlbmN5IHRvIE5nUnhcbiAqXG4gKiBhY3Rpb25zIGFyZSBwYXNzZWQgdG8gcmVkdWNlciBhbmQgZWZmZWN0cywgYnV0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIG90aGVyIGFjdGlvbnMuXG4gKiBlZmZlY3RzIHByb3ZpZGUgZm9yQWN0aW9uIGFuZCBkbyBub3QgcmV0dXJuIGFueXRoaW5nLiB0aGF0IGlzIGltcG9ydGFudCBiZWNhdXNlIGVmZmVjdHMgc2hvdWxkIHN0YXkgaW5hY2Nlc3NpYmxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUmVkdXg8XG4gIFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcyxcbiAgSW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFN0YXRlQWN0aW9uRm5zIGV4dGVuZHMgQWN0aW9uRm5zQ3JlYXRvcjxTcGVjPiA9IEFjdGlvbkZuc0NyZWF0b3I8U3BlYz4sXG4gIFB1YmxpY1N0b3JlQWN0aW9uRm5zIGV4dGVuZHMgUHVibGljQWN0aW9uRm5zPFNwZWM+ID0gUHVibGljQWN0aW9uRm5zPFNwZWM+XG4+KHJlZHV4OiB7XG4gIGFjdGlvbnM6IFNwZWM7XG4gIHJlZHVjZXI6IFJlZHVjZXJGYWN0b3J5PFN0YXRlQWN0aW9uRm5zLCBTdGF0ZVNpZ25hbDxJbnB1dFsnc3RhdGUnXT4+O1xuICBlZmZlY3RzOiBFZmZlY3RzRmFjdG9yeTxTdGF0ZUFjdGlvbkZucz47XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0ICYgeyBtZXRob2RzOiBQdWJsaWNTdG9yZUFjdGlvbkZucyB9XG4+IHtcbiAgcmV0dXJuIChzdG9yZSkgPT4ge1xuICAgIGNvbnN0IHsgbWV0aG9kcyB9ID0gcHJvY2Vzc1JlZHV4PFNwZWMsIFB1YmxpY1N0b3JlQWN0aW9uRm5zPihcbiAgICAgIHJlZHV4LmFjdGlvbnMsXG4gICAgICByZWR1eC5yZWR1Y2VyIGFzIFJlZHVjZXJGYWN0b3J5PEFjdGlvbkZucywgdW5rbm93bj4sXG4gICAgICByZWR1eC5lZmZlY3RzIGFzIEVmZmVjdHNGYWN0b3J5PEFjdGlvbkZucz4sXG4gICAgICBzdG9yZVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgbWV0aG9kcyxcbiAgICB9O1xuICB9O1xufVxuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZWR1eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvd2l0aC1yZWR1eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBNEM5RCxNQUFNLFVBQVUsT0FBTztJQUNyQixPQUFPLEVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQW1DNUIsU0FBUyxlQUFlLENBQ3RCLGFBQW1CLEVBQ25CLGVBR0MsRUFDRCxlQUFnQyxFQUNoQyxLQUFjO0lBRWQsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUUvQyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1gsT0FBc0QsQ0FDckQsS0FBSyxFQUNMLFdBQXNCLENBQ3ZCLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMzQixLQUFLLE1BQU0sYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUMxQyxhQUE2QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFD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VUFBVSxHQUFHLDRCQUE0QixDQUM3QyxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLENBQ04sQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBRTVDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMzRSxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPLEVBQUUsZ0JBQThCO1FBQ3ZDLGFBQWEsRUFBRSxhQUFhO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FLdkIsS0FJRDtJQUlDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxZQUFZLENBQzlCLEtBQUssQ0FBQyxPQUFPLEVBQ2IsS0FBSyxDQUFDLE9BQTZDLEVBQ25ELEtBQUssQ0FBQyxPQUFvQyxFQUMxQyxLQUFLLENBQ04sQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBXcml0YWJsZVN0YXRlU291cmNlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGFzc2VydEFjdGlvbkZuU3BlY3MgfSBmcm9tICcuL2Fzc2VydGlvbnMvYXNzZXJ0aW9ucyc7XG5cbi8qKiBBY3Rpb25zICoqL1xuXG50eXBlIFBheWxvYWQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxudHlwZSBBY3Rpb25GbjxcbiAgVHlwZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgQWN0aW9uUGF5bG9hZCBleHRlbmRzIFBheWxvYWQgPSBQYXlsb2FkXG4+ID0gKChwYXlsb2FkOiBBY3Rpb25QYXlsb2FkKSA9PiBBY3Rpb25QYXlsb2FkICYgeyB0eXBlOiBUeXBlIH0pICYge1xuICB0eXBlOiBUeXBlO1xufTtcblxudHlwZSBBY3Rpb25GbnMgPSBSZWNvcmQ8c3RyaW5nLCBBY3Rpb25Gbj47XG5cbmV4cG9ydCB0eXBlIEFjdGlvbnNGblNwZWNzID0gUmVjb3JkPHN0cmluZywgUGF5bG9hZD47XG5cbnR5cGUgQWN0aW9uRm5DcmVhdG9yPFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcz4gPSB7XG4gIFtBY3Rpb25OYW1lIGluIGtleW9mIFNwZWNdOiAoUmVjb3JkPG5ldmVyLCBuZXZlcj4gZXh0ZW5kcyBTcGVjW0FjdGlvbk5hbWVdXG4gICAgPyAoKSA9PiBTcGVjW0FjdGlvbk5hbWVdICYgeyB0eXBlOiBBY3Rpb25OYW1lIH1cbiAgICA6IChcbiAgICAgICAgcGF5bG9hZDogU3BlY1tBY3Rpb25OYW1lXVxuICAgICAgKSA9PiBTcGVjW0FjdGlvbk5hbWVdICYgeyB0eXBlOiBBY3Rpb25OYW1lIH0pICYge1xuICAgIHR5cGU6IEFjdGlvbk5hbWUgJiBzdHJpbmc7XG4gIH07XG59O1xuXG50eXBlIEFjdGlvbkZuUGF5bG9hZDxBY3Rpb24+ID0gQWN0aW9uIGV4dGVuZHMgKHBheWxvYWQ6IGluZmVyIFBheWxvYWQpID0+IHZvaWRcbiAgPyBQYXlsb2FkXG4gIDogbmV2ZXI7XG5cbnR5cGUgQWN0aW9uRm5zQ3JlYXRvcjxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+ID0gU3BlYyBleHRlbmRzIHtcbiAgcHJpdmF0ZTogUmVjb3JkPHN0cmluZywgUGF5bG9hZD47XG4gIHB1YmxpYzogUmVjb3JkPHN0cmluZywgUGF5bG9hZD47XG59XG4gID8gQWN0aW9uRm5DcmVhdG9yPFNwZWNbJ3ByaXZhdGUnXT4gJiBBY3Rpb25GbkNyZWF0b3I8U3BlY1sncHVibGljJ10+XG4gIDogQWN0aW9uRm5DcmVhdG9yPFNwZWM+O1xuXG50eXBlIFB1YmxpY0FjdGlvbkZuczxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+ID0gU3BlYyBleHRlbmRzIHtcbiAgcHVibGljOiBSZWNvcmQ8c3RyaW5nLCBQYXlsb2FkPjtcbn1cbiAgPyBBY3Rpb25GbkNyZWF0b3I8U3BlY1sncHVibGljJ10+XG4gIDogQWN0aW9uRm5DcmVhdG9yPFNwZWM+O1xuXG5leHBvcnQgZnVuY3Rpb24gcGF5bG9hZDxUeXBlIGV4dGVuZHMgUGF5bG9hZD4oKTogVHlwZSB7XG4gIHJldHVybiB7fSBhcyBUeXBlO1xufVxuXG5leHBvcnQgY29uc3Qgbm9QYXlsb2FkID0ge307XG5cbi8qKiBSZWR1Y2VyICoqL1xuXG50eXBlIFJlZHVjZXJGdW5jdGlvbjxSZWR1Y2VyQWN0aW9uLCBTdGF0ZT4gPSAoXG4gIHN0YXRlOiBTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb25GblBheWxvYWQ8UmVkdWNlckFjdGlvbj5cbikgPT4gdm9pZDtcblxudHlwZSBSZWR1Y2VyRmFjdG9yeTxTdGF0ZUFjdGlvbkZucyBleHRlbmRzIEFjdGlvbkZucywgU3RhdGU+ID0gKFxuICBhY3Rpb25zOiBTdGF0ZUFjdGlvbkZucyxcbiAgb246IDxSZWR1Y2VyQWN0aW9uIGV4dGVuZHMgeyB0eXBlOiBzdHJpbmcgfT4oXG4gICAgYWN0aW9uOiBSZWR1Y2VyQWN0aW9uLFxuICAgIHJlZHVjZXJGbjogUmVkdWNlckZ1bmN0aW9uPFJlZHVjZXJBY3Rpb24sIFN0YXRlPlxuICApID0+IHZvaWRcbikgPT4gdm9pZDtcblxuLyoqIEVmZmVjdCAqKi9cblxudHlwZSBFZmZlY3RzRmFjdG9yeTxTdGF0ZUFjdGlvbkZucyBleHRlbmRzIEFjdGlvbkZucz4gPSAoXG4gIGFjdGlvbnM6IFN0YXRlQWN0aW9uRm5zLFxuICBjcmVhdGU6IDxFZmZlY3RBY3Rpb24gZXh0ZW5kcyB7IHR5cGU6IHN0cmluZyB9PihcbiAgICBhY3Rpb246IEVmZmVjdEFjdGlvblxuICApID0+IE9ic2VydmFibGU8QWN0aW9uRm5QYXlsb2FkPEVmZmVjdEFjdGlvbj4+XG4pID0+IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8dW5rbm93bj4+O1xuXG4vLyBpbnRlcm5hbCB0eXBlc1xuXG4vKipcbiAqIFJlY29yZCB3aGljaCBob2xkcyBhbGwgZWZmZWN0cyBmb3IgYSBzcGVjaWZpYyBhY3Rpb24gdHlwZS5cbiAqIFRoZSB2YWx1ZXMgYXJlIFN1YmplY3Qgd2hpY2ggdGhlIGVmZmVjdCBhcmUgc3Vic2NyaWJlZCB0by5cbiAqIGBjcmVhdGVBY3Rpb25GbnNgIHdpbGwgY2FsbCBuZXh0IG9uIHRoZXNlIHN1YmplY3RzLlxuICovXG50eXBlIEVmZmVjdHNSZWdpc3RyeSA9IFJlY29yZDxzdHJpbmcsIFN1YmplY3Q8QWN0aW9uRm5QYXlsb2FkPHVua25vd24+PltdPjtcblxuZnVuY3Rpb24gY3JlYXRlQWN0aW9uRm5zPFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcz4oXG4gIGFjdGlvbkZuU3BlY3M6IFNwZWMsXG4gIHJlZHVjZXJSZWdpc3RyeTogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICAoc3RhdGU6IHVua25vd24sIHBheWxvYWQ6IEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPikgPT4gdm9pZFxuICA+LFxuICBlZmZlY3RzUmVnaXN0cnk6IEVmZmVjdHNSZWdpc3RyeSxcbiAgc3RhdGU6IHVua25vd25cbikge1xuICBjb25zdCBhY3Rpb25GbnM6IFJlY29yZDxzdHJpbmcsIEFjdGlvbkZuPiA9IHt9O1xuXG4gIGZvciAoY29uc3QgdHlwZSBpbiBhY3Rpb25GblNwZWNzKSB7XG4gICAgY29uc3QgYWN0aW9uRm4gPSAocGF5bG9hZDogUGF5bG9hZCkgPT4ge1xuICAgICAgY29uc3QgZnVsbFBheWxvYWQgPSB7IC4uLnBheWxvYWQsIHR5cGUgfTtcbiAgICAgIGNvbnN0IHJlZHVjZXIgPSByZWR1Y2VyUmVnaXN0cnlbdHlwZV07XG4gICAgICBpZiAocmVkdWNlcikge1xuICAgICAgICAocmVkdWNlciBhcyAoc3RhdGU6IHVua25vd24sIHBheWxvYWQ6IHVua25vd24pID0+IHZvaWQpKFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIGZ1bGxQYXlsb2FkIGFzIHVua25vd25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVmZmVjdFN1YmplY3RzID0gZWZmZWN0c1JlZ2lzdHJ5W3R5cGVdO1xuICAgICAgaWYgKGVmZmVjdFN1YmplY3RzPy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChjb25zdCBlZmZlY3RTdWJqZWN0IG9mIGVmZmVjdFN1YmplY3RzKSB7XG4gICAgICAgICAgKGVmZmVjdFN1YmplY3QgYXMgdW5rbm93biBhcyBTdWJqZWN0PHVua25vd24+KS5uZXh0KGZ1bGxQYXlsb2FkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bGxQYXlsb2FkO1xuICAgIH07XG4gICAgYWN0aW9uRm4udHlwZSA9IHR5cGUudG9TdHJpbmcoKTtcbiAgICBhY3Rpb25GbnNbdHlwZV0gPSBhY3Rpb25GbjtcbiAgfVxuXG4gIHJldHVybiBhY3Rpb25GbnM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVB1YmxpY0FuZEFsbEFjdGlvbnNGbnM8U3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzPihcbiAgYWN0aW9uRm5TcGVjczogU3BlYyxcbiAgcmVkdWNlclJlZ2lzdHJ5OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gID4sXG4gIGVmZmVjdHNSZWdpc3RyeTogRWZmZWN0c1JlZ2lzdHJ5LFxuICBzdGF0ZTogdW5rbm93blxuKTogeyBhbGw6IEFjdGlvbkZuczsgcHVibGljczogQWN0aW9uRm5zIH0ge1xuICBpZiAoJ3B1YmxpYycgaW4gYWN0aW9uRm5TcGVjcyB8fCAncHJpdmF0ZScgaW4gYWN0aW9uRm5TcGVjcykge1xuICAgIGNvbnN0IHByaXZhdGVzID0gYWN0aW9uRm5TcGVjc1sncHJpdmF0ZSddIHx8IHt9O1xuICAgIGNvbnN0IHB1YmxpY3MgPSBhY3Rpb25GblNwZWNzWydwdWJsaWMnXSB8fCB7fTtcblxuICAgIGFzc2VydEFjdGlvbkZuU3BlY3MocHJpdmF0ZXMpO1xuICAgIGFzc2VydEFjdGlvbkZuU3BlY3MocHVibGljcyk7XG5cbiAgICBjb25zdCBwcml2YXRlQWN0aW9uRm5zID0gY3JlYXRlQWN0aW9uRm5zKFxuICAgICAgcHJpdmF0ZXMsXG4gICAgICByZWR1Y2VyUmVnaXN0cnksXG4gICAgICBlZmZlY3RzUmVnaXN0cnksXG4gICAgICBzdGF0ZVxuICAgICk7XG4gICAgY29uc3QgcHVibGljQWN0aW9uRm5zID0gY3JlYXRlQWN0aW9uRm5zKFxuICAgICAgcHVibGljcyxcbiAgICAgIHJlZHVjZXJSZWdpc3RyeSxcbiAgICAgIGVmZmVjdHNSZWdpc3RyeSxcbiAgICAgIHN0YXRlXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhbGw6IHsgLi4ucHJpdmF0ZUFjdGlvbkZucywgLi4ucHVibGljQWN0aW9uRm5zIH0sXG4gICAgICBwdWJsaWNzOiBwdWJsaWNBY3Rpb25GbnMsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGFjdGlvbkZucyA9IGNyZWF0ZUFjdGlvbkZucyhcbiAgICBhY3Rpb25GblNwZWNzLFxuICAgIHJlZHVjZXJSZWdpc3RyeSxcbiAgICBlZmZlY3RzUmVnaXN0cnksXG4gICAgc3RhdGVcbiAgKTtcblxuICByZXR1cm4geyBhbGw6IGFjdGlvbkZucywgcHVibGljczogYWN0aW9uRm5zIH07XG59XG5cbmZ1bmN0aW9uIGZpbGxSZWR1Y2VyUmVnaXN0cnkoXG4gIHJlZHVjZXI6IFJlZHVjZXJGYWN0b3J5PEFjdGlvbkZucywgdW5rbm93bj4sXG4gIGFjdGlvbkZuczogQWN0aW9uRm5zLFxuICByZWR1Y2VyUmVnaXN0cnk6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiBBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4pID0+IHZvaWRcbiAgPlxuKSB7XG4gIGZ1bmN0aW9uIG9uKFxuICAgIGFjdGlvbjogeyB0eXBlOiBzdHJpbmcgfSxcbiAgICByZWR1Y2VyRm46IChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gICkge1xuICAgIHJlZHVjZXJSZWdpc3RyeVthY3Rpb24udHlwZV0gPSByZWR1Y2VyRm47XG4gIH1cblxuICByZWR1Y2VyKGFjdGlvbkZucywgb24pO1xuXG4gIHJldHVybiByZWR1Y2VyUmVnaXN0cnk7XG59XG5cbmZ1bmN0aW9uIGZpbGxFZmZlY3RzKFxuICBlZmZlY3RzOiBFZmZlY3RzRmFjdG9yeTxBY3Rpb25GbnM+LFxuICBhY3Rpb25GbnM6IEFjdGlvbkZucyxcbiAgZWZmZWN0c1JlZ2lzdHJ5OiBFZmZlY3RzUmVnaXN0cnkgPSB7fVxuKTogT2JzZXJ2YWJsZTx1bmtub3duPltdIHtcbiAgZnVuY3Rpb24gY3JlYXRlKGFjdGlvbjogeyB0eXBlOiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4+KCk7XG4gICAgaWYgKCEoYWN0aW9uLnR5cGUgaW4gZWZmZWN0c1JlZ2lzdHJ5KSkge1xuICAgICAgZWZmZWN0c1JlZ2lzdHJ5W2FjdGlvbi50eXBlXSA9IFtdO1xuICAgIH1cbiAgICBlZmZlY3RzUmVnaXN0cnlbYWN0aW9uLnR5cGVdLnB1c2goc3ViamVjdCk7XG4gICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdCBlZmZlY3RPYnNlcnZhYmxlcyA9IGVmZmVjdHMoYWN0aW9uRm5zLCBjcmVhdGUpO1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhlZmZlY3RPYnNlcnZhYmxlcyk7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0U3Vic2NyaXB0aW9ucyhvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTx1bmtub3duPltdKSB7XG4gIHJldHVybiBvYnNlcnZhYmxlcy5tYXAoKG9ic2VydmFibGUpID0+IG9ic2VydmFibGUuc3Vic2NyaWJlKCkpO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzUmVkdXg8U3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzLCBSZXR1cm5UeXBlPihcbiAgYWN0aW9uRm5TcGVjczogU3BlYyxcbiAgcmVkdWNlcjogUmVkdWNlckZhY3Rvcnk8QWN0aW9uRm5zLCB1bmtub3duPixcbiAgZWZmZWN0czogRWZmZWN0c0ZhY3Rvcnk8QWN0aW9uRm5zPixcbiAgc3RvcmU6IHVua25vd25cbikge1xuICBjb25zdCByZWR1Y2VyUmVnaXN0cnk6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiBBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4pID0+IHZvaWRcbiAgPiA9IHt9O1xuICBjb25zdCBlZmZlY3RzUmVnaXN0cnk6IFJlY29yZDxzdHJpbmcsIFN1YmplY3Q8QWN0aW9uRm5QYXlsb2FkPHVua25vd24+PltdPiA9XG4gICAge307XG4gIGNvbnN0IGFjdGlvbnNNYXAgPSBjcmVhdGVQdWJsaWNBbmRBbGxBY3Rpb25zRm5zKFxuICAgIGFjdGlvbkZuU3BlY3MsXG4gICAgcmVkdWNlclJlZ2lzdHJ5LFxuICAgIGVmZmVjdHNSZWdpc3RyeSxcbiAgICBzdG9yZVxuICApO1xuICBjb25zdCBhY3Rpb25GbnMgPSBhY3Rpb25zTWFwLmFsbDtcbiAgY29uc3QgcHVibGljQWN0aW9uc0ZucyA9IGFjdGlvbnNNYXAucHVibGljcztcblxuICBmaWxsUmVkdWNlclJlZ2lzdHJ5KHJlZHVjZXIsIGFjdGlvbkZucywgcmVkdWNlclJlZ2lzdHJ5KTtcbiAgY29uc3QgZWZmZWN0T2JzZXJ2YWJsZXMgPSBmaWxsRWZmZWN0cyhlZmZlY3RzLCBhY3Rpb25GbnMsIGVmZmVjdHNSZWdpc3RyeSk7XG4gIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBzdGFydFN1YnNjcmlwdGlvbnMoZWZmZWN0T2JzZXJ2YWJsZXMpO1xuXG4gIHJldHVybiB7XG4gICAgbWV0aG9kczogcHVibGljQWN0aW9uc0ZucyBhcyBSZXR1cm5UeXBlLFxuICAgIHN1YnNjcmlwdGlvbnM6IHN1YnNjcmlwdGlvbnMsXG4gIH07XG59XG5cbi8qKlxuICogQHBhcmFtIHJlZHV4IHJlZHV4XG4gKlxuICogcHJvcGVydGllcyBkbyBub3Qgc3RhcnQgd2l0aCBgd2l0aGAgc2luY2UgdGhleSBhcmUgbm90IGV4dGVuc2lvbiBmdW5jdGlvbnMgb24gdGhlaXIgb3duLlxuICpcbiAqIG5vIGRlcGVuZGVuY3kgdG8gTmdSeFxuICpcbiAqIGFjdGlvbnMgYXJlIHBhc3NlZCB0byByZWR1Y2VyIGFuZCBlZmZlY3RzLCBidXQgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byB1c2Ugb3RoZXIgYWN0aW9ucy5cbiAqIGVmZmVjdHMgcHJvdmlkZSBmb3JBY3Rpb24gYW5kIGRvIG5vdCByZXR1cm4gYW55dGhpbmcuIHRoYXQgaXMgaW1wb3J0YW50IGJlY2F1c2UgZWZmZWN0cyBzaG91bGQgc3RheSBpbmFjY2Vzc2libGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhSZWR1eDxcbiAgU3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzLFxuICBJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgU3RhdGVBY3Rpb25GbnMgZXh0ZW5kcyBBY3Rpb25GbnNDcmVhdG9yPFNwZWM+ID0gQWN0aW9uRm5zQ3JlYXRvcjxTcGVjPixcbiAgUHVibGljU3RvcmVBY3Rpb25GbnMgZXh0ZW5kcyBQdWJsaWNBY3Rpb25GbnM8U3BlYz4gPSBQdWJsaWNBY3Rpb25GbnM8U3BlYz5cbj4ocmVkdXg6IHtcbiAgYWN0aW9uczogU3BlYztcbiAgcmVkdWNlcjogUmVkdWNlckZhY3Rvcnk8U3RhdGVBY3Rpb25GbnMsIFdyaXRhYmxlU3RhdGVTb3VyY2U8SW5wdXRbJ3N0YXRlJ10+PjtcbiAgZWZmZWN0czogRWZmZWN0c0ZhY3Rvcnk8U3RhdGVBY3Rpb25GbnM+O1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgSW5wdXQsXG4gIEVtcHR5RmVhdHVyZVJlc3VsdCAmIHsgbWV0aG9kczogUHVibGljU3RvcmVBY3Rpb25GbnMgfVxuPiB7XG4gIHJldHVybiAoc3RvcmUpID0+IHtcbiAgICBjb25zdCB7IG1ldGhvZHMgfSA9IHByb2Nlc3NSZWR1eDxTcGVjLCBQdWJsaWNTdG9yZUFjdGlvbkZucz4oXG4gICAgICByZWR1eC5hY3Rpb25zLFxuICAgICAgcmVkdXgucmVkdWNlciBhcyBSZWR1Y2VyRmFjdG9yeTxBY3Rpb25GbnMsIHVua25vd24+LFxuICAgICAgcmVkdXguZWZmZWN0cyBhcyBFZmZlY3RzRmFjdG9yeTxBY3Rpb25GbnM+LFxuICAgICAgc3RvcmVcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIG1ldGhvZHMsXG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -53,4 +53,4 @@ export function withStorageSync(configOrKey) {
|
|
|
53
53
|
},
|
|
54
54
|
}));
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdG9yYWdlLXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtc3RvcmFnZS1zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBRUwsUUFBUSxFQUNSLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsU0FBUyxFQUNULFdBQVcsR0FHWixNQUFNLGVBQWUsQ0FBQztBQUV2QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFVdEIsTUFBTSxlQUFlLEdBR047SUFDYixZQUFZLEVBQUUsSUFBSTtJQUNsQixlQUFlLEVBQUUsSUFBSTtJQUNyQixjQUFjLEVBQUUsSUFBSTtDQUNyQixDQUFDO0FBc0RGLE1BQU0sVUFBVSxlQUFlLENBSTdCLFdBQWdEO0lBRWhELE1BQU0sRUFDSixHQUFHLEVBQ0gsUUFBUSxHQUFHLElBQUksRUFDZixNQUFNLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFDaEMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQ2xCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksR0FDN0MsR0FBRyxPQUFPLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFFekUsT0FBTyxrQkFBa0IsQ0FDdkIsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUN0RCxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxDQUFDLElBQUksQ0FDVix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNGLE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUVqQyxPQUFPO1lBQ0w7O2VBRUc7WUFDSCxZQUFZO2dCQUNWLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUNEOztlQUVHO1lBQ0gsZUFBZTtnQkFDYixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztZQUNEOztlQUVHO1lBQ0gsY0FBYztnQkFDWixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBVSxDQUFDLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDO1FBQ1IsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBRXhCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ1YsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQTEFURk9STV9JRCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgZ2V0U3RhdGUsXG4gIHBhdGNoU3RhdGUsXG4gIHNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgd2l0aEhvb2tzLFxuICB3aXRoTWV0aG9kcyxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuXG5jb25zdCBOT09QID0gKCkgPT4ge307XG5cbnR5cGUgV2l0aFN0b3JhZ2VTeW5jRmVhdHVyZVJlc3VsdCA9IEVtcHR5RmVhdHVyZVJlc3VsdCAmIHtcbiAgbWV0aG9kczoge1xuICAgIGNsZWFyU3RvcmFnZSgpOiB2b2lkO1xuICAgIHJlYWRGcm9tU3RvcmFnZSgpOiB2b2lkO1xuICAgIHdyaXRlVG9TdG9yYWdlKCk6IHZvaWQ7XG4gIH07XG59O1xuXG5jb25zdCBTdG9yYWdlU3luY1N0dWI6IFBpY2s8XG4gIFdpdGhTdG9yYWdlU3luY0ZlYXR1cmVSZXN1bHQsXG4gICdtZXRob2RzJ1xuPlsnbWV0aG9kcyddID0ge1xuICBjbGVhclN0b3JhZ2U6IE5PT1AsXG4gIHJlYWRGcm9tU3RvcmFnZTogTk9PUCxcbiAgd3JpdGVUb1N0b3JhZ2U6IE5PT1AsXG59O1xuXG5leHBvcnQgdHlwZSBTeW5jQ29uZmlnPFN0YXRlPiA9IHtcbiAgLyoqXG4gICAqIFRoZSBrZXkgd2hpY2ggaXMgdXNlZCB0byBhY2Nlc3MgdGhlIHN0b3JhZ2UuXG4gICAqL1xuICBrZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyBpZiB0aGUgc3RvcmUgc2hvdWxkIHJlYWQgZnJvbSBzdG9yYWdlIG9uIGluaXQgYW5kIHdyaXRlIHRvIHN0b3JhZ2Ugb24gZXZlcnkgc3RhdGUgY2hhbmdlLlxuICAgKlxuICAgKiBgdHJ1ZWAgYnkgZGVmYXVsdFxuICAgKi9cbiAgYXV0b1N5bmM/OiBib29sZWFuO1xuICAvKipcbiAgICogRnVuY3Rpb24gdG8gc2VsZWN0IHRoYXQgcG9ydGlvbiBvZiB0aGUgc3RhdGUgd2hpY2ggc2hvdWxkIGJlIHN0b3JlZC5cbiAgICpcbiAgICogUmV0dXJucyB0aGUgd2hvbGUgc3RhdGUgb2JqZWN0IGJ5IGRlZmF1bHRcbiAgICovXG4gIHNlbGVjdD86IChzdGF0ZTogU3RhdGUpID0+IFBhcnRpYWw8U3RhdGU+O1xuICAvKipcbiAgICogRnVuY3Rpb24gdXNlZCB0byBwYXJzZSB0aGUgc3RhdGUgY29taW5nIGZyb20gc3RvcmFnZS5cbiAgICpcbiAgICogYEpTT04ucGFyc2UoKWAgYnkgZGVmYXVsdFxuICAgKi9cbiAgcGFyc2U/OiAoc3RhdGVTdHJpbmc6IHN0cmluZykgPT4gU3RhdGU7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB1c2VkIHRvIHRyYW5mb3JtIHRoZSBzdGF0ZSBpbnRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uLlxuICAgKlxuICAgKiBgSlNPTi5zdHJpbmdpZnkoKWAgYnkgZGVmYXVsdFxuICAgKi9cbiAgc3RyaW5naWZ5PzogKHN0YXRlOiBTdGF0ZSkgPT4gc3RyaW5nO1xuICAvKipcbiAgICogRmFjdG9yeSBmdW5jdGlvbiB1c2VkIHRvIHNlbGVjdCB0aGUgc3RvcmFnZS5cbiAgICpcbiAgICogYGxvY2Fsc3RvcmFnZWAgYnkgZGVmYXVsdFxuICAgKi9cbiAgc3RvcmFnZT86ICgpID0+IFN0b3JhZ2U7XG59O1xuXG4vKipcbiAqIEVuYWJsZXMgc3RvcmUgc3luY2hyb25pemF0aW9uIHdpdGggc3RvcmFnZS5cbiAqXG4gKiBPbmx5IHdvcmtzIG9uIGJyb3dzZXIgcGxhdGZvcm0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoU3RvcmFnZVN5bmM8XG4gIFN0YXRlIGV4dGVuZHMgb2JqZWN0LFxuICBJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihrZXk6IHN0cmluZyk6IFNpZ25hbFN0b3JlRmVhdHVyZTxJbnB1dCwgV2l0aFN0b3JhZ2VTeW5jRmVhdHVyZVJlc3VsdD47XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0b3JhZ2VTeW5jPFxuICBTdGF0ZSBleHRlbmRzIG9iamVjdCxcbiAgSW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZzogU3luY0NvbmZpZzxJbnB1dFsnc3RhdGUnXT5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxJbnB1dCwgV2l0aFN0b3JhZ2VTeW5jRmVhdHVyZVJlc3VsdD47XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0b3JhZ2VTeW5jPFxuICBTdGF0ZSBleHRlbmRzIG9iamVjdCxcbiAgSW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZ09yS2V5OiBTeW5jQ29uZmlnPElucHV0WydzdGF0ZSddPiB8IHN0cmluZ1xuKTogU2lnbmFsU3RvcmVGZWF0dXJlPElucHV0LCBXaXRoU3RvcmFnZVN5bmNGZWF0dXJlUmVzdWx0PiB7XG4gIGNvbnN0IHtcbiAgICBrZXksXG4gICAgYXV0b1N5bmMgPSB0cnVlLFxuICAgIHNlbGVjdCA9IChzdGF0ZTogU3RhdGUpID0+IHN0YXRlLFxuICAgIHBhcnNlID0gSlNPTi5wYXJzZSxcbiAgICBzdHJpbmdpZnkgPSBKU09OLnN0cmluZ2lmeSxcbiAgICBzdG9yYWdlOiBzdG9yYWdlRmFjdG9yeSA9ICgpID0+IGxvY2FsU3RvcmFnZSxcbiAgfSA9IHR5cGVvZiBjb25maWdPcktleSA9PT0gJ3N0cmluZycgPyB7IGtleTogY29uZmlnT3JLZXkgfSA6IGNvbmZpZ09yS2V5O1xuXG4gIHJldHVybiBzaWduYWxTdG9yZUZlYXR1cmUoXG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlLCBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKSkgPT4ge1xuICAgICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIocGxhdGZvcm1JZCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGAnd2l0aFN0b3JhZ2VTeW5jJyBwcm92aWRlcyBub24tZnVuY3Rpb25hbCBpbXBsZW1lbnRhdGlvbiBkdWUgdG8gc2VydmVyLXNpZGUgZXhlY3V0aW9uYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gU3RvcmFnZVN5bmNTdHViO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzdG9yYWdlID0gc3RvcmFnZUZhY3RvcnkoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlbW92ZXMgdGhlIGl0ZW0gc3RvcmVkIGluIHN0b3JhZ2UuXG4gICAgICAgICAqL1xuICAgICAgICBjbGVhclN0b3JhZ2UoKTogdm9pZCB7XG4gICAgICAgICAgc3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWFkcyBpdGVtIGZyb20gc3RvcmFnZSBhbmQgcGF0Y2hlcyB0aGUgc3RhdGUuXG4gICAgICAgICAqL1xuICAgICAgICByZWFkRnJvbVN0b3JhZ2UoKTogdm9pZCB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVTdHJpbmcgPSBzdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgICBpZiAoc3RhdGVTdHJpbmcpIHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHBhcnNlKHN0YXRlU3RyaW5nKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAvKipcbiAgICAgICAgICogV3JpdGVzIHNlbGVjdGVkIHBvcnRpb24gdG8gc3RvcmFnZS5cbiAgICAgICAgICovXG4gICAgICAgIHdyaXRlVG9TdG9yYWdlKCk6IHZvaWQge1xuICAgICAgICAgIGNvbnN0IHNsaWNlZFN0YXRlID0gc2VsZWN0KGdldFN0YXRlKHN0b3JlKSBhcyBTdGF0ZSk7XG4gICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKGtleSwgc3RyaW5naWZ5KHNsaWNlZFN0YXRlKSk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pLFxuICAgIHdpdGhIb29rcyh7XG4gICAgICBvbkluaXQoc3RvcmUsIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGF1dG9TeW5jKSB7XG4gICAgICAgICAgc3RvcmUucmVhZEZyb21TdG9yYWdlKCk7XG5cbiAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgc3RvcmUud3JpdGVUb1N0b3JhZ2UoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KVxuICApO1xufVxuIl19
|