@hydranium/protocol 1.0.0-next.327 → 1.0.0-next.328

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.
@@ -12,6 +12,7 @@ import type { DataServerProtocol, DiagnosticOf, TransferDocumentDeletedEvent, Tr
12
12
  import type { Logger } from '../logger';
13
13
  import { type BaseVersion, type ModelVersion } from '../model-service/base-version';
14
14
  import { type ResolvedMessage } from '../messages/primitives';
15
+ import { PendingWorkTracker } from '../pending-work-tracker';
15
16
  import type { MaybePromise } from '../util';
16
17
  import type { RpcProxy } from '../rpc';
17
18
  import type { TextState, TransferCreatedDocument, TransferDocument, TransferSavedDocument } from '../transfer-document';
@@ -245,6 +246,13 @@ export declare class DataSession<TTransfer extends TransferElement, TServer exte
245
246
  * which a close does not fail.
246
247
  */
247
248
  protected readonly settleBeforeCloseMs: number;
249
+ /**
250
+ * How long {@link whenWritesSettled} waits before going on anyway: well past
251
+ * the server's bound on the language-client settle it runs before answering
252
+ * an update. The update itself has no bound, so a server slower than that is
253
+ * taken as lost.
254
+ */
255
+ protected readonly settleWritesMs: number;
248
256
  /**
249
257
  * The clock {@link settleBeforeCloseMs} runs on. {@link DataSessionHost}
250
258
  * carries no {@link Clock}, so a subclass replaces this field as it
@@ -294,9 +302,11 @@ export declare class DataSession<TTransfer extends TransferElement, TServer exte
294
302
  */
295
303
  protected readonly createdUris: Set<string>;
296
304
  /** Per URI, this session's calls still in flight on it, which a close or delete waits for. */
297
- protected readonly inFlight: Map<string, Set<Promise<unknown>>>;
305
+ protected readonly inFlight: Map<string, PendingWorkTracker>;
298
306
  /** This session's saves, persists and deletes still in flight, which a host's exit waits for; see {@link hasSavesInFlight}. */
299
- protected readonly savesInFlight: Set<Promise<unknown>>;
307
+ protected readonly savesInFlight: PendingWorkTracker;
308
+ /** This session's updates still in flight, which a page's unload guard and save account for; see {@link hasWritesInFlight}. */
309
+ protected readonly writesInFlight: PendingWorkTracker;
300
310
  protected readonly disposeEmitter: Emitter<void>;
301
311
  /**
302
312
  * Fires once when the session ends, by {@link dispose} or {@link detach}, as
@@ -480,6 +490,21 @@ export declare class DataSession<TTransfer extends TransferElement, TServer exte
480
490
  * answered too.
481
491
  */
482
492
  whenSavesSettled(): Promise<void>;
493
+ /**
494
+ * Whether an update of this session, one a restore sends again included,
495
+ * has not answered yet. The server answers once an editor on the language
496
+ * client holds the text, so a page that reads unsaved work from its editor
497
+ * guards a reload on this too. Synchronous, for an unload guard that must
498
+ * decide within the tick.
499
+ */
500
+ get hasWritesInFlight(): boolean;
501
+ /**
502
+ * Resolves to `true` once the updates in flight now have answered, so a
503
+ * save of the editor's documents started after it includes them, or to
504
+ * `false` once {@link settleWritesMs} has passed first. An update sent while
505
+ * it waits is not waited for. Never rejects.
506
+ */
507
+ whenWritesSettled(): Promise<boolean>;
483
508
  /**
484
509
  * Whether `sourceClientId` identifies this session's own write.
485
510
  *
@@ -687,6 +712,8 @@ export declare class DataSession<TTransfer extends TransferElement, TServer exte
687
712
  protected recordText(uri: string, document: DataSessionDocument<TTransfer, TServer>): void;
688
713
  /** Run `call`, counted as in flight on each of `uris` until it settles. */
689
714
  protected track<T>(uris: readonly string[], call: () => Promise<T>): Promise<T>;
715
+ /** {@link track} an update of `uris`, counted in {@link writesInFlight} too. */
716
+ protected trackWrite<T>(uris: readonly string[], call: () => Promise<T>): Promise<T>;
690
717
  /**
691
718
  * {@link track} an open of `uri`, kept in {@link openings} until it settles,
692
719
  * and sent once the closes and deletes of `uri` called before it have
@@ -698,8 +725,8 @@ export declare class DataSession<TTransfer extends TransferElement, TServer exte
698
725
  * and every earlier one of `uri` have settled.
699
726
  */
700
727
  protected trackEnding(uri: string, end: () => Promise<void>): Promise<void>;
701
- /** Wait until `calls` have settled, or {@link settleBeforeCloseMs} has passed. */
702
- protected settle(calls: Iterable<Promise<unknown>> | undefined): Promise<void>;
728
+ /** Wait until the work `trackers` hold now has settled, or {@link settleBeforeCloseMs} has passed. */
729
+ protected settle(trackers: Iterable<PendingWorkTracker | undefined>): Promise<void>;
703
730
  protected assertLive(): void;
704
731
  }
705
732
  //# sourceMappingURL=data-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-session.d.ts","sourceRoot":"","sources":["../../src/client/data-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-session.d.ts","sourceRoot":"","sources":["../../src/client/data-session.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ const errors_1 = require("../errors");
16
16
  const base_version_1 = require("../model-service/base-version");
17
17
  const primitives_1 = require("../messages/primitives");
18
18
  const noop_logger_1 = require("../noop-logger");
19
+ const pending_work_tracker_1 = require("../pending-work-tracker");
19
20
  const random_uuid_1 = require("../random-uuid");
20
21
  /**
21
22
  * A session could not re-open a document it had open after its connection
@@ -92,6 +93,13 @@ class DataSession {
92
93
  * which a close does not fail.
93
94
  */
94
95
  settleBeforeCloseMs = 10_000;
96
+ /**
97
+ * How long {@link whenWritesSettled} waits before going on anyway: well past
98
+ * the server's bound on the language-client settle it runs before answering
99
+ * an update. The update itself has no bound, so a server slower than that is
100
+ * taken as lost.
101
+ */
102
+ settleWritesMs = 30_000;
95
103
  /**
96
104
  * The clock {@link settleBeforeCloseMs} runs on. {@link DataSessionHost}
97
105
  * carries no {@link Clock}, so a subclass replaces this field as it
@@ -143,7 +151,9 @@ class DataSession {
143
151
  /** Per URI, this session's calls still in flight on it, which a close or delete waits for. */
144
152
  inFlight = new Map();
145
153
  /** This session's saves, persists and deletes still in flight, which a host's exit waits for; see {@link hasSavesInFlight}. */
146
- savesInFlight = new Set();
154
+ savesInFlight = new pending_work_tracker_1.PendingWorkTracker();
155
+ /** This session's updates still in flight, which a page's unload guard and save account for; see {@link hasWritesInFlight}. */
156
+ writesInFlight = new pending_work_tracker_1.PendingWorkTracker();
147
157
  disposeEmitter = new vscode_jsonrpc_1.Emitter();
148
158
  /**
149
159
  * Fires once when the session ends, by {@link dispose} or {@link detach}, as
@@ -347,7 +357,7 @@ class DataSession {
347
357
  // An open called after this close waits for it instead, see `trackOpen`.
348
358
  const underWay = [...(this.openings.get(args.uri) ?? [])];
349
359
  await this.trackEnding(args.uri, async () => {
350
- await this.settle(this.inFlight.get(args.uri));
360
+ await this.settle([this.inFlight.get(args.uri)]);
351
361
  // Forgotten before the close is sent, so a reconnect in between does
352
362
  // not re-open a document the caller has closed. Every open of it that
353
363
  // was under way when the close was called is marked, so it neither
@@ -418,7 +428,7 @@ class DataSession {
418
428
  }
419
429
  /** Write `args.model` back as this session. The session must have `args.uri` open. */
420
430
  updateDocument(args) {
421
- return this.track([args.uri], async () => {
431
+ return this.trackWrite([args.uri], async () => {
422
432
  const server = await this.connected();
423
433
  const update = { ...args };
424
434
  const baseHash = await this.baseHashOf(server, args.uri, args.baseVersion);
@@ -434,7 +444,7 @@ class DataSession {
434
444
  * open. Resolves to the documents in the order given.
435
445
  */
436
446
  updateDocuments(args) {
437
- return this.track(args.updates.map(update => update.uri), async () => {
447
+ return this.trackWrite(args.updates.map(update => update.uri), async () => {
438
448
  // One copy for the whole call: the copy's identity is what ties its
439
449
  // records together.
440
450
  const updates = { ...args, updates: args.updates.map(update => ({ ...update })) };
@@ -471,7 +481,7 @@ class DataSession {
471
481
  deleteDocument(args) {
472
482
  const deleting = this.trackEnding(args.uri, () => this.track([args.uri], async () => {
473
483
  this.assertLive();
474
- await this.settle(this.inFlight.get(args.uri));
484
+ await this.settle([this.inFlight.get(args.uri)]);
475
485
  const server = await this.connected();
476
486
  const open = this.opens.get(args.uri);
477
487
  await server.deleteModelDocument({ ...args, clientId: this.clientId });
@@ -482,10 +492,7 @@ class DataSession {
482
492
  this.forgetDocument(args.uri);
483
493
  }
484
494
  }));
485
- this.savesInFlight.add(deleting);
486
- const done = () => this.savesInFlight.delete(deleting);
487
- deleting.then(done, done);
488
- return deleting;
495
+ return this.savesInFlight.track(deleting);
489
496
  }
490
497
  /** Run a save or persist of `uri` and record what it answered as saved. */
491
498
  trackSave(uri, send) {
@@ -514,10 +521,7 @@ class DataSession {
514
521
  }
515
522
  return document;
516
523
  });
517
- this.savesInFlight.add(saving);
518
- const done = () => this.savesInFlight.delete(saving);
519
- saving.then(done, done);
520
- return saving;
524
+ return this.savesInFlight.track(saving);
521
525
  }
522
526
  /** Whether the session has ended, by {@link dispose} or {@link detach}. */
523
527
  get isDisposed() {
@@ -529,7 +533,7 @@ class DataSession {
529
533
  * as Theia's `onWillStop`.
530
534
  */
531
535
  get hasSavesInFlight() {
532
- return this.savesInFlight.size > 0;
536
+ return !this.savesInFlight.isIdle;
533
537
  }
534
538
  /**
535
539
  * Resolves once the saves in flight now have answered, or
@@ -537,7 +541,29 @@ class DataSession {
537
541
  * answered too.
538
542
  */
539
543
  whenSavesSettled() {
540
- return this.settle(this.savesInFlight);
544
+ return this.settle([this.savesInFlight]);
545
+ }
546
+ /**
547
+ * Whether an update of this session, one a restore sends again included,
548
+ * has not answered yet. The server answers once an editor on the language
549
+ * client holds the text, so a page that reads unsaved work from its editor
550
+ * guards a reload on this too. Synchronous, for an unload guard that must
551
+ * decide within the tick.
552
+ */
553
+ get hasWritesInFlight() {
554
+ return !this.writesInFlight.isIdle;
555
+ }
556
+ /**
557
+ * Resolves to `true` once the updates in flight now have answered, so a
558
+ * save of the editor's documents started after it includes them, or to
559
+ * `false` once {@link settleWritesMs} has passed first. An update sent while
560
+ * it waits is not waited for. Never rejects.
561
+ */
562
+ async whenWritesSettled() {
563
+ if (this.writesInFlight.isIdle) {
564
+ return true;
565
+ }
566
+ return (await this.clock.raceTimer(this.writesInFlight.whenSettled(), this.settleWritesMs)) !== clock_1.TIMED_OUT;
541
567
  }
542
568
  /**
543
569
  * Whether `sourceClientId` identifies this session's own write.
@@ -566,9 +592,9 @@ class DataSession {
566
592
  }
567
593
  this.disposed = true;
568
594
  this.fireDispose();
569
- const pending = [...this.inFlight.values()].flatMap(calls => [...calls]);
595
+ const settled = this.settle([...this.inFlight.values()]);
570
596
  void (async () => {
571
- await this.settle(pending);
597
+ await settled;
572
598
  await this.registration;
573
599
  // The proxy the session registered on, never a fresh connection: a
574
600
  // connection that dropped already ended the session on the server.
@@ -1010,18 +1036,20 @@ class DataSession {
1010
1036
  try {
1011
1037
  const { call } = resend[0].write;
1012
1038
  if ('update' in call) {
1013
- documents = [await server.updateModelDocument({ ...call.update, baseVersion: resend[0].baseVersion, clientId: this.clientId })];
1039
+ documents = [
1040
+ await this.writesInFlight.track(server.updateModelDocument({ ...call.update, baseVersion: resend[0].baseVersion, clientId: this.clientId }))
1041
+ ];
1014
1042
  }
1015
1043
  else {
1016
1044
  const baseVersion = new Map(resend.map(member => [indexOf(member.write), member.baseVersion]));
1017
- documents = await server.updateModelDocuments({
1045
+ documents = await this.writesInFlight.track(server.updateModelDocuments({
1018
1046
  ...call.updates,
1019
1047
  clientId: this.clientId,
1020
1048
  updates: call.updates.updates.flatMap((update, index) => {
1021
1049
  const version = baseVersion.get(index);
1022
1050
  return version === undefined ? [] : [{ ...update, baseVersion: version }];
1023
1051
  })
1024
- });
1052
+ }));
1025
1053
  }
1026
1054
  }
1027
1055
  catch (error) {
@@ -1127,12 +1155,19 @@ class DataSession {
1127
1155
  track(uris, call) {
1128
1156
  const running = call();
1129
1157
  for (const uri of uris) {
1130
- this.inFlight.set(uri, (this.inFlight.get(uri) ?? new Set()).add(running));
1158
+ let tracker = this.inFlight.get(uri);
1159
+ if (tracker === undefined) {
1160
+ tracker = new pending_work_tracker_1.PendingWorkTracker();
1161
+ this.inFlight.set(uri, tracker);
1162
+ }
1163
+ tracker.track(running);
1131
1164
  }
1132
- const done = () => uris.forEach(uri => this.inFlight.get(uri)?.delete(running));
1133
- running.then(done, done);
1134
1165
  return running;
1135
1166
  }
1167
+ /** {@link track} an update of `uris`, counted in {@link writesInFlight} too. */
1168
+ trackWrite(uris, call) {
1169
+ return this.writesInFlight.track(this.track(uris, call));
1170
+ }
1136
1171
  /**
1137
1172
  * {@link track} an open of `uri`, kept in {@link openings} until it settles,
1138
1173
  * and sent once the closes and deletes of `uri` called before it have
@@ -1168,13 +1203,13 @@ class DataSession {
1168
1203
  });
1169
1204
  return ending;
1170
1205
  }
1171
- /** Wait until `calls` have settled, or {@link settleBeforeCloseMs} has passed. */
1172
- async settle(calls) {
1173
- const pending = [...(calls ?? [])];
1206
+ /** Wait until the work `trackers` hold now has settled, or {@link settleBeforeCloseMs} has passed. */
1207
+ async settle(trackers) {
1208
+ const pending = [...trackers].filter((tracker) => tracker !== undefined && !tracker.isIdle);
1174
1209
  if (pending.length === 0) {
1175
1210
  return;
1176
1211
  }
1177
- await this.clock.raceTimer(Promise.allSettled(pending), this.settleBeforeCloseMs);
1212
+ await this.clock.raceTimer(Promise.all(pending.map(tracker => tracker.whenSettled())), this.settleBeforeCloseMs);
1178
1213
  }
1179
1214
  assertLive() {
1180
1215
  if (this.disposed) {
@@ -1 +1 @@
1
- {"version":3,"file":"data-session.js","sourceRoot":"","sources":["../../src/client/data-session.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAElF,mDAAsE;AACtE,8CAAkD;AAClD,oCAAmD;AAQnD,sCAAgE;AAEhE,gEAA0I;AAC1I,uDAAqG;AACrG,gDAA4C;AAC5C,gDAA4C;AAM5C;;;;GAIG;AACU,QAAA,2BAA2B,GAAG,IAAA,0BAAa,EACrD,gDAAgD,EAChD,yEAAyE,CAC3E,CAAC;AAEF,gFAAgF;AACnE,QAAA,iCAAiC,GAAG,IAAA,0BAAa,EAC3D,sDAAsD,EACtD,wHAAwH,CAC1H,CAAC;AAEF;;;;;;;GAOG;AACU,QAAA,yBAAyB,GAAG,IAAA,0BAAa,EACnD,8CAA8C,EAC9C,8FAA8F,CAChG,CAAC;AAyJF,0GAA0G;AAC1G,SAAS,OAAO,CAAC,KAAoF;IAClG,OAAO,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,qFAAqF;AACrF,SAAS,KAAK,CAAC,KAAoF;IAChG,OAAO,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1E,CAAC;AAkED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH;IA+Ge,QAAQ;IACE,IAAI;IACd,KAAK;IA7GjB;;;;;;OAMG;IACgB,mBAAmB,GAAW,MAAM,CAAC;IACxD;;;;OAIG;IACgB,KAAK,GAAU,IAAI,mBAAW,EAAE,CAAC;IACpD,+DAA+D;IAC5C,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAChD;;;;OAIG;IACgB,KAAK,GAAG,IAAI,GAAG,EAA+C,CAAC;IAClF;;;;OAIG;IACgB,QAAQ,GAAG,IAAI,GAAG,EAAuD,CAAC;IAC7F;;;OAGG;IACgB,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACjE,yFAAyF;IACtE,aAAa,GAAG,IAAI,GAAG,EAAuD,CAAC;IAClG;;;;OAIG;IACgB,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC9D;;;;;;OAMG;IACgB,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClE;;;;;OAKG;IACgB,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACnD,8FAA8F;IAC3E,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;IACvE,+HAA+H;IAC5G,aAAa,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,cAAc,GAAG,IAAI,wBAAO,EAAQ,CAAC;IACxD;;;;;;;;;;OAUG;IACM,YAAY,GAAgB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAC/D;;;;;OAKG;IACgB,WAAW,GAAW,IAAA,wBAAU,GAAE,CAAC;IACtD,6FAA6F;IACnF,YAAY,CAAqB;IACjC,YAAY,CAAiB;IAC7B,QAAQ,GAAG,KAAK,CAAC;IAC3B;;;;OAIG;IACO,QAAQ,GAAG,KAAK,CAAC;IAC3B;;;;;OAKG;IACgB,UAAU,GAAG,IAAI,OAAO,EAAU,CAAC;IACtD,oFAAoF;IACjE,iBAAiB,CAAc;IAClD,uFAAuF;IACpE,kBAAkB,CAAc;IACnD,uFAAuF;IACpE,oBAAoB,CAAc;IACrD,mDAAmD;IAChC,MAAM,CAAS;IAElC,YACY,QAAgB,EACN,IAAyC,EACnD,KAAa;wBAFb,QAAQ;oBACE,IAAI;qBACd,KAAK;QAEd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,wBAAU,EAAE,CAAC;QAC9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACtG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACZ,6DAA6D;QAC7D,wEAAwE;QACxE,kEAAkE;QAClE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,wEAAwE;QACxE,qDAAqD;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;YACpD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC;QACxB,uEAAuE;QACvE,8DAA8D;QAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,IAA6C;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CACrD,IAAI,CAAC,YAAY,CACd,IAAI,CAAC,GAAG,EACR,OAAO,EACP,GAAG,EAAE,CAAC,SAAS,EACf,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC1E,CACH,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,IAA+C;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAClD,IAAI,CAAC,YAAY,CACd,IAAI,CAAC,GAAG,EACR,OAAO,EACP,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EACpC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC5E,CACH,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,KAAK,CAAC,YAAY,CACzB,GAAW,EACX,OAA+C,EAC/C,OAA0D,EAC1D,IAAuD;QAEvD,SAAS,CAAC;YACP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,OAAO,QAAQ,CAAC;YACnB,CAAC;YACD,IAAI,OAA8B,CAAC;YACnC,IAAI,CAAC;gBACF,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,MAAM,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC7B,OAAO,OAAO,IAAI,QAAQ,CAAC;YAC9B,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACO,KAAK,CAAC,WAAW,CACxB,MAAyB,EACzB,GAAW,EACX,QAAmB,EACnB,cAA6B;QAE7B,uEAAuE;QACvE,8DAA8D;QAC9D,oEAAoE;QACpE,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;YACjC,SAAS,EAAE,QAAQ,CAAC,GAAG;YACvB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;SACxF,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,EAAE,CAAC;YAC7G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClF,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACzG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,kEAAkE;YAClE,gDAAgD;YAChD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/B,uEAAuE;QACvE,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAA8C;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,yEAAyE;QACzE,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,qEAAqE;YACrE,sEAAsE;YACtE,mEAAmE;YACnE,sCAAsC;YACtC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,QAAQ,CAAC,MAAyB,EAAE,GAAW,EAAE,OAA+C;QAC7G,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO;QACV,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC;IAED,gFAAgF;IACtE,cAAc,CAAC,GAAW;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACO,OAAO,CAAC,GAAW,EAAE,MAA+C;QAC3E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/H,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CACnB,IAA6C,EAC7C,EAA0E;QAE1E,wEAAwE;QACxE,uEAAuE;QACvE,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzF,MAAM,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC;YACF,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACR,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAA8C,CAAC,CAAC;YAC3F,CAAC;QACJ,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,cAAc,CAAC,IAA+C;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjE,OAAO,QAAQ,CAAC;QACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,IAAgD;QAC7D,OAAO,IAAI,CAAC,KAAK,CACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EACtC,KAAK,IAAI,EAAE;YACR,oEAAoE;YACpE,oBAAoB;YACpB,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1H,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACpC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACrG,CAAC;YACF,OAAO,SAAS,CAAC;QACpB,CAAC,CACH,CAAC;IACL,CAAC;IAED,2FAA2F;IAC3F,YAAY,CAAC,IAA6C;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,IAAgD;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IAED;;;;;;;;;;OAUG;IACH,cAAc,CAAC,IAA+C;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,gEAAgE;YAChE,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBACpF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACJ,CAAC,CAAC,CACJ,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED,2EAA2E;IACjE,SAAS,CAChB,GAAW,EACX,IAAqG;QAErG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,iEAAiE;YACjE,+CAA+C;YAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,OAAO,QAAQ,CAAC;YACnB,CAAC;YACD,sEAAsE;YACtE,oEAAoE;YACpE,gDAAgD;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACnE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,mEAAmE;YACnE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,QAAQ,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IACjB,CAAC;IAED,2EAA2E;IAC3E,IAAI,UAAU;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,IAAI,gBAAgB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,cAAsB;QAC7B,OAAO,cAAc,KAAK,IAAI,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACV,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACzE,KAAK,CAAC,KAAK,IAAI,EAAE;YACd,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,IAAI,CAAC,YAAY,CAAC;YACxB,mEAAmE;YACnE,mEAAmE;YACnE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,WAAW;QAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,SAAS;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACO,gBAAgB,CAAC,KAAwC;QAChE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACrB,OAAO;QACV,CAAC;QACD,oEAAoE;QACpE,4CAA4C;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACO,qBAAqB,CAAC,KAAqE;QAClG,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACtE,OAAO;QACV,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACzC,SAAS;YACZ,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;gBAClE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACO,qBAAqB,CAAC,KAAmC;QAChE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;gBAChC,SAAS;YACZ,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC/E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACzB,SAAS;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACT,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,kEAAkE;YAClE,mEAAmE;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,cAAc,KAAK,8BAAiB,CAAC;YACzF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,QAAQ,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,IAAA,oBAAO,EAAC,QAAA,yBAAyB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,CAAC,SAAS,EAAE;iBACZ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;iBAC7E,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,kBAAkB,CAAC,GAAW;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACL,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IAClB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,QAAQ,CAAC,MAAyB,EAAE,WAAoB;QACrE,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1G,IAAI,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACO,KAAK,CAAC,OAAO,CAAC,MAAyB;QAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,kEAAkE;QAClE,6DAA6D;QAC7D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmD,CAAC;QAC5E,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,sDAAsD;YACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACZ,CAAC;YACD,IAAI,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;gBAC7C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3F,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjB,OAAO;gBACV,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,8DAA8D;oBAC9D,qCAAqC;oBACrC,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBACzF,SAAS;gBACZ,CAAC;gBACD,mEAAmE;gBACnE,gEAAgE;gBAChE,wCAAwC;gBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1E,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;oBAC9F,4DAA4D;oBAC5D,2DAA2D;oBAC3D,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBACzF,MAAM,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjB,OAAO;gBACV,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,8DAA8D;oBAC9D,mDAAmD;oBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACvB,iEAAiE;gBACjE,+DAA+D;gBAC/D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC3E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjB,OAAO;gBACV,CAAC;gBACD,2CAA2C;gBAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,SAAS;gBACZ,CAAC;gBACD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1C,2DAA2D;oBAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC;oBACxD,8DAA8D;oBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBAC7C,4DAA4D;oBAC5D,8CAA8C;oBAC9C,IAAI,KAAK,EAAE,CAAC;wBACT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACtC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC9B,4DAA4D;wBAC5D,IAAI,OAAO,EAAE,CAAC;4BACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAClB,CAAC;wBACD,SAAS;oBACZ,CAAC;oBACD,+DAA+D;oBAC/D,6DAA6D;oBAC7D,IAAI,OAAO,EAAE,CAAC;wBACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClB,CAAC;oBACD,IAAI,CAAC;wBACF,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,8BAAiB,EAAE,CAAC,CAAC;oBACpF,CAAC;oBAAC,MAAM,CAAC;wBACN,iDAAiD;oBACpD,CAAC;oBACD,SAAS;gBACZ,CAAC;gBACD,iEAAiE;gBACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAA,oBAAO,EAAC,QAAA,2BAA2B,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmE,CAAC;QACxF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO;YACV,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACZ,CAAC;YACD,gEAAgE;YAChE,0DAA0D;YAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO;YACV,CAAC;YACD,+DAA+D;YAC/D,iBAAiB;YACjB,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,4DAA4D;gBAC5D,6DAA6D;gBAC7D,gEAAgE;gBAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBACD,IAAI,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC;oBACN,4DAA4D;oBAC5D,2DAA2D;gBAC9D,CAAC;YACJ,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAA,oBAAO,EAAC,QAAA,yBAAyB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACO,cAAc,CACrB,KAAkD,EAClD,QAAiD;QAEjD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7E,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACtH,CAAC;IAED;;;;;;;;;;OAUG;IACO,KAAK,CAAC,OAAO,CACpB,MAAyB,EACzB,OAAyE,EACzE,QAAsE;QAEtE,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAkD,EAAW,EAAE,CAC1F,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;QAC3D,MAAM,QAAQ,GAAG,OAAO;aACpB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxG,CAAC,CAAC,CAAC;QACN,wEAAwE;QACxE,oEAAoE;QACpE,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;YACxD,IAAI,OAAO,KAAK,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;QACJ,CAAC;QACD,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,IAAI,GAAG,GAAa,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACvG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACnB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpH,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;YAClI,OAAO,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,yEAAyE;QACzE,MAAM,MAAM,GAAG,QAAQ;aACnB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAC5C,OAAO,KAAK,QAAQ,IAAI,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CACtG;aACA,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACb,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,SAAoD,CAAC;QACzD,IAAI,CAAC;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACjC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACpB,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACnI,CAAC;iBAAM,CAAC;gBACL,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/F,SAAS,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC;oBAC3C,GAAG,IAAI,CAAC,OAAO;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACrD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACvC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC7E,CAAC,CAAC;iBACJ,CAAC,CAAC;YACN,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACvB,IAAI,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,EAAE,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,MAAM,EAAE,CAAC;gBAChD,oEAAoE;gBACpE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACZ,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAA,oBAAO,EAAC,QAAA,2BAA2B,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5G,6DAA6D;gBAC7D,kEAAkE;gBAClE,6DAA6D;gBAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,OAAO,EAAE,CAAC;QACb,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,iEAAiE;gBACjE,sCAAsC;gBACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1G,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACb,CAAC;IAED;;;;;;;;;OASG;IACO,KAAK,CAAC,UAAU,CAAC,MAAyB,EAAE,GAAW,EAAE,WAAwB;QACxF,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,6BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,IAAI,EAAE,IAAI,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;OAWG;IACO,WAAW,CAClB,GAAW,EACX,IAAqD,EACrD,QAAiD,EACjD,QAA4B,EAC5B,IAAyD;QAEzD,wCAAwC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,OAAO;QACV,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAChD,OAAO;QACV,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YAClD,OAAO;QACV,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACO,QAAQ,CACf,GAAW,EACX,QAAiD;QAEjD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAA,oBAAO,EAAC,QAAA,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,iCAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACzE,CAAC;IAED,gGAAgG;IACtF,UAAU,CAAC,GAAW,EAAE,QAAiD;QAChF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACL,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACJ,CAAC;IAED,2EAA2E;IACjE,KAAK,CAAI,IAAuB,EAAE,IAAsB;QAC/D,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAoB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,IAAI,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACO,SAAS,CAChB,GAAW,EACX,OAAmD,EACnD,IAAqE;QAErE,MAAM,OAAO,GAA2C,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAA0C,CAAC;QAC7F,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;YACrB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IAClB,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,GAAW,EAAE,GAAwB;QACxD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACjB,CAAC;IAED,kFAAkF;IACxE,KAAK,CAAC,MAAM,CAAC,KAA6C;QACjE,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACV,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrF,CAAC;IAES,UAAU;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,2BAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACJ,CAAC;CACH"}
1
+ {"version":3,"file":"data-session.js","sourceRoot":"","sources":["../../src/client/data-session.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAElF,mDAAsE;AACtE,8CAAkD;AAClD,oCAA8D;AAQ9D,sCAAgE;AAEhE,gEAA0I;AAC1I,uDAAqG;AACrG,gDAA4C;AAC5C,kEAA6D;AAC7D,gDAA4C;AAM5C;;;;GAIG;AACU,QAAA,2BAA2B,GAAG,IAAA,0BAAa,EACrD,gDAAgD,EAChD,yEAAyE,CAC3E,CAAC;AAEF,gFAAgF;AACnE,QAAA,iCAAiC,GAAG,IAAA,0BAAa,EAC3D,sDAAsD,EACtD,wHAAwH,CAC1H,CAAC;AAEF;;;;;;;GAOG;AACU,QAAA,yBAAyB,GAAG,IAAA,0BAAa,EACnD,8CAA8C,EAC9C,8FAA8F,CAChG,CAAC;AAyJF,0GAA0G;AAC1G,SAAS,OAAO,CAAC,KAAoF;IAClG,OAAO,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,qFAAqF;AACrF,SAAS,KAAK,CAAC,KAAoF;IAChG,OAAO,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1E,CAAC;AAkED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH;IAwHe,QAAQ;IACE,IAAI;IACd,KAAK;IAtHjB;;;;;;OAMG;IACgB,mBAAmB,GAAW,MAAM,CAAC;IACxD;;;;;OAKG;IACgB,cAAc,GAAW,MAAM,CAAC;IACnD;;;;OAIG;IACgB,KAAK,GAAU,IAAI,mBAAW,EAAE,CAAC;IACpD,+DAA+D;IAC5C,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAChD;;;;OAIG;IACgB,KAAK,GAAG,IAAI,GAAG,EAA+C,CAAC;IAClF;;;;OAIG;IACgB,QAAQ,GAAG,IAAI,GAAG,EAAuD,CAAC;IAC7F;;;OAGG;IACgB,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACjE,yFAAyF;IACtE,aAAa,GAAG,IAAI,GAAG,EAAuD,CAAC;IAClG;;;;OAIG;IACgB,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC9D;;;;;;OAMG;IACgB,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClE;;;;;OAKG;IACgB,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACnD,8FAA8F;IAC3E,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACpE,+HAA+H;IAC5G,aAAa,GAAG,IAAI,yCAAkB,EAAE,CAAC;IAC5D,+HAA+H;IAC5G,cAAc,GAAG,IAAI,yCAAkB,EAAE,CAAC;IAC1C,cAAc,GAAG,IAAI,wBAAO,EAAQ,CAAC;IACxD;;;;;;;;;;OAUG;IACM,YAAY,GAAgB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAC/D;;;;;OAKG;IACgB,WAAW,GAAW,IAAA,wBAAU,GAAE,CAAC;IACtD,6FAA6F;IACnF,YAAY,CAAqB;IACjC,YAAY,CAAiB;IAC7B,QAAQ,GAAG,KAAK,CAAC;IAC3B;;;;OAIG;IACO,QAAQ,GAAG,KAAK,CAAC;IAC3B;;;;;OAKG;IACgB,UAAU,GAAG,IAAI,OAAO,EAAU,CAAC;IACtD,oFAAoF;IACjE,iBAAiB,CAAc;IAClD,uFAAuF;IACpE,kBAAkB,CAAc;IACnD,uFAAuF;IACpE,oBAAoB,CAAc;IACrD,mDAAmD;IAChC,MAAM,CAAS;IAElC,YACY,QAAgB,EACN,IAAyC,EACnD,KAAa;wBAFb,QAAQ;oBACE,IAAI;qBACd,KAAK;QAEd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,wBAAU,EAAE,CAAC;QAC9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACtG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACZ,6DAA6D;QAC7D,wEAAwE;QACxE,kEAAkE;QAClE,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,wEAAwE;QACxE,qDAAqD;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;YACpD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC;QACxB,uEAAuE;QACvE,8DAA8D;QAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,IAA6C;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CACrD,IAAI,CAAC,YAAY,CACd,IAAI,CAAC,GAAG,EACR,OAAO,EACP,GAAG,EAAE,CAAC,SAAS,EACf,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC1E,CACH,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CAAC,IAA+C;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAClD,IAAI,CAAC,YAAY,CACd,IAAI,CAAC,GAAG,EACR,OAAO,EACP,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EACpC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC5E,CACH,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,KAAK,CAAC,YAAY,CACzB,GAAW,EACX,OAA+C,EAC/C,OAA0D,EAC1D,IAAuD;QAEvD,SAAS,CAAC;YACP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,OAAO,QAAQ,CAAC;YACnB,CAAC;YACD,IAAI,OAA8B,CAAC;YACnC,IAAI,CAAC;gBACF,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9E,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC1C,MAAM,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC7B,OAAO,OAAO,IAAI,QAAQ,CAAC;YAC9B,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACO,KAAK,CAAC,WAAW,CACxB,MAAyB,EACzB,GAAW,EACX,QAAmB,EACnB,cAA6B;QAE7B,uEAAuE;QACvE,8DAA8D;QAC9D,oEAAoE;QACpE,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;YACjC,SAAS,EAAE,QAAQ,CAAC,GAAG;YACvB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;SACxF,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,EAAE,CAAC;YAC7G,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClF,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACzG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,kEAAkE;YAClE,gDAAgD;YAChD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC/B,uEAAuE;QACvE,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAA8C;QAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,yEAAyE;QACzE,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,qEAAqE;YACrE,sEAAsE;YACtE,mEAAmE;YACnE,sCAAsC;YACtC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,QAAQ,CAAC,MAAyB,EAAE,GAAW,EAAE,OAA+C;QAC7G,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO;QACV,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC;IAED,gFAAgF;IACtE,cAAc,CAAC,GAAW;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACO,OAAO,CAAC,GAAW,EAAE,MAA+C;QAC3E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/H,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CACnB,IAA6C,EAC7C,EAA0E;QAE1E,wEAAwE;QACxE,uEAAuE;QACvE,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzF,MAAM,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC;YACF,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACR,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAA8C,CAAC,CAAC;YAC3F,CAAC;QACJ,CAAC;IACJ,CAAC;IAED,sFAAsF;IACtF,cAAc,CAAC,IAA+C;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACjE,OAAO,QAAQ,CAAC;QACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,IAAgD;QAC7D,OAAO,IAAI,CAAC,UAAU,CACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EACtC,KAAK,IAAI,EAAE;YACR,oEAAoE;YACpE,oBAAoB;YACpB,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1H,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACpC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CACrG,CAAC;YACF,OAAO,SAAS,CAAC;QACpB,CAAC,CACH,CAAC;IACL,CAAC;IAED,2FAA2F;IAC3F,YAAY,CAAC,IAA6C;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,IAAgD;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IAED;;;;;;;;;;OAUG;IACH,cAAc,CAAC,IAA+C;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,gEAAgE;YAChE,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBACpF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACJ,CAAC,CAAC,CACJ,CAAC;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,2EAA2E;IACjE,SAAS,CAChB,GAAW,EACX,IAAqG;QAErG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,iEAAiE;YACjE,+CAA+C;YAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,OAAO,QAAQ,CAAC;YACnB,CAAC;YACD,sEAAsE;YACtE,oEAAoE;YACpE,gDAAgD;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACnE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,mEAAmE;YACnE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;gBAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,QAAQ,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,2EAA2E;IAC3E,IAAI,UAAU;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,IAAI,gBAAgB;QACjB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,iBAAiB;QAClB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB;QACpB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACf,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,iBAAS,CAAC;IAC7G,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,cAAsB;QAC7B,OAAO,cAAc,KAAK,IAAI,CAAC,QAAQ,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,OAAO;QACV,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzD,KAAK,CAAC,KAAK,IAAI,EAAE;YACd,MAAM,OAAO,CAAC;YACd,MAAM,IAAI,CAAC,YAAY,CAAC;YACxB,mEAAmE;YACnE,mEAAmE;YACnE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,WAAW;QAClB,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,SAAS;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACO,gBAAgB,CAAC,KAAwC;QAChE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACrB,OAAO;QACV,CAAC;QACD,oEAAoE;QACpE,4CAA4C;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACO,qBAAqB,CAAC,KAAqE;QAClG,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACtE,OAAO;QACV,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACzC,SAAS;YACZ,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;gBAClE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;QACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACO,qBAAqB,CAAC,KAAmC;QAChE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;gBAChC,SAAS;YACZ,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC/E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACzB,SAAS;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACT,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,kEAAkE;YAClE,mEAAmE;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,cAAc,KAAK,8BAAiB,CAAC;YACzF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,QAAQ,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,IAAA,oBAAO,EAAC,QAAA,yBAAyB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,CAAC,SAAS,EAAE;iBACZ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;iBAC7E,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,kBAAkB,CAAC,GAAW;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACL,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IAClB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,QAAQ,CAAC,MAAyB,EAAE,WAAoB;QACrE,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1G,IAAI,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACO,KAAK,CAAC,OAAO,CAAC,MAAyB;QAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,kEAAkE;QAClE,6DAA6D;QAC7D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmD,CAAC;QAC5E,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,sDAAsD;YACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACZ,CAAC;YACD,IAAI,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;gBAC7C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3F,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjB,OAAO;gBACV,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,8DAA8D;oBAC9D,qCAAqC;oBACrC,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBACzF,SAAS;gBACZ,CAAC;gBACD,mEAAmE;gBACnE,gEAAgE;gBAChE,wCAAwC;gBACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1E,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;oBAC9F,4DAA4D;oBAC5D,2DAA2D;oBAC3D,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBACzF,MAAM,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjB,OAAO;gBACV,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,8DAA8D;oBAC9D,mDAAmD;oBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxH,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACvB,iEAAiE;gBACjE,+DAA+D;gBAC/D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC3E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjB,OAAO;gBACV,CAAC;gBACD,2CAA2C;gBAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,SAAS;gBACZ,CAAC;gBACD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1C,2DAA2D;oBAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC;oBACxD,8DAA8D;oBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBAC7C,4DAA4D;oBAC5D,8CAA8C;oBAC9C,IAAI,KAAK,EAAE,CAAC;wBACT,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACtC,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC9B,4DAA4D;wBAC5D,IAAI,OAAO,EAAE,CAAC;4BACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAClB,CAAC;wBACD,SAAS;oBACZ,CAAC;oBACD,+DAA+D;oBAC/D,6DAA6D;oBAC7D,IAAI,OAAO,EAAE,CAAC;wBACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClB,CAAC;oBACD,IAAI,CAAC;wBACF,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,8BAAiB,EAAE,CAAC,CAAC;oBACpF,CAAC;oBAAC,MAAM,CAAC;wBACN,iDAAiD;oBACpD,CAAC;oBACD,SAAS;gBACZ,CAAC;gBACD,iEAAiE;gBACjE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAA,oBAAO,EAAC,QAAA,2BAA2B,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/G,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmE,CAAC;QACxF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO;YACV,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACZ,CAAC;YACD,gEAAgE;YAChE,0DAA0D;YAC1D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,OAAO;YACV,CAAC;YACD,+DAA+D;YAC/D,iBAAiB;YACjB,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,4DAA4D;gBAC5D,6DAA6D;gBAC7D,gEAAgE;gBAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBACD,IAAI,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC;oBACN,4DAA4D;oBAC5D,2DAA2D;gBAC9D,CAAC;YACJ,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAA,oBAAO,EAAC,QAAA,yBAAyB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACO,cAAc,CACrB,KAAkD,EAClD,QAAiD;QAEjD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7E,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACtH,CAAC;IAED;;;;;;;;;;OAUG;IACO,KAAK,CAAC,OAAO,CACpB,MAAyB,EACzB,OAAyE,EACzE,QAAsE;QAEtE,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAkD,EAAW,EAAE,CAC1F,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;QAC3D,MAAM,QAAQ,GAAG,OAAO;aACpB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxG,CAAC,CAAC,CAAC;QACN,wEAAwE;QACxE,oEAAoE;QACpE,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;YACxD,IAAI,OAAO,KAAK,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;QACJ,CAAC;QACD,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,IAAI,GAAG,GAAa,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACvG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACnB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpH,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;YAClI,OAAO,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,yEAAyE;QACzE,MAAM,MAAM,GAAG,QAAQ;aACnB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAC5C,OAAO,KAAK,QAAQ,IAAI,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CACtG;aACA,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACb,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,SAAoD,CAAC;QACzD,IAAI,CAAC;YACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACjC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACpB,SAAS,GAAG;oBACT,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAC5B,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAC7G;iBACH,CAAC;YACL,CAAC;iBAAM,CAAC;gBACL,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/F,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CACxC,MAAM,CAAC,oBAAoB,CAAC;oBACzB,GAAG,IAAI,CAAC,OAAO;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACrD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACvC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC7E,CAAC,CAAC;iBACJ,CAAC,CACJ,CAAC;YACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACvB,IAAI,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,EAAE,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,MAAM,EAAE,CAAC;gBAChD,oEAAoE;gBACpE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACZ,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAA,oBAAO,EAAC,QAAA,2BAA2B,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5G,6DAA6D;gBAC7D,kEAAkE;gBAClE,6DAA6D;gBAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,OAAO,EAAE,CAAC;QACb,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,iEAAiE;gBACjE,sCAAsC;gBACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1G,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACb,CAAC;IAED;;;;;;;;;OASG;IACO,KAAK,CAAC,UAAU,CAAC,MAAyB,EAAE,GAAW,EAAE,WAAwB;QACxF,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,6BAAc,EAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,OAAO,SAAS,CAAC;QACpB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,IAAI,EAAE,IAAI,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;OAWG;IACO,WAAW,CAClB,GAAW,EACX,IAAqD,EACrD,QAAiD,EACjD,QAA4B,EAC5B,IAAyD;QAEzD,wCAAwC;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,OAAO;QACV,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAChD,OAAO;QACV,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YAClD,OAAO;QACV,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACO,QAAQ,CACf,GAAW,EACX,QAAiD;QAEjD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAA,oBAAO,EAAC,QAAA,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,iCAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACzE,CAAC;IAED,gGAAgG;IACtF,UAAU,CAAC,GAAW,EAAE,QAAiD;QAChF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACL,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACJ,CAAC;IAED,2EAA2E;IACjE,KAAK,CAAI,IAAuB,EAAE,IAAsB;QAC/D,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,GAAG,IAAI,yCAAkB,EAAE,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,CAAC;IAClB,CAAC;IAED,gFAAgF;IACtE,UAAU,CAAI,IAAuB,EAAE,IAAsB;QACpE,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACO,SAAS,CAChB,GAAW,EACX,OAAmD,EACnD,IAAqE;QAErE,MAAM,OAAO,GAA2C,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAA0C,CAAC;QAC7F,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;YACrB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IAClB,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,GAAW,EAAE,GAAwB;QACxD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACjB,CAAC;IAED,sGAAsG;IAC5F,KAAK,CAAC,MAAM,CAAC,QAAkD;QACtE,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAiC,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3H,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACV,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpH,CAAC;IAES,UAAU;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,2BAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACJ,CAAC;CACH"}
@@ -69,7 +69,9 @@ export interface DocumentServerProtocol<TTransfer extends TransferElement, TDiag
69
69
  /**
70
70
  * Write several documents the session has open, all or none: a conflict or
71
71
  * a document not open fails the whole set before any text applies.
72
- * Resolves to the documents in the order given. Only for a session
72
+ * Resolves to the documents in the order given, once the language client
73
+ * has answered the push of each, or the server-side bound on that wait
74
+ * passes, as {@link updateModelDocument} does. Only for a session
73
75
  * registered on this connection.
74
76
  */
75
77
  updateModelDocuments(args: TransferUpdateDocumentsArgs<TTransfer>): Promise<TransferDocument<TTransfer, TDiagnostic>[]>;
@@ -110,7 +112,10 @@ export interface DocumentServerProtocol<TTransfer extends TransferElement, TDiag
110
112
  /**
111
113
  * Update a document's content as the session `clientId`, which must have
112
114
  * it open. The response carries the latest built state including
113
- * diagnostics; callers observe convergence via that response.
115
+ * diagnostics; callers observe convergence via that response. It is sent
116
+ * once the language client has answered the push of the text, or the
117
+ * server-side bound on that wait passes, as {@link saveModelDocument}'s
118
+ * is, so an editor already shows the write when it arrives.
114
119
  */
115
120
  updateModelDocument(args: TransferUpdateDocumentArgs<TTransfer>): Promise<TransferDocument<TTransfer, TDiagnostic>>;
116
121
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"data-server-protocol.d.ts","sourceRoot":"","sources":["../../src/data/data-server-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-server-protocol.d.ts","sourceRoot":"","sources":["../../src/data/data-server-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACtI,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3H,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,KAAK,EACT,oBAAoB,EACpB,4BAA4B,EAC5B,iCAAiC,EACjC,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC9B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACT,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC7B,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,sBAAsB,CAAC,SAAS,SAAS,eAAe,EAAE,WAAW,SAAS,kBAAkB,GAAG,kBAAkB;IACnI;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;;;;OASG;IACH,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7G;;;;;;;OAOG;IACH,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAExH;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhI;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhG;;;;;;;OAOG;IACH,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEpH;;;;;;;;;OASG;IACH,iBAAiB,CAAC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAErH;;;;;;;;;OASG;IACH,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhH;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEnF;;;OAGG;IACH,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;;;;;;;;OAUG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO;IACtE;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAC9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,kBAAkB,CAChC,SAAS,SAAS,eAAe,EACjC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,QAAQ,SAAS,OAAO,GAAG,OAAO,CAElC,SAAQ,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC;CAAG;AAE7F;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,CAAC,OAAO,IAC7B,OAAO,SAAS,sBAAsB,CAAC,MAAM,UAAU,EAAE,MAAM,WAAW,CAAC,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAElH,kFAAkF;AAClF,MAAM,MAAM,SAAS,CAAC,OAAO,IAAI,OAAO,SAAS,qBAAqB,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5G;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,uBAAuB;IACrC;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE9E;;;;;;;;OAQG;IACH,gBAAgB,CAAC,QAAQ,SAAS,eAAe,GAAG,eAAe,EAChE,GAAG,EAAE,gBAAgB,GACrB,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC;IAElD;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxD;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB,CAAC,SAAS,SAAS,eAAe,EAAE,WAAW,SAAS,kBAAkB,GAAG,kBAAkB;IACnI;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IAErF;;;;;;;;;OASG;IACH,eAAe,CAAC,KAAK,EAAE,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IAEjF;;;;;;;;OAQG;IACH,sBAAsB,CAAC,KAAK,EAAE,iCAAiC,GAAG,IAAI,CAAC;IAEvE;;;;;;;;;OASG;IACH,iBAAiB,CAAC,KAAK,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAE7D;;;;;;;OAOG;IACH,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;CAC7D;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO;IACtE;;;;;;;;OAQG;IACH,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CACjE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB,CAChC,SAAS,SAAS,eAAe,EACjC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,QAAQ,SAAS,OAAO,GAAG,OAAO,CAElC,SAAQ,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC;CAAG"}
@@ -0,0 +1,52 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /**
10
+ * A request the server answers, with an {@link EditsSettledAction}, once every
11
+ * edit the client sent before it has been handled and its text has reached
12
+ * the language client, so the client knows those edits are answered.
13
+ *
14
+ * An operation has no answer of its own: the server replies with a model
15
+ * update and a dirty state, with a message, or with nothing at all when the
16
+ * operation changed nothing. The server handles a client's actions one at a
17
+ * time, so a request sent after the edits is answered after them, whatever
18
+ * each one answered. A server that fails it answers with a GLSP
19
+ * `RejectAction`, which ends the wait too.
20
+ */
21
+ export interface RequestEditsSettledAction {
22
+ kind: typeof RequestEditsSettledAction.KIND;
23
+ /** The id the response echoes as its `responseId`. Empty until the dispatcher assigns one. */
24
+ requestId: string;
25
+ /**
26
+ * How long the server waits before it rejects the request, as it does any
27
+ * request; a rejection then means not settled, and the answer that follows
28
+ * is dropped. GLSP's `requestUntil` sets one; `request` leaves it unset.
29
+ */
30
+ timeout?: number;
31
+ /** GLSP's typing marker for the response. Never set. */
32
+ readonly _?: EditsSettledAction;
33
+ }
34
+ export declare namespace RequestEditsSettledAction {
35
+ const KIND = "hydraniumRequestEditsSettled";
36
+ function create(options?: {
37
+ requestId?: string;
38
+ }): RequestEditsSettledAction;
39
+ }
40
+ /** The server's answer to a {@link RequestEditsSettledAction}. */
41
+ export interface EditsSettledAction {
42
+ kind: typeof EditsSettledAction.KIND;
43
+ /** The `requestId` of the request this answers. The server's dispatcher sets it. */
44
+ responseId: string;
45
+ }
46
+ export declare namespace EditsSettledAction {
47
+ const KIND = "hydraniumEditsSettled";
48
+ function create(options?: {
49
+ responseId?: string;
50
+ }): EditsSettledAction;
51
+ }
52
+ //# sourceMappingURL=glsp-edits-settled-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-edits-settled-actions.d.ts","sourceRoot":"","sources":["../src/glsp-edits-settled-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAKlF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,yBAAyB;IACvC,IAAI,EAAE,OAAO,yBAAyB,CAAC,IAAI,CAAC;IAC5C,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED,yBAAiB,yBAAyB,CAAC;IACjC,MAAM,IAAI,iCAAiC,CAAC;IAEnD,SAAgB,MAAM,CAAC,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,yBAAyB,CAEtF;CACH;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IAChC,IAAI,EAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC;IACrC,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;CACrB;AAED,yBAAiB,kBAAkB,CAAC;IAC1B,MAAM,IAAI,0BAA0B,CAAC;IAE5C,SAAgB,MAAM,CAAC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,kBAAkB,CAEhF;CACH"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2026 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the MIT License which is available in the project root.
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ ********************************************************************************/
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.EditsSettledAction = exports.RequestEditsSettledAction = void 0;
12
+ var RequestEditsSettledAction;
13
+ (function (RequestEditsSettledAction) {
14
+ RequestEditsSettledAction.KIND = 'hydraniumRequestEditsSettled';
15
+ function create(options = {}) {
16
+ return { kind: RequestEditsSettledAction.KIND, requestId: '', ...options };
17
+ }
18
+ RequestEditsSettledAction.create = create;
19
+ })(RequestEditsSettledAction || (exports.RequestEditsSettledAction = RequestEditsSettledAction = {}));
20
+ var EditsSettledAction;
21
+ (function (EditsSettledAction) {
22
+ EditsSettledAction.KIND = 'hydraniumEditsSettled';
23
+ function create(options = {}) {
24
+ return { kind: EditsSettledAction.KIND, responseId: '', ...options };
25
+ }
26
+ EditsSettledAction.create = create;
27
+ })(EditsSettledAction || (exports.EditsSettledAction = EditsSettledAction = {}));
28
+ //# sourceMappingURL=glsp-edits-settled-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-edits-settled-actions.js","sourceRoot":"","sources":["../src/glsp-edits-settled-actions.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AA+BlF,IAAiB,yBAAyB,CAMzC;AAND,WAAiB,yBAAyB;IAC1B,8BAAI,GAAG,8BAA8B,CAAC;IAEnD,SAAgB,MAAM,CAAC,OAAO,GAA2B,EAAE;QACxD,OAAO,EAAE,IAAI,EAAE,8BAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;IACpD,CAAC;IAFe,0BAAA,MAAM,SAErB,CAAA;AACJ,CAAC,EANgB,yBAAyB,aAAzB,yBAAyB,GAAzB,yBAAyB,QAMzC;AASD,IAAiB,kBAAkB,CAMlC;AAND,WAAiB,kBAAkB;IACnB,uBAAI,GAAG,uBAAuB,CAAC;IAE5C,SAAgB,MAAM,CAAC,OAAO,GAA4B,EAAE;QACzD,OAAO,EAAE,IAAI,EAAE,uBAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,CAAC;IAFe,mBAAA,MAAM,SAErB,CAAA;AACJ,CAAC,EANgB,kBAAkB,aAAlB,kBAAkB,GAAlB,kBAAkB,QAMlC"}
package/lib/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './clock';
14
14
  export * from './data';
15
15
  export * from './browser-runtime';
16
16
  export * from './debouncer';
17
+ export * from './glsp-edits-settled-actions';
17
18
  export * from './glsp-request-model-args';
18
19
  export * from './glsp-save-model-actions';
19
20
  export * from './errors';
@@ -25,6 +26,7 @@ export * from './patch-merge';
25
26
  export * from './reconcile-write';
26
27
  export * from './noop-logger';
27
28
  export * from './observable-value';
29
+ export * from './pending-work-tracker';
28
30
  export * from './profile-session';
29
31
  export * from './profiling';
30
32
  export * from './tracer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AASlF,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AAIpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AASlF,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AAIpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
package/lib/index.js CHANGED
@@ -36,6 +36,7 @@ __exportStar(require("./clock"), exports);
36
36
  __exportStar(require("./data"), exports);
37
37
  __exportStar(require("./browser-runtime"), exports);
38
38
  __exportStar(require("./debouncer"), exports);
39
+ __exportStar(require("./glsp-edits-settled-actions"), exports);
39
40
  __exportStar(require("./glsp-request-model-args"), exports);
40
41
  __exportStar(require("./glsp-save-model-actions"), exports);
41
42
  __exportStar(require("./errors"), exports);
@@ -50,6 +51,7 @@ __exportStar(require("./patch-merge"), exports);
50
51
  __exportStar(require("./reconcile-write"), exports);
51
52
  __exportStar(require("./noop-logger"), exports);
52
53
  __exportStar(require("./observable-value"), exports);
54
+ __exportStar(require("./pending-work-tracker"), exports);
53
55
  __exportStar(require("./profile-session"), exports);
54
56
  __exportStar(require("./profiling"), exports);
55
57
  __exportStar(require("./tracer"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;AAElF,kFAAkF;AAClF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,iDAAiD;AAEjD,oDAAkC;AAClC,mDAAiC;AACjC,2CAAyB;AACzB,+CAA6B;AAC7B,0CAAwB;AACxB,yCAAuB;AACvB,oDAAkC;AAClC,8CAA4B;AAC5B,4DAA0C;AAC1C,4DAA0C;AAC1C,2CAAyB;AACzB,qDAAmC;AACnC,2CAAyB;AACzB,sDAAoC;AACpC,6EAA6E;AAC7E,+EAA+E;AAC/E,+BAA+B;AAC/B,wDAAsC;AACtC,gDAA8B;AAC9B,oDAAkC;AAClC,gDAA8B;AAC9B,qDAAmC;AACnC,oDAAkC;AAClC,8CAA4B;AAC5B,2CAAyB;AACzB,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB;AACxB,kDAAgC;AAChC,sDAAoC;AACpC,iDAA+B;AAC/B,4CAA0B;AAC1B,gDAA8B;AAC9B,uDAAqC;AACrC,wCAAsB;AACtB,wCAAsB;AACtB,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;AAElF,kFAAkF;AAClF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,iDAAiD;AAEjD,oDAAkC;AAClC,mDAAiC;AACjC,2CAAyB;AACzB,+CAA6B;AAC7B,0CAAwB;AACxB,yCAAuB;AACvB,oDAAkC;AAClC,8CAA4B;AAC5B,+DAA6C;AAC7C,4DAA0C;AAC1C,4DAA0C;AAC1C,2CAAyB;AACzB,qDAAmC;AACnC,2CAAyB;AACzB,sDAAoC;AACpC,6EAA6E;AAC7E,+EAA+E;AAC/E,+BAA+B;AAC/B,wDAAsC;AACtC,gDAA8B;AAC9B,oDAAkC;AAClC,gDAA8B;AAC9B,qDAAmC;AACnC,yDAAuC;AACvC,oDAAkC;AAClC,8CAA4B;AAC5B,2CAAyB;AACzB,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB;AACxB,kDAAgC;AAChC,sDAAoC;AACpC,iDAA+B;AAC/B,4CAA0B;AAC1B,gDAA8B;AAC9B,uDAAqC;AACrC,wCAAsB;AACtB,wCAAsB;AACtB,yCAAuB"}
@@ -0,0 +1,29 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /**
10
+ * Watches work started elsewhere until it settles, so a caller can ask whether
11
+ * any is still pending and wait for what is pending now. It starts, orders and
12
+ * limits nothing, and keeps no clock: a caller that must not wait for good
13
+ * races {@link whenSettled} against its own bound.
14
+ */
15
+ export declare class PendingWorkTracker {
16
+ protected readonly pending: Set<Promise<unknown>>;
17
+ /** Watch `work` until it settles, and hand it back. */
18
+ track<T>(work: Promise<T>): Promise<T>;
19
+ /** How much of the tracked work has not settled yet. */
20
+ get size(): number;
21
+ /** Whether all tracked work has settled. Synchronous, for a check that must decide within the tick. */
22
+ get isIdle(): boolean;
23
+ /**
24
+ * Resolves once the work pending now has settled; work tracked later is not
25
+ * waited for. Never rejects, since failed work has settled too.
26
+ */
27
+ whenSettled(): Promise<void>;
28
+ }
29
+ //# sourceMappingURL=pending-work-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-work-tracker.d.ts","sourceRoot":"","sources":["../src/pending-work-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC5B,SAAS,CAAC,QAAQ,CAAC,OAAO,wBAA+B;IAEzD,uDAAuD;IACvD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOrC;IAED,wDAAwD;IACxD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,uGAAuG;IACvG,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjC;CACH"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2026 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the MIT License which is available in the project root.
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ ********************************************************************************/
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.PendingWorkTracker = void 0;
12
+ /**
13
+ * Watches work started elsewhere until it settles, so a caller can ask whether
14
+ * any is still pending and wait for what is pending now. It starts, orders and
15
+ * limits nothing, and keeps no clock: a caller that must not wait for good
16
+ * races {@link whenSettled} against its own bound.
17
+ */
18
+ class PendingWorkTracker {
19
+ pending = new Set();
20
+ /** Watch `work` until it settles, and hand it back. */
21
+ track(work) {
22
+ this.pending.add(work);
23
+ const done = () => {
24
+ this.pending.delete(work);
25
+ };
26
+ work.then(done, done);
27
+ return work;
28
+ }
29
+ /** How much of the tracked work has not settled yet. */
30
+ get size() {
31
+ return this.pending.size;
32
+ }
33
+ /** Whether all tracked work has settled. Synchronous, for a check that must decide within the tick. */
34
+ get isIdle() {
35
+ return this.pending.size === 0;
36
+ }
37
+ /**
38
+ * Resolves once the work pending now has settled; work tracked later is not
39
+ * waited for. Never rejects, since failed work has settled too.
40
+ */
41
+ async whenSettled() {
42
+ await Promise.allSettled([...this.pending]);
43
+ }
44
+ }
45
+ exports.PendingWorkTracker = PendingWorkTracker;
46
+ //# sourceMappingURL=pending-work-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-work-tracker.js","sourceRoot":"","sources":["../src/pending-work-tracker.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAElF;;;;;GAKG;AACH;IACsB,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEzD,uDAAuD;IACvD,KAAK,CAAI,IAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,GAAS,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACf,CAAC;IAED,wDAAwD;IACxD,IAAI,IAAI;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,uGAAuG;IACvG,IAAI,MAAM;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACd,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/protocol",
3
- "version": "1.0.0-next.327",
3
+ "version": "1.0.0-next.328",
4
4
  "description": "Generic, language-agnostic types, constants, and pure utilities for the hydranium framework.",
5
5
  "keywords": [
6
6
  "hydranium",
@@ -9,7 +9,7 @@
9
9
 
10
10
  import { type Disposable, Emitter, type Event } from 'vscode-jsonrpc';
11
11
  import { UNKNOWN_CLIENT_ID } from '../client-ids';
12
- import { type Clock, SystemClock } from '../clock';
12
+ import { type Clock, SystemClock, TIMED_OUT } from '../clock';
13
13
  import type {
14
14
  DataServerProtocol,
15
15
  DiagnosticOf,
@@ -22,6 +22,7 @@ import type { Logger } from '../logger';
22
22
  import { type BaseVersion, isModelVersion, type ModelVersion, type TextVersion, UNRECORDED_VERSION } from '../model-service/base-version';
23
23
  import { type ResolvedMessage, defineMessage, describeError, resolve } from '../messages/primitives';
24
24
  import { NoopLogger } from '../noop-logger';
25
+ import { PendingWorkTracker } from '../pending-work-tracker';
25
26
  import { randomUuid } from '../random-uuid';
26
27
  import type { MaybePromise } from '../util';
27
28
  import type { RpcProxy } from '../rpc';
@@ -332,6 +333,13 @@ export class DataSession<
332
333
  * which a close does not fail.
333
334
  */
334
335
  protected readonly settleBeforeCloseMs: number = 10_000;
336
+ /**
337
+ * How long {@link whenWritesSettled} waits before going on anyway: well past
338
+ * the server's bound on the language-client settle it runs before answering
339
+ * an update. The update itself has no bound, so a server slower than that is
340
+ * taken as lost.
341
+ */
342
+ protected readonly settleWritesMs: number = 30_000;
335
343
  /**
336
344
  * The clock {@link settleBeforeCloseMs} runs on. {@link DataSessionHost}
337
345
  * carries no {@link Clock}, so a subclass replaces this field as it
@@ -381,9 +389,11 @@ export class DataSession<
381
389
  */
382
390
  protected readonly createdUris = new Set<string>();
383
391
  /** Per URI, this session's calls still in flight on it, which a close or delete waits for. */
384
- protected readonly inFlight = new Map<string, Set<Promise<unknown>>>();
392
+ protected readonly inFlight = new Map<string, PendingWorkTracker>();
385
393
  /** This session's saves, persists and deletes still in flight, which a host's exit waits for; see {@link hasSavesInFlight}. */
386
- protected readonly savesInFlight = new Set<Promise<unknown>>();
394
+ protected readonly savesInFlight = new PendingWorkTracker();
395
+ /** This session's updates still in flight, which a page's unload guard and save account for; see {@link hasWritesInFlight}. */
396
+ protected readonly writesInFlight = new PendingWorkTracker();
387
397
  protected readonly disposeEmitter = new Emitter<void>();
388
398
  /**
389
399
  * Fires once when the session ends, by {@link dispose} or {@link detach}, as
@@ -618,7 +628,7 @@ export class DataSession<
618
628
  // An open called after this close waits for it instead, see `trackOpen`.
619
629
  const underWay = [...(this.openings.get(args.uri) ?? [])];
620
630
  await this.trackEnding(args.uri, async () => {
621
- await this.settle(this.inFlight.get(args.uri));
631
+ await this.settle([this.inFlight.get(args.uri)]);
622
632
  // Forgotten before the close is sent, so a reconnect in between does
623
633
  // not re-open a document the caller has closed. Every open of it that
624
634
  // was under way when the close was called is marked, so it neither
@@ -696,7 +706,7 @@ export class DataSession<
696
706
 
697
707
  /** Write `args.model` back as this session. The session must have `args.uri` open. */
698
708
  updateDocument(args: DataSessionUpdateArgs<TTransfer, TServer>): Promise<DataSessionDocument<TTransfer, TServer>> {
699
- return this.track([args.uri], async () => {
709
+ return this.trackWrite([args.uri], async () => {
700
710
  const server = await this.connected();
701
711
  const update = { ...args };
702
712
  const baseHash = await this.baseHashOf(server, args.uri, args.baseVersion);
@@ -713,7 +723,7 @@ export class DataSession<
713
723
  * open. Resolves to the documents in the order given.
714
724
  */
715
725
  updateDocuments(args: DataSessionUpdatesArgs<TTransfer, TServer>): Promise<DataSessionDocument<TTransfer, TServer>[]> {
716
- return this.track(
726
+ return this.trackWrite(
717
727
  args.updates.map(update => update.uri),
718
728
  async () => {
719
729
  // One copy for the whole call: the copy's identity is what ties its
@@ -759,7 +769,7 @@ export class DataSession<
759
769
  const deleting = this.trackEnding(args.uri, () =>
760
770
  this.track([args.uri], async () => {
761
771
  this.assertLive();
762
- await this.settle(this.inFlight.get(args.uri));
772
+ await this.settle([this.inFlight.get(args.uri)]);
763
773
  const server = await this.connected();
764
774
  const open = this.opens.get(args.uri);
765
775
  await server.deleteModelDocument({ ...args, clientId: this.clientId });
@@ -771,10 +781,7 @@ export class DataSession<
771
781
  }
772
782
  })
773
783
  );
774
- this.savesInFlight.add(deleting);
775
- const done = (): boolean => this.savesInFlight.delete(deleting);
776
- deleting.then(done, done);
777
- return deleting;
784
+ return this.savesInFlight.track(deleting);
778
785
  }
779
786
 
780
787
  /** Run a save or persist of `uri` and record what it answered as saved. */
@@ -807,10 +814,7 @@ export class DataSession<
807
814
  }
808
815
  return document;
809
816
  });
810
- this.savesInFlight.add(saving);
811
- const done = (): boolean => this.savesInFlight.delete(saving);
812
- saving.then(done, done);
813
- return saving;
817
+ return this.savesInFlight.track(saving);
814
818
  }
815
819
 
816
820
  /** Whether the session has ended, by {@link dispose} or {@link detach}. */
@@ -824,7 +828,7 @@ export class DataSession<
824
828
  * as Theia's `onWillStop`.
825
829
  */
826
830
  get hasSavesInFlight(): boolean {
827
- return this.savesInFlight.size > 0;
831
+ return !this.savesInFlight.isIdle;
828
832
  }
829
833
 
830
834
  /**
@@ -833,7 +837,31 @@ export class DataSession<
833
837
  * answered too.
834
838
  */
835
839
  whenSavesSettled(): Promise<void> {
836
- return this.settle(this.savesInFlight);
840
+ return this.settle([this.savesInFlight]);
841
+ }
842
+
843
+ /**
844
+ * Whether an update of this session, one a restore sends again included,
845
+ * has not answered yet. The server answers once an editor on the language
846
+ * client holds the text, so a page that reads unsaved work from its editor
847
+ * guards a reload on this too. Synchronous, for an unload guard that must
848
+ * decide within the tick.
849
+ */
850
+ get hasWritesInFlight(): boolean {
851
+ return !this.writesInFlight.isIdle;
852
+ }
853
+
854
+ /**
855
+ * Resolves to `true` once the updates in flight now have answered, so a
856
+ * save of the editor's documents started after it includes them, or to
857
+ * `false` once {@link settleWritesMs} has passed first. An update sent while
858
+ * it waits is not waited for. Never rejects.
859
+ */
860
+ async whenWritesSettled(): Promise<boolean> {
861
+ if (this.writesInFlight.isIdle) {
862
+ return true;
863
+ }
864
+ return (await this.clock.raceTimer(this.writesInFlight.whenSettled(), this.settleWritesMs)) !== TIMED_OUT;
837
865
  }
838
866
 
839
867
  /**
@@ -864,9 +892,9 @@ export class DataSession<
864
892
  }
865
893
  this.disposed = true;
866
894
  this.fireDispose();
867
- const pending = [...this.inFlight.values()].flatMap(calls => [...calls]);
895
+ const settled = this.settle([...this.inFlight.values()]);
868
896
  void (async () => {
869
- await this.settle(pending);
897
+ await settled;
870
898
  await this.registration;
871
899
  // The proxy the session registered on, never a fresh connection: a
872
900
  // connection that dropped already ended the session on the server.
@@ -1325,17 +1353,23 @@ export class DataSession<
1325
1353
  try {
1326
1354
  const { call } = resend[0].write;
1327
1355
  if ('update' in call) {
1328
- documents = [await server.updateModelDocument({ ...call.update, baseVersion: resend[0].baseVersion, clientId: this.clientId })];
1356
+ documents = [
1357
+ await this.writesInFlight.track(
1358
+ server.updateModelDocument({ ...call.update, baseVersion: resend[0].baseVersion, clientId: this.clientId })
1359
+ )
1360
+ ];
1329
1361
  } else {
1330
1362
  const baseVersion = new Map(resend.map(member => [indexOf(member.write), member.baseVersion]));
1331
- documents = await server.updateModelDocuments({
1332
- ...call.updates,
1333
- clientId: this.clientId,
1334
- updates: call.updates.updates.flatMap((update, index) => {
1335
- const version = baseVersion.get(index);
1336
- return version === undefined ? [] : [{ ...update, baseVersion: version }];
1363
+ documents = await this.writesInFlight.track(
1364
+ server.updateModelDocuments({
1365
+ ...call.updates,
1366
+ clientId: this.clientId,
1367
+ updates: call.updates.updates.flatMap((update, index) => {
1368
+ const version = baseVersion.get(index);
1369
+ return version === undefined ? [] : [{ ...update, baseVersion: version }];
1370
+ })
1337
1371
  })
1338
- });
1372
+ );
1339
1373
  }
1340
1374
  } catch (error: unknown) {
1341
1375
  if (isConflictError(error)) {
@@ -1453,13 +1487,21 @@ export class DataSession<
1453
1487
  protected track<T>(uris: readonly string[], call: () => Promise<T>): Promise<T> {
1454
1488
  const running = call();
1455
1489
  for (const uri of uris) {
1456
- this.inFlight.set(uri, (this.inFlight.get(uri) ?? new Set<Promise<unknown>>()).add(running));
1490
+ let tracker = this.inFlight.get(uri);
1491
+ if (tracker === undefined) {
1492
+ tracker = new PendingWorkTracker();
1493
+ this.inFlight.set(uri, tracker);
1494
+ }
1495
+ tracker.track(running);
1457
1496
  }
1458
- const done = (): void => uris.forEach(uri => this.inFlight.get(uri)?.delete(running));
1459
- running.then(done, done);
1460
1497
  return running;
1461
1498
  }
1462
1499
 
1500
+ /** {@link track} an update of `uris`, counted in {@link writesInFlight} too. */
1501
+ protected trackWrite<T>(uris: readonly string[], call: () => Promise<T>): Promise<T> {
1502
+ return this.writesInFlight.track(this.track(uris, call));
1503
+ }
1504
+
1463
1505
  /**
1464
1506
  * {@link track} an open of `uri`, kept in {@link openings} until it settles,
1465
1507
  * and sent once the closes and deletes of `uri` called before it have
@@ -1501,13 +1543,13 @@ export class DataSession<
1501
1543
  return ending;
1502
1544
  }
1503
1545
 
1504
- /** Wait until `calls` have settled, or {@link settleBeforeCloseMs} has passed. */
1505
- protected async settle(calls: Iterable<Promise<unknown>> | undefined): Promise<void> {
1506
- const pending = [...(calls ?? [])];
1546
+ /** Wait until the work `trackers` hold now has settled, or {@link settleBeforeCloseMs} has passed. */
1547
+ protected async settle(trackers: Iterable<PendingWorkTracker | undefined>): Promise<void> {
1548
+ const pending = [...trackers].filter((tracker): tracker is PendingWorkTracker => tracker !== undefined && !tracker.isIdle);
1507
1549
  if (pending.length === 0) {
1508
1550
  return;
1509
1551
  }
1510
- await this.clock.raceTimer(Promise.allSettled(pending), this.settleBeforeCloseMs);
1552
+ await this.clock.raceTimer(Promise.all(pending.map(tracker => tracker.whenSettled())), this.settleBeforeCloseMs);
1511
1553
  }
1512
1554
 
1513
1555
  protected assertLive(): void {
@@ -93,7 +93,9 @@ export interface DocumentServerProtocol<TTransfer extends TransferElement, TDiag
93
93
  /**
94
94
  * Write several documents the session has open, all or none: a conflict or
95
95
  * a document not open fails the whole set before any text applies.
96
- * Resolves to the documents in the order given. Only for a session
96
+ * Resolves to the documents in the order given, once the language client
97
+ * has answered the push of each, or the server-side bound on that wait
98
+ * passes, as {@link updateModelDocument} does. Only for a session
97
99
  * registered on this connection.
98
100
  */
99
101
  updateModelDocuments(args: TransferUpdateDocumentsArgs<TTransfer>): Promise<TransferDocument<TTransfer, TDiagnostic>[]>;
@@ -138,7 +140,10 @@ export interface DocumentServerProtocol<TTransfer extends TransferElement, TDiag
138
140
  /**
139
141
  * Update a document's content as the session `clientId`, which must have
140
142
  * it open. The response carries the latest built state including
141
- * diagnostics; callers observe convergence via that response.
143
+ * diagnostics; callers observe convergence via that response. It is sent
144
+ * once the language client has answered the push of the text, or the
145
+ * server-side bound on that wait passes, as {@link saveModelDocument}'s
146
+ * is, so an editor already shows the write when it arrives.
142
147
  */
143
148
  updateModelDocument(args: TransferUpdateDocumentArgs<TTransfer>): Promise<TransferDocument<TTransfer, TDiagnostic>>;
144
149
 
@@ -0,0 +1,60 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+
10
+ // Declared field by field rather than extending GLSP's action types, as the
11
+ // save actions are: this package carries no GLSP dependency.
12
+
13
+ /**
14
+ * A request the server answers, with an {@link EditsSettledAction}, once every
15
+ * edit the client sent before it has been handled and its text has reached
16
+ * the language client, so the client knows those edits are answered.
17
+ *
18
+ * An operation has no answer of its own: the server replies with a model
19
+ * update and a dirty state, with a message, or with nothing at all when the
20
+ * operation changed nothing. The server handles a client's actions one at a
21
+ * time, so a request sent after the edits is answered after them, whatever
22
+ * each one answered. A server that fails it answers with a GLSP
23
+ * `RejectAction`, which ends the wait too.
24
+ */
25
+ export interface RequestEditsSettledAction {
26
+ kind: typeof RequestEditsSettledAction.KIND;
27
+ /** The id the response echoes as its `responseId`. Empty until the dispatcher assigns one. */
28
+ requestId: string;
29
+ /**
30
+ * How long the server waits before it rejects the request, as it does any
31
+ * request; a rejection then means not settled, and the answer that follows
32
+ * is dropped. GLSP's `requestUntil` sets one; `request` leaves it unset.
33
+ */
34
+ timeout?: number;
35
+ /** GLSP's typing marker for the response. Never set. */
36
+ readonly _?: EditsSettledAction;
37
+ }
38
+
39
+ export namespace RequestEditsSettledAction {
40
+ export const KIND = 'hydraniumRequestEditsSettled';
41
+
42
+ export function create(options: { requestId?: string } = {}): RequestEditsSettledAction {
43
+ return { kind: KIND, requestId: '', ...options };
44
+ }
45
+ }
46
+
47
+ /** The server's answer to a {@link RequestEditsSettledAction}. */
48
+ export interface EditsSettledAction {
49
+ kind: typeof EditsSettledAction.KIND;
50
+ /** The `requestId` of the request this answers. The server's dispatcher sets it. */
51
+ responseId: string;
52
+ }
53
+
54
+ export namespace EditsSettledAction {
55
+ export const KIND = 'hydraniumEditsSettled';
56
+
57
+ export function create(options: { responseId?: string } = {}): EditsSettledAction {
58
+ return { kind: KIND, responseId: '', ...options };
59
+ }
60
+ }
package/src/index.ts CHANGED
@@ -22,6 +22,7 @@ export * from './clock';
22
22
  export * from './data';
23
23
  export * from './browser-runtime';
24
24
  export * from './debouncer';
25
+ export * from './glsp-edits-settled-actions';
25
26
  export * from './glsp-request-model-args';
26
27
  export * from './glsp-save-model-actions';
27
28
  export * from './errors';
@@ -36,6 +37,7 @@ export * from './patch-merge';
36
37
  export * from './reconcile-write';
37
38
  export * from './noop-logger';
38
39
  export * from './observable-value';
40
+ export * from './pending-work-tracker';
39
41
  export * from './profile-session';
40
42
  export * from './profiling';
41
43
  export * from './tracer';
@@ -0,0 +1,46 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+
10
+ /**
11
+ * Watches work started elsewhere until it settles, so a caller can ask whether
12
+ * any is still pending and wait for what is pending now. It starts, orders and
13
+ * limits nothing, and keeps no clock: a caller that must not wait for good
14
+ * races {@link whenSettled} against its own bound.
15
+ */
16
+ export class PendingWorkTracker {
17
+ protected readonly pending = new Set<Promise<unknown>>();
18
+
19
+ /** Watch `work` until it settles, and hand it back. */
20
+ track<T>(work: Promise<T>): Promise<T> {
21
+ this.pending.add(work);
22
+ const done = (): void => {
23
+ this.pending.delete(work);
24
+ };
25
+ work.then(done, done);
26
+ return work;
27
+ }
28
+
29
+ /** How much of the tracked work has not settled yet. */
30
+ get size(): number {
31
+ return this.pending.size;
32
+ }
33
+
34
+ /** Whether all tracked work has settled. Synchronous, for a check that must decide within the tick. */
35
+ get isIdle(): boolean {
36
+ return this.pending.size === 0;
37
+ }
38
+
39
+ /**
40
+ * Resolves once the work pending now has settled; work tracked later is not
41
+ * waited for. Never rejects, since failed work has settled too.
42
+ */
43
+ async whenSettled(): Promise<void> {
44
+ await Promise.allSettled([...this.pending]);
45
+ }
46
+ }