@legendapp/state 2.2.0-next.65 → 2.2.0-next.67

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 (65) hide show
  1. package/index.js +29 -15
  2. package/index.js.map +1 -1
  3. package/index.mjs +29 -15
  4. package/index.mjs.map +1 -1
  5. package/package.json +21 -21
  6. package/{cache-plugins → persist-plugins}/async-storage.d.ts +3 -3
  7. package/{cache-plugins → persist-plugins}/async-storage.js +4 -4
  8. package/persist-plugins/async-storage.js.map +1 -0
  9. package/{cache-plugins → persist-plugins}/async-storage.mjs +4 -4
  10. package/persist-plugins/async-storage.mjs.map +1 -0
  11. package/persist-plugins/firebase.js.map +1 -1
  12. package/persist-plugins/firebase.mjs.map +1 -1
  13. package/persist-plugins/indexeddb.d.ts +25 -0
  14. package/{cache-plugins → persist-plugins}/indexeddb.js +2 -2
  15. package/persist-plugins/indexeddb.js.map +1 -0
  16. package/{cache-plugins → persist-plugins}/indexeddb.mjs +2 -2
  17. package/persist-plugins/indexeddb.mjs.map +1 -0
  18. package/persist-plugins/local-storage.d.ts +20 -0
  19. package/{cache-plugins → persist-plugins}/local-storage.js +10 -10
  20. package/persist-plugins/local-storage.js.map +1 -0
  21. package/{cache-plugins → persist-plugins}/local-storage.mjs +8 -8
  22. package/persist-plugins/local-storage.mjs.map +1 -0
  23. package/persist-plugins/mmkv.d.ts +14 -0
  24. package/{cache-plugins → persist-plugins}/mmkv.js +3 -3
  25. package/persist-plugins/mmkv.js.map +1 -0
  26. package/{cache-plugins → persist-plugins}/mmkv.mjs +3 -3
  27. package/persist-plugins/mmkv.mjs.map +1 -0
  28. package/persist.js +56 -53
  29. package/persist.js.map +1 -1
  30. package/persist.mjs +56 -53
  31. package/persist.mjs.map +1 -1
  32. package/react-hooks/usePersistedObservable.d.ts +2 -2
  33. package/src/helpers.ts +28 -14
  34. package/src/observableInterfaces.ts +2 -3
  35. package/src/persist/persistObservable.ts +24 -20
  36. package/src/{cache-plugins → persist-plugins}/async-storage.ts +6 -6
  37. package/src/persist-plugins/firebase.ts +3 -3
  38. package/src/{cache-plugins → persist-plugins}/indexeddb.ts +17 -17
  39. package/src/{cache-plugins → persist-plugins}/local-storage.ts +8 -8
  40. package/src/{cache-plugins → persist-plugins}/mmkv.ts +13 -13
  41. package/src/persistTypes.ts +15 -22
  42. package/src/react-hooks/usePersistedObservable.ts +2 -2
  43. package/src/sync/syncObservable.ts +93 -84
  44. package/src/sync/syncObservableAdapter.ts +2 -2
  45. package/src/sync/synced.ts +2 -2
  46. package/src/sync-plugins/fetch.ts +3 -3
  47. package/src/syncTypes.ts +19 -20
  48. package/sync-plugins/fetch.d.ts +2 -2
  49. package/sync-plugins/fetch.js.map +1 -1
  50. package/sync-plugins/fetch.mjs.map +1 -1
  51. package/sync.js +56 -53
  52. package/sync.js.map +1 -1
  53. package/sync.mjs +56 -53
  54. package/sync.mjs.map +1 -1
  55. package/cache-plugins/async-storage.js.map +0 -1
  56. package/cache-plugins/async-storage.mjs.map +0 -1
  57. package/cache-plugins/indexeddb.d.ts +0 -25
  58. package/cache-plugins/indexeddb.js.map +0 -1
  59. package/cache-plugins/indexeddb.mjs.map +0 -1
  60. package/cache-plugins/local-storage.d.ts +0 -20
  61. package/cache-plugins/local-storage.js.map +0 -1
  62. package/cache-plugins/local-storage.mjs.map +0 -1
  63. package/cache-plugins/mmkv.d.ts +0 -14
  64. package/cache-plugins/mmkv.js.map +0 -1
  65. package/cache-plugins/mmkv.mjs.map +0 -1
package/sync.js CHANGED
@@ -48,7 +48,7 @@ function syncObservableAdapter({ get, set }) {
48
48
  return ret;
49
49
  }
50
50
 
51
- const { globalState: globalState$1, symbolLinked: symbolLinked$2, getNode } = state.internal;
51
+ const { globalState: globalState$1, symbolLinked: symbolLinked$2, getNode, getNodeValue: getNodeValue$1 } = state.internal;
52
52
  const mapSyncPlugins = new WeakMap();
53
53
  const metadatas = new WeakMap();
54
54
  const promisesLocalSaves = new Set();
@@ -88,8 +88,8 @@ async function updateMetadataImmediate(obs, localState, syncState, syncOptions,
88
88
  if (saves.length > 0) {
89
89
  await Promise.all(saves);
90
90
  }
91
- const { pluginCache } = localState;
92
- const { table, config } = parseLocalConfig(syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.cache);
91
+ const { pluginPersist } = localState;
92
+ const { table, config } = parseLocalConfig(syncOptions === null || syncOptions === void 0 ? void 0 : syncOptions.persist);
93
93
  // Save metadata
94
94
  const oldMetadata = metadatas.get(obs);
95
95
  const { lastSync, pending } = newMetadata;
@@ -97,13 +97,12 @@ async function updateMetadataImmediate(obs, localState, syncState, syncOptions,
97
97
  if (needsUpdate) {
98
98
  const metadata = Object.assign({}, oldMetadata, newMetadata);
99
99
  metadatas.set(obs, metadata);
100
- if (pluginCache) {
101
- await pluginCache.setMetadata(table, metadata, config);
100
+ if (pluginPersist) {
101
+ await pluginPersist.setMetadata(table, metadata, config);
102
102
  }
103
103
  if (lastSync) {
104
104
  syncState.assign({
105
105
  lastSync: lastSync,
106
- dateModified: lastSync,
107
106
  });
108
107
  }
109
108
  }
@@ -212,18 +211,18 @@ async function processQueuedRemoteChanges(syncOptions) {
212
211
  }
213
212
  async function prepChangeLocal(queuedChange) {
214
213
  const { syncState, changes, localState, syncOptions, inRemoteChange, isApplyingPending } = queuedChange;
215
- const cache = syncOptions.cache;
214
+ const persist = syncOptions.persist;
216
215
  const { pluginSync } = localState;
217
- const { config: configLocal } = parseLocalConfig(cache);
216
+ const { config: configLocal } = parseLocalConfig(persist);
218
217
  const configRemote = syncOptions;
219
- const saveLocal = (cache === null || cache === void 0 ? void 0 : cache.name) && !configLocal.readonly && !isApplyingPending && syncState.isEnabledLocal.peek();
218
+ const saveLocal = (persist === null || persist === void 0 ? void 0 : persist.name) && !configLocal.readonly && !isApplyingPending && syncState.isEnabledLocal.peek();
220
219
  const saveRemote = !!(!inRemoteChange &&
221
220
  (pluginSync === null || pluginSync === void 0 ? void 0 : pluginSync.set) &&
222
221
  (configRemote === null || configRemote === void 0 ? void 0 : configRemote.enableSync) !== false &&
223
222
  syncState.isEnabledRemote.peek());
224
223
  if (saveLocal || saveRemote) {
225
224
  if (saveLocal && !syncState.isLoadedLocal.peek()) {
226
- console.error('[legend-state] WARNING: An observable was changed before being loaded from cache', cache);
225
+ console.error('[legend-state] WARNING: An observable was changed before being loaded from persist', persist);
227
226
  return undefined;
228
227
  }
229
228
  const changesLocal = [];
@@ -274,15 +273,15 @@ async function prepChangeLocal(queuedChange) {
274
273
  }
275
274
  async function prepChangeRemote(queuedChange) {
276
275
  const { syncState, changes, localState, syncOptions: syncOptions, inRemoteChange, isApplyingPending, } = queuedChange;
277
- const cache = syncOptions.cache;
276
+ const persist = syncOptions.persist;
278
277
  const { pluginSync } = localState;
279
- const { config: configLocal } = parseLocalConfig(cache);
278
+ const { config: configLocal } = parseLocalConfig(persist);
280
279
  const configRemote = syncOptions;
281
- const saveLocal = cache && !configLocal.readonly && !isApplyingPending && syncState.isEnabledLocal.peek();
280
+ const saveLocal = persist && !configLocal.readonly && !isApplyingPending && syncState.isEnabledLocal.peek();
282
281
  const saveRemote = !inRemoteChange && (pluginSync === null || pluginSync === void 0 ? void 0 : pluginSync.set) && (configRemote === null || configRemote === void 0 ? void 0 : configRemote.enableSync) !== false && syncState.isEnabledRemote.peek();
283
282
  if (saveLocal || saveRemote) {
284
283
  if (saveLocal && !syncState.isLoadedLocal.peek()) {
285
- console.error('[legend-state] WARNING: An observable was changed before being loaded from cache', cache);
284
+ console.error('[legend-state] WARNING: An observable was changed before being loaded from persist', persist);
286
285
  return undefined;
287
286
  }
288
287
  const changesRemote = [];
@@ -370,11 +369,11 @@ async function doChangeLocal(changeInfo) {
370
369
  return;
371
370
  const { queuedChange, changesLocal, saveRemote } = changeInfo;
372
371
  const { obs, syncState, localState, syncOptions: syncOptions } = queuedChange;
373
- const { pluginCache } = localState;
374
- const cache = syncOptions.cache;
375
- const { table, config: configLocal } = parseLocalConfig(cache);
372
+ const { pluginPersist } = localState;
373
+ const persist = syncOptions.persist;
374
+ const { table, config: configLocal } = parseLocalConfig(persist);
376
375
  const configRemote = syncOptions;
377
- const shouldSaveMetadata = cache && (configRemote === null || configRemote === void 0 ? void 0 : configRemote.offlineBehavior) === 'retry';
376
+ const shouldSaveMetadata = persist && (configRemote === null || configRemote === void 0 ? void 0 : configRemote.offlineBehavior) === 'retry';
378
377
  if (saveRemote && shouldSaveMetadata) {
379
378
  // First save pending changes before saving local or remote
380
379
  await updateMetadataImmediate(obs, localState, syncState, syncOptions, {
@@ -384,7 +383,7 @@ async function doChangeLocal(changeInfo) {
384
383
  if (changesLocal.length > 0) {
385
384
  // Save the changes to local cache before saving to remote. They are already marked as pending so
386
385
  // if remote sync fails or the app is closed before remote sync, it will attempt to sync them on the next load.
387
- let promiseSet = pluginCache.set(table, changesLocal, configLocal);
386
+ let promiseSet = pluginPersist.set(table, changesLocal, configLocal);
388
387
  if (promiseSet) {
389
388
  promiseSet = promiseSet.then(() => {
390
389
  promisesLocalSaves.delete(promiseSet);
@@ -402,11 +401,11 @@ async function doChangeRemote(changeInfo) {
402
401
  return;
403
402
  const { queuedChange, changesRemote } = changeInfo;
404
403
  const { obs, syncState, localState, syncOptions: syncOptions } = queuedChange;
405
- const { pluginCache, pluginSync } = localState;
406
- const cache = syncOptions.cache;
407
- const { table, config: configLocal } = parseLocalConfig(cache);
404
+ const { pluginPersist, pluginSync } = localState;
405
+ const persist = syncOptions.persist;
406
+ const { table, config: configLocal } = parseLocalConfig(persist);
408
407
  const { offlineBehavior, allowSetIfGetError, onBeforeSet, onSetError, waitForSet, onAfterSet } = syncOptions || {};
409
- const shouldSaveMetadata = cache && offlineBehavior === 'retry';
408
+ const shouldSaveMetadata = persist && offlineBehavior === 'retry';
410
409
  if (changesRemote.length > 0) {
411
410
  // Wait for remote to be ready before saving
412
411
  await state.when(() => syncState.isLoaded.get() || (allowSetIfGetError && syncState.error.get()));
@@ -444,9 +443,9 @@ async function doChangeRemote(changeInfo) {
444
443
  const pathStrs = Array.from(new Set(changesRemote.map((change) => change.pathStr)));
445
444
  const { changes, lastSync } = saved;
446
445
  if (pathStrs.length > 0) {
447
- if (cache) {
446
+ if (persist) {
448
447
  const metadata = {};
449
- const pending = (_b = pluginCache.getMetadata(table, configLocal)) === null || _b === void 0 ? void 0 : _b.pending;
448
+ const pending = (_b = pluginPersist.getMetadata(table, configLocal)) === null || _b === void 0 ? void 0 : _b.pending;
450
449
  let transformedChanges = undefined;
451
450
  for (let i = 0; i < pathStrs.length; i++) {
452
451
  const pathStr = pathStrs[i];
@@ -513,48 +512,49 @@ function onObsChange(obs, syncState, localState, syncOptions, { changes, loading
513
512
  }
514
513
  async function loadLocal(obs, syncOptions, syncState, localState) {
515
514
  var _a, _b;
516
- const { cache } = syncOptions;
517
- if (cache) {
518
- const CachePlugin = cache.plugin || ((_a = observableSyncConfiguration.cache) === null || _a === void 0 ? void 0 : _a.plugin);
519
- const { table, config } = parseLocalConfig(cache);
520
- if (!CachePlugin) {
521
- throw new Error('Local cache is not configured');
515
+ const { persist } = syncOptions;
516
+ if (persist) {
517
+ const PersistPlugin = persist.plugin || ((_a = observableSyncConfiguration.persist) === null || _a === void 0 ? void 0 : _a.plugin);
518
+ const { table, config } = parseLocalConfig(persist);
519
+ const node = getNode(obs);
520
+ if (!PersistPlugin) {
521
+ throw new Error('Local persist is not configured');
522
522
  }
523
523
  // Ensure there's only one instance of the cache plugin
524
- if (!mapSyncPlugins.has(CachePlugin)) {
525
- const cachePlugin = new CachePlugin();
526
- const mapValue = { plugin: cachePlugin, initialized: state.observable(false) };
527
- mapSyncPlugins.set(CachePlugin, mapValue);
528
- if (cachePlugin.initialize) {
529
- const initializePromise = (_b = cachePlugin.initialize) === null || _b === void 0 ? void 0 : _b.call(cachePlugin, (observableSyncConfiguration === null || observableSyncConfiguration === void 0 ? void 0 : observableSyncConfiguration.cache) || {});
524
+ if (!mapSyncPlugins.has(PersistPlugin)) {
525
+ const persistPlugin = new PersistPlugin();
526
+ const mapValue = { plugin: persistPlugin, initialized: state.observable(false) };
527
+ mapSyncPlugins.set(PersistPlugin, mapValue);
528
+ if (persistPlugin.initialize) {
529
+ const initializePromise = (_b = persistPlugin.initialize) === null || _b === void 0 ? void 0 : _b.call(persistPlugin, (observableSyncConfiguration === null || observableSyncConfiguration === void 0 ? void 0 : observableSyncConfiguration.persist) || {});
530
530
  if (state.isPromise(initializePromise)) {
531
531
  await initializePromise;
532
532
  }
533
533
  }
534
534
  mapValue.initialized.set(true);
535
535
  }
536
- const { plugin, initialized: initialized$ } = mapSyncPlugins.get(CachePlugin);
537
- const cachePlugin = plugin;
538
- localState.pluginCache = cachePlugin;
536
+ const { plugin, initialized: initialized$ } = mapSyncPlugins.get(PersistPlugin);
537
+ const persistPlugin = plugin;
538
+ localState.pluginPersist = persistPlugin;
539
539
  if (!initialized$.peek()) {
540
540
  await state.when(initialized$);
541
541
  }
542
542
  // If cache has an asynchronous load, wait for it
543
- if (cachePlugin.loadTable) {
544
- const promise = cachePlugin.loadTable(table, config);
543
+ if (persistPlugin.loadTable) {
544
+ const promise = persistPlugin.loadTable(table, config);
545
545
  if (promise) {
546
546
  await promise;
547
547
  }
548
548
  }
549
+ // Get current value for init
550
+ const prevValue = getNodeValue$1(node);
549
551
  // Get the value from state
550
- let value = cachePlugin.getTable(table, config);
551
- const metadata = cachePlugin.getMetadata(table, config);
552
+ let value = persistPlugin.getTable(table, prevValue, config);
553
+ const metadata = persistPlugin.getMetadata(table, config);
552
554
  if (metadata) {
553
555
  metadatas.set(obs, metadata);
554
556
  localState.pendingChanges = metadata.pending;
555
- // TODOV3 Remove dateModified
556
557
  syncState.assign({
557
- dateModified: metadata.lastSync,
558
558
  lastSync: metadata.lastSync,
559
559
  });
560
560
  }
@@ -569,7 +569,6 @@ async function loadLocal(obs, syncOptions, syncState, localState) {
569
569
  // are set on the same observable
570
570
  state.internal.globalState.isLoadingLocal = true;
571
571
  // We want to merge the local data on top of any initial state the object is created with
572
- const prevValue = obs.peek();
573
572
  if (value === null && (!prevValue || prevValue[symbolLinked$2])) {
574
573
  obs.set(value);
575
574
  }
@@ -578,10 +577,9 @@ async function loadLocal(obs, syncOptions, syncState, localState) {
578
577
  }
579
578
  state.internal.globalState.isLoadingLocal = false;
580
579
  }
581
- const node = getNode(obs);
582
580
  node.state.peek().clearLocal = () => Promise.all([
583
- cachePlugin.deleteTable(table, config),
584
- cachePlugin.deleteMetadata(table, config),
581
+ persistPlugin.deleteTable(table, config),
582
+ persistPlugin.deleteMetadata(table, config),
585
583
  ]);
586
584
  }
587
585
  syncState.isLoadedLocal.set(true);
@@ -645,10 +643,15 @@ function syncObservable(obs$, syncOptions) {
645
643
  const p = key.split('/').filter((p) => p !== '');
646
644
  const { v, t } = pending[key];
647
645
  if (t.length === 0 || !value) {
648
- value = v;
646
+ if (state.isObject(value) && state.isObject(v)) {
647
+ Object.assign(value, v);
648
+ }
649
+ else {
650
+ value = v;
651
+ }
649
652
  }
650
653
  else if (value[p[0]] !== undefined) {
651
- value = state.setAtPath(value, p, t, v, obs$.peek(), (path, value) => {
654
+ value = state.setAtPath(value, p, t, v, 'merge', obs$.peek(), (path, value) => {
652
655
  delete pending[key];
653
656
  pending[path.join('/')] = {
654
657
  p: null,
@@ -677,7 +680,7 @@ function syncObservable(obs$, syncOptions) {
677
680
  }
678
681
  });
679
682
  }
680
- if (lastSync && syncOptions.cache) {
683
+ if (lastSync && syncOptions.persist) {
681
684
  updateMetadata(obs$, localState, syncState, syncOptions, {
682
685
  lastSync,
683
686
  });
package/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sources":["./src/sync/configureObservableSync.ts","./src/sync/syncHelpers.ts","./src/sync/syncObservableAdapter.ts","./src/sync/syncObservable.ts","./src/sync/activateSyncedNode.ts","./src/sync/synced.ts","./sync.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["isObject","isPromise","globalState","symbolLinked","internal","isString","endBatch","batch","constructObjectWithPath","deconstructObjectWithPath","setAtPath","when","isFunction","isEmpty","mergeIntoObservable","observable","isArray","whenReady","internalState"],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sources":["./src/sync/configureObservableSync.ts","./src/sync/syncHelpers.ts","./src/sync/syncObservableAdapter.ts","./src/sync/syncObservable.ts","./src/sync/activateSyncedNode.ts","./src/sync/synced.ts","./sync.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["isObject","isPromise","globalState","symbolLinked","getNodeValue","internal","isString","endBatch","batch","constructObjectWithPath","deconstructObjectWithPath","setAtPath","when","isFunction","isEmpty","mergeIntoObservable","observable","isArray","whenReady","internalState"],"mappings":";;;;AAEO,MAAM,2BAA2B,GAAuB,EAAE,CAAC;AAE5D,SAAU,uBAAuB,CAAC,OAA4B,EAAA;AAChE,IAAA,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;AACxD;;ACJM,SAAU,mBAAmB,CAAgC,GAAM,EAAA;IACrE,IAAI,GAAG,EAAE;QACL,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC7B,YAAA,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AAC/B,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;aACnB;AAAM,iBAAA,IAAIA,cAAQ,CAAC,CAAC,CAAC,EAAE;gBACpB,mBAAmB,CAAC,CAAC,CAAC,CAAC;aAC1B;AACL,SAAC,CAAC,CAAC;KACN;AACD,IAAA,OAAO,GAAG,CAAC;AACf;;SCZgB,qBAAqB,CAAS,EAAE,GAAG,EAAE,GAAG,EAAoB,EAAA;IACxE,MAAM,GAAG,GAAwB,EAAE,CAAC;IAEpC,IAAI,GAAG,EAAE;QACL,GAAG,CAAC,GAAG,IAAI,OAAO,MAAkC,KAAI;AACpD,YAAA,IAAI;AACA,gBAAA,IAAI,KAAK,GAAG,GAAG,CAAC,MAAa,CAAC,CAAC;AAC/B,gBAAA,IAAIC,eAAS,CAAC,KAAK,CAAC,EAAE;oBAClB,KAAK,GAAG,MAAM,KAAK,CAAC;iBACvB;gBAED,MAAM,CAAC,QAAQ,CAAC;oBACZ,KAAK;oBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAK;AACrB,iBAAA,CAAC,CAAC;gBACH,MAAM,CAAC,KAAK,EAAE,CAAC;;aAElB;YAAC,OAAM,EAAA,EAAA,GAAE;AACd,SAAC,CAA+B,CAAC;KACpC;IAED,IAAI,GAAG,EAAE;AACL,QAAA,GAAG,CAAC,GAAG,GAAG,GAA4C,CAAC;KAC1D;AAED,IAAA,OAAO,GAAG,CAAC;AACf;;ACSA,MAAM,eAAEC,aAAW,gBAAEC,cAAY,EAAE,OAAO,gBAAEC,cAAY,EAAE,GAAGC,cAAQ,CAAC;AAEzD,MAAA,cAAc,GAMvB,IAAI,OAAO,GAAG;AAElB,MAAM,SAAS,GAAG,IAAI,OAAO,EAAyC,CAAC;AACvE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAiB,CAAC;AAyBpD,SAAS,gBAAgB,CAAC,MAA2C,EAAA;AAIjE,IAAA,OAAO,MAAM;AACT,UAAEC,cAAQ,CAAC,MAAM,CAAC;AACd,cAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;cAC3C,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;UACjC,EAAgD,CAAC;AAC5D,CAAC;AAED,SAAS,SAAS,CAAI,IAAoB,EAAE,IAAwB,EAAA;IAChE,OAAOL,eAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAEK,SAAU,cAAc,CAAC,EAAc,EAAA;IACzCM,cAAQ,CAAC,IAAI,CAAC,CAAC;;AAEf,IAAAL,aAAW,CAAC,eAAe,GAAG,IAAI,CAAC;IAEnCM,WAAK,CAAC,EAAE,CAAC,CAAC;AAEV,IAAAN,aAAW,CAAC,eAAe,GAAG,KAAK,CAAC;AACxC,CAAC;AAEK,SAAU,iBAAiB,CAC7B,KAAU,EACV,IAAc,EACd,SAAuB,EACvB,EAAE,SAAS,EAAiC,EAAA;IAE5C,IAAI,SAAS,aAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,IAAI,EAAE;QACjB,MAAM,WAAW,GAAGO,6BAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,KAAK,GAAGC,+BAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KAC7D;AAED,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAEK,SAAU,iBAAiB,CAC7B,KAAU,EACV,EAAE,SAAS,EAAiC,EAC5C,eAAwB,EAAA;IAExB,IAAI,eAAe,KAAI,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,IAAI,CAAA,EAAE;AACpC,QAAA,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,eAAe,uBAAuB,CAClC,GAAyB,EACzB,UAAsB,EACtB,SAA0C,EAC1C,WAA6B,EAC7B,WAA4B,EAAA;IAE5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC7C,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAC5B;AAED,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;AACrC,IAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,OAAO,CAAC,CAAC;;IAGjE,MAAM,WAAW,GAAgC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpE,IAAA,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;AAE1C,IAAA,MAAM,WAAW,GAAG,OAAO,KAAK,QAAQ,KAAK,CAAC,WAAW,IAAI,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjG,IAAI,WAAW,EAAE;AACb,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7D,QAAA,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7B,IAAI,aAAa,EAAE;YACf,MAAM,aAAc,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC7D;QAED,IAAI,QAAQ,EAAE;YACV,SAAS,CAAC,MAAM,CAAC;AACb,gBAAA,QAAQ,EAAE,QAAQ;AACrB,aAAA,CAAC,CAAC;SACN;KACJ;AACL,CAAC;AAED,SAAS,cAAc,CACnB,GAAyB,EACzB,UAAsB,EACtB,SAAgD,EAChD,WAA6B,EAC7B,WAA4B,EAAA;AAE5B,IAAA,IAAI,UAAU,CAAC,mBAAmB,EAAE;AAChC,QAAA,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;KAChD;IACD,UAAU,CAAC,mBAAmB,GAAG,UAAU,CACvC,MAAM,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,WAA+B,EAAE,WAAW,CAAC,EACvG,CAAC,CACJ,CAAC;AACN,CAAC;AAYD,IAAI,cAAc,GAAmB,EAAE,CAAC;AACxC,MAAM,oBAAoB,GAAuC,IAAI,GAAG,EAAE,CAAC;AAC3E,MAAM,4BAA4B,GAA+B,IAAI,GAAG,EAAE,CAAC;AAE3E,SAAS,YAAY,CAAC,OAAiB,EAAA;AACnC,IAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,MAAM,UAAU,GAAa,EAAE,CAAC;;AAEhC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE;AACV,YAAA,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;SAC7C;aAAM;AACH,YAAA,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnC,YAAA,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B;KACJ;AACD,IAAA,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA0B,EAAA;AAClD,IAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAwB,CAAC;AAC3D,IAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAwB,CAAC;AAE1D,IAAA,MAAM,SAAS,GAAkC,IAAI,GAAG,EAAE,CAAC;AAC3D,IAAA,MAAM,QAAQ,GAAkC,IAAI,GAAG,EAAE,CAAC;AAC1D,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;QAC/C,MAAM,UAAU,GAAG,cAAc,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;QAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;AAClE,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AACxC,QAAA,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5B,QAAA,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACvB,QAAA,CAAC,cAAc,GAAG,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAC3D;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,eAAe,oBAAoB,GAAA;;;AAE/B,IAAA,MAAM,aAAa,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACzD,cAAc,GAAG,EAAE,CAAC;AAEpB,IAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAiB,CAAC;AACpD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;gBAC/C,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;aACpD;AACD,YAAA,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,YAAA,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9D;KACJ;;;;;;;;;;;;;;AAgBD,IAAA,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;;IAGlF,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvD,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AAE1D,IAAA,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,2BAA2B,KAAA,IAAA,IAA3B,2BAA2B,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA3B,2BAA2B,CAAE,WAAW,CAAC;QAChF,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE;YACT,IAAI,iBAAiB,EAAE;gBACnB,YAAY,CAAC,iBAAiB,CAAC,CAAC;aACnC;AAED,YAAA,4BAA4B,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,OAAO,CAAQ,CAAC,CAAC;SAC9E;aAAM;AACH,YAAA,GAAG,EAAE,CAAC;SACT;KACJ;AACL,CAAC;AAED,eAAe,0BAA0B,CAAC,WAA0B,EAAA;IAChE,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,MAAM,EAAE;AACb,QAAA,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACpD,QAAA,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAE1C,QAAA,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE1F,QAAA,oBAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;KAChD;AACL,CAAC;AAED,eAAe,eAAe,CAAC,YAA0B,EAAA;AACrD,IAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC;AAExG,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACpC,IAAA,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,WAAW,CAAC;IACjC,MAAM,SAAS,GAAG,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,IAAI,KAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,iBAAiB,IAAI,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAClH,IAAA,MAAM,UAAU,GAAG,CAAC,EAChB,CAAC,cAAc;AACf,SAAA,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,GAAG,CAAA;QACf,CAAA,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,UAAU,MAAK,KAAK;AAClC,QAAA,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,CACnC,CAAC;AAEF,IAAA,IAAI,SAAS,IAAI,UAAU,EAAE;QACzB,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE;AAC9C,YAAA,OAAO,CAAC,KAAK,CACT,oFAAoF,EACpF,OAAO,CACV,CAAC;AACF,YAAA,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,YAAY,GAAwB,EAAE,CAAC;AAC7C,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,IAAI,iBAAiB,GAA4B,EAAE,CAAC;;AAGpD,QAAA,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,KAAK,GAAG,KAAK,CAAC;;;;;AAMlB,YAAA,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;AACvB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,oBAAA,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;wBACnF,KAAK,GAAG,IAAI,CAAC;wBACb,MAAM;qBACT;iBACJ;aACJ;YAED,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,gBAAA,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAE1B,gBAAA,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,SAAS,EAAE;AACX,oBAAA,MAAM,qBAAqB,GAAG,iBAAiB,CAC3C,WAAW,EACX,IAAgB,EAChB,SAAS,EACT,WAAW,CACd,CAAC;oBAEF,iBAAiB,CAAC,IAAI,CAClB,SAAS,CAAC,qBAAqB,EAAE,CAAC,gBAAgB,KAAI;;wBAElD,YAAY,CAAC,IAAI,CAAC;4BACd,IAAI;4BACJ,SAAS;4BACT,UAAU;AACV,4BAAA,WAAW,EAAE,gBAAgB;4BAC7B,OAAO;AACV,yBAAA,CAAC,CAAC;qBACN,CAAC,CACL,CAAC;iBACL;aACJ;SACJ;;AAGD,QAAA,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtD,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACxC;AAED,QAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;KACrD;AACL,CAAC;AACD,eAAe,gBAAgB,CAAC,YAA0B,EAAA;AACtD,IAAA,MAAM,EACF,SAAS,EACT,OAAO,EACP,UAAU,EACV,WAAW,EAAE,WAAW,EACxB,cAAc,EACd,iBAAiB,GACpB,GAAG,YAAY,CAAC;AAEjB,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACpC,IAAA,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAQ,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,IAAA,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,iBAAiB,IAAI,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC5G,IAAA,MAAM,UAAU,GACZ,CAAC,cAAc,KAAI,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,GAAG,CAAA,IAAI,CAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,UAAU,MAAK,KAAK,IAAI,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAEjH,IAAA,IAAI,SAAS,IAAI,UAAU,EAAE;QACzB,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE;AAC9C,YAAA,OAAO,CAAC,KAAK,CACT,oFAAoF,EACpF,OAAO,CACV,CAAC;AACF,YAAA,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,aAAa,GAAwB,EAAE,CAAC;AAC9C,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,IAAI,iBAAiB,GAA4B,EAAE,CAAC;;AAGpD,QAAA,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,KAAK,GAAG,KAAK,CAAC;;;;;AAMlB,YAAA,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;AACvB,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,oBAAA,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;wBACnF,KAAK,GAAG,IAAI,CAAC;wBACb,MAAM;qBACT;iBACJ;aACJ;YAED,IAAI,CAAC,KAAK,EAAE;gBACR,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,gBAAA,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAE1B,gBAAA,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAE1D,IAAI,UAAU,EAAE;AACZ,oBAAA,MAAM,sBAAsB,GAAG,iBAAiB,CAC5C,WAAW,EACX,IAAgB,EAChB,SAAS,EACT,YAAY,IAAI,EAAE,CACrB,CAAC;oBAEF,iBAAiB,CAAC,IAAI,CAClB,SAAS,CAAC,sBAAsB,EAAE,CAAC,gBAAgB,KAAI;;;AAEnD,wBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAC5B,4BAAA,UAAU,CAAC,cAAc,GAAG,EAAE,CAAC;yBAClC;;;wBAID,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,wBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,4BAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BAClD,IAAI,CAAA,EAAA,GAAA,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,CAAC,EAAE;gCAC1C,KAAK,GAAG,IAAI,CAAC;gCACb,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gCACpC,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,gCAAAC,eAAS,CACL,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,EACvC,SAAS,EACT,cAAc,EACd,WAAW,CACd,CAAC;6BACL;yBACJ;wBACD,IAAI,CAAC,KAAK,EAAE;;;AAGR,4BAAA,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE;gCACzC,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAC5C,oCAAA,OAAO,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;iCACzC;6BACJ;;;4BAGD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;gCACrC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAV,UAAU,GAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;6BAChF;;;4BAID,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;yBACtD;;wBAGD,aAAa,CAAC,IAAI,CAAC;4BACf,IAAI;4BACJ,SAAS;4BACT,UAAU;AACV,4BAAA,WAAW,EAAE,gBAAgB;4BAC7B,OAAO;AACV,yBAAA,CAAC,CAAC;qBACN,CAAC,CACL,CAAC;iBACL;aACJ;SACJ;;AAGD,QAAA,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtD,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACxC;AAED,QAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;KAC1C;AACL,CAAC;AAED,eAAe,aAAa,CAAC,UAA0C,EAAA;AACnE,IAAA,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;AAC9D,IAAA,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;AAC9E,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;AAErC,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACpC,IAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAQ,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,IAAA,MAAM,kBAAkB,GAAG,OAAO,IAAI,CAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,eAAe,MAAK,OAAO,CAAC;AAEhF,IAAA,IAAI,UAAU,IAAI,kBAAkB,EAAE;;QAElC,MAAM,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;YACnE,OAAO,EAAE,UAAU,CAAC,cAAc;AACrC,SAAA,CAAC,CAAC;KACN;AAED,IAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;;;AAGzB,QAAA,IAAI,UAAU,GAAG,aAAc,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAEtE,IAAI,UAAU,EAAE;AACZ,YAAA,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAK;AAC9B,gBAAA,kBAAkB,CAAC,MAAM,CAAC,UAA0B,CAAC,CAAC;AAC1D,aAAC,CAAC,CAAC;;AAEH,YAAA,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;AAGnC,YAAA,MAAM,UAAU,CAAC;SACpB;KACJ;AACL,CAAC;AACD,eAAe,cAAc,CAAC,UAA2C,EAAA;;AACrE,IAAA,IAAI,CAAC,UAAU;QAAE,OAAO;AAExB,IAAA,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;AACnD,IAAA,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;AAC9E,IAAA,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;AAEjD,IAAA,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACpC,IAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAQ,CAAC,CAAC;AAClE,IAAA,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,GAC1F,WAAW,IAAK,EAAoB,CAAC;AACzC,IAAA,MAAM,kBAAkB,GAAG,OAAO,IAAI,eAAe,KAAK,OAAO,CAAC;AAElE,IAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;;QAE1B,MAAMC,UAAI,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,kBAAkB,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE5F,IAAI,UAAU,EAAE;AACZ,YAAA,MAAM,OAAO,GAAGC,gBAAU,CAAC,UAAU,CAAC;AAClC,kBAAE,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;kBACzD,UAAU,CAAC;YACjB,IAAI,OAAO,EAAE;AACT,gBAAA,MAAMD,UAAI,CAAC,OAAO,CAAC,CAAC;aACvB;SACJ;AAED,QAAA,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC;QACnD,IAAI,aAAa,EAAE;AACf,YAAA,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;SAChC;AAED,QAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,EAAI,CAAC;AAEhB,QAAA,UAAU,CAAC,mBAAmB,GAAG,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3E,QAAA,IAAI,YAAY,GAAG,UAAW,CAAC,GAAI,CAAC;YAChC,GAAG;AACH,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,OAAO,EAAE,aAAa;YACtB,KAAK;AACR,SAAA,CAAC,CAAC;AACH,QAAA,IAAIX,eAAS,CAAC,YAAY,CAAC,EAAE;AACzB,YAAA,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAG,GAAG,CAAC,CAAC,CAAC;SACjE;AAED,QAAA,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC;QAEjC,UAAU,CAAC,mBAAmB,EAAE,CAAC;;;;QAKjC,IAAI,KAAK,EAAE;YACP,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpF,YAAA,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AACpC,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,OAAO,EAAE;oBACT,MAAM,QAAQ,GAAoB,EAAE,CAAC;AACrC,oBAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,aAAc,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC;oBACxE,IAAI,kBAAkB,GAAuB,SAAS,CAAC;AAEvD,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,wBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;wBAE5B,IAAI,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAG,OAAO,CAAC,EAAE;;AAEpB,4BAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;AACxB,4BAAA,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;yBAC9B;qBACJ;oBAED,IAAI,QAAQ,EAAE;AACV,wBAAA,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;qBAChC;;;oBAID,IAAI,OAAO,IAAI,CAACa,aAAO,CAAC,OAAO,CAAC,EAAE;wBAC9B,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;qBACvE;AAED,oBAAA,IAAI,UAAU,CAAC,mBAAmB,GAAG,CAAC,EAAE;wBACpC,IAAI,kBAAkB,EAAE;AACpB,4BAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;AAChC,gCAAA,UAAU,CAAC,kBAAkB,GAAG,EAAE,CAAC;6BACtC;AACD,4BAAA,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;yBAC1D;qBACJ;yBAAM;AACH,wBAAA,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAChF,wBAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,4BAAA,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,KAAKb,eAAS,CAAC,MAAM,CAAC,CAAC,EAAE;gCAChD,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;6BAC9C;AACD,4BAAA,cAAc,CAAC,MAAMc,yBAAmB,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;yBACjE;wBAED,IAAI,kBAAkB,IAAI,CAACD,aAAO,CAAC,QAAQ,CAAC,EAAE;4BAC1C,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;yBACrE;AAED,wBAAA,UAAU,CAAC,kBAAkB,GAAG,EAAE,CAAC;qBACtC;iBACJ;AACD,gBAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,EAAI,CAAC;aAClB;SACJ;KACJ;AACL,CAAC;AAED,SAAS,WAAW,CAChB,GAAkB,EAClB,SAAgD,EAChD,UAAsB,EACtB,WAA6B,EAC7B,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAkB,EAAA;IAE5C,IAAI,CAAC,OAAO,EAAE;QACV,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,QAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;;QAEvD,cAAc,CAAC,IAAI,CAAC;AAChB,YAAA,GAAG,EAAE,GAAsB;YAC3B,SAAS;YACT,UAAU;YACV,WAAW;YACX,OAAO;YACP,cAAc;AACd,YAAA,iBAAiB,EAAE,iBAAkB;AACxC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,cAAc,CAAC,oBAAoB,CAAC,CAAC;SACxC;KACJ;AACL,CAAC;AAED,eAAe,SAAS,CACpB,GAAuB,EACvB,WAA+B,EAC/B,SAAgD,EAChD,UAAsB,EAAA;;AAEtB,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAEhC,IAAI,OAAO,EAAE;AACT,QAAA,MAAM,aAAa,GACf,OAAO,CAAC,MAAO,KAAI,CAAA,EAAA,GAAA,2BAA2B,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAA,CAAC;QACnE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACpD,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACtD;;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AACpC,YAAA,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC1C,YAAA,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAEE,gBAAU,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3E,YAAA,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAC5C,YAAA,IAAI,aAAa,CAAC,UAAU,EAAE;AAC1B,gBAAA,MAAM,iBAAiB,GAAG,CAAA,EAAA,GAAA,aAAa,CAAC,UAAU,8DAAG,CAAA,2BAA2B,KAA3B,IAAA,IAAA,2BAA2B,uBAA3B,2BAA2B,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;AACjG,gBAAA,IAAIf,eAAS,CAAC,iBAAiB,CAAC,EAAE;AAC9B,oBAAA,MAAM,iBAAiB,CAAC;iBAC3B;aACJ;AACD,YAAA,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAClC;AAED,QAAA,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;QACjF,MAAM,aAAa,GAAG,MAAiC,CAAC;AAExD,QAAA,UAAU,CAAC,aAAa,GAAG,aAAwC,CAAC;AAEpE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;AACtB,YAAA,MAAMW,UAAI,CAAC,YAAY,CAAC,CAAC;SAC5B;;AAGD,QAAA,IAAI,aAAa,CAAC,SAAS,EAAE;YACzB,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE;AACT,gBAAA,MAAM,OAAO,CAAC;aACjB;SACJ;;AAGD,QAAA,MAAM,SAAS,GAAGR,cAAY,CAAC,IAAI,CAAW,CAAC;;AAG/C,QAAA,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE1D,IAAI,QAAQ,EAAE;AACV,YAAA,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC7B,YAAA,UAAU,CAAC,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC7C,SAAS,CAAC,MAAM,CAAC;gBACb,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC9B,aAAA,CAAC,CAAC;SACN;;AAGD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAE7B,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;AAEtD,YAAA,IAAIH,eAAS,CAAC,KAAK,CAAC,EAAE;gBAClB,KAAK,GAAG,MAAM,KAAK,CAAC;aACvB;;;AAID,YAAAI,cAAQ,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;;AAG3C,YAAA,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,IAAK,SAAiB,CAACF,cAAY,CAAC,CAAC,EAAE;AACpE,gBAAA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAClB;iBAAM;AACH,gBAAAY,yBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACnC;AAED,YAAAV,cAAQ,CAAC,WAAW,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/C;AAED,QAAA,IAAI,CAAC,KAAM,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,MAC5B,OAAO,CAAC,GAAG,CAAC;AACR,YAAA,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;AACxC,YAAA,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;AAC9C,SAAA,CAA6B,CAAC;KACtC;AACD,IAAA,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAEe,SAAA,cAAc,CAC1B,IAAwB,EACxB,WAA6B,EAAA;AAE7B,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;;IAG3B,IAAI,WAAW,EAAE;AACb,QAAA,WAAW,GAAG,MAAM,CAAC,MAAM,CACvB;AACI,YAAA,QAAQ,EAAE,MAAM;AACF,SAAA,EAClB,2BAA2B,EAC3B,mBAAmB,CAAC,WAAW,CAAC,CACnC,CAAC;KACL;IACD,MAAM,UAAU,GAAe,EAAE,CAAC;AAClC,IAAA,IAAI,IAAyB,CAAC;IAE9B,MAAM,SAAS,IAAI,IAAI,CAAC,KAAK,GAAGW,gBAAU,CAAsB;AAC5D,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,QAAQ,EAAE,CAAC,WAAW,CAAC,GAAG;AAC1B,QAAA,cAAc,EAAE,IAAI;AACpB,QAAA,eAAe,EAAE,IAAI;AACrB,QAAA,UAAU,EAAE,SAA2C;AACvD,QAAA,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE;AAC7B,QAAA,iBAAiB,EAAE,MAAM,UAAU,CAAC,cAAc;AACrD,KAAA,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEpD,IAAA,UAAU,CAAC,UAAU,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAE3D,IAAA,IAAI,WAAW,CAAC,GAAG,EAAE;QACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,GAAG,YAAW;;YACd,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;AAC/C,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC;AAC1C,YAAA,MAAM,GAAG,GAAG,CAAA,EAAA,GAAA,UAAU,CAAC,UAAW,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAEpE,IAAI,GAAG,EAAE;gBACL,MAAM,MAAM,GAAG,MAAK;AAChB,oBAAA,GAAG,CAAC;AACA,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,GAAG,EAAE,IAAI;AACT,wBAAA,OAAO,EAAE,WAAW;wBACpB,QAAQ;AACR,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,OAAO,EAAE,CAAC,KAAY,KAAI;;AACtB,4BAAA,CAAA,EAAA,GAAA,WAAW,CAAC,UAAU,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,WAAA,EAAA,KAAK,CAAC,CAAC;yBACnC;wBACD,KAAK,EAAE,MAAK;AACR,4BAAA,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC;AACf,gCAAA,QAAQ,EAAE,IAAI;AACd,gCAAA,KAAK,EAAE,SAAS;AACnB,6BAAA,CAAC,CAAC;yBACN;wBACD,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAI;4BAC1C,IAAI,GAAG,WAAW,CAAC,OAAO,IAAI,IAAI,IAAI,KAAK,CAAC;AAC5C,4BAAA,IAAI,KAAK,KAAK,SAAS,EAAE;gCACrB,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACpD,gCAAA,IAAIf,eAAS,CAAC,KAAK,CAAC,EAAE;oCAClB,KAAK,GAAG,MAAO,KAAoB,CAAC;iCACvC;AAED,gCAAA,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC;gCAC1C,IAAI,OAAO,EAAE;oCACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;wCACjC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;wCACjD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wCAE9B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;4CAC1B,IAAID,cAAQ,CAAC,KAAK,CAAC,IAAIA,cAAQ,CAAC,CAAC,CAAC,EAAE;AAChC,gDAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;6CAC3B;iDAAM;gDACH,KAAK,GAAG,CAAC,CAAC;6CACb;yCACJ;6CAAM,IAAK,KAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;4CAC1C,KAAa,GAAGW,eAAS,CACtB,KAAY,EACZ,CAAC,EACD,CAAC,EACD,CAAC,EACD,OAAO,EACP,IAAI,CAAC,IAAI,EAAE,EACX,CAAC,IAAc,EAAE,KAAU,KAAI;AAC3B,gDAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;gDACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;AACtB,oDAAA,CAAC,EAAE,IAAI;AACP,oDAAA,CAAC,EAAE,KAAK;oDACR,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;iDAC7B,CAAC;AACN,6CAAC,CACJ,CAAC;yCACL;AACL,qCAAC,CAAC,CAAC;iCACN;gCAED,cAAc,CAAC,MAAK;oCAChB,IAAI,IAAI,KAAK,QAAQ,IAAIX,cAAQ,CAAC,KAAK,CAAC,EAAE;AACrC,wCAAA,IAAsC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qCACzD;yCAAM,IAAI,IAAI,KAAK,QAAQ,IAAIiB,aAAO,CAAC,KAAK,CAAC,EAAE;AAC3C,wCAAA,IAAqC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;qCACzD;yCAAM,IAAI,IAAI,KAAK,SAAS,IAAIA,aAAO,CAAC,KAAK,CAAC,EAAE;wCAC5C,IAAqC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;qCACjE;AAAM,yCAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACzB,wCAAAF,yBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;qCACpC;yCAAM;AACH,wCAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qCACnB;AACL,iCAAC,CAAC,CAAC;6BACN;AACD,4BAAA,IAAI,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE;gCACjC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;oCACrD,QAAQ;AACX,iCAAA,CAAC,CAAC;6BACN;yBACJ;AACJ,qBAAA,CAAC,CAAC;AACP,iBAAC,CAAC;AACF,gBAAA,MAAM,EAAE,CAAC;aACZ;iBAAM;AACH,gBAAA,IAAI,CAAC,KAAM,CAAC,MAAM,CAAC;AACf,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA,CAAC,CAAC;aACN;YACD,IAAI,CAAC,QAAQ,EAAE;gBACX,QAAQ,GAAG,IAAI,CAAC;;gBAEhB,MAAMH,UAAI,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,WAAW,CAAC,kBAAkB,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAExG,IAAI,OAAO,IAAI,CAACE,aAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,oBAAA,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;oBAGlC,MAAM,OAAO,GAAa,EAAE,CAAC;AAC7B,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,wBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACpD,wBAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AACjC,wBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;qBACvE;;;oBAID,WAAW,CAAC,IAA6B,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE;AAC3E,wBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;AAClB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,MAAM,EAAE,KAAK;;AAEb,wBAAA,WAAW,EAAE,MAAM,SAAS;wBAC5B,OAAO;AACV,qBAAA,CAAC,CAAC;AACH,oBAAA,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC;iBACxC;aACJ;AACL,SAAC,CAAC;AAEF,QAAA,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9B;;IAGD,MAAM,gBAAgB,GAAG,MAAK;;QAC1B,IAAI,UAAU,GAA0B,IAAI,CAAC;QAC7C,OAAO,UAAU,EAAE;AACf,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAU,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,EAAE,MAAK,KAAK,EAAE;AAClD,gBAAA,OAAO,KAAK,CAAC;aAChB;AACD,YAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;SAClC;AACD,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC;;IAEFF,UAAI,CAAC,gBAAgB,EAAE,YAAA;;QAEnB,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,KAAK,MAAM,EAAE;AACpD,YAAA,IAAI,EAAE,CAAC;SACV;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAiC,CAAC,CAAC,CAAC;AACjH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,SAAS,CAAC;AACrB;;ACv7BA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,gBAAET,cAAY,EAAE,YAAY,EAAE,YAAY,EAAE,GAAGE,cAAQ,CAAC;SAEnF,wBAAwB,GAAA;IACpC,WAAW,CAAC,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,IAAe,EAAE,QAAa,EAAA;AACvF,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;;AAEtB,YAAA,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,eAAgB,CAAC;YAE/D,IAAI,QAAQ,GAAyB,SAAS,CAAC;YAC/C,MAAM,YAAY,GAA4B,EAAE,CAAC;YACjD,IAAI,aAAa,GAAQ,SAAS,CAAC;;;AAInC,YAAA,IAAI,SAA6C,CAAC;AAClD,YAAA,MAAM,OAAO,GAAG,MAAM,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,IAAI,EAAE,CAAC;YAExC,IAAI,GAAG,EAAE;AACL,gBAAA,YAAY,CAAC,GAAG,GAAG,CAAC,MAAoC,KAAI;AACxD,oBAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,oBAAA,MAAM,cAAc,GAAG,CAAC,QAAgB,MAAM,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC1E,oBAAA,MAAM,OAAO,GAAG,CAAC,IAAa,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;AAExD,oBAAA,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACzC,oBAAA,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAK;AACrD,wBAAA,OAAO,GAAI,CAAC;4BACR,KAAK,EACDQ,gBAAU,CAAC,aAAa,CAAC,KAAI,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAGV,cAAY,CAAC,CAAA,GAAG,SAAS,GAAG,aAAa;4BAC1F,QAAQ,EAAE,MAAM,CAAC,QAAS;4BAC1B,cAAc;4BACd,OAAO;4BACP,OAAO;AACV,yBAAA,CAAC,CAAC;AACP,qBAAC,CAAC,CAAC;oBAEH,aAAa,GAAG,KAAK,CAAC;AAEtB,oBAAA,OAAO,KAAK,CAAC;AACjB,iBAAC,CAAC;aACL;YACD,IAAI,GAAG,EAAE;;AAEL,gBAAA,YAAY,CAAC,GAAG,GAAG,OAAO,MAAoC,KAAI;;oBAC9D,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,GAAG,EAAE,EAAE;AAC5B,wBAAA,MAAM,aAAa,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;wBACxC,OAAO,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,UAAU,KAAI;4BAC1D,IAAI,OAAO,GAAG,EAAE,CAAC;4BACjB,IAAI,WAAW,GAAG,CAAC,CAAC;4BACpB,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;gCAC9B,MAAMe,eAAS,CAAC,IAAI,CAAC,KAAM,CAAC,QAAQ,CAAC,CAAC;6BACzC;4BAED,MAAM,WAAW,GAAG,MAAK;AACrB,gCAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7B,6BAAC,CAAC;AAEF,4BAAA,MAAM,GAAG,CAAC;AACN,gCAAA,GAAI,MAAoC;gCACxC,IAAI;AACJ,gCAAA,MAAM,EAAE,CAAC,MAAM,KAAI;AACf,oCAAA,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;oCACnC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;AACnD,oCAAA,OAAO,GAAGH,yBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;iCACjD;gCACD,QAAQ,EAAE,aAAa,CAAC,UAAU;gCAClC,WAAW;gCACX,OAAO;AACP,gCAAA,aAAa,EAAE,KAAK;AACvB,6BAAA,CAAC,CAAC;4BACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,IAAI,SAAS,EAAE,CAAC;AAC3D,yBAAC,CAAC,CAAC;qBACN;AACL,iBAAC,CAAC;aACL;AAED,YAAA,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,IAAI,aAAa,KAAK,SAAS,EAAE;gBAC7B,QAAQ,GAAG,aAAa,CAAC;aAC5B;iBAAM,IAAI,OAAO,KAAK,SAAS,IAAI,CAACF,gBAAU,CAAC,OAAO,CAAC,EAAE;gBACtD,QAAQ,GAAG,OAAO,CAAC;aACtB;iBAAM;gBACH,QAAQ,GAAG,OAAO,CAAC;aACtB;AACD,YAAA,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;;AAGzD,YAAA,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;YAE/E,IAAI,SAAS,EAAE;AACX,gBAAAD,UAAI,CAAC,aAAa,IAAI,IAAI,EAAE,MAAK;AAC7B,oBAAA,SAAS,CAAC;wBACN,IAAI;AACJ,wBAAA,MAAM,EAAE,CAAC,MAAgC,KAAI;4BACzC,IAAI,CAAC,QAAQ,EAAE;;AAEX,gCAAA,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;6BACnF;iCAAM;gCACH,QAAQ,CAAC,MAAM,CAAC,CAAC;6BACpB;yBACJ;wBACD,OAAO;AACV,qBAAA,CAAC,CAAC;AACP,iBAAC,CAAC,CAAC;aACN;YAED,OAAO,EAAE,MAAM,EAAE,QAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SACjD;aAAM;;YAGH,IAAI,MAAM,GAAyB,SAAS,CAAC;AAC7C,YAAA,MAAM,GAAG,GAAG,OAAO,MAAuB,KAAI;AAC1C,gBAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AACxB,gBAAA,IAAIX,eAAS,CAAC,QAAQ,CAAC,EAAE;AACrB,oBAAA,IAAI;wBACA,QAAQ,GAAG,MAAM,QAAQ,CAAC;qBAC7B;AAAC,oBAAA,OAAA,EAAA,EAAM;;qBAEP;iBACJ;AACD,gBAAA,OAAO,QAAQ,CAAC;AACpB,aAAC,CAAC;YAEF,cAAc,CAAC,IAAI,EAAE;gBACjB,GAAG;AACN,aAAA,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,MAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SAC/C;AACL,KAAC,CAAC;AACN;;AC7IA,MAAM,EAAE,YAAY,EAAE,GAAGI,cAAQ,CAAC;AAE5B,SAAU,MAAM,CAAI,MAAwB,EAAA;AAC9C,IAAA,0BAA0B,EAAE,CAAC;AAC7B,IAAA,QAAQ,OAAO;QACX,CAAC,YAAY,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,KAAA,CAAC,EAAS;AACf,CAAC;AAED,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,SAAS,0BAA0B,GAAA;IAC/B,IAAI,CAAC,UAAU,EAAE;AACb,QAAA,wBAAwB,EAAE,CAAC;QAC3B,UAAU,GAAG,IAAI,CAAC;KACrB;AACL;;SCbgB,gBAAgB,GAAA;AAC5B,IAAA,OAAOc,cAAa,CAAC,WAAW,CAAC,eAAe,CAAC;AACrD,CAAC;AAGY,MAAA,QAAQ,GAEjB;IACA,2BAA2B;;;;;;;;;;"}