@ngrx/signals 18.1.1 → 19.0.0-rc.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.
Files changed (69) hide show
  1. package/entities/src/index.d.ts +1 -1
  2. package/entities/src/models.d.ts +3 -3
  3. package/entities/src/with-entities.d.ts +4 -4
  4. package/fesm2022/ngrx-signals-entities.mjs.map +1 -1
  5. package/fesm2022/ngrx-signals-rxjs-interop.mjs +5 -6
  6. package/fesm2022/ngrx-signals-rxjs-interop.mjs.map +1 -1
  7. package/fesm2022/ngrx-signals.mjs +120 -20
  8. package/fesm2022/ngrx-signals.mjs.map +1 -1
  9. package/migrations/18_0_0-rc_3-protected-state/index.js +2 -9
  10. package/migrations/18_0_0-rc_3-protected-state/index.js.map +1 -1
  11. package/migrations/19_0_0-rc_0-props/index.js +170 -0
  12. package/migrations/19_0_0-rc_0-props/index.js.map +1 -0
  13. package/migrations/migration.json +5 -0
  14. package/package.json +2 -8
  15. package/rxjs-interop/src/rx-method.d.ts +5 -2
  16. package/schematics-core/utility/libs-version.js +1 -1
  17. package/schematics-core/utility/libs-version.js.map +1 -1
  18. package/schematics-core/utility/visitors.js +87 -10
  19. package/schematics-core/utility/visitors.js.map +1 -1
  20. package/src/deep-freeze.d.ts +2 -0
  21. package/src/index.d.ts +2 -0
  22. package/src/signal-method.d.ts +8 -0
  23. package/src/signal-store-feature.d.ts +1 -1
  24. package/src/signal-store-models.d.ts +5 -5
  25. package/src/signal-store.d.ts +1 -1
  26. package/src/ts-helpers.d.ts +3 -1
  27. package/src/with-computed.d.ts +2 -2
  28. package/src/with-hooks.d.ts +2 -2
  29. package/src/with-methods.d.ts +2 -2
  30. package/src/with-props.d.ts +8 -0
  31. package/src/with-state.d.ts +2 -2
  32. package/esm2022/entities/index.mjs +0 -2
  33. package/esm2022/entities/ngrx-signals-entities.mjs +0 -5
  34. package/esm2022/entities/src/entity-config.mjs +0 -4
  35. package/esm2022/entities/src/helpers.mjs +0 -121
  36. package/esm2022/entities/src/index.mjs +0 -14
  37. package/esm2022/entities/src/models.mjs +0 -7
  38. package/esm2022/entities/src/updaters/add-entities.mjs +0 -11
  39. package/esm2022/entities/src/updaters/add-entity.mjs +0 -11
  40. package/esm2022/entities/src/updaters/remove-all-entities.mjs +0 -9
  41. package/esm2022/entities/src/updaters/remove-entities.mjs +0 -10
  42. package/esm2022/entities/src/updaters/remove-entity.mjs +0 -10
  43. package/esm2022/entities/src/updaters/set-all-entities.mjs +0 -14
  44. package/esm2022/entities/src/updaters/set-entities.mjs +0 -11
  45. package/esm2022/entities/src/updaters/set-entity.mjs +0 -11
  46. package/esm2022/entities/src/updaters/update-all-entities.mjs +0 -11
  47. package/esm2022/entities/src/updaters/update-entities.mjs +0 -12
  48. package/esm2022/entities/src/updaters/update-entity.mjs +0 -11
  49. package/esm2022/entities/src/with-entities.mjs +0 -17
  50. package/esm2022/index.mjs +0 -2
  51. package/esm2022/ngrx-signals.mjs +0 -5
  52. package/esm2022/rxjs-interop/index.mjs +0 -2
  53. package/esm2022/rxjs-interop/ngrx-signals-rxjs-interop.mjs +0 -5
  54. package/esm2022/rxjs-interop/src/index.mjs +0 -2
  55. package/esm2022/rxjs-interop/src/rx-method.mjs +0 -49
  56. package/esm2022/src/deep-computed.mjs +0 -6
  57. package/esm2022/src/deep-signal.mjs +0 -25
  58. package/esm2022/src/index.mjs +0 -10
  59. package/esm2022/src/signal-state.mjs +0 -12
  60. package/esm2022/src/signal-store-assertions.mjs +0 -15
  61. package/esm2022/src/signal-store-feature.mjs +0 -10
  62. package/esm2022/src/signal-store-models.mjs +0 -2
  63. package/esm2022/src/signal-store.mjs +0 -45
  64. package/esm2022/src/state-source.mjs +0 -44
  65. package/esm2022/src/ts-helpers.mjs +0 -2
  66. package/esm2022/src/with-computed.mjs +0 -15
  67. package/esm2022/src/with-hooks.mjs +0 -34
  68. package/esm2022/src/with-methods.mjs +0 -18
  69. package/esm2022/src/with-state.mjs +0 -24
@@ -1,12 +0,0 @@
1
- import { signal } from '@angular/core';
2
- import { STATE_SOURCE } from './state-source';
3
- import { toDeepSignal } from './deep-signal';
4
- export function signalState(initialState) {
5
- const stateSource = signal(initialState);
6
- const signalState = toDeepSignal(stateSource.asReadonly());
7
- Object.defineProperty(signalState, STATE_SOURCE, {
8
- value: stateSource,
9
- });
10
- return signalState;
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLekQsTUFBTSxVQUFVLFdBQVcsQ0FDekIsWUFBbUI7SUFFbkIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFlBQXFCLENBQUMsQ0FBQztJQUNsRCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFO1FBQy9DLEtBQUssRUFBRSxXQUFXO0tBQ25CLENBQUMsQ0FBQztJQUVILE9BQU8sV0FBaUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTVEFURV9TT1VSQ0UsIFdyaXRhYmxlU3RhdGVTb3VyY2UgfSBmcm9tICcuL3N0YXRlLXNvdXJjZSc7XG5pbXBvcnQgeyBEZWVwU2lnbmFsLCB0b0RlZXBTaWduYWwgfSBmcm9tICcuL2RlZXAtc2lnbmFsJztcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RhdGU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0gRGVlcFNpZ25hbDxTdGF0ZT4gJlxuICBXcml0YWJsZVN0YXRlU291cmNlPFN0YXRlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgaW5pdGlhbFN0YXRlOiBTdGF0ZVxuKTogU2lnbmFsU3RhdGU8U3RhdGU+IHtcbiAgY29uc3Qgc3RhdGVTb3VyY2UgPSBzaWduYWwoaW5pdGlhbFN0YXRlIGFzIFN0YXRlKTtcbiAgY29uc3Qgc2lnbmFsU3RhdGUgPSB0b0RlZXBTaWduYWwoc3RhdGVTb3VyY2UuYXNSZWFkb25seSgpKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNpZ25hbFN0YXRlLCBTVEFURV9TT1VSQ0UsIHtcbiAgICB2YWx1ZTogc3RhdGVTb3VyY2UsXG4gIH0pO1xuXG4gIHJldHVybiBzaWduYWxTdGF0ZSBhcyBTaWduYWxTdGF0ZTxTdGF0ZT47XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- export function assertUniqueStoreMembers(store, newMemberKeys) {
2
- if (!ngDevMode) {
3
- return;
4
- }
5
- const storeMembers = {
6
- ...store.stateSignals,
7
- ...store.computedSignals,
8
- ...store.methods,
9
- };
10
- const overriddenKeys = Object.keys(storeMembers).filter((memberKey) => newMemberKeys.includes(memberKey));
11
- if (overriddenKeys.length > 0) {
12
- console.warn('@ngrx/signals: SignalStore members cannot be overridden.', 'Trying to override:', overriddenKeys.join(', '));
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLWFzc2VydGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL3NpZ25hbC1zdG9yZS1hc3NlcnRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsS0FBdUIsRUFDdkIsYUFBdUI7SUFFdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRztRQUNuQixHQUFHLEtBQUssQ0FBQyxZQUFZO1FBQ3JCLEdBQUcsS0FBSyxDQUFDLGVBQWU7UUFDeEIsR0FBRyxLQUFLLENBQUMsT0FBTztLQUNqQixDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNwRSxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUNsQyxDQUFDO0lBRUYsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsMERBQTBELEVBQzFELHFCQUFxQixFQUNyQixjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMxQixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbm5lclNpZ25hbFN0b3JlIH0gZnJvbSAnLi9zaWduYWwtc3RvcmUtbW9kZWxzJztcblxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IHVua25vd247XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRVbmlxdWVTdG9yZU1lbWJlcnMoXG4gIHN0b3JlOiBJbm5lclNpZ25hbFN0b3JlLFxuICBuZXdNZW1iZXJLZXlzOiBzdHJpbmdbXVxuKTogdm9pZCB7XG4gIGlmICghbmdEZXZNb2RlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc3RvcmVNZW1iZXJzID0ge1xuICAgIC4uLnN0b3JlLnN0YXRlU2lnbmFscyxcbiAgICAuLi5zdG9yZS5jb21wdXRlZFNpZ25hbHMsXG4gICAgLi4uc3RvcmUubWV0aG9kcyxcbiAgfTtcbiAgY29uc3Qgb3ZlcnJpZGRlbktleXMgPSBPYmplY3Qua2V5cyhzdG9yZU1lbWJlcnMpLmZpbHRlcigobWVtYmVyS2V5KSA9PlxuICAgIG5ld01lbWJlcktleXMuaW5jbHVkZXMobWVtYmVyS2V5KVxuICApO1xuXG4gIGlmIChvdmVycmlkZGVuS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ0BuZ3J4L3NpZ25hbHM6IFNpZ25hbFN0b3JlIG1lbWJlcnMgY2Fubm90IGJlIG92ZXJyaWRkZW4uJyxcbiAgICAgICdUcnlpbmcgdG8gb3ZlcnJpZGU6JyxcbiAgICAgIG92ZXJyaWRkZW5LZXlzLmpvaW4oJywgJylcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,10 +0,0 @@
1
- export function signalStoreFeature(featureOrInput, ...restFeatures) {
2
- const features = typeof featureOrInput === 'function'
3
- ? [featureOrInput, ...restFeatures]
4
- : restFeatures;
5
- return (inputStore) => features.reduce((store, feature) => feature(store), inputStore);
6
- }
7
- export function type() {
8
- return undefined;
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLWZlYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL3NpZ25hbC1zdG9yZS1mZWF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtYQSxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLGNBQXNFLEVBQ3RFLEdBQUcsWUFBa0M7SUFFckMsTUFBTSxRQUFRLEdBQ1osT0FBTyxjQUFjLEtBQUssVUFBVTtRQUNsQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDbkMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUVuQixPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDcEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxVQUFVLElBQUk7SUFDbEIsT0FBTyxTQUFjLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVtcHR5RmVhdHVyZVJlc3VsdCxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gJy4vdHMtaGVscGVycyc7XG5cbnR5cGUgUHJldHRpZnlGZWF0dXJlUmVzdWx0PFJlc3VsdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPSBQcmV0dGlmeTx7XG4gIHN0YXRlOiBQcmV0dGlmeTxSZXN1bHRbJ3N0YXRlJ10+O1xuICBjb21wdXRlZDogUHJldHRpZnk8UmVzdWx0Wydjb21wdXRlZCddPjtcbiAgbWV0aG9kczogUHJldHRpZnk8UmVzdWx0WydtZXRob2RzJ10+O1xufT47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZUZlYXR1cmU8RjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMiAmIEYzPj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIEVtcHR5RmVhdHVyZVJlc3VsdCxcbiAgUHJldHRpZnlGZWF0dXJlUmVzdWx0PEYxICYgRjIgJiBGMyAmIEY0PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZUZlYXR1cmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMiAmIEYzICYgRjQgJiBGNT5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZUZlYXR1cmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjc+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PlxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIFByZXR0aWZ5RmVhdHVyZVJlc3VsdDxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZUZlYXR1cmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PlxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIFByZXR0aWZ5RmVhdHVyZVJlc3VsdDxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjk+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPlxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIFByZXR0aWZ5RmVhdHVyZVJlc3VsdDxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTA+XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCBleHRlbmRzIFBhcnRpYWw8U2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PixcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGlucHV0OiBJbnB1dCxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQgJiBOb0luZmVyPElucHV0PiwgRjE+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8UHJldHRpZnk8RW1wdHlGZWF0dXJlUmVzdWx0ICYgSW5wdXQ+LCBGMT47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCBleHRlbmRzIFBhcnRpYWw8U2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PixcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBpbnB1dDogSW5wdXQsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0ICYgTm9JbmZlcjxJbnB1dD4sIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxLCBGMj5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgUHJldHRpZnk8RW1wdHlGZWF0dXJlUmVzdWx0ICYgSW5wdXQ+LFxuICBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCBleHRlbmRzIFBhcnRpYWw8U2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PixcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgaW5wdXQ6IElucHV0LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCAmIE5vSW5mZXI8SW5wdXQ+LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiwgRjM+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIFByZXR0aWZ5PEVtcHR5RmVhdHVyZVJlc3VsdCAmIElucHV0PixcbiAgUHJldHRpZnlGZWF0dXJlUmVzdWx0PEYxICYgRjIgJiBGMz5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCBleHRlbmRzIFBhcnRpYWw8U2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PixcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIElucHV0OiBJbnB1dCxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQgJiBOb0luZmVyPElucHV0PiwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMywgRjQ+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIFByZXR0aWZ5PEVtcHR5RmVhdHVyZVJlc3VsdCAmIElucHV0PixcbiAgUHJldHRpZnlGZWF0dXJlUmVzdWx0PEYxICYgRjIgJiBGMyAmIEY0PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZUZlYXR1cmU8XG4gIElucHV0IGV4dGVuZHMgUGFydGlhbDxTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+LFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGlucHV0OiBJbnB1dCxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQgJiBOb0luZmVyPElucHV0PiwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQsIEY1PlxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBQcmV0dGlmeTxFbXB0eUZlYXR1cmVSZXN1bHQgJiBJbnB1dD4sXG4gIFByZXR0aWZ5RmVhdHVyZVJlc3VsdDxGMSAmIEYyICYgRjMgJiBGNCAmIEY1PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZUZlYXR1cmU8XG4gIElucHV0IGV4dGVuZHMgUGFydGlhbDxTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+LFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBpbnB1dDogSW5wdXQsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0ICYgTm9JbmZlcjxJbnB1dD4sIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgUHJldHRpZnk8RW1wdHlGZWF0dXJlUmVzdWx0ICYgSW5wdXQ+LFxuICBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZUZlYXR1cmU8XG4gIElucHV0IGV4dGVuZHMgUGFydGlhbDxTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+LFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgaW5wdXQ6IElucHV0LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCAmIE5vSW5mZXI8SW5wdXQ+LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgUHJldHRpZnk8RW1wdHlGZWF0dXJlUmVzdWx0ICYgSW5wdXQ+LFxuICBQcmV0dGlmeUZlYXR1cmVSZXN1bHQ8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjc+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgSW5wdXQgZXh0ZW5kcyBQYXJ0aWFsPFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4sXG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgaW5wdXQ6IElucHV0LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCAmIE5vSW5mZXI8SW5wdXQ+LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIFByZXR0aWZ5PEVtcHR5RmVhdHVyZVJlc3VsdCAmIElucHV0PixcbiAgUHJldHRpZnlGZWF0dXJlUmVzdWx0PEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjg+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgSW5wdXQgZXh0ZW5kcyBQYXJ0aWFsPFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4sXG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGlucHV0OiBJbnB1dCxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQgJiBOb0luZmVyPElucHV0PiwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsXG4gICAgRjlcbiAgPlxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBQcmV0dGlmeTxFbXB0eUZlYXR1cmVSZXN1bHQgJiBJbnB1dD4sXG4gIFByZXR0aWZ5RmVhdHVyZVJlc3VsdDxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjk+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgSW5wdXQgZXh0ZW5kcyBQYXJ0aWFsPFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4sXG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgaW5wdXQ6IElucHV0LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCAmIE5vSW5mZXI8SW5wdXQ+LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8Tm9JbmZlcjxJbnB1dD4gJiBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIE5vSW5mZXI8SW5wdXQ+ICYgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCxcbiAgICBGOVxuICA+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBOb0luZmVyPElucHV0PiAmIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSxcbiAgICBGMTBcbiAgPlxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBQcmV0dGlmeTxFbXB0eUZlYXR1cmVSZXN1bHQgJiBJbnB1dD4sXG4gIFByZXR0aWZ5RmVhdHVyZVJlc3VsdDxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTA+XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICBmZWF0dXJlT3JJbnB1dDogU2lnbmFsU3RvcmVGZWF0dXJlIHwgUGFydGlhbDxTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+LFxuICAuLi5yZXN0RmVhdHVyZXM6IFNpZ25hbFN0b3JlRmVhdHVyZVtdXG4pOiBTaWduYWxTdG9yZUZlYXR1cmUge1xuICBjb25zdCBmZWF0dXJlcyA9XG4gICAgdHlwZW9mIGZlYXR1cmVPcklucHV0ID09PSAnZnVuY3Rpb24nXG4gICAgICA/IFtmZWF0dXJlT3JJbnB1dCwgLi4ucmVzdEZlYXR1cmVzXVxuICAgICAgOiByZXN0RmVhdHVyZXM7XG5cbiAgcmV0dXJuIChpbnB1dFN0b3JlKSA9PlxuICAgIGZlYXR1cmVzLnJlZHVjZSgoc3RvcmUsIGZlYXR1cmUpID0+IGZlYXR1cmUoc3RvcmUpLCBpbnB1dFN0b3JlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGU8VD4oKTogVCB7XG4gIHJldHVybiB1bmRlZmluZWQgYXMgVDtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvc2lnbmFsLXN0b3JlLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5pbXBvcnQgeyBXcml0YWJsZVN0YXRlU291cmNlIH0gZnJvbSAnLi9zdGF0ZS1zb3VyY2UnO1xuaW1wb3J0IHsgSXNLbm93blJlY29yZCwgUHJldHRpZnkgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBTdGF0ZVNpZ25hbHM8U3RhdGU+ID0gSXNLbm93blJlY29yZDxQcmV0dGlmeTxTdGF0ZT4+IGV4dGVuZHMgdHJ1ZVxuICA/IHtcbiAgICAgIFtLZXkgaW4ga2V5b2YgU3RhdGVdOiBJc0tub3duUmVjb3JkPFN0YXRlW0tleV0+IGV4dGVuZHMgdHJ1ZVxuICAgICAgICA/IERlZXBTaWduYWw8U3RhdGVbS2V5XT5cbiAgICAgICAgOiBTaWduYWw8U3RhdGVbS2V5XT47XG4gICAgfVxuICA6IHt9O1xuXG5leHBvcnQgdHlwZSBTaWduYWxzRGljdGlvbmFyeSA9IFJlY29yZDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj47XG5cbmV4cG9ydCB0eXBlIE1ldGhvZHNEaWN0aW9uYXJ5ID0gUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZUhvb2tzID0ge1xuICBvbkluaXQ/OiAoKSA9PiB2b2lkO1xuICBvbkRlc3Ryb3k/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgSW5uZXJTaWduYWxTdG9yZTxcbiAgU3RhdGUgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsXG4gIENvbXB1dGVkU2lnbmFscyBleHRlbmRzIFNpZ25hbHNEaWN0aW9uYXJ5ID0gU2lnbmFsc0RpY3Rpb25hcnksXG4gIE1ldGhvZHMgZXh0ZW5kcyBNZXRob2RzRGljdGlvbmFyeSA9IE1ldGhvZHNEaWN0aW9uYXJ5XG4+ID0ge1xuICBzdGF0ZVNpZ25hbHM6IFN0YXRlU2lnbmFsczxTdGF0ZT47XG4gIGNvbXB1dGVkU2lnbmFsczogQ29tcHV0ZWRTaWduYWxzO1xuICBtZXRob2RzOiBNZXRob2RzO1xuICBob29rczogU2lnbmFsU3RvcmVIb29rcztcbn0gJiBXcml0YWJsZVN0YXRlU291cmNlPFN0YXRlPjtcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0ge1xuICBzdGF0ZTogb2JqZWN0O1xuICBjb21wdXRlZDogU2lnbmFsc0RpY3Rpb25hcnk7XG4gIG1ldGhvZHM6IE1ldGhvZHNEaWN0aW9uYXJ5O1xufTtcblxuZXhwb3J0IHR5cGUgRW1wdHlGZWF0dXJlUmVzdWx0ID0geyBzdGF0ZToge307IGNvbXB1dGVkOiB7fTsgbWV0aG9kczoge30gfTtcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgT3V0cHV0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+ID0gKFxuICBzdG9yZTogSW5uZXJTaWduYWxTdG9yZTxJbnB1dFsnc3RhdGUnXSwgSW5wdXRbJ2NvbXB1dGVkJ10sIElucHV0WydtZXRob2RzJ10+XG4pID0+IElubmVyU2lnbmFsU3RvcmU8T3V0cHV0WydzdGF0ZSddLCBPdXRwdXRbJ2NvbXB1dGVkJ10sIE91dHB1dFsnbWV0aG9kcyddPjtcbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { DestroyRef, inject, Injectable, signal } from '@angular/core';
2
- import { STATE_SOURCE } from './state-source';
3
- import * as i0 from "@angular/core";
4
- export function signalStore(...args) {
5
- const signalStoreArgs = [...args];
6
- const config = typeof signalStoreArgs[0] === 'function'
7
- ? {}
8
- : signalStoreArgs.shift();
9
- const features = signalStoreArgs;
10
- class SignalStore {
11
- constructor() {
12
- const innerStore = features.reduce((store, feature) => feature(store), getInitialInnerStore());
13
- const { stateSignals, computedSignals, methods, hooks } = innerStore;
14
- const storeMembers = { ...stateSignals, ...computedSignals, ...methods };
15
- this[STATE_SOURCE] = innerStore[STATE_SOURCE];
16
- for (const key in storeMembers) {
17
- this[key] = storeMembers[key];
18
- }
19
- const { onInit, onDestroy } = hooks;
20
- if (onInit) {
21
- onInit();
22
- }
23
- if (onDestroy) {
24
- inject(DestroyRef).onDestroy(onDestroy);
25
- }
26
- }
27
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalStore, providedIn: config.providedIn || null });
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SignalStore, decorators: [{
31
- type: Injectable,
32
- args: [{ providedIn: config.providedIn || null }]
33
- }], ctorParameters: () => [] });
34
- return SignalStore;
35
- }
36
- export function getInitialInnerStore() {
37
- return {
38
- [STATE_SOURCE]: signal({}),
39
- stateSignals: {},
40
- computedSignals: {},
41
- methods: {},
42
- hooks: {},
43
- };
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGdCQUFnQixDQUFDOztBQXl6Q2hGLE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQUcsSUFBeUU7SUFFNUUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUNWLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVU7UUFDdEMsQ0FBQyxDQUFDLEVBQUU7UUFDSixDQUFDLENBQUUsZUFBZSxDQUFDLEtBQUssRUFBd0IsQ0FBQztJQUNyRCxNQUFNLFFBQVEsR0FBRyxlQUF1QyxDQUFDO0lBRXpELE1BQ00sV0FBVztRQUNmO1lBQ0UsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQ2xDLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7WUFDRixNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQ3JFLE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUV4RSxJQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRXZELEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzlCLElBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBRXBDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxFQUFFLENBQUM7WUFDWCxDQUFDO1lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDOzhIQXhCRyxXQUFXO2tJQUFYLFdBQVcsY0FEUyxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUk7OytGQUM3QyxXQUFXO3NCQURoQixVQUFVO3VCQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFOztJQTRCckQsT0FBTyxXQUFXLENBQUM7Q0FDcEI7QUFFRCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU87UUFDTCxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsZUFBZSxFQUFFLEVBQUU7UUFDbkIsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNUQVRFX1NPVVJDRSwgU3RhdGVTb3VyY2UsIFdyaXRhYmxlU3RhdGVTb3VyY2UgfSBmcm9tICcuL3N0YXRlLXNvdXJjZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIElubmVyU2lnbmFsU3RvcmUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBTdGF0ZVNpZ25hbHMsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5pbXBvcnQgeyBPbWl0UHJpdmF0ZSwgUHJldHRpZnkgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG50eXBlIFNpZ25hbFN0b3JlQ29uZmlnID0geyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IGJvb2xlYW4gfTtcblxudHlwZSBTaWduYWxTdG9yZU1lbWJlcnM8RmVhdHVyZVJlc3VsdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPVxuICBQcmV0dGlmeTxcbiAgICBPbWl0UHJpdmF0ZTxcbiAgICAgIFN0YXRlU2lnbmFsczxGZWF0dXJlUmVzdWx0WydzdGF0ZSddPiAmXG4gICAgICAgIEZlYXR1cmVSZXN1bHRbJ2NvbXB1dGVkJ10gJlxuICAgICAgICBGZWF0dXJlUmVzdWx0WydtZXRob2RzJ11cbiAgICA+XG4gID47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxGMT4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxGMVsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjNcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjhcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOVxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTBcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExXG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLCBGMTE+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMlxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyICZcbiAgICBGMTNcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExICZcbiAgICBGMTIgJlxuICAgIEYxMyAmXG4gICAgRjE0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID4sXG4gIGYxMzogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMixcbiAgICBGMTNcbiAgPixcbiAgZjE0OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzLFxuICAgIEYxNFxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTQgJlxuICAgIEYxNVxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+LFxuICBmMTM6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIsXG4gICAgRjEzXG4gID4sXG4gIGYxNDogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyxcbiAgICBGMTRcbiAgPixcbiAgZjE1OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzICYgRjE0LFxuICAgIEYxNVxuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8RjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxGMT4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxGMVsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGM1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IHRydWUgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGN1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlPzogdHJ1ZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjhcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZT86IHRydWUgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsIEYxMT5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICZcbiAgICBGMiAmXG4gICAgRjMgJlxuICAgIEY0ICZcbiAgICBGNSAmXG4gICAgRjYgJlxuICAgIEY3ICZcbiAgICBGOCAmXG4gICAgRjkgJlxuICAgIEYxMCAmXG4gICAgRjExICZcbiAgICBGMTIgJlxuICAgIEYxMyAmXG4gICAgRjE0XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+LFxuICBmMTQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMsXG4gICAgRjE0XG4gID5cbik6IFR5cGU8U2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmXG4gICAgRjIgJlxuICAgIEYzICZcbiAgICBGNCAmXG4gICAgRjUgJlxuICAgIEY2ICZcbiAgICBGNyAmXG4gICAgRjggJlxuICAgIEY5ICZcbiAgICBGMTAgJlxuICAgIEYxMSAmXG4gICAgRjEyICZcbiAgICBGMTMgJlxuICAgIEYxNCAmXG4gICAgRjE1XG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU/OiB0cnVlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+LFxuICBmMTQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMsXG4gICAgRjE0XG4gID4sXG4gIGYxNTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyAmIEYxNCxcbiAgICBGMTVcbiAgPlxuKTogVHlwZTxTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0PihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8RjE+ICZcbiAgICBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPEYxWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjNcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjVcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgUiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGN1xuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOFxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOVxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTFcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCwgRjExPlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMlxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY4IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEwIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzXG4+KFxuICBjb25maWc6IHsgcHJvdmlkZWRJbj86ICdyb290JzsgcHJvdGVjdGVkU3RhdGU6IGZhbHNlIH0sXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIsIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMsIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUsIEY2PixcbiAgZjc6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYsIEY3PixcbiAgZjg6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNywgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjgsIEY5PixcbiAgZjEwOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5LCBGMTA+LFxuICBmMTE6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAsXG4gICAgRjExXG4gID4sXG4gIGYxMjogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSxcbiAgICBGMTJcbiAgPixcbiAgZjEzOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyLFxuICAgIEYxM1xuICA+XG4pOiBUeXBlPFxuICBTaWduYWxTdG9yZU1lbWJlcnM8Uj4gJiBXcml0YWJsZVN0YXRlU291cmNlPFByZXR0aWZ5PE9taXRQcml2YXRlPFJbJ3N0YXRlJ10+Pj5cbj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjExIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTRcbj4oXG4gIGNvbmZpZzogeyBwcm92aWRlZEluPzogJ3Jvb3QnOyBwcm90ZWN0ZWRTdGF0ZTogZmFsc2UgfSxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiwgRjM+LFxuICBmNDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMywgRjQ+LFxuICBmNTogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSwgRjY+LFxuICBmNzogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiwgRjc+LFxuICBmODogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3LCBGOD4sXG4gIGY5OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCwgRjk+LFxuICBmMTA6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjksIEYxMD4sXG4gIGYxMTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCxcbiAgICBGMTFcbiAgPixcbiAgZjEyOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExLFxuICAgIEYxMlxuICA+LFxuICBmMTM6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIsXG4gICAgRjEzXG4gID4sXG4gIGYxNDogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMiAmIEYxMyxcbiAgICBGMTRcbiAgPlxuKTogVHlwZTxcbiAgU2lnbmFsU3RvcmVNZW1iZXJzPFI+ICYgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxPbWl0UHJpdmF0ZTxSWydzdGF0ZSddPj4+XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY5IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTAgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjEyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMTMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYxNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjE1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBSIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gRjEgJlxuICAgIEYyICZcbiAgICBGMyAmXG4gICAgRjQgJlxuICAgIEY1ICZcbiAgICBGNiAmXG4gICAgRjcgJlxuICAgIEY4ICZcbiAgICBGOSAmXG4gICAgRjEwICZcbiAgICBGMTEgJlxuICAgIEYxMiAmXG4gICAgRjEzICZcbiAgICBGMTQgJlxuICAgIEYxNVxuPihcbiAgY29uZmlnOiB7IHByb3ZpZGVkSW4/OiAncm9vdCc7IHByb3RlY3RlZFN0YXRlOiBmYWxzZSB9LFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyLCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzLCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQsIEY1PixcbiAgZjY6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8RjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcsIEY4PixcbiAgZjk6IFNpZ25hbFN0b3JlRmVhdHVyZTxGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4LCBGOT4sXG4gIGYxMDogU2lnbmFsU3RvcmVGZWF0dXJlPEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSwgRjEwPixcbiAgZjExOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwLFxuICAgIEYxMVxuICA+LFxuICBmMTI6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEsXG4gICAgRjEyXG4gID4sXG4gIGYxMzogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIEYxICYgRjIgJiBGMyAmIEY0ICYgRjUgJiBGNiAmIEY3ICYgRjggJiBGOSAmIEYxMCAmIEYxMSAmIEYxMixcbiAgICBGMTNcbiAgPixcbiAgZjE0OiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAgRjEgJiBGMiAmIEYzICYgRjQgJiBGNSAmIEY2ICYgRjcgJiBGOCAmIEY5ICYgRjEwICYgRjExICYgRjEyICYgRjEzLFxuICAgIEYxNFxuICA+LFxuICBmMTU6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgICBGMSAmIEYyICYgRjMgJiBGNCAmIEY1ICYgRjYgJiBGNyAmIEY4ICYgRjkgJiBGMTAgJiBGMTEgJiBGMTIgJiBGMTMgJiBGMTQsXG4gICAgRjE1XG4gID5cbik6IFR5cGU8XG4gIFNpZ25hbFN0b3JlTWVtYmVyczxSPiAmIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8T21pdFByaXZhdGU8Ulsnc3RhdGUnXT4+PlxuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlKFxuICAuLi5hcmdzOiBbU2lnbmFsU3RvcmVDb25maWcsIC4uLlNpZ25hbFN0b3JlRmVhdHVyZVtdXSB8IFNpZ25hbFN0b3JlRmVhdHVyZVtdXG4pOiBUeXBlPFNpZ25hbFN0b3JlTWVtYmVyczxhbnk+PiB7XG4gIGNvbnN0IHNpZ25hbFN0b3JlQXJncyA9IFsuLi5hcmdzXTtcblxuICBjb25zdCBjb25maWcgPVxuICAgIHR5cGVvZiBzaWduYWxTdG9yZUFyZ3NbMF0gPT09ICdmdW5jdGlvbidcbiAgICAgID8ge31cbiAgICAgIDogKHNpZ25hbFN0b3JlQXJncy5zaGlmdCgpIGFzIFNpZ25hbFN0b3JlQ29uZmlnKTtcbiAgY29uc3QgZmVhdHVyZXMgPSBzaWduYWxTdG9yZUFyZ3MgYXMgU2lnbmFsU3RvcmVGZWF0dXJlW107XG5cbiAgQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBjb25maWcucHJvdmlkZWRJbiB8fCBudWxsIH0pXG4gIGNsYXNzIFNpZ25hbFN0b3JlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIGNvbnN0IGlubmVyU3RvcmUgPSBmZWF0dXJlcy5yZWR1Y2UoXG4gICAgICAgIChzdG9yZSwgZmVhdHVyZSkgPT4gZmVhdHVyZShzdG9yZSksXG4gICAgICAgIGdldEluaXRpYWxJbm5lclN0b3JlKClcbiAgICAgICk7XG4gICAgICBjb25zdCB7IHN0YXRlU2lnbmFscywgY29tcHV0ZWRTaWduYWxzLCBtZXRob2RzLCBob29rcyB9ID0gaW5uZXJTdG9yZTtcbiAgICAgIGNvbnN0IHN0b3JlTWVtYmVycyA9IHsgLi4uc3RhdGVTaWduYWxzLCAuLi5jb21wdXRlZFNpZ25hbHMsIC4uLm1ldGhvZHMgfTtcblxuICAgICAgKHRoaXMgYXMgYW55KVtTVEFURV9TT1VSQ0VdID0gaW5uZXJTdG9yZVtTVEFURV9TT1VSQ0VdO1xuXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdG9yZU1lbWJlcnMpIHtcbiAgICAgICAgKHRoaXMgYXMgYW55KVtrZXldID0gc3RvcmVNZW1iZXJzW2tleV07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgb25Jbml0LCBvbkRlc3Ryb3kgfSA9IGhvb2tzO1xuXG4gICAgICBpZiAob25Jbml0KSB7XG4gICAgICAgIG9uSW5pdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob25EZXN0cm95KSB7XG4gICAgICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3kob25EZXN0cm95KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2lnbmFsU3RvcmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsSW5uZXJTdG9yZSgpOiBJbm5lclNpZ25hbFN0b3JlIHtcbiAgcmV0dXJuIHtcbiAgICBbU1RBVEVfU09VUkNFXTogc2lnbmFsKHt9KSxcbiAgICBzdGF0ZVNpZ25hbHM6IHt9LFxuICAgIGNvbXB1dGVkU2lnbmFsczoge30sXG4gICAgbWV0aG9kczoge30sXG4gICAgaG9va3M6IHt9LFxuICB9O1xufVxuIl19
@@ -1,44 +0,0 @@
1
- import { assertInInjectionContext, DestroyRef, inject, Injector, untracked, } from '@angular/core';
2
- const STATE_WATCHERS = new WeakMap();
3
- export const STATE_SOURCE = Symbol('STATE_SOURCE');
4
- export function patchState(stateSource, ...updaters) {
5
- stateSource[STATE_SOURCE].update((currentState) => updaters.reduce((nextState, updater) => ({
6
- ...nextState,
7
- ...(typeof updater === 'function' ? updater(nextState) : updater),
8
- }), currentState));
9
- notifyWatchers(stateSource);
10
- }
11
- export function getState(stateSource) {
12
- return stateSource[STATE_SOURCE]();
13
- }
14
- export function watchState(stateSource, watcher, config) {
15
- if (!config?.injector) {
16
- assertInInjectionContext(watchState);
17
- }
18
- const injector = config?.injector ?? inject(Injector);
19
- const destroyRef = injector.get(DestroyRef);
20
- addWatcher(stateSource, watcher);
21
- watcher(getState(stateSource));
22
- const destroy = () => removeWatcher(stateSource, watcher);
23
- destroyRef.onDestroy(destroy);
24
- return { destroy };
25
- }
26
- function getWatchers(stateSource) {
27
- return STATE_WATCHERS.get(stateSource[STATE_SOURCE]) || [];
28
- }
29
- function notifyWatchers(stateSource) {
30
- const watchers = getWatchers(stateSource);
31
- for (const watcher of watchers) {
32
- const state = untracked(() => getState(stateSource));
33
- watcher(state);
34
- }
35
- }
36
- function addWatcher(stateSource, watcher) {
37
- const watchers = getWatchers(stateSource);
38
- STATE_WATCHERS.set(stateSource[STATE_SOURCE], [...watchers, watcher]);
39
- }
40
- function removeWatcher(stateSource, watcher) {
41
- const watchers = getWatchers(stateSource);
42
- STATE_WATCHERS.set(stateSource[STATE_SOURCE], watchers.filter((w) => w !== watcher));
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zdGF0ZS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFFUixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFHdkIsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQTRDLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQWtCbkQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBdUMsRUFDdkMsR0FBRyxRQUVGO0lBRUQsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ2hELFFBQVEsQ0FBQyxNQUFNLENBQ2IsQ0FBQyxTQUFnQixFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixHQUFHLFNBQVM7UUFDWixHQUFHLENBQUMsT0FBTyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztLQUNsRSxDQUFDLEVBQ0YsWUFBWSxDQUNiLENBQ0YsQ0FBQztJQUVGLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsV0FBK0I7SUFFL0IsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBK0IsRUFDL0IsT0FBNEIsRUFDNUIsTUFBZ0M7SUFFaEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUN0Qix3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU1QyxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUUvQixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFELFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDbEIsV0FBK0I7SUFFL0IsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQ3JCLFdBQStCO0lBRS9CLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FDakIsV0FBK0IsRUFDL0IsT0FBNEI7SUFFNUIsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLFdBQStCLEVBQy9CLE9BQTRCO0lBRTVCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxjQUFjLENBQUMsR0FBRyxDQUNoQixXQUFXLENBQUMsWUFBWSxDQUFDLEVBQ3pCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FDdEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsXG4gIERlc3Ryb3lSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIFNpZ25hbCxcbiAgdW50cmFja2VkLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gJy4vdHMtaGVscGVycyc7XG5cbmNvbnN0IFNUQVRFX1dBVENIRVJTID0gbmV3IFdlYWtNYXA8U2lnbmFsPG9iamVjdD4sIEFycmF5PFN0YXRlV2F0Y2hlcjxhbnk+Pj4oKTtcblxuZXhwb3J0IGNvbnN0IFNUQVRFX1NPVVJDRSA9IFN5bWJvbCgnU1RBVEVfU09VUkNFJyk7XG5cbmV4cG9ydCB0eXBlIFdyaXRhYmxlU3RhdGVTb3VyY2U8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0ge1xuICBbU1RBVEVfU09VUkNFXTogV3JpdGFibGVTaWduYWw8U3RhdGU+O1xufTtcblxuZXhwb3J0IHR5cGUgU3RhdGVTb3VyY2U8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0ge1xuICBbU1RBVEVfU09VUkNFXTogU2lnbmFsPFN0YXRlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxTdGF0ZVVwZGF0ZXI8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+ID0gKFxuICBzdGF0ZTogU3RhdGVcbikgPT4gUGFydGlhbDxTdGF0ZT47XG5cbmV4cG9ydCB0eXBlIFN0YXRlV2F0Y2hlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4gPSAoXG4gIHN0YXRlOiBOb0luZmVyPFN0YXRlPlxuKSA9PiB2b2lkO1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hTdGF0ZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlU291cmNlOiBXcml0YWJsZVN0YXRlU291cmNlPFN0YXRlPixcbiAgLi4udXBkYXRlcnM6IEFycmF5PFxuICAgIFBhcnRpYWw8UHJldHRpZnk8U3RhdGU+PiB8IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8UHJldHRpZnk8U3RhdGU+PlxuICA+XG4pOiB2b2lkIHtcbiAgc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXS51cGRhdGUoKGN1cnJlbnRTdGF0ZSkgPT5cbiAgICB1cGRhdGVycy5yZWR1Y2UoXG4gICAgICAobmV4dFN0YXRlOiBTdGF0ZSwgdXBkYXRlcikgPT4gKHtcbiAgICAgICAgLi4ubmV4dFN0YXRlLFxuICAgICAgICAuLi4odHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKG5leHRTdGF0ZSkgOiB1cGRhdGVyKSxcbiAgICAgIH0pLFxuICAgICAgY3VycmVudFN0YXRlXG4gICAgKVxuICApO1xuXG4gIG5vdGlmeVdhdGNoZXJzKHN0YXRlU291cmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVTb3VyY2U6IFN0YXRlU291cmNlPFN0YXRlPlxuKTogU3RhdGUge1xuICByZXR1cm4gc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2F0Y2hTdGF0ZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlU291cmNlOiBTdGF0ZVNvdXJjZTxTdGF0ZT4sXG4gIHdhdGNoZXI6IFN0YXRlV2F0Y2hlcjxTdGF0ZT4sXG4gIGNvbmZpZz86IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9XG4pOiB7IGRlc3Ryb3koKTogdm9pZCB9IHtcbiAgaWYgKCFjb25maWc/LmluamVjdG9yKSB7XG4gICAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KHdhdGNoU3RhdGUpO1xuICB9XG5cbiAgY29uc3QgaW5qZWN0b3IgPSBjb25maWc/LmluamVjdG9yID8/IGluamVjdChJbmplY3Rvcik7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3Rvci5nZXQoRGVzdHJveVJlZik7XG5cbiAgYWRkV2F0Y2hlcihzdGF0ZVNvdXJjZSwgd2F0Y2hlcik7XG4gIHdhdGNoZXIoZ2V0U3RhdGUoc3RhdGVTb3VyY2UpKTtcblxuICBjb25zdCBkZXN0cm95ID0gKCkgPT4gcmVtb3ZlV2F0Y2hlcihzdGF0ZVNvdXJjZSwgd2F0Y2hlcik7XG4gIGRlc3Ryb3lSZWYub25EZXN0cm95KGRlc3Ryb3kpO1xuXG4gIHJldHVybiB7IGRlc3Ryb3kgfTtcbn1cblxuZnVuY3Rpb24gZ2V0V2F0Y2hlcnM8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuICBzdGF0ZVNvdXJjZTogU3RhdGVTb3VyY2U8U3RhdGU+XG4pOiBBcnJheTxTdGF0ZVdhdGNoZXI8U3RhdGU+PiB7XG4gIHJldHVybiBTVEFURV9XQVRDSEVSUy5nZXQoc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXSkgfHwgW107XG59XG5cbmZ1bmN0aW9uIG5vdGlmeVdhdGNoZXJzPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVTb3VyY2U6IFN0YXRlU291cmNlPFN0YXRlPlxuKTogdm9pZCB7XG4gIGNvbnN0IHdhdGNoZXJzID0gZ2V0V2F0Y2hlcnMoc3RhdGVTb3VyY2UpO1xuXG4gIGZvciAoY29uc3Qgd2F0Y2hlciBvZiB3YXRjaGVycykge1xuICAgIGNvbnN0IHN0YXRlID0gdW50cmFja2VkKCgpID0+IGdldFN0YXRlKHN0YXRlU291cmNlKSk7XG4gICAgd2F0Y2hlcihzdGF0ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkV2F0Y2hlcjxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlU291cmNlOiBTdGF0ZVNvdXJjZTxTdGF0ZT4sXG4gIHdhdGNoZXI6IFN0YXRlV2F0Y2hlcjxTdGF0ZT5cbik6IHZvaWQge1xuICBjb25zdCB3YXRjaGVycyA9IGdldFdhdGNoZXJzKHN0YXRlU291cmNlKTtcbiAgU1RBVEVfV0FUQ0hFUlMuc2V0KHN0YXRlU291cmNlW1NUQVRFX1NPVVJDRV0sIFsuLi53YXRjaGVycywgd2F0Y2hlcl0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVXYXRjaGVyPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVTb3VyY2U6IFN0YXRlU291cmNlPFN0YXRlPixcbiAgd2F0Y2hlcjogU3RhdGVXYXRjaGVyPFN0YXRlPlxuKTogdm9pZCB7XG4gIGNvbnN0IHdhdGNoZXJzID0gZ2V0V2F0Y2hlcnMoc3RhdGVTb3VyY2UpO1xuICBTVEFURV9XQVRDSEVSUy5zZXQoXG4gICAgc3RhdGVTb3VyY2VbU1RBVEVfU09VUkNFXSxcbiAgICB3YXRjaGVycy5maWx0ZXIoKHcpID0+IHcgIT09IHdhdGNoZXIpXG4gICk7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvdHMtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJldHRpZnk8VD4gPSB7IFtLIGluIGtleW9mIFRdOiBUW0tdIH0gJiB7fTtcblxuZXhwb3J0IHR5cGUgSXNSZWNvcmQ8VD4gPSBUIGV4dGVuZHMgb2JqZWN0XG4gID8gVCBleHRlbmRzIHVua25vd25bXVxuICAgID8gZmFsc2VcbiAgICA6IFQgZXh0ZW5kcyBTZXQ8dW5rbm93bj5cbiAgICA/IGZhbHNlXG4gICAgOiBUIGV4dGVuZHMgTWFwPHVua25vd24sIHVua25vd24+XG4gICAgPyBmYWxzZVxuICAgIDogVCBleHRlbmRzIEZ1bmN0aW9uXG4gICAgPyBmYWxzZVxuICAgIDogdHJ1ZVxuICA6IGZhbHNlO1xuXG5leHBvcnQgdHlwZSBJc1Vua25vd25SZWNvcmQ8VD4gPSBzdHJpbmcgZXh0ZW5kcyBrZXlvZiBUXG4gID8gdHJ1ZVxuICA6IG51bWJlciBleHRlbmRzIGtleW9mIFRcbiAgPyB0cnVlXG4gIDogZmFsc2U7XG5cbmV4cG9ydCB0eXBlIElzS25vd25SZWNvcmQ8VD4gPSBJc1JlY29yZDxUPiBleHRlbmRzIHRydWVcbiAgPyBJc1Vua25vd25SZWNvcmQ8VD4gZXh0ZW5kcyB0cnVlXG4gICAgPyBmYWxzZVxuICAgIDogdHJ1ZVxuICA6IGZhbHNlO1xuXG5leHBvcnQgdHlwZSBPbWl0UHJpdmF0ZTxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVCBhcyBLIGV4dGVuZHMgYF8ke3N0cmluZ31gID8gbmV2ZXIgOiBLXTogVFtLXTtcbn07XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { assertUniqueStoreMembers } from './signal-store-assertions';
2
- export function withComputed(signalsFactory) {
3
- return (store) => {
4
- const computedSignals = signalsFactory({
5
- ...store.stateSignals,
6
- ...store.computedSignals,
7
- });
8
- assertUniqueStoreMembers(store, Object.keys(computedSignals));
9
- return {
10
- ...store,
11
- computedSignals: { ...store.computedSignals, ...computedSignals },
12
- };
13
- };
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jb21wdXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvd2l0aC1jb21wdXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVVyRSxNQUFNLFVBQVUsWUFBWSxDQUkxQixjQUVvQjtJQUtwQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDZixNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUM7WUFDckMsR0FBRyxLQUFLLENBQUMsWUFBWTtZQUNyQixHQUFHLEtBQUssQ0FBQyxlQUFlO1NBQ3pCLENBQUMsQ0FBQztRQUNILHdCQUF3QixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFFOUQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLGVBQWUsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRSxHQUFHLGVBQWUsRUFBRTtTQUNKLENBQUM7SUFDbEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydFVuaXF1ZVN0b3JlTWVtYmVycyB9IGZyb20gJy4vc2lnbmFsLXN0b3JlLWFzc2VydGlvbnMnO1xuaW1wb3J0IHtcbiAgSW5uZXJTaWduYWxTdG9yZSxcbiAgU2lnbmFsc0RpY3Rpb25hcnksXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBTdGF0ZVNpZ25hbHMsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gJy4vdHMtaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ29tcHV0ZWQ8XG4gIElucHV0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBDb21wdXRlZFNpZ25hbHMgZXh0ZW5kcyBTaWduYWxzRGljdGlvbmFyeVxuPihcbiAgc2lnbmFsc0ZhY3Rvcnk6IChcbiAgICBzdG9yZTogUHJldHRpZnk8U3RhdGVTaWduYWxzPElucHV0WydzdGF0ZSddPiAmIElucHV0Wydjb21wdXRlZCddPlxuICApID0+IENvbXB1dGVkU2lnbmFsc1xuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCxcbiAgeyBzdGF0ZToge307IGNvbXB1dGVkOiBDb21wdXRlZFNpZ25hbHM7IG1ldGhvZHM6IHt9IH1cbj4ge1xuICByZXR1cm4gKHN0b3JlKSA9PiB7XG4gICAgY29uc3QgY29tcHV0ZWRTaWduYWxzID0gc2lnbmFsc0ZhY3Rvcnkoe1xuICAgICAgLi4uc3RvcmUuc3RhdGVTaWduYWxzLFxuICAgICAgLi4uc3RvcmUuY29tcHV0ZWRTaWduYWxzLFxuICAgIH0pO1xuICAgIGFzc2VydFVuaXF1ZVN0b3JlTWVtYmVycyhzdG9yZSwgT2JqZWN0LmtleXMoY29tcHV0ZWRTaWduYWxzKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RvcmUsXG4gICAgICBjb21wdXRlZFNpZ25hbHM6IHsgLi4uc3RvcmUuY29tcHV0ZWRTaWduYWxzLCAuLi5jb21wdXRlZFNpZ25hbHMgfSxcbiAgICB9IGFzIElubmVyU2lnbmFsU3RvcmU8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIENvbXB1dGVkU2lnbmFscz47XG4gIH07XG59XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { STATE_SOURCE } from './state-source';
2
- export function withHooks(hooksOrFactory) {
3
- return (store) => {
4
- const storeMembers = {
5
- [STATE_SOURCE]: store[STATE_SOURCE],
6
- ...store.stateSignals,
7
- ...store.computedSignals,
8
- ...store.methods,
9
- };
10
- const hooks = typeof hooksOrFactory === 'function'
11
- ? hooksOrFactory(storeMembers)
12
- : hooksOrFactory;
13
- const createHook = (name) => {
14
- const hook = hooks[name];
15
- const currentHook = store.hooks[name];
16
- return hook
17
- ? () => {
18
- if (currentHook) {
19
- currentHook();
20
- }
21
- hook(storeMembers);
22
- }
23
- : currentHook;
24
- };
25
- return {
26
- ...store,
27
- hooks: {
28
- onInit: createHook('onInit'),
29
- onDestroy: createHook('onDestroy'),
30
- },
31
- };
32
- };
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ob29rcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvd2l0aC1ob29rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLGdCQUFnQixDQUFDO0FBc0NuRSxNQUFNLFVBQVUsU0FBUyxDQUN2QixjQUt1QjtJQUV2QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDZixNQUFNLFlBQVksR0FBRztZQUNuQixDQUFDLFlBQVksQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDbkMsR0FBRyxLQUFLLENBQUMsWUFBWTtZQUNyQixHQUFHLEtBQUssQ0FBQyxlQUFlO1lBQ3hCLEdBQUcsS0FBSyxDQUFDLE9BQU87U0FDakIsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUNULE9BQU8sY0FBYyxLQUFLLFVBQVU7WUFDbEMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUM7WUFDOUIsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUNyQixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQXdCLEVBQUUsRUFBRTtZQUM5QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV0QyxPQUFPLElBQUk7Z0JBQ1QsQ0FBQyxDQUFDLEdBQUcsRUFBRTtvQkFDSCxJQUFJLFdBQVcsRUFBRSxDQUFDO3dCQUNoQixXQUFXLEVBQUUsQ0FBQztvQkFDaEIsQ0FBQztvQkFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsQixDQUFDLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUM1QixTQUFTLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQzthQUNuQztTQUNGLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1RBVEVfU09VUkNFLCBXcml0YWJsZVN0YXRlU291cmNlIH0gZnJvbSAnLi9zdGF0ZS1zb3VyY2UnO1xuaW1wb3J0IHtcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBTaWduYWxTdG9yZUZlYXR1cmUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgU3RhdGVTaWduYWxzLFxufSBmcm9tICcuL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tICcuL3RzLWhlbHBlcnMnO1xuXG50eXBlIEhvb2tGbjxJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPSAoXG4gIHN0b3JlOiBQcmV0dGlmeTxcbiAgICBTdGF0ZVNpZ25hbHM8SW5wdXRbJ3N0YXRlJ10+ICZcbiAgICAgIElucHV0Wydjb21wdXRlZCddICZcbiAgICAgIElucHV0WydtZXRob2RzJ10gJlxuICAgICAgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxJbnB1dFsnc3RhdGUnXT4+XG4gID5cbikgPT4gdm9pZDtcblxudHlwZSBIb29rc0ZhY3Rvcnk8SW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+ID0gKFxuICBzdG9yZTogUHJldHRpZnk8XG4gICAgU3RhdGVTaWduYWxzPElucHV0WydzdGF0ZSddPiAmXG4gICAgICBJbnB1dFsnY29tcHV0ZWQnXSAmXG4gICAgICBJbnB1dFsnbWV0aG9kcyddICZcbiAgICAgIFdyaXRhYmxlU3RhdGVTb3VyY2U8UHJldHRpZnk8SW5wdXRbJ3N0YXRlJ10+PlxuICA+XG4pID0+IHtcbiAgb25Jbml0PzogKCkgPT4gdm9pZDtcbiAgb25EZXN0cm95PzogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoSG9va3M8SW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+KGhvb2tzOiB7XG4gIG9uSW5pdD86IEhvb2tGbjxJbnB1dD47XG4gIG9uRGVzdHJveT86IEhvb2tGbjxJbnB1dD47XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPElucHV0LCBFbXB0eUZlYXR1cmVSZXN1bHQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhIb29rczxJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGhvb2tzOiBIb29rc0ZhY3Rvcnk8SW5wdXQ+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8SW5wdXQsIEVtcHR5RmVhdHVyZVJlc3VsdD47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoSG9va3M8SW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+KFxuICBob29rc09yRmFjdG9yeTpcbiAgICB8IHtcbiAgICAgICAgb25Jbml0PzogSG9va0ZuPElucHV0PjtcbiAgICAgICAgb25EZXN0cm95PzogSG9va0ZuPElucHV0PjtcbiAgICAgIH1cbiAgICB8IEhvb2tzRmFjdG9yeTxJbnB1dD5cbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxJbnB1dCwgRW1wdHlGZWF0dXJlUmVzdWx0PiB7XG4gIHJldHVybiAoc3RvcmUpID0+IHtcbiAgICBjb25zdCBzdG9yZU1lbWJlcnMgPSB7XG4gICAgICBbU1RBVEVfU09VUkNFXTogc3RvcmVbU1RBVEVfU09VUkNFXSxcbiAgICAgIC4uLnN0b3JlLnN0YXRlU2lnbmFscyxcbiAgICAgIC4uLnN0b3JlLmNvbXB1dGVkU2lnbmFscyxcbiAgICAgIC4uLnN0b3JlLm1ldGhvZHMsXG4gICAgfTtcbiAgICBjb25zdCBob29rcyA9XG4gICAgICB0eXBlb2YgaG9va3NPckZhY3RvcnkgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBob29rc09yRmFjdG9yeShzdG9yZU1lbWJlcnMpXG4gICAgICAgIDogaG9va3NPckZhY3Rvcnk7XG4gICAgY29uc3QgY3JlYXRlSG9vayA9IChuYW1lOiBrZXlvZiB0eXBlb2YgaG9va3MpID0+IHtcbiAgICAgIGNvbnN0IGhvb2sgPSBob29rc1tuYW1lXTtcbiAgICAgIGNvbnN0IGN1cnJlbnRIb29rID0gc3RvcmUuaG9va3NbbmFtZV07XG5cbiAgICAgIHJldHVybiBob29rXG4gICAgICAgID8gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRIb29rKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRIb29rKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhvb2soc3RvcmVNZW1iZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIDogY3VycmVudEhvb2s7XG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIGhvb2tzOiB7XG4gICAgICAgIG9uSW5pdDogY3JlYXRlSG9vaygnb25Jbml0JyksXG4gICAgICAgIG9uRGVzdHJveTogY3JlYXRlSG9vaygnb25EZXN0cm95JyksXG4gICAgICB9LFxuICAgIH07XG4gIH07XG59XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { STATE_SOURCE } from './state-source';
2
- import { assertUniqueStoreMembers } from './signal-store-assertions';
3
- export function withMethods(methodsFactory) {
4
- return (store) => {
5
- const methods = methodsFactory({
6
- [STATE_SOURCE]: store[STATE_SOURCE],
7
- ...store.stateSignals,
8
- ...store.computedSignals,
9
- ...store.methods,
10
- });
11
- assertUniqueStoreMembers(store, Object.keys(methods));
12
- return {
13
- ...store,
14
- methods: { ...store.methods, ...methods },
15
- };
16
- };
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1tZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy93aXRoLW1ldGhvZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVdyRSxNQUFNLFVBQVUsV0FBVyxDQUl6QixjQU9ZO0lBRVosT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDO1lBQzdCLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUNuQyxHQUFHLEtBQUssQ0FBQyxZQUFZO1lBQ3JCLEdBQUcsS0FBSyxDQUFDLGVBQWU7WUFDeEIsR0FBRyxLQUFLLENBQUMsT0FBTztTQUNqQixDQUFDLENBQUM7UUFDSCx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXRELE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUU7U0FDK0IsQ0FBQztJQUM3RSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1RBVEVfU09VUkNFLCBXcml0YWJsZVN0YXRlU291cmNlIH0gZnJvbSAnLi9zdGF0ZS1zb3VyY2UnO1xuaW1wb3J0IHsgYXNzZXJ0VW5pcXVlU3RvcmVNZW1iZXJzIH0gZnJvbSAnLi9zaWduYWwtc3RvcmUtYXNzZXJ0aW9ucyc7XG5pbXBvcnQge1xuICBJbm5lclNpZ25hbFN0b3JlLFxuICBNZXRob2RzRGljdGlvbmFyeSxcbiAgU2lnbmFsc0RpY3Rpb25hcnksXG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBTdGF0ZVNpZ25hbHMsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gJy4vdHMtaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTWV0aG9kczxcbiAgSW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIE1ldGhvZHMgZXh0ZW5kcyBNZXRob2RzRGljdGlvbmFyeVxuPihcbiAgbWV0aG9kc0ZhY3Rvcnk6IChcbiAgICBzdG9yZTogUHJldHRpZnk8XG4gICAgICBTdGF0ZVNpZ25hbHM8SW5wdXRbJ3N0YXRlJ10+ICZcbiAgICAgICAgSW5wdXRbJ2NvbXB1dGVkJ10gJlxuICAgICAgICBJbnB1dFsnbWV0aG9kcyddICZcbiAgICAgICAgV3JpdGFibGVTdGF0ZVNvdXJjZTxQcmV0dGlmeTxJbnB1dFsnc3RhdGUnXT4+XG4gICAgPlxuICApID0+IE1ldGhvZHNcbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxJbnB1dCwgeyBzdGF0ZToge307IGNvbXB1dGVkOiB7fTsgbWV0aG9kczogTWV0aG9kcyB9PiB7XG4gIHJldHVybiAoc3RvcmUpID0+IHtcbiAgICBjb25zdCBtZXRob2RzID0gbWV0aG9kc0ZhY3Rvcnkoe1xuICAgICAgW1NUQVRFX1NPVVJDRV06IHN0b3JlW1NUQVRFX1NPVVJDRV0sXG4gICAgICAuLi5zdG9yZS5zdGF0ZVNpZ25hbHMsXG4gICAgICAuLi5zdG9yZS5jb21wdXRlZFNpZ25hbHMsXG4gICAgICAuLi5zdG9yZS5tZXRob2RzLFxuICAgIH0pO1xuICAgIGFzc2VydFVuaXF1ZVN0b3JlTWVtYmVycyhzdG9yZSwgT2JqZWN0LmtleXMobWV0aG9kcykpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgbWV0aG9kczogeyAuLi5zdG9yZS5tZXRob2RzLCAuLi5tZXRob2RzIH0sXG4gICAgfSBhcyBJbm5lclNpZ25hbFN0b3JlPFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBTaWduYWxzRGljdGlvbmFyeSwgTWV0aG9kcz47XG4gIH07XG59XG4iXX0=
@@ -1,24 +0,0 @@
1
- import { computed } from '@angular/core';
2
- import { assertUniqueStoreMembers } from './signal-store-assertions';
3
- import { toDeepSignal } from './deep-signal';
4
- import { STATE_SOURCE } from './state-source';
5
- export function withState(stateOrFactory) {
6
- return (store) => {
7
- const state = typeof stateOrFactory === 'function' ? stateOrFactory() : stateOrFactory;
8
- const stateKeys = Object.keys(state);
9
- assertUniqueStoreMembers(store, stateKeys);
10
- store[STATE_SOURCE].update((currentState) => ({
11
- ...currentState,
12
- ...state,
13
- }));
14
- const stateSignals = stateKeys.reduce((acc, key) => {
15
- const sliceSignal = computed(() => store[STATE_SOURCE]()[key]);
16
- return { ...acc, [key]: toDeepSignal(sliceSignal) };
17
- }, {});
18
- return {
19
- ...store,
20
- stateSignals: { ...store.stateSignals, ...stateSignals },
21
- };
22
- };
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvd2l0aC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBcUI5QyxNQUFNLFVBQVUsU0FBUyxDQUN2QixjQUFxQztJQUtyQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDZixNQUFNLEtBQUssR0FDVCxPQUFPLGNBQWMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDM0UsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0MsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QyxHQUFHLFlBQVk7WUFDZixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDakQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUMxQixHQUFHLEVBQUUsQ0FBRSxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQThCLENBQUMsR0FBRyxDQUFDLENBQzlELENBQUM7WUFDRixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxDQUFDLEVBQUUsRUFBdUIsQ0FBQyxDQUFDO1FBRTVCLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixZQUFZLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxZQUFZLEVBQUU7U0FDOUIsQ0FBQztJQUMvQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydFVuaXF1ZVN0b3JlTWVtYmVycyB9IGZyb20gJy4vc2lnbmFsLXN0b3JlLWFzc2VydGlvbnMnO1xuaW1wb3J0IHsgdG9EZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5pbXBvcnQgeyBTVEFURV9TT1VSQ0UgfSBmcm9tICcuL3N0YXRlLXNvdXJjZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIElubmVyU2lnbmFsU3RvcmUsXG4gIFNpZ25hbHNEaWN0aW9uYXJ5LFxuICBTaWduYWxTdG9yZUZlYXR1cmUsXG4gIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbn0gZnJvbSAnLi9zaWduYWwtc3RvcmUtbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTdGF0ZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlRmFjdG9yeTogKCkgPT4gU3RhdGVcbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICB7IHN0YXRlOiBTdGF0ZTsgY29tcHV0ZWQ6IHt9OyBtZXRob2RzOiB7fSB9XG4+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTdGF0ZTxTdGF0ZSBleHRlbmRzIG9iamVjdD4oXG4gIHN0YXRlOiBTdGF0ZVxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIHsgc3RhdGU6IFN0YXRlOyBjb21wdXRlZDoge307IG1ldGhvZHM6IHt9IH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0YXRlPFN0YXRlIGV4dGVuZHMgb2JqZWN0PihcbiAgc3RhdGVPckZhY3Rvcnk6IFN0YXRlIHwgKCgpID0+IFN0YXRlKVxuKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIHsgc3RhdGU6IFN0YXRlOyBjb21wdXRlZDoge307IG1ldGhvZHM6IHt9IH1cbj4ge1xuICByZXR1cm4gKHN0b3JlKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPVxuICAgICAgdHlwZW9mIHN0YXRlT3JGYWN0b3J5ID09PSAnZnVuY3Rpb24nID8gc3RhdGVPckZhY3RvcnkoKSA6IHN0YXRlT3JGYWN0b3J5O1xuICAgIGNvbnN0IHN0YXRlS2V5cyA9IE9iamVjdC5rZXlzKHN0YXRlKTtcblxuICAgIGFzc2VydFVuaXF1ZVN0b3JlTWVtYmVycyhzdG9yZSwgc3RhdGVLZXlzKTtcblxuICAgIHN0b3JlW1NUQVRFX1NPVVJDRV0udXBkYXRlKChjdXJyZW50U3RhdGUpID0+ICh7XG4gICAgICAuLi5jdXJyZW50U3RhdGUsXG4gICAgICAuLi5zdGF0ZSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBzdGF0ZVNpZ25hbHMgPSBzdGF0ZUtleXMucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgY29uc3Qgc2xpY2VTaWduYWwgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gKHN0b3JlW1NUQVRFX1NPVVJDRV0oKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilba2V5XVxuICAgICAgKTtcbiAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHRvRGVlcFNpZ25hbChzbGljZVNpZ25hbCkgfTtcbiAgICB9LCB7fSBhcyBTaWduYWxzRGljdGlvbmFyeSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RvcmUsXG4gICAgICBzdGF0ZVNpZ25hbHM6IHsgLi4uc3RvcmUuc3RhdGVTaWduYWxzLCAuLi5zdGF0ZVNpZ25hbHMgfSxcbiAgICB9IGFzIElubmVyU2lnbmFsU3RvcmU8U3RhdGU+O1xuICB9O1xufVxuIl19