@zakstam/codex-local-component 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +30 -44
  2. package/dist/app-server/client.d.ts +23 -0
  3. package/dist/app-server/client.d.ts.map +1 -0
  4. package/dist/app-server/client.js +33 -0
  5. package/dist/app-server/client.js.map +1 -0
  6. package/dist/app-server/index.d.ts +2 -0
  7. package/dist/app-server/index.d.ts.map +1 -0
  8. package/dist/app-server/index.js +2 -0
  9. package/dist/app-server/index.js.map +1 -0
  10. package/dist/client/index.d.ts +1 -1
  11. package/dist/client/index.d.ts.map +1 -1
  12. package/dist/client/index.js +1 -1
  13. package/dist/client/index.js.map +1 -1
  14. package/dist/client/sync.d.ts +4 -4
  15. package/dist/client/sync.d.ts.map +1 -1
  16. package/dist/client/sync.js +4 -4
  17. package/dist/client/sync.js.map +1 -1
  18. package/dist/client/types.d.ts +3 -3
  19. package/dist/client/types.d.ts.map +1 -1
  20. package/dist/component/_generated/component.d.ts +60 -6
  21. package/dist/component/_generated/component.d.ts.map +1 -1
  22. package/dist/component/approvals.d.ts.map +1 -1
  23. package/dist/component/approvals.js +33 -12
  24. package/dist/component/approvals.js.map +1 -1
  25. package/dist/component/messages.d.ts.map +1 -1
  26. package/dist/component/messages.js +12 -3
  27. package/dist/component/messages.js.map +1 -1
  28. package/dist/component/pagination.d.ts +5 -0
  29. package/dist/component/pagination.d.ts.map +1 -0
  30. package/dist/component/pagination.js +30 -0
  31. package/dist/component/pagination.js.map +1 -0
  32. package/dist/component/schema.d.ts +34 -6
  33. package/dist/component/schema.d.ts.map +1 -1
  34. package/dist/component/schema.js +22 -3
  35. package/dist/component/schema.js.map +1 -1
  36. package/dist/component/sync.d.ts +49 -5
  37. package/dist/component/sync.d.ts.map +1 -1
  38. package/dist/component/sync.js +44 -11
  39. package/dist/component/sync.js.map +1 -1
  40. package/dist/component/syncIngest.d.ts +31 -4
  41. package/dist/component/syncIngest.d.ts.map +1 -1
  42. package/dist/component/syncIngest.js +234 -148
  43. package/dist/component/syncIngest.js.map +1 -1
  44. package/dist/component/syncReplay.d.ts +28 -7
  45. package/dist/component/syncReplay.d.ts.map +1 -1
  46. package/dist/component/syncReplay.js +122 -60
  47. package/dist/component/syncReplay.js.map +1 -1
  48. package/dist/component/threads.d.ts.map +1 -1
  49. package/dist/component/threads.js +12 -4
  50. package/dist/component/threads.js.map +1 -1
  51. package/dist/react/types.d.ts +10 -0
  52. package/dist/react/types.d.ts.map +1 -1
  53. package/dist/react/useCodexStreamOverlay.d.ts.map +1 -1
  54. package/dist/react/useCodexStreamOverlay.js +46 -8
  55. package/dist/react/useCodexStreamOverlay.js.map +1 -1
  56. package/package.json +6 -1
@@ -19,11 +19,13 @@ function syntheticTurnStatusForEvent(kind, payloadJson) {
19
19
  }
20
20
  return "queued";
21
21
  }
22
- export async function pushEventsHandler(ctx, args) {
22
+ export async function ingestHandler(ctx, args) {
23
23
  await requireThreadForActor(ctx, args.actor, args.threadId);
24
24
  const runtime = resolveRuntimeOptions(args.runtime);
25
- if (args.deltas.length === 0) {
26
- syncError("E_SYNC_EMPTY_BATCH", "pushEvents received an empty delta batch");
25
+ const deltas = [...args.streamDeltas, ...args.lifecycleEvents];
26
+ deltas.sort((a, b) => a.createdAt - b.createdAt);
27
+ if (deltas.length === 0) {
28
+ syncError("E_SYNC_EMPTY_BATCH", "ingest received an empty delta batch");
27
29
  }
28
30
  const session = await ctx.db
29
31
  .query("codex_sessions")
@@ -41,14 +43,6 @@ export async function pushEventsHandler(ctx, args) {
41
43
  if (session.userId !== args.actor.userId) {
42
44
  authzError("E_AUTH_SESSION_FORBIDDEN", `User ${args.actor.userId} is not allowed to access session ${args.sessionId}`);
43
45
  }
44
- const checkpoint = await ctx.db
45
- .query("codex_sync_checkpoints")
46
- .withIndex("tenantId_threadId_deviceId", (q) => q
47
- .eq("tenantId", args.actor.tenantId)
48
- .eq("threadId", args.threadId)
49
- .eq("deviceId", args.actor.deviceId))
50
- .first();
51
- let expectedCursor = checkpoint?.ackedCursor ?? 0;
52
46
  let lastPersistedCursor = session.lastEventCursor;
53
47
  let persistedAnyEvent = false;
54
48
  const inBatchEventIds = new Set();
@@ -62,6 +56,13 @@ export async function pushEventsHandler(ctx, args) {
62
56
  const streamById = new Map();
63
57
  const approvalByKey = new Map();
64
58
  const persistedStatsByStreamId = new Map();
59
+ const streamCheckpointCursorByStreamId = new Map();
60
+ let ingestStatus = "ok";
61
+ const streamStats = await ctx.db
62
+ .query("codex_stream_stats")
63
+ .withIndex("tenantId_threadId", (q) => q.eq("tenantId", args.actor.tenantId).eq("threadId", args.threadId))
64
+ .take(500);
65
+ const expectedCursorByStreamId = new Map(streamStats.map((stat) => [String(stat.streamId), Number(stat.latestCursor)]));
65
66
  const nextOrderForTurn = async (turnId) => {
66
67
  const cached = messageOrderCacheByTurn.get(turnId);
67
68
  if (cached !== undefined) {
@@ -154,14 +155,15 @@ export async function pushEventsHandler(ctx, args) {
154
155
  const setStreamRecord = (streamId, value) => {
155
156
  streamById.set(streamId, value);
156
157
  };
157
- for (const delta of args.deltas) {
158
- if (!knownTurnIds.has(delta.turnId)) {
158
+ for (const delta of deltas) {
159
+ const turnId = delta.turnId;
160
+ if (turnId && !knownTurnIds.has(turnId)) {
159
161
  const existingTurn = await ctx.db
160
162
  .query("codex_turns")
161
163
  .withIndex("tenantId_threadId_turnId", (q) => q
162
164
  .eq("tenantId", args.actor.tenantId)
163
165
  .eq("threadId", args.threadId)
164
- .eq("turnId", delta.turnId))
166
+ .eq("turnId", turnId))
165
167
  .first();
166
168
  if (!existingTurn) {
167
169
  const syntheticStatus = syntheticTurnStatusForEvent(delta.kind, delta.payloadJson);
@@ -169,9 +171,9 @@ export async function pushEventsHandler(ctx, args) {
169
171
  tenantId: args.actor.tenantId,
170
172
  userId: args.actor.userId,
171
173
  threadId: args.threadId,
172
- turnId: delta.turnId,
174
+ turnId,
173
175
  status: syntheticStatus,
174
- idempotencyKey: `sync:${args.threadId}:${delta.turnId}`,
176
+ idempotencyKey: `sync:${args.threadId}:${turnId}`,
175
177
  startedAt: now(),
176
178
  ...(syntheticStatus === "completed" ||
177
179
  syntheticStatus === "interrupted" ||
@@ -181,130 +183,153 @@ export async function pushEventsHandler(ctx, args) {
181
183
  });
182
184
  }
183
185
  else if (existingTurn.userId !== args.actor.userId) {
184
- authzError("E_AUTH_TURN_FORBIDDEN", `User ${args.actor.userId} is not allowed to access turn ${delta.turnId}`);
186
+ authzError("E_AUTH_TURN_FORBIDDEN", `User ${args.actor.userId} is not allowed to access turn ${turnId}`);
185
187
  }
186
- knownTurnIds.add(delta.turnId);
188
+ knownTurnIds.add(turnId);
187
189
  }
188
- if (delta.kind === "turn/started") {
189
- startedTurns.add(delta.turnId);
190
+ if (turnId && delta.kind === "turn/started") {
191
+ startedTurns.add(turnId);
190
192
  }
191
- const terminal = terminalStatusForEvent(delta.kind, delta.payloadJson);
192
- if (terminal) {
193
- const current = terminalTurns.get(delta.turnId);
194
- terminalTurns.set(delta.turnId, pickHigherPriorityTerminalStatus(current, terminal));
195
- }
196
- const approvalRequest = parseApprovalRequest(delta.kind, delta.payloadJson);
197
- if (approvalRequest) {
198
- pendingApprovals.set(`${delta.turnId}:${approvalRequest.itemId}`, approvalRequest);
199
- }
200
- const approvalResolution = parseApprovalResolution(delta.kind, delta.payloadJson);
201
- if (approvalResolution) {
202
- resolvedApprovals.set(`${delta.turnId}:${approvalResolution.itemId}`, approvalResolution);
203
- }
204
- const durableMessage = parseDurableMessageEvent(delta.kind, delta.payloadJson);
205
- if (durableMessage) {
206
- const existing = await getMessageRecord(delta.turnId, durableMessage.messageId);
207
- if (!existing) {
208
- const nextOrder = await nextOrderForTurn(delta.turnId);
209
- const newId = await ctx.db.insert("codex_messages", {
210
- tenantId: args.actor.tenantId,
211
- userId: args.actor.userId,
212
- threadId: args.threadId,
213
- turnId: delta.turnId,
214
- messageId: durableMessage.messageId,
215
- role: durableMessage.role,
216
- status: durableMessage.status,
217
- text: durableMessage.text,
218
- sourceItemType: durableMessage.sourceItemType,
219
- orderInTurn: nextOrder,
220
- payloadJson: durableMessage.payloadJson,
221
- ...(durableMessage.status === "failed" ? { error: "item failed" } : {}),
222
- createdAt: delta.createdAt,
223
- updatedAt: now(),
224
- ...(durableMessage.status !== "streaming" ? { completedAt: now() } : {}),
225
- });
226
- setMessageRecord(delta.turnId, durableMessage.messageId, {
227
- _id: newId,
228
- status: durableMessage.status,
229
- text: durableMessage.text,
230
- });
193
+ if (turnId) {
194
+ const terminal = terminalStatusForEvent(delta.kind, delta.payloadJson);
195
+ if (terminal) {
196
+ const current = terminalTurns.get(turnId);
197
+ terminalTurns.set(turnId, pickHigherPriorityTerminalStatus(current, terminal));
231
198
  }
232
- else {
233
- const nextStatus = (() => {
234
- if (existing.status === "failed") {
235
- return "failed";
236
- }
237
- if (existing.status === "interrupted" && durableMessage.status !== "failed") {
238
- return "interrupted";
239
- }
240
- if (durableMessage.status === "streaming") {
241
- return existing.status;
242
- }
243
- return durableMessage.status;
244
- })();
245
- await ctx.db.patch(existing._id, {
246
- role: durableMessage.role,
247
- status: nextStatus,
248
- text: durableMessage.text,
249
- sourceItemType: durableMessage.sourceItemType,
250
- payloadJson: durableMessage.payloadJson,
251
- ...(nextStatus === "failed" ? { error: "item failed" } : {}),
252
- updatedAt: now(),
253
- ...(nextStatus !== "streaming" ? { completedAt: now() } : {}),
254
- });
255
- setMessageRecord(delta.turnId, durableMessage.messageId, {
256
- ...existing,
257
- status: nextStatus,
258
- text: durableMessage.text,
259
- });
199
+ const approvalRequest = parseApprovalRequest(delta.kind, delta.payloadJson);
200
+ if (approvalRequest) {
201
+ pendingApprovals.set(`${turnId}:${approvalRequest.itemId}`, approvalRequest);
202
+ }
203
+ const approvalResolution = parseApprovalResolution(delta.kind, delta.payloadJson);
204
+ if (approvalResolution) {
205
+ resolvedApprovals.set(`${turnId}:${approvalResolution.itemId}`, approvalResolution);
206
+ }
207
+ const durableMessage = parseDurableMessageEvent(delta.kind, delta.payloadJson);
208
+ if (durableMessage) {
209
+ const existing = await getMessageRecord(turnId, durableMessage.messageId);
210
+ if (!existing) {
211
+ const nextOrder = await nextOrderForTurn(turnId);
212
+ const newId = await ctx.db.insert("codex_messages", {
213
+ tenantId: args.actor.tenantId,
214
+ userId: args.actor.userId,
215
+ threadId: args.threadId,
216
+ turnId,
217
+ messageId: durableMessage.messageId,
218
+ role: durableMessage.role,
219
+ status: durableMessage.status,
220
+ text: durableMessage.text,
221
+ sourceItemType: durableMessage.sourceItemType,
222
+ orderInTurn: nextOrder,
223
+ payloadJson: durableMessage.payloadJson,
224
+ ...(durableMessage.status === "failed" ? { error: "item failed" } : {}),
225
+ createdAt: delta.createdAt,
226
+ updatedAt: now(),
227
+ ...(durableMessage.status !== "streaming" ? { completedAt: now() } : {}),
228
+ });
229
+ setMessageRecord(turnId, durableMessage.messageId, {
230
+ _id: newId,
231
+ status: durableMessage.status,
232
+ text: durableMessage.text,
233
+ });
234
+ }
235
+ else {
236
+ const nextStatus = (() => {
237
+ if (existing.status === "failed") {
238
+ return "failed";
239
+ }
240
+ if (existing.status === "interrupted" && durableMessage.status !== "failed") {
241
+ return "interrupted";
242
+ }
243
+ if (durableMessage.status === "streaming") {
244
+ return existing.status;
245
+ }
246
+ return durableMessage.status;
247
+ })();
248
+ await ctx.db.patch(existing._id, {
249
+ role: durableMessage.role,
250
+ status: nextStatus,
251
+ text: durableMessage.text,
252
+ sourceItemType: durableMessage.sourceItemType,
253
+ payloadJson: durableMessage.payloadJson,
254
+ ...(nextStatus === "failed" ? { error: "item failed" } : {}),
255
+ updatedAt: now(),
256
+ ...(nextStatus !== "streaming" ? { completedAt: now() } : {}),
257
+ });
258
+ setMessageRecord(turnId, durableMessage.messageId, {
259
+ ...existing,
260
+ status: nextStatus,
261
+ text: durableMessage.text,
262
+ });
263
+ }
264
+ }
265
+ const durableDelta = parseDurableMessageDeltaEvent(delta.kind, delta.payloadJson);
266
+ if (durableDelta) {
267
+ const existing = await getMessageRecord(turnId, durableDelta.messageId);
268
+ if (!existing) {
269
+ const nextOrder = await nextOrderForTurn(turnId);
270
+ const messageId = await ctx.db.insert("codex_messages", {
271
+ tenantId: args.actor.tenantId,
272
+ userId: args.actor.userId,
273
+ threadId: args.threadId,
274
+ turnId,
275
+ messageId: durableDelta.messageId,
276
+ role: "assistant",
277
+ status: "streaming",
278
+ text: durableDelta.delta,
279
+ sourceItemType: "agentMessage",
280
+ orderInTurn: nextOrder,
281
+ payloadJson: JSON.stringify({
282
+ type: "agentMessage",
283
+ id: durableDelta.messageId,
284
+ text: durableDelta.delta,
285
+ }),
286
+ createdAt: delta.createdAt,
287
+ updatedAt: now(),
288
+ });
289
+ setMessageRecord(turnId, durableDelta.messageId, {
290
+ _id: messageId,
291
+ status: "streaming",
292
+ text: durableDelta.delta,
293
+ });
294
+ }
295
+ else if (existing.status === "streaming") {
296
+ const nextText = `${existing.text}${durableDelta.delta}`;
297
+ await ctx.db.patch(existing._id, {
298
+ text: nextText,
299
+ payloadJson: JSON.stringify({
300
+ type: "agentMessage",
301
+ id: durableDelta.messageId,
302
+ text: nextText,
303
+ }),
304
+ updatedAt: now(),
305
+ });
306
+ setMessageRecord(turnId, durableDelta.messageId, {
307
+ ...existing,
308
+ text: nextText,
309
+ });
310
+ }
260
311
  }
261
312
  }
262
- const durableDelta = parseDurableMessageDeltaEvent(delta.kind, delta.payloadJson);
263
- if (durableDelta) {
264
- const existing = await getMessageRecord(delta.turnId, durableDelta.messageId);
265
- if (!existing) {
266
- const nextOrder = await nextOrderForTurn(delta.turnId);
267
- const messageId = await ctx.db.insert("codex_messages", {
313
+ if (delta.type === "lifecycle_event") {
314
+ const existingLifecycle = await ctx.db
315
+ .query("codex_lifecycle_events")
316
+ .withIndex("tenantId_threadId_eventId", (q) => q
317
+ .eq("tenantId", args.actor.tenantId)
318
+ .eq("threadId", args.threadId)
319
+ .eq("eventId", delta.eventId))
320
+ .first();
321
+ if (!existingLifecycle) {
322
+ await ctx.db.insert("codex_lifecycle_events", {
268
323
  tenantId: args.actor.tenantId,
269
- userId: args.actor.userId,
270
324
  threadId: args.threadId,
271
- turnId: delta.turnId,
272
- messageId: durableDelta.messageId,
273
- role: "assistant",
274
- status: "streaming",
275
- text: durableDelta.delta,
276
- sourceItemType: "agentMessage",
277
- orderInTurn: nextOrder,
278
- payloadJson: JSON.stringify({
279
- type: "agentMessage",
280
- id: durableDelta.messageId,
281
- text: durableDelta.delta,
282
- }),
325
+ eventId: delta.eventId,
326
+ kind: delta.kind,
327
+ payloadJson: delta.payloadJson,
283
328
  createdAt: delta.createdAt,
284
- updatedAt: now(),
285
- });
286
- setMessageRecord(delta.turnId, durableDelta.messageId, {
287
- _id: messageId,
288
- status: "streaming",
289
- text: durableDelta.delta,
290
- });
291
- }
292
- else if (existing.status === "streaming") {
293
- const nextText = `${existing.text}${durableDelta.delta}`;
294
- await ctx.db.patch(existing._id, {
295
- text: nextText,
296
- payloadJson: JSON.stringify({
297
- type: "agentMessage",
298
- id: durableDelta.messageId,
299
- text: nextText,
300
- }),
301
- updatedAt: now(),
302
- });
303
- setMessageRecord(delta.turnId, durableDelta.messageId, {
304
- ...existing,
305
- text: nextText,
329
+ ...(delta.turnId ? { turnId: delta.turnId } : {}),
306
330
  });
307
331
  }
332
+ continue;
308
333
  }
309
334
  const stream = await getStreamRecord(delta.streamId);
310
335
  if (!stream) {
@@ -332,11 +357,24 @@ export async function pushEventsHandler(ctx, args) {
332
357
  if (delta.cursorStart >= delta.cursorEnd) {
333
358
  syncError("E_SYNC_INVALID_CURSOR_RANGE", `Invalid cursor range start=${delta.cursorStart} end=${delta.cursorEnd} for eventId=${delta.eventId}`);
334
359
  }
335
- if (delta.cursorStart < expectedCursor) {
336
- syncError("E_SYNC_OUT_OF_ORDER", `Expected cursorStart>=${expectedCursor} but got ${delta.cursorStart} for eventId=${delta.eventId}`);
360
+ const streamExpectedCursor = expectedCursorByStreamId.get(delta.streamId) ?? 0;
361
+ const existingStreamEvent = await ctx.db
362
+ .query("codex_stream_deltas_ttl")
363
+ .withIndex("tenantId_streamId_eventId", (q) => q
364
+ .eq("tenantId", args.actor.tenantId)
365
+ .eq("streamId", delta.streamId)
366
+ .eq("eventId", delta.eventId))
367
+ .first();
368
+ if (existingStreamEvent) {
369
+ expectedCursorByStreamId.set(delta.streamId, Math.max(streamExpectedCursor, Number(existingStreamEvent.cursorEnd)));
370
+ streamCheckpointCursorByStreamId.set(delta.streamId, Math.max(streamCheckpointCursorByStreamId.get(delta.streamId) ?? 0, Number(existingStreamEvent.cursorEnd)));
371
+ continue;
372
+ }
373
+ if (delta.cursorStart < streamExpectedCursor) {
374
+ syncError("E_SYNC_OUT_OF_ORDER", `Expected cursorStart>=${streamExpectedCursor} for streamId=${delta.streamId} but got ${delta.cursorStart} for eventId=${delta.eventId}`);
337
375
  }
338
- if (delta.cursorStart > expectedCursor) {
339
- expectedCursor = delta.cursorStart;
376
+ if (delta.cursorStart > streamExpectedCursor) {
377
+ ingestStatus = "partial";
340
378
  }
341
379
  if (inBatchEventIds.has(delta.eventId)) {
342
380
  syncError("E_SYNC_DUP_EVENT_IN_BATCH", `Duplicate eventId in request batch: ${delta.eventId}`);
@@ -373,7 +411,8 @@ export async function pushEventsHandler(ctx, args) {
373
411
  lastPersistedCursor = delta.cursorEnd;
374
412
  persistedAnyEvent = true;
375
413
  }
376
- expectedCursor = delta.cursorEnd;
414
+ streamCheckpointCursorByStreamId.set(delta.streamId, Math.max(streamCheckpointCursorByStreamId.get(delta.streamId) ?? 0, delta.cursorEnd));
415
+ expectedCursorByStreamId.set(delta.streamId, delta.cursorEnd);
377
416
  }
378
417
  for (const turnId of startedTurns) {
379
418
  const turn = await requireTurnForActor(ctx, args.actor, args.threadId, turnId);
@@ -450,7 +489,10 @@ export async function pushEventsHandler(ctx, args) {
450
489
  });
451
490
  }
452
491
  const terminalByStream = new Map();
453
- for (const delta of args.deltas) {
492
+ for (const delta of deltas) {
493
+ if (delta.type !== "stream_delta") {
494
+ continue;
495
+ }
454
496
  const terminal = terminalStatusForEvent(delta.kind, delta.payloadJson);
455
497
  if (!terminal) {
456
498
  continue;
@@ -522,7 +564,6 @@ export async function pushEventsHandler(ctx, args) {
522
564
  latestCursor: stats.latestCursor,
523
565
  });
524
566
  }
525
- const ackCursor = expectedCursor;
526
567
  const sessionPatch = { status: "active" };
527
568
  const nextLastEventCursor = Math.max(session.lastEventCursor, lastPersistedCursor);
528
569
  if (nextLastEventCursor !== session.lastEventCursor) {
@@ -533,20 +574,32 @@ export async function pushEventsHandler(ctx, args) {
533
574
  sessionPatch.lastHeartbeatAt = nowMs;
534
575
  }
535
576
  await ctx.db.patch(session._id, sessionPatch);
536
- if (checkpoint) {
537
- await ctx.db.patch(checkpoint._id, { ackedCursor: ackCursor, updatedAt: now() });
538
- }
539
- else {
540
- const lastDelta = args.deltas[args.deltas.length - 1];
541
- if (!lastDelta) {
542
- syncError("E_SYNC_EMPTY_BATCH", "pushEvents received an empty delta batch");
577
+ const streamCheckpointRows = await ctx.db
578
+ .query("codex_stream_checkpoints")
579
+ .withIndex("tenantId_threadId_deviceId_streamId", (q) => q
580
+ .eq("tenantId", args.actor.tenantId)
581
+ .eq("threadId", args.threadId)
582
+ .eq("deviceId", args.actor.deviceId))
583
+ .take(2000);
584
+ const existingCheckpointByStreamId = new Map(streamCheckpointRows.map((row) => [row.streamId, row]));
585
+ for (const [streamId, cursor] of streamCheckpointCursorByStreamId) {
586
+ const existing = existingCheckpointByStreamId.get(streamId);
587
+ if (existing) {
588
+ if (cursor > Number(existing.ackedCursor)) {
589
+ await ctx.db.patch(existing._id, {
590
+ ackedCursor: cursor,
591
+ updatedAt: now(),
592
+ });
593
+ }
594
+ continue;
543
595
  }
544
- await ctx.db.insert("codex_sync_checkpoints", {
596
+ await ctx.db.insert("codex_stream_checkpoints", {
545
597
  tenantId: args.actor.tenantId,
546
- threadId: args.threadId,
547
- turnId: lastDelta.turnId,
598
+ userId: args.actor.userId,
548
599
  deviceId: args.actor.deviceId,
549
- ackedCursor: ackCursor,
600
+ threadId: args.threadId,
601
+ streamId,
602
+ ackedCursor: cursor,
550
603
  updatedAt: now(),
551
604
  });
552
605
  }
@@ -562,7 +615,40 @@ export async function pushEventsHandler(ctx, args) {
562
615
  batchSize: 1000,
563
616
  });
564
617
  }
565
- return { ackCursor };
618
+ const ackedStreams = Array.from(streamCheckpointCursorByStreamId.entries())
619
+ .map(([streamId, ackCursorEnd]) => ({ streamId, ackCursorEnd }))
620
+ .sort((a, b) => a.streamId.localeCompare(b.streamId));
621
+ return { ackedStreams, ingestStatus };
622
+ }
623
+ export async function upsertCheckpointHandler(ctx, args) {
624
+ await requireThreadForActor(ctx, args.actor, args.threadId);
625
+ const existing = await ctx.db
626
+ .query("codex_stream_checkpoints")
627
+ .withIndex("tenantId_threadId_deviceId_streamId", (q) => q
628
+ .eq("tenantId", args.actor.tenantId)
629
+ .eq("threadId", args.threadId)
630
+ .eq("deviceId", args.actor.deviceId)
631
+ .eq("streamId", args.streamId))
632
+ .first();
633
+ if (existing) {
634
+ if (args.cursor > Number(existing.ackedCursor)) {
635
+ await ctx.db.patch(existing._id, {
636
+ ackedCursor: args.cursor,
637
+ updatedAt: now(),
638
+ });
639
+ }
640
+ return { ok: true };
641
+ }
642
+ await ctx.db.insert("codex_stream_checkpoints", {
643
+ tenantId: args.actor.tenantId,
644
+ userId: args.actor.userId,
645
+ deviceId: args.actor.deviceId,
646
+ threadId: args.threadId,
647
+ streamId: args.streamId,
648
+ ackedCursor: Math.max(0, Math.floor(args.cursor)),
649
+ updatedAt: now(),
650
+ });
651
+ return { ok: true };
566
652
  }
567
653
  export async function heartbeatHandler(ctx, args) {
568
654
  await requireThreadForActor(ctx, args.actor, args.threadId);
@@ -1 +1 @@
1
- {"version":3,"file":"syncIngest.js","sourceRoot":"","sources":["../../src/component/syncIngest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncIngest.js","sourceRoot":"","sources":["../../src/component/syncIngest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,sBAAsB,GAIvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACZ,gCAAgC,EAChC,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,SAAS,GAEV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAiE1B,SAAS,2BAA2B,CAClC,IAAY,EACZ,WAAmB;IAEnB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3D,IAAI,QAAQ,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,QAAQ,EAAE,MAAM,KAAK,aAAa,EAAE,CAAC;QACvC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,QAAQ,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAgB,EAChB,IAAoB;IAKpB,MAAM,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAmB,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/E,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,oBAAoB,EAAE,sCAAsC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;SACzB,KAAK,CAAC,gBAAgB,CAAC;SACvB,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CACtE;SACA,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,SAAS,CAAC,0BAA0B,EAAE,yCAAyC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,SAAS,CACP,gCAAgC,EAChC,oBAAoB,OAAO,CAAC,QAAQ,oCAAoC,IAAI,CAAC,QAAQ,EAAE,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7C,SAAS,CACP,gCAAgC,EAChC,oBAAoB,OAAO,CAAC,QAAQ,kCAAkC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,UAAU,CACR,0BAA0B,EAC1B,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,qCAAqC,IAAI,CAAC,SAAS,EAAE,CAC/E,CAAC;IACJ,CAAC;IAED,IAAI,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAClD,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC5D,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA8B,CAAC;IAChE,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC/D,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAGrC,CAAC;IACJ,MAAM,gCAAgC,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnE,IAAI,YAAY,GAAqB,IAAI,CAAC;IAC1C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE;SAC7B,KAAK,CAAC,oBAAoB,CAAC;SAC3B,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CACpC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CACpE;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,wBAAwB,GAAG,IAAI,GAAG,CACtC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAC9E,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAmB,EAAE;QACjE,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YAChD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,EAAE;aAC7B,KAAK,CAAC,gBAAgB,CAAC;aACvB,SAAS,CAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE,CACvD,CAAC;aACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC7B,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CACxB;aACA,KAAK,CAAC,MAAM,CAAC;aACb,IAAI,CAAC,CAAC,CAAC,CAAC;QACX,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAU,EAAE,CAC/D,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;IAEnE,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,MAAc,EAAU,EAAE,CAC7D,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;IAEhE,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAE,EAAE;QACnE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;aAC1B,KAAK,CAAC,gBAAgB,CAAC;aACvB,SAAS,CAAC,oCAAoC,EAAE,CAAC,CAAC,EAAE,EAAE,CACrD,CAAC;aACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC7B,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aACpB,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAC9B;aACA,KAAK,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,QAAQ;YACzB,CAAC,CAAC;gBACE,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB;YACH,CAAC,CAAC,IAAI,CAAC;QACT,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,KAA2B,EAAE,EAAE;QAC1F,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;aAC1B,KAAK,CAAC,iBAAiB,CAAC;aACxB,SAAS,CAAC,iCAAiC,EAAE,CAAC,CAAC,EAAE,EAAE,CAClD,CAAC;aACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC7B,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aACpB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CACxB;aACA,KAAK,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,QAAQ;YACzB,CAAC,CAAC;gBACE,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB;YACH,CAAC,CAAC,IAAI,CAAC;QACT,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACnC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,KAA4B,EAAE,EAAE;QACzF,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjD,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;aACxB,KAAK,CAAC,eAAe,CAAC;aACtB,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CACpC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/D;aACA,KAAK,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC;gBACE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;aACnC;YACH,CAAC,CAAC,IAAI,CAAC;QACT,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,KAA0B,EAAE,EAAE;QACvE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE5B,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,EAAE;iBAC9B,KAAK,CAAC,aAAa,CAAC;iBACpB,SAAS,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC3C,CAAC;iBACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;iBAC7B,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CACxB;iBACA,KAAK,EAAE,CAAC;YAEX,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,2BAA2B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACnF,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE;oBACjC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM;oBACN,MAAM,EAAE,eAAe;oBACvB,cAAc,EAAE,QAAQ,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE;oBACjD,SAAS,EAAE,GAAG,EAAE;oBAChB,GAAG,CAAC,eAAe,KAAK,WAAW;wBACnC,eAAe,KAAK,aAAa;wBACjC,eAAe,KAAK,QAAQ;wBAC1B,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;wBACxB,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrD,UAAU,CACR,uBAAuB,EACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,kCAAkC,MAAM,EAAE,CACpE,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5C,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC1C,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjF,CAAC;YAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5E,IAAI,eAAe,EAAE,CAAC;gBACpB,gBAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;YAC/E,CAAC;YAED,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAClF,IAAI,kBAAkB,EAAE,CAAC;gBACvB,iBAAiB,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;YACtF,CAAC;YAED,MAAM,cAAc,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/E,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;gBAE1E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAEjD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;wBAClD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;wBAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;wBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM;wBACN,SAAS,EAAE,cAAc,CAAC,SAAS;wBACnC,IAAI,EAAE,cAAc,CAAC,IAAI;wBACzB,MAAM,EAAE,cAAc,CAAC,MAAM;wBAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;wBACzB,cAAc,EAAE,cAAc,CAAC,cAAc;wBAC7C,WAAW,EAAE,SAAS;wBACtB,WAAW,EAAE,cAAc,CAAC,WAAW;wBACvC,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvE,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,SAAS,EAAE,GAAG,EAAE;wBAChB,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzE,CAAC,CAAC;oBACH,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE;wBACjD,GAAG,EAAE,KAAK;wBACV,MAAM,EAAE,cAAc,CAAC,MAAM;wBAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;qBAC1B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;wBACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BACjC,OAAO,QAAgC,CAAC;wBAC1C,CAAC;wBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,IAAI,cAAc,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC5E,OAAO,aAAqC,CAAC;wBAC/C,CAAC;wBACD,IAAI,cAAc,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC;wBACzB,CAAC;wBACD,OAAO,cAAc,CAAC,MAAM,CAAC;oBAC/B,CAAC,CAAC,EAAE,CAAC;oBAEL,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;wBAC/B,IAAI,EAAE,cAAc,CAAC,IAAI;wBACzB,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,cAAc,CAAC,IAAI;wBACzB,cAAc,EAAE,cAAc,CAAC,cAAc;wBAC7C,WAAW,EAAE,cAAc,CAAC,WAAW;wBACvC,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5D,SAAS,EAAE,GAAG,EAAE;wBAChB,GAAG,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9D,CAAC,CAAC;oBACH,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE;wBACjD,GAAG,QAAQ;wBACX,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,cAAc,CAAC,IAAI;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAClF,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;gBAExE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBACjD,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;wBACtD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;wBAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;wBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM;wBACN,SAAS,EAAE,YAAY,CAAC,SAAS;wBACjC,IAAI,EAAE,WAAW;wBACjB,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,YAAY,CAAC,KAAK;wBACxB,cAAc,EAAE,cAAc;wBAC9B,WAAW,EAAE,SAAS;wBACtB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;4BAC1B,IAAI,EAAE,cAAc;4BACpB,EAAE,EAAE,YAAY,CAAC,SAAS;4BAC1B,IAAI,EAAE,YAAY,CAAC,KAAK;yBACzB,CAAC;wBACF,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,SAAS,EAAE,GAAG,EAAE;qBACjB,CAAC,CAAC;oBACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE;wBAC/C,GAAG,EAAE,SAAS;wBACd,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,YAAY,CAAC,KAAK;qBACzB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC3C,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;oBACzD,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;wBAC/B,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;4BAC1B,IAAI,EAAE,cAAc;4BACpB,EAAE,EAAE,YAAY,CAAC,SAAS;4BAC1B,IAAI,EAAE,QAAQ;yBACf,CAAC;wBACF,SAAS,EAAE,GAAG,EAAE;qBACjB,CAAC,CAAC;oBACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE;wBAC/C,GAAG,QAAQ;wBACX,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACrC,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,EAAE;iBACnC,KAAK,CAAC,wBAAwB,CAAC;iBAC/B,SAAS,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5C,CAAC;iBACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;iBAC7B,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAChC;iBACA,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,wBAAwB,EAAE;oBAC5C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE;gBACpD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE;gBACpD,SAAS,EAAE,GAAG,EAAE;aACjB,CAAC,CAAC;YACH,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC9B,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE;gBACrC,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YACH,MAAM,gBAAgB,CAAC,GAAG,EAAE;gBAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC,SAAS,CACP,6BAA6B,EAC7B,8BAA8B,KAAK,CAAC,WAAW,QAAQ,KAAK,CAAC,SAAS,gBAAgB,KAAK,CAAC,OAAO,EAAE,CACtG,CAAC;QACJ,CAAC;QACD,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,mBAAmB,GAAG,MAAM,GAAG,CAAC,EAAE;aACrC,KAAK,CAAC,yBAAyB,CAAC;aAChC,SAAS,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5C,CAAC;aACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACnC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;aAC9B,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAChC;aACA,KAAK,EAAE,CAAC;QACX,IAAI,mBAAmB,EAAE,CAAC;YACxB,wBAAwB,CAAC,GAAG,CAC1B,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CACtE,CAAC;YACF,gCAAgC,CAAC,GAAG,CAClC,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,GAAG,CACN,gCAAgC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EACzD,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CACtC,CACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,GAAG,oBAAoB,EAAE,CAAC;YAC7C,SAAS,CACP,qBAAqB,EACrB,yBAAyB,oBAAoB,iBAAiB,KAAK,CAAC,QAAQ,YAAY,KAAK,CAAC,WAAW,gBAAgB,KAAK,CAAC,OAAO,EAAE,CACzI,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,GAAG,oBAAoB,EAAE,CAAC;YAC7C,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,2BAA2B,EAAE,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,aAAa,GACjB,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACrC,CAAC,OAAO,CAAC,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,EAAE;gBAC7C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,GAAG,EAAE,GAAG,YAAY;aAChC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;gBACzB,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,YAAY,EAAE,KAAK,CAAC,SAAS;oBAC7B,UAAU,EAAE,CAAC;iBACd,CAAC,CAAC;YACL,CAAC;YACD,mBAAmB,GAAG,KAAK,CAAC,SAAS,CAAC;YACtC,iBAAiB,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,gCAAgC,CAAC,GAAG,CAClC,KAAK,CAAC,QAAQ,EACd,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CACrF,CAAC;QACF,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC;QAC/C,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAC1B,CAAC,EACD,qBAAqB,CAAa,sCAAsC,CAAC,EACzE;YACE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACtE,MAAM,eAAe,GAAG,MAAM,GAAG,CAAC,EAAE;iBACjC,KAAK,CAAC,gBAAgB,CAAC;iBACvB,SAAS,CAAC,iCAAiC,EAAE,CAAC,CAAC,EAAE,EAAE,CAClD,CAAC;iBACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;iBAC7B,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;iBACpB,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAC7B;iBACA,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,MAAM,OAAO,CAAC,GAAG,CACf,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9B,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;gBACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,SAAS,EAAE,GAAG,EAAE;gBAChB,WAAW,EAAE,GAAG,EAAE;aACnB,CAAC,CACH,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAElE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBACxD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM;gBACN,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,SAAS;gBACjB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,SAAS,EAAE,GAAG,EAAE;aACjB,CAAC,CAAC;YACH,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;gBACzC,GAAG,EAAE,UAAU;gBACf,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAEpE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,GAAG,EAAE;SACjB,CAAC,CAAC;QACH,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE;YAC3C,GAAG,QAAQ;YACX,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAG7B,CAAC;IACJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,gCAAgC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAC9C,OAAO,CAAC,2BAA2B,EACnC,qBAAqB,CAAa,+BAA+B,CAAC,EAClE;YACE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,QAAQ;YACR,SAAS,EAAE,gCAAgC;SAC5C,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;gBACpC,OAAO;gBACP,kBAAkB,EAAE,OAAO;gBAC3B,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC,GAAG,EAAE;gBAC5B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ;gBACR,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;YACH,eAAe,CAAC,QAAQ,EAAE;gBACxB,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE,IAAI,EAAE,UAAmB,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC7B,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM;oBACzC,OAAO;iBACR;gBACD,OAAO;gBACP,kBAAkB,EAAE,OAAO;gBAC3B,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC,GAAG,EAAE;gBAC5B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ;gBACR,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,eAAe,CAAC,QAAQ,EAAE;gBACxB,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,wBAAwB,EAAE,CAAC;QACzD,MAAM,mBAAmB,CAAC,GAAG,EAAE;YAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ;YACR,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAId,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAEzB,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IACnF,IAAI,mBAAmB,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC;QACpD,YAAY,CAAC,eAAe,GAAG,mBAAmB,CAAC;IACrD,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACpB,IAAI,iBAAiB,IAAI,KAAK,GAAG,OAAO,CAAC,eAAe,IAAI,+BAA+B,EAAE,CAAC;QAC5F,YAAY,CAAC,eAAe,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE9C,MAAM,oBAAoB,GAAG,MAAM,GAAG,CAAC,EAAE;SACtC,KAAK,CAAC,0BAA0B,CAAC;SACjC,SAAS,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE,CACtD,CAAC;SACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;SAC7B,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CACvC;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAC1C,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CACvD,CAAC;IACF,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1C,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;oBAC/B,WAAW,EAAE,MAAM;oBACnB,SAAS,EAAE,GAAG,EAAE;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,EAAE;YAC9C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ;YACR,WAAW,EAAE,MAAM;YACnB,SAAS,EAAE,GAAG,EAAE;SACjB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,CAAC,eAAe,IAAI,2BAA2B,EAAE,CAAC;QACnE,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAC1B,CAAC,EACD,qBAAqB,CAAa,+BAA+B,CAAC,EAClE;YACE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,aAAa,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;SACrC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,IAAI,KAAK,GAAG,OAAO,CAAC,eAAe,IAAI,6BAA6B,EAAE,CAAC;QAC1F,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAC1B,CAAC,EACD,qBAAqB,CAAa,8BAA8B,CAAC,EACjE;YACE,KAAK;YACL,SAAS,EAAE,IAAI;SAChB,CACF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,OAAO,EAAE,CAAC;SACxE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAgB,EAChB,IAKC;IAED,MAAM,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,EAAE;SAC1B,KAAK,CAAC,0BAA0B,CAAC;SACjC,SAAS,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,EAAE,CACtD,CAAC;SACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;SAC7B,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SACnC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CACjC;SACA,KAAK,EAAE,CAAC;IAEX,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC/B,WAAW,EAAE,IAAI,CAAC,MAAM;gBACxB,SAAS,EAAE,GAAG,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,EAAE;QAC9C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;QAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,SAAS,EAAE,GAAG,EAAE;KACjB,CAAC,CAAC;IACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAgB,EAChB,IAAmB;IAEnB,MAAM,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE;SACzB,KAAK,CAAC,gBAAgB,CAAC;SACvB,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CACtE;SACA,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE;YACpC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,QAAQ;YAChB,eAAe,EAAE,GAAG,EAAE;YACtB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,GAAG,EAAE;SACjB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,UAAU,CACR,0BAA0B,EAC1B,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,qCAAqC,IAAI,CAAC,SAAS,EAAE,CAC/E,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,SAAS,CACP,gCAAgC,EAChC,oBAAoB,OAAO,CAAC,QAAQ,oCAAoC,IAAI,CAAC,QAAQ,EAAE,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7C,SAAS,CACP,gCAAgC,EAChC,oBAAoB,OAAO,CAAC,QAAQ,kCAAkC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,EAAE,QAAQ;QAChB,eAAe,EAAE,GAAG,EAAE;QACtB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC;KACzE,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}