@songsid/agend 2.3.2-beta.13 → 2.3.2-beta.15

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 (105) hide show
  1. package/dist/backend/codex-session-lookup.d.ts +15 -0
  2. package/dist/backend/codex-session-lookup.js +58 -0
  3. package/dist/backend/codex-session-lookup.js.map +1 -1
  4. package/dist/backend/codex.js +15 -4
  5. package/dist/backend/codex.js.map +1 -1
  6. package/dist/backend/kiro-classic-archive.d.ts +5 -0
  7. package/dist/backend/kiro-classic-archive.js +187 -9
  8. package/dist/backend/kiro-classic-archive.js.map +1 -1
  9. package/dist/backend/kiro-classic-links.d.ts +24 -0
  10. package/dist/backend/kiro-classic-links.js +135 -0
  11. package/dist/backend/kiro-classic-links.js.map +1 -0
  12. package/dist/backend/kiro-identity.d.ts +20 -3
  13. package/dist/backend/kiro-identity.js +26 -39
  14. package/dist/backend/kiro-identity.js.map +1 -1
  15. package/dist/backend/kiro-reconcile-store.d.ts +27 -0
  16. package/dist/backend/kiro-reconcile-store.js +344 -0
  17. package/dist/backend/kiro-reconcile-store.js.map +1 -0
  18. package/dist/backend/kiro-v2-store-worker.js +17 -3
  19. package/dist/backend/kiro-v2-store-worker.js.map +1 -1
  20. package/dist/backend/kiro-v2-store.d.ts +23 -1
  21. package/dist/backend/kiro-v2-store.js +22 -12
  22. package/dist/backend/kiro-v2-store.js.map +1 -1
  23. package/dist/backend/kiro.d.ts +4 -0
  24. package/dist/backend/kiro.js +25 -3
  25. package/dist/backend/kiro.js.map +1 -1
  26. package/dist/channel/mcp-tools.js +3 -1
  27. package/dist/channel/mcp-tools.js.map +1 -1
  28. package/dist/cli.js +17 -4
  29. package/dist/cli.js.map +1 -1
  30. package/dist/fleet-manager.d.ts +9 -1
  31. package/dist/fleet-manager.js +100 -11
  32. package/dist/fleet-manager.js.map +1 -1
  33. package/dist/general-instance.d.ts +24 -0
  34. package/dist/general-instance.js +53 -0
  35. package/dist/general-instance.js.map +1 -1
  36. package/dist/general-knowledge/skills/web-appearance/SKILL.canvas-worker-off.md +2 -0
  37. package/dist/general-knowledge/skills/web-appearance/SKILL.md +2 -0
  38. package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +6 -4
  39. package/dist/general-knowledge/skills/web-dashboard/SKILL.md +6 -4
  40. package/dist/kiro-migrate.d.ts +4 -3
  41. package/dist/kiro-migrate.js +13 -8
  42. package/dist/kiro-migrate.js.map +1 -1
  43. package/dist/kiro-reconcile.d.ts +21 -0
  44. package/dist/kiro-reconcile.js +80 -0
  45. package/dist/kiro-reconcile.js.map +1 -0
  46. package/dist/kiro-tui-forensic.d.ts +7 -0
  47. package/dist/kiro-tui-forensic.js +17 -3
  48. package/dist/kiro-tui-forensic.js.map +1 -1
  49. package/dist/locale.js +24 -0
  50. package/dist/locale.js.map +1 -1
  51. package/dist/log-service.js +1 -1
  52. package/dist/log-service.js.map +1 -1
  53. package/dist/office-share-page.d.ts +3 -1
  54. package/dist/office-share-page.js +7 -2
  55. package/dist/office-share-page.js.map +1 -1
  56. package/dist/office-share-service.d.ts +4 -3
  57. package/dist/office-share-service.js +6 -6
  58. package/dist/office-share-service.js.map +1 -1
  59. package/dist/office-share.d.ts +17 -6
  60. package/dist/office-share.js +28 -11
  61. package/dist/office-share.js.map +1 -1
  62. package/dist/outbound-handlers.js +20 -1
  63. package/dist/outbound-handlers.js.map +1 -1
  64. package/dist/outbound-schemas.d.ts +6 -0
  65. package/dist/outbound-schemas.js +6 -0
  66. package/dist/outbound-schemas.js.map +1 -1
  67. package/dist/quickstart-api.d.ts +25 -1
  68. package/dist/quickstart-api.js +53 -6
  69. package/dist/quickstart-api.js.map +1 -1
  70. package/dist/service-installer.d.ts +13 -0
  71. package/dist/service-installer.js +15 -0
  72. package/dist/service-installer.js.map +1 -1
  73. package/dist/service-owner.d.ts +25 -0
  74. package/dist/service-owner.js +43 -2
  75. package/dist/service-owner.js.map +1 -1
  76. package/dist/setup-form.js +17 -3
  77. package/dist/setup-form.js.map +1 -1
  78. package/dist/setup-i18n.js +2 -0
  79. package/dist/setup-i18n.js.map +1 -1
  80. package/dist/tool-permissions.js +1 -0
  81. package/dist/tool-permissions.js.map +1 -1
  82. package/dist/ui/fleet-office-layout.js +14 -6
  83. package/dist/ui/fleet-office-pack.d.ts +4 -0
  84. package/dist/ui/fleet-office-pack.js +15 -5
  85. package/dist/ui/fleet-office-store.js +18 -3
  86. package/dist/ui/fleet-office-view.js +8 -0
  87. package/dist/ui/fleet-office-zones.js +10 -2
  88. package/dist/ui/fleet-office.js +36 -4
  89. package/dist/ui/office-share-dialog.js +31 -7
  90. package/dist/ui/panel-log.js +2 -2
  91. package/dist/ui/settings-strings.js +2 -0
  92. package/dist/ui/settings-wizard.js +15 -4
  93. package/dist/ui/shared/app.css +6 -0
  94. package/dist/ui/shared/setup-host-text.js +2 -0
  95. package/dist/web-api.js +74 -4
  96. package/dist/web-api.js.map +1 -1
  97. package/dist/web-office-pack-tools.d.ts +10 -1
  98. package/dist/web-office-pack-tools.js +36 -5
  99. package/dist/web-office-pack-tools.js.map +1 -1
  100. package/dist/web-office-skins.js +6 -0
  101. package/dist/web-office-skins.js.map +1 -1
  102. package/dist/web-office-store.d.ts +22 -3
  103. package/dist/web-office-store.js +44 -8
  104. package/dist/web-office-store.js.map +1 -1
  105. package/package.json +1 -1
@@ -10,7 +10,8 @@ import { execFileSync } from "node:child_process";
10
10
  import { join, resolve } from "node:path";
11
11
  import { kiroAgentName, kiroFleetTag } from "./kiro-agent.js";
12
12
  import { kiroCanonicalDirectory, kiroDirectoryKeys, kiroCarryCandidate, reinstateKiroCarryPin } from "./kiro-identity.js";
13
- import { readKiroTuiAssistantTexts, snapshotKiroTuiFile } from "../kiro-tui-forensic.js";
13
+ import { KiroTuiSnapshotSizeError, readKiroTuiAssistantTexts, snapshotKiroTuiFile } from "../kiro-tui-forensic.js";
14
+ import { archivedKiroAlternative, assertKiroReconciliationLaunch, inspectKiroReconciliation, inspectKiroReconciliationRollback, preserveKiroReconciliation, completeKiroSelection, finishKiroReconciliationLaunch, beginKiroReconciliationRollback, rollbackKiroSelection } from "./kiro-reconcile-store.js";
14
15
  const hash = (s) => createHash("sha256").update(s).digest("hex");
15
16
  const MAX_ROW_BYTES = 32 * 1024 * 1024;
16
17
  const MAX_ARCHIVE_BYTES = 96 * 1024 * 1024;
@@ -263,22 +264,79 @@ export function proveClassicHistoryCoverage(input) {
263
264
  if (!log.unchanged())
264
265
  fail();
265
266
  }
267
+ /** Unknown cwd is safe to ignore only for stable, owned files older than the carry, with no possible replacement work. */
268
+ function oldUnknownMetadata(input, name, created) {
269
+ const path = join(input.sessionsDir, name), logPath = join(input.sessionsDir, name.slice(0, -5) + ".jsonl");
270
+ try {
271
+ const before = lstatSync(path);
272
+ const old = (st) => st.isFile() && (!process.getuid || st.uid === process.getuid())
273
+ && Number.isFinite(st.mtimeMs) && Number.isFinite(st.ctimeMs) && st.mtimeMs < created && st.ctimeMs < created;
274
+ if (!old(before))
275
+ return null;
276
+ const log = () => { try {
277
+ return lstatSync(logPath);
278
+ }
279
+ catch (error) {
280
+ if (error.code === "ENOENT")
281
+ return null;
282
+ throw error;
283
+ } };
284
+ const logBefore = log();
285
+ if (logBefore && (!old(logBefore) || logBefore.size !== 0))
286
+ return null;
287
+ const same = (a, b) => b.isFile()
288
+ && a.dev === b.dev && a.ino === b.ino && a.uid === b.uid && a.size === b.size && a.mtimeMs === b.mtimeMs && a.ctimeMs === b.ctimeMs;
289
+ return () => {
290
+ try {
291
+ const logAfter = log();
292
+ return same(before, lstatSync(path)) && (logBefore ? !!logAfter && same(logBefore, logAfter) : logAfter === null);
293
+ }
294
+ catch {
295
+ return false;
296
+ }
297
+ };
298
+ }
299
+ catch {
300
+ return null;
301
+ }
302
+ }
266
303
  /** An abandoned pin is recoverable only while every later unowned same-cwd alternative remains empty. Leave all of them untouched. */
267
- function proveNoReplacementWork(input) {
304
+ function proveNoReplacementWork(input, plannedArchive) {
268
305
  const original = JSON.parse(snapshotKiroTuiFile(join(input.sessionsDir, `${input.sessionId}.json`), 8 * 1024 * 1024).text);
269
306
  const created = Date.parse(original.created_at);
270
307
  if (!Number.isFinite(created))
271
308
  throw new Error("Carried creation time is unavailable");
309
+ const unknownChecks = [];
272
310
  for (const name of readdirSync(input.sessionsDir)) {
273
311
  if (!name.endsWith(".json") || name === `${input.sessionId}.json`)
274
312
  continue;
275
- const file = snapshotKiroTuiFile(join(input.sessionsDir, name), 8 * 1024 * 1024), meta = JSON.parse(file.text);
276
- if (typeof meta.cwd !== "string" || kiroCanonicalDirectory(meta.cwd) !== kiroCanonicalDirectory(input.workingDirectory))
313
+ let file, meta;
314
+ try {
315
+ file = snapshotKiroTuiFile(join(input.sessionsDir, name), 8 * 1024 * 1024);
316
+ meta = JSON.parse(file.text);
317
+ if (!meta || typeof meta.cwd !== "string" || !meta.cwd.trim())
318
+ throw new Error("Unknown cwd");
319
+ }
320
+ catch {
321
+ const unchanged = oldUnknownMetadata(input, name, created);
322
+ if (!unchanged)
323
+ throw new Error(`Replacement session metadata ${JSON.stringify(name)} has unknown cwd and may contain newer work; automatic repair held`);
324
+ unknownChecks.push({ name, unchanged });
325
+ continue;
326
+ }
327
+ if (kiroCanonicalDirectory(meta.cwd) !== kiroCanonicalDirectory(input.workingDirectory))
277
328
  continue;
278
329
  if (Date.parse(meta.created_at) < created)
279
330
  continue;
280
331
  if (!safeId.test(meta.session_id) || name !== `${meta.session_id}.json`)
281
332
  throw new Error("Replacement session metadata is ambiguous");
333
+ if (meta.session_id === plannedArchive)
334
+ continue; // read-only planning only; the confirmed operation needs the durable exact archive below.
335
+ const archived = archivedKiroAlternative(input, meta.session_id);
336
+ if (archived) {
337
+ unknownChecks.push({ name, unchanged: archived });
338
+ continue;
339
+ }
282
340
  const claim = join(input.agendHome, "kiro-identity", "claims", "v2", meta.session_id);
283
341
  if (existsSync(claim)) {
284
342
  const owner = readFileSync(claim, "utf8");
@@ -286,10 +344,26 @@ function proveNoReplacementWork(input) {
286
344
  continue;
287
345
  throw new Error("A replacement session is already owned; automatic repair held");
288
346
  }
289
- const log = snapshotKiroTuiFile(join(input.sessionsDir, `${meta.session_id}.jsonl`), 1);
290
- if (log.text.length !== 0 || !file.unchanged() || !log.unchanged())
291
- throw new Error("An unowned replacement session has work or changed; automatic repair held");
347
+ const logName = `${meta.session_id}.jsonl`;
348
+ const work = (bytes) => new Error(`Newer same-cwd session ${JSON.stringify(logName)} has work (${bytes} bytes); choose which conversation to keep before repairing`);
349
+ let log;
350
+ try {
351
+ // This is an emptiness probe, not the ordinary 64 MiB transcript scan.
352
+ log = snapshotKiroTuiFile(join(input.sessionsDir, logName), 1);
353
+ }
354
+ catch (error) {
355
+ if (error instanceof KiroTuiSnapshotSizeError)
356
+ throw work(error.actualBytes);
357
+ throw new Error(`Replacement transcript ${JSON.stringify(logName)} could not be read safely; automatic repair held: ${error.message}`);
358
+ }
359
+ if (log.text.length !== 0)
360
+ throw work(Buffer.byteLength(log.text));
361
+ if (!file.unchanged() || !log.unchanged())
362
+ throw new Error(`Replacement transcript ${JSON.stringify(logName)} changed; automatic repair held`);
292
363
  }
364
+ for (const check of unknownChecks)
365
+ if (!check.unchanged())
366
+ throw new Error(`Replacement session metadata ${JSON.stringify(check.name)} changed during proof; automatic repair held`);
293
367
  }
294
368
  /** This runs before discovery can adopt one of the empty sessions left by the old retry escape hatch. */
295
369
  export function repairAbandonedKiroCarry(input, stopped = () => assertKiroConversationStopped(input)) {
@@ -333,6 +407,8 @@ export function archiveKiroClassicCopy(input, hooks = {}) {
333
407
  if (lengths.reduce((n, r) => n + r.bytes, 0) > MAX_ROW_BYTES)
334
408
  throw new Error("Frozen classic rows exceed the archive limit");
335
409
  const rows = db.prepare(`SELECT key, conversation_id AS id, CAST(value AS BLOB) AS value, created_at AS createdAt, updated_at AS updatedAt FROM conversations_v2 WHERE key IN (${placeholders}) AND conversation_id=? ORDER BY key`).all(...keys, input.sessionId);
410
+ if (hooks.classicHash !== undefined && fingerprintClassicRows(rows.map(r => ({ key: r.key, conversation_id: r.id, value: r.value.toString("hex").toUpperCase(), created_at: r.createdAt, updated_at: r.updatedAt }))) !== hooks.classicHash)
411
+ throw new Error("Confirmed classic bytes changed; reconciliation held");
336
412
  const path = writeArchive(input, rows.map(r => ({ key: r.key, id: r.id, valueBase64: r.value.toString("base64"), createdAt: r.createdAt, updatedAt: r.updatedAt })));
337
413
  hooks.checkpoint?.();
338
414
  stopped();
@@ -357,6 +433,13 @@ export function archiveKiroClassicCopy(input, hooks = {}) {
357
433
  }
358
434
  /** One automatic launch repair. Explicit fresh starts do not call this. */
359
435
  export function prepareKiroCarryForLaunch(input, checkpoint) {
436
+ const pendingReconciliation = assertKiroReconciliationLaunch({ ...input, sessionId: "unresolved" });
437
+ if (pendingReconciliation) {
438
+ assertPreparedClassicSource(pendingReconciliation.input, pendingReconciliation.classicHash);
439
+ // Re-pinning may already have survived an interrupted attempt. Its current
440
+ // candidate no longer says repair, but unacknowledged later work still holds.
441
+ proveNoReplacementWork(pendingReconciliation.input);
442
+ }
360
443
  const candidate = kiroCarryCandidate(input);
361
444
  if (!candidate)
362
445
  return { sessionId: null, archivePath: null, repaired: false };
@@ -385,16 +468,111 @@ export function prepareKiroCarryForLaunch(input, checkpoint) {
385
468
  });
386
469
  if (!completed)
387
470
  throw new Error("No frozen classic row or verified archive proves this abandoned migration; repair held");
388
- return { sessionId: null, archivePath: null, repaired: false }; // deliberate fresh after an already archived migration
471
+ if (!pendingReconciliation)
472
+ return { sessionId: null, archivePath: null, repaired: false }; // deliberate fresh after an already archived migration
389
473
  }
390
474
  checkpoint?.();
391
475
  repaired = repairAbandonedKiroCarry(full);
392
476
  }
393
477
  checkpoint?.();
394
478
  proveOwnedCarry(full);
395
- const archivePath = archiveKiroClassicCopy(full, { checkpoint });
479
+ const archivePath = archiveKiroClassicCopy(full, { checkpoint, classicHash: pendingReconciliation?.classicHash });
480
+ if (pendingReconciliation)
481
+ assertPreparedClassicSource(pendingReconciliation.input, pendingReconciliation.classicHash);
482
+ checkpoint?.();
483
+ finishKiroReconciliationLaunch(full);
396
484
  return { sessionId: candidate.id, archivePath, repaired };
397
485
  }
486
+ function reconcileStopped(input) {
487
+ assertKiroConversationStopped(input);
488
+ assertKiroConversationStopped({ ...input, sessionId: input.archiveId });
489
+ }
490
+ function fingerprintClassicRows(rows) {
491
+ return hash(JSON.stringify(rows.slice().sort((a, b) => Buffer.compare(Buffer.from(a.key), Buffer.from(b.key)))));
492
+ }
493
+ function classicRows(input) {
494
+ const db = new Database(input.dbPath, { readonly: true, fileMustExist: true, timeout: 200 });
495
+ try {
496
+ const keys = kiroDirectoryKeys(input.workingDirectory);
497
+ const where = `key IN (${keys.map(() => "?").join(",")}) AND conversation_id=?`;
498
+ const sizes = db.prepare(`SELECT length(CAST(value AS BLOB)) AS n FROM conversations_v2 WHERE ${where}`).all(...keys, input.sessionId);
499
+ if (sizes.reduce((n, r) => n + r.n, 0) > MAX_ROW_BYTES)
500
+ throw new Error("Confirmed classic rows exceed the archive limit");
501
+ return db.prepare(`SELECT key, conversation_id, hex(CAST(value AS BLOB)) AS value, created_at, updated_at FROM conversations_v2 WHERE ${where} ORDER BY key`).all(...keys, input.sessionId);
502
+ }
503
+ finally {
504
+ db.close();
505
+ }
506
+ }
507
+ function classicHash(input) { return fingerprintClassicRows(classicRows(input)); }
508
+ function matchingClassicArchive(input, expected) {
509
+ const root = join(input.agendHome, "kiro-classic-archives", hash(input.instance).slice(0, 32));
510
+ if (!existsSync(root))
511
+ return undefined;
512
+ return readdirSync(root).filter(name => name.startsWith(input.sessionId + "-") && name.endsWith(".json"))
513
+ .map(name => join(root, name)).find(path => {
514
+ const m = kiroClassicArchiveMetadata(path);
515
+ return m.instance === input.instance && m.sessionId === input.sessionId && m.directory === kiroCanonicalDirectory(input.workingDirectory)
516
+ && m.profile === input.credentialProfile && m.dbPath === resolve(input.dbPath)
517
+ && fingerprintClassicRows(readArchive(path).payload.rows.map(r => ({ key: r.key, conversation_id: r.id,
518
+ value: Buffer.from(r.valueBase64, "base64").toString("hex").toUpperCase(), created_at: r.createdAt, updated_at: r.updatedAt }))) === expected;
519
+ });
520
+ }
521
+ function assertPreparedClassicSource(input, expected) {
522
+ const rows = classicRows(input);
523
+ if (fingerprintClassicRows(rows) === expected)
524
+ return;
525
+ if (!rows.length && matchingClassicArchive(input, expected))
526
+ return; // removal committed, final selection marker did not
527
+ throw new Error("Confirmed classic bytes changed or their exact archive is missing; reconciliation held");
528
+ }
529
+ /** Runs on the bounded store worker. Never writes while planning or before the admin's confirmation. */
530
+ export function planKiroCarryReconciliation(input, rollbackReceipt) {
531
+ reconcileStopped(input);
532
+ if (rollbackReceipt)
533
+ return inspectKiroReconciliationRollback(input, rollbackReceipt);
534
+ proveOwnedCarry(input, true);
535
+ const plan = inspectKiroReconciliation(input, classicHash(input));
536
+ proveNoReplacementWork(input, input.archiveId);
537
+ reconcileStopped(input);
538
+ return plan;
539
+ }
540
+ export function applyKiroCarryReconciliation(input, plan, actor, checkpoint) {
541
+ checkpoint();
542
+ reconcileStopped(input);
543
+ const current = planKiroCarryReconciliation(input, plan.rollbackReceipt);
544
+ if (current.digest !== plan.digest)
545
+ throw new Error("Reconciliation confirmation is stale");
546
+ if (plan.rollbackReceipt) {
547
+ if (!actor || actor.length > 512)
548
+ throw new Error("Rollback actor is required");
549
+ checkpoint();
550
+ reconcileStopped(input);
551
+ const rollback = beginKiroReconciliationRollback(input, plan);
552
+ if (classicHash(input) !== rollback.classicHash) {
553
+ const archive = matchingClassicArchive(input, rollback.classicHash);
554
+ if (!archive)
555
+ throw new Error("The original classic archive is required for rollback");
556
+ checkpoint();
557
+ restoreKiroClassicArchive(input, archive);
558
+ if (classicHash(input) !== rollback.classicHash)
559
+ throw new Error("Original classic bytes changed; rollback remains held");
560
+ }
561
+ checkpoint();
562
+ reconcileStopped(input);
563
+ return rollbackKiroSelection(input, rollback.plan);
564
+ }
565
+ const receipt = preserveKiroReconciliation(input, plan, classicHash(input), actor);
566
+ checkpoint();
567
+ reconcileStopped(input);
568
+ const prepared = prepareKiroCarryForLaunch(input, checkpoint);
569
+ if (prepared.sessionId !== input.sessionId)
570
+ throw new Error("Reconciliation did not retain the original conversation");
571
+ checkpoint();
572
+ reconcileStopped(input);
573
+ completeKiroSelection(input, receipt);
574
+ return receipt;
575
+ }
398
576
  /** Operator recovery only: verify the archive and insert missing exact rows. Never overwrite newer/different data. */
399
577
  export function restoreKiroClassicArchive(input, path, stopped = () => assertKiroConversationStopped(input)) {
400
578
  validateInput(input);
@@ -1 +1 @@
1
- {"version":3,"file":"kiro-classic-archive.js","sourceRoot":"","sources":["../../src/backend/kiro-classic-archive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/L,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAyB,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACjJ,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAczF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzE,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACvC,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,MAAM,GAAG,oCAAoC,CAAC;AAEpD,6GAA6G;AAC7G,MAAM,UAAU,6BAA6B,CAAC,KAA8B,EAAE,OAAgB,EAAE,OAAwC;IACtI,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,qCAAqC,MAAM,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClJ,MAAM,SAAS,GAAG,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;IAC5I,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAC7G,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,GAAG;YAAE,MAAM,EAAE,CAAC;QAClB,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACpI,IAAI,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,qDAAqD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YACjI,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC1I,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAC5J,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;AACvG,CAAC;AACD,mGAAmG;AACnG,SAAS,gBAAgB,CAAC,GAAW,EAAE,gBAAwB;IAC7D,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC1E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAChD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;YAC/H,CAAC;YACD,OAAO,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACzI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9I,OAAO,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;QAAC,MAAM,GAAG,CAAC;IAAC,CAAC;AACnG,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AACrI,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO;QAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC7J,CAAC;QACC,iGAAiG;QACjG,+FAA+F;QAC/F,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YAAC,IAAI,CAAC;gBAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;oBAAS,CAAC;gBAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;QACjG,CAAC;IACH,CAAC;AACH,CAAC;AACD,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG,iBAAiB,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACxL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAY,CAAC;QAC9D,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACtK,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;AAC9B,CAAC;AACD,SAAS,YAAY,CAAC,KAA8B,EAAE,IAAmB;IACvE,MAAM,OAAO,GAAY,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,iBAAiB;QAC1J,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IACpE,MAAM,OAAO,GAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC;IAC3G,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5F,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;YAAS,CAAC;QAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;IACpG,IAAI,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;IAAC,CAAC;YACtG,CAAC;QAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAAC,IAAI,CAAC;QAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;YAAS,CAAC;QAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IACnG,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACvI,OAAO,IAAI,CAAC;AACd,CAAC;AACD,SAAS,QAAQ,CAAC,KAA8B,EAAE,MAAmB;IACnE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAChK,CAAC;AACD,SAAS,eAAe,CAAC,KAA8B,EAAE,cAAc,GAAG,KAAK;IAC7E,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClG,CAAC,CAAC;IACF,IAAI,CAAC,OAAO,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,SAAS,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAC1G,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;IACnE,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC;WACpJ,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,eAAe,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACvM,MAAM,IAAI,GAAG,yBAAyB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5H,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACnI,2BAA2B,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAA8B;IACxE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7F,IAAI,MAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,KAAK,GAAG,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC;QAClI,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,uEAAuE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAoB,CAAC;QAC1J,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACtH,MAAM,GAAI,EAAE,CAAC,OAAO,CAAC,mEAAmE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3K,CAAC;YAAS,CAAC;QAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/F,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS;YACjF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACtD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC;mBACnJ,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5K,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC/G,CAAC;IACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACvG,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpF,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI;YAAE,IAAI,EAAE,CAAC;QACtJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;YACzF,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,QAAQ,IAAI,IAAI,CAAC;YACzF,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,IAAI,EAAE,CAAC;YACxK,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAAE,IAAI,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAE,IAAI,EAAE,CAAC;gBAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;wBAAE,IAAI,EAAE,CAAC;oBACjI,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;YACD,6FAA6F;YAC7F,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7K,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAAE,IAAI,EAAE,CAAC;YAC5J,IAAI,IAAI,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC3D,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBAAE,IAAI,EAAE,CAAC;YACtH,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,cAAc,IAAI,IAAI,EAAE,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBAC9F,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ;oBAAE,IAAI,EAAE,CAAC;gBAC9F,MAAM,SAAS,GAAG,IAAI,EAAE,iBAAiB,CAAC;gBAC1C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC,CAAC,gBAAgB,CAAC;gBACpE,IAAI,SAAS,IAAI,CAAC,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;uBACnF,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC;oBAAE,IAAI,EAAE,CAAC;gBACjG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;oBAAE,IAAI,EAAE,CAAC;gBAClE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,SAAkB,CAAC;oBACvB,IAAI,SAAS;wBAAE,SAAS,GAAG,WAAW,CAAC;yBAClC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;wBAAE,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;yBACpF,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;wBAAE,SAAS,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;;wBACrN,IAAI,EAAE,CAAC;oBACZ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC;wBAAE,IAAI,EAAE,CAAC;gBACxF,CAAC;YACH,CAAC;;gBAAM,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,sIAAsI;AACtI,SAAS,sBAAsB,CAAC,KAA8B;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,SAAS,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3H,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACvF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,OAAO;YAAE,SAAS;QAC5E,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/G,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAAE,SAAS;QAClI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO;YAAE,SAAS;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACtI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtF,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,GAAG,IAAI;gBAAE,SAAS;YACpF,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,UAAU,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACnK,CAAC;AACH,CAAC;AACD,yGAAyG;AACzG,MAAM,UAAU,wBAAwB,CAAC,KAA8B,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC;IAC3H,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACtF,OAAO,EAAE,CAAC;IAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC;IAClF,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAAC,OAAO,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,KAA8B;IACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC7H,CAAC;AACD,qHAAqH;AACrH,MAAM,UAAU,sBAAsB,CAAC,KAA8B,EAAE,KAAK,GAA0E,EAAE;IACtJ,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrG,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,mFAAmF,YAAY,yBAAyB,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAA6B,CAAC;QACnN,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO,EAAE,CAAC;QAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;QACxD,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YACxD,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC9H,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,yJAAyJ,YAAY,sCAAsC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAA4F,CAAC;YAC9V,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACrK,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4HAA4H,CAAC,CAAC;YACrJ,KAAK,MAAM,GAAG,IAAI,IAAI;gBAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5K,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC,aAAa;gBAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAAC,MAAM,GAAG,CAAC;QAAC,CAAC;IACzE,CAAC;YAAS,CAAC;QAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AAC3B,CAAC;AAGD,2EAA2E;AAC3E,MAAM,UAAU,yBAAyB,CAAC,KAAiD,EAAE,UAAuB;IAClH,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/E,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;IACnD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACtH,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACvD,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gDAAgD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACpK,CAAC;gBAAS,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/F,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAClF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtD,OAAO,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/H,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YAC1H,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,uDAAuD;QACzH,CAAC;QACD,UAAU,EAAE,EAAE,CAAC;QAAC,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,UAAU,EAAE,EAAE,CAAC;IAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED,sHAAsH;AACtH,MAAM,UAAU,yBAAyB,CAAC,KAA8B,EAAE,IAAY,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC;IAC1I,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,sBAAsB,CAAC,KAAK,CAAC,gBAAgB,CAAC;WACnJ,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACpN,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;eACtH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9M,OAAO,EAAE,CAAC;IAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,+IAA+I,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAwE,CAAC;gBACpQ,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACrD,IAAI,GAAG,EAAE,CAAC;oBAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAAC,CAAC;;oBACvL,EAAE,CAAC,OAAO,CAAC,iHAAiH,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/L,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,IAAI,EAAE,CAAC,aAAa;gBAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAAC,MAAM,GAAG,CAAC;QAAC,CAAC;IACzE,CAAC;YAAS,CAAC;QAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AAC3B,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IACpC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACxH,CAAC"}
1
+ {"version":3,"file":"kiro-classic-archive.js","sourceRoot":"","sources":["../../src/backend/kiro-classic-archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /** The most a store key's rows may hold (value bytes) for its links to be worked out at all. */
2
+ export declare const KIRO_CLASSIC_LINKS_MAX_BYTES: number;
3
+ export interface KiroClassicLinksInput {
4
+ dbPath: string;
5
+ keys: string[];
6
+ maxBytes?: number;
7
+ }
8
+ export type KiroClassicLinks = {
9
+ kind: "ok";
10
+ /** Each conversation's first-hop continuations: same key, summarized, created no earlier than it was last written. */
11
+ successors: Record<string, string[]>;
12
+ /** Whether a conversation carries a compaction summary (it continues an earlier one). */
13
+ summarized: Record<string, boolean>;
14
+ } | {
15
+ kind: "over-budget";
16
+ detail: string;
17
+ } | {
18
+ kind: "unreadable";
19
+ detail: string;
20
+ };
21
+ /** A launch that did not work its links out first: unproven, so it stays on the recorded conversation. */
22
+ export declare const KIRO_CLASSIC_LINKS_NOT_PREPARED: KiroClassicLinks;
23
+ /** `late()` is asked before each row's transcript is read: true ends the pass as over budget. */
24
+ export declare function computeKiroClassicLinks(input: KiroClassicLinksInput, late: () => boolean): KiroClassicLinks;
@@ -0,0 +1,135 @@
1
+ /**
2
+ * #2714 / #2738: the links classic kiro's /compact leaves in `conversations_v2`, worked out in one pass — run on the
3
+ * kiro store worker lane (kiro-v2-store.ts), never on the fleet loop.
4
+ *
5
+ * A compaction writes a new row whose transcript starts with the whole earlier one; nothing else points from one to
6
+ * the other. Proving that means reading every transcript — on a long-lived instance tens of MB each, a GB per store
7
+ * key (#2738: 38 rows, 1 GB, and a pairwise SQL join that parsed them again for every pair blocked the loop for
8
+ * minutes and the systemd watchdog killed the fleet). Here each transcript is extracted once, rows in creation order,
9
+ * and kept only as a running hash: a row continues an earlier one when its hash at the earlier one's length minus
10
+ * its closing "]" equals the earlier one's, and a "," stands where that "]" stood. One transcript in memory at a time.
11
+ *
12
+ * Bounded: the rows' total size is checked first (no value read), and the clock between rows. Over either budget the
13
+ * answer is "over-budget" — unproven, the same as an ambiguous compaction: the caller stays on the recorded id.
14
+ */
15
+ import Database from "better-sqlite3";
16
+ import { createHash } from "node:crypto";
17
+ import { statSync } from "node:fs";
18
+ /** The most a store key's rows may hold (value bytes) for its links to be worked out at all. */
19
+ export const KIRO_CLASSIC_LINKS_MAX_BYTES = 2 * 1024 ** 3;
20
+ /** A launch that did not work its links out first: unproven, so it stays on the recorded conversation. */
21
+ export const KIRO_CLASSIC_LINKS_NOT_PREPARED = { kind: "unreadable", detail: "classic compaction links were not prepared for this launch" };
22
+ /** `late()` is asked before each row's transcript is read: true ends the pass as over budget. */
23
+ export function computeKiroClassicLinks(input, late) {
24
+ try {
25
+ statSync(input.dbPath);
26
+ }
27
+ catch (err) {
28
+ return err.code === "ENOENT" ? { kind: "ok", successors: {}, summarized: {} } // no store: nothing compacted
29
+ : { kind: "unreadable", detail: `cannot stat ${input.dbPath}: ${err.message}` };
30
+ }
31
+ let db;
32
+ try {
33
+ db = new Database(input.dbPath, { readonly: true, fileMustExist: true });
34
+ }
35
+ catch (err) {
36
+ return { kind: "unreadable", detail: `cannot open ${input.dbPath}: ${err.message}` };
37
+ }
38
+ try {
39
+ const [a, b = a, c = b] = input.keys;
40
+ // octet_length reads the record header only: sizing the rows reads no value.
41
+ const rows = db.prepare(`SELECT key, conversation_id AS id, created_at AS created, updated_at AS at, octet_length(value) AS bytes
42
+ FROM conversations_v2 WHERE key IN (?, ?, ?)`).all(a, b, c)
43
+ .filter(r => typeof r.key === "string" && typeof r.id === "string")
44
+ .map(r => ({ key: r.key, id: r.id, created: Number(r.created) || 0, at: Number(r.at) || 0, bytes: Number(r.bytes) || 0 }));
45
+ const total = rows.reduce((sum, r) => sum + r.bytes, 0);
46
+ const max = input.maxBytes ?? KIRO_CLASSIC_LINKS_MAX_BYTES;
47
+ if (total > max)
48
+ return { kind: "over-budget", detail: `${rows.length} conversations, ${total} bytes (more than ${max})` };
49
+ // A continuation is created no earlier than its predecessor was last written, so creation order meets nearly every
50
+ // predecessor first; one whose four timestamps all equal its continuation's may come after it (checked below).
51
+ rows.sort((x, y) => x.created - y.created || x.at - y.at || x.bytes - y.bytes || (x.id < y.id ? -1 : x.id > y.id ? 1 : 0));
52
+ const one = db.prepare(`SELECT json_type(value, '$.latest_summary') AS summary, json_type(value, '$.transcript') AS type,
53
+ json_extract(value, '$.transcript') AS t FROM conversations_v2 WHERE key = ? AND conversation_id = ? AND json_valid(value)`);
54
+ const read = (row) => {
55
+ const r = one.get(row.key, row.id);
56
+ return { isSummary: typeof r?.summary === "string" && r.summary !== "null", t: r?.type === "array" && typeof r.t === "string" ? r.t : null };
57
+ };
58
+ const summarized = Object.create(null);
59
+ const continues = new Map(); // key → successor → the conversations it continues
60
+ const seen = new Map(); // key → rows read so far, with their transcript hash
61
+ /**
62
+ * Which of `candidates` (shorter, written before `row` was created) `t` continues; returns t's own digest. Hashed as
63
+ * UTF-16 code units: a cut may fall inside a surrogate pair, and only the code units themselves hash the same on
64
+ * both sides of it (#2739 review).
65
+ */
66
+ const link = (row, t, candidates) => {
67
+ const hash = createHash("sha256");
68
+ let at = 0;
69
+ for (const p of [...candidates].sort((x, y) => x.length - y.length)) {
70
+ const cut = p.length - 1; // where p's closing "]" stands
71
+ hash.update(t.slice(at, cut), "utf16le");
72
+ at = cut;
73
+ if (t[cut] === "," && hash.copy().digest("hex") === p.digest) {
74
+ const byKey = continues.get(row.key) ?? new Map();
75
+ continues.set(row.key, byKey);
76
+ (byKey.get(row.id) ?? byKey.set(row.id, new Set()).get(row.id)).add(p.id);
77
+ }
78
+ }
79
+ hash.update(t.slice(at, t.length - 1), "utf16le");
80
+ return hash.digest("hex");
81
+ };
82
+ const overTime = () => ({ kind: "over-budget", detail: `not done in time (${rows.length} conversations, ${total} bytes)` });
83
+ const continuations = [];
84
+ for (const [order, row] of rows.entries()) {
85
+ if (late())
86
+ return overTime();
87
+ const { isSummary, t } = read(row);
88
+ summarized[row.id] = summarized[row.id] === true || isSummary;
89
+ if (t === null)
90
+ continue;
91
+ const earlier = seen.get(row.key) ?? [];
92
+ // Only a summarized row continues another; any row may be continued.
93
+ const digest = link(row, t, isSummary ? earlier.filter(p => p.at <= row.created && p.length < t.length) : []);
94
+ earlier.push({ id: row.id, at: row.at, length: t.length, digest, order });
95
+ seen.set(row.key, earlier);
96
+ if (isSummary)
97
+ continuations.push({ row, length: t.length, order });
98
+ }
99
+ // A tie (#2739 review): a predecessor read after its continuation — every timestamp equal, the sort fell back to
100
+ // value size. Such a continuation is read again for exactly those, never declared to continue nothing.
101
+ for (const c of continuations) {
102
+ const missed = (seen.get(c.row.key) ?? []).filter(p => p.order > c.order && p.at <= c.row.created && p.length < c.length);
103
+ if (missed.length === 0)
104
+ continue;
105
+ if (late())
106
+ return overTime();
107
+ const { t } = read(c.row);
108
+ if (t === null || t.length !== c.length)
109
+ return { kind: "unreadable", detail: `${c.row.id} changed while it was read` };
110
+ link(c.row, t, missed);
111
+ }
112
+ // First hop only: a continuation that continues another continuation of `id` is that one's successor, not `id`'s.
113
+ const successors = Object.create(null);
114
+ for (const byKey of continues.values()) {
115
+ for (const [s, of] of byKey) {
116
+ for (const id of of) {
117
+ const through = [...byKey].some(([m, mOf]) => m !== s && mOf.has(id) && of.has(m));
118
+ if (!through)
119
+ (successors[id] ??= new Set()).add(s);
120
+ }
121
+ }
122
+ }
123
+ return { kind: "ok", summarized, successors: Object.fromEntries(Object.entries(successors).map(([id, s]) => [id, [...s].sort()])) };
124
+ }
125
+ catch (err) {
126
+ return { kind: "unreadable", detail: `cannot read ${input.dbPath}: ${err.message}` };
127
+ }
128
+ finally {
129
+ try {
130
+ db.close();
131
+ }
132
+ catch { /* closed */ }
133
+ }
134
+ }
135
+ //# sourceMappingURL=kiro-classic-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro-classic-links.js","sourceRoot":"","sources":["../../src/backend/kiro-classic-links.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type KiroV2StoreLane } from "./kiro-v2-store.js";
2
+ import type { KiroClassicLinks } from "./kiro-classic-links.js";
1
3
  export type KiroClassicEngine = "v1" | "v2";
2
4
  /** v3 has its own identity (kiro-v3-identity.ts); its records here only say whether it runs as the agent. */
3
5
  type RecordEngine = KiroClassicEngine | "v3";
@@ -23,10 +25,11 @@ export type KiroStoreRead = {
23
25
  /**
24
26
  * The conversations kiro continued `id` in: each carries a compaction summary, was created no earlier than `id`
25
27
  * was last written, and its transcript starts with `id`'s whole (non-empty) transcript. Same store key.
28
+ * "over-budget" (#2738): the store was too big to prove it in time — unproven, never a guess.
26
29
  */
27
- successorsOf(id: string): string[] | "unreadable";
30
+ successorsOf(id: string): string[] | "unreadable" | "over-budget";
28
31
  /** Whether `id` carries a compaction summary: it continues some earlier conversation. */
29
- summarized(id: string): boolean | "unreadable";
32
+ summarized(id: string): boolean | "unreadable" | "over-budget";
30
33
  };
31
34
  } | {
32
35
  kind: "unreadable";
@@ -41,8 +44,16 @@ export declare function kiroCanonicalDirectory(workingDirectory: string): string
41
44
  * forced with INDEXED BY, so a missing index is an error (unreadable), never a silent scan of the table. The row
42
45
  * itself is touched only for `conversation_id`, which precedes `value`. `created_at` follows `value`, so it is read
43
46
  * only for the few take-up candidates. A missing database is an empty store.
47
+ *
48
+ * The compaction links come in worked out already (#2738): proving them reads every transcript of the key, which is
49
+ * done on the store worker lane (readKiroClassicLinks), never here on the fleet loop.
44
50
  */
45
- export declare function listKiroV1Sessions(workingDirectory: string, dbPath: string): KiroStoreRead;
51
+ export declare function listKiroV1Sessions(workingDirectory: string, dbPath: string, links: KiroClassicLinks): KiroStoreRead;
52
+ /**
53
+ * #2738: a classic store's compaction links, worked out on their own worker lane within its budget. Out of time or
54
+ * over the size budget it is "over-budget": the launch stays on the recorded conversation and says so.
55
+ */
56
+ export declare function readKiroClassicLinks(workingDirectory: string, dbPath: string, lane?: KiroV2StoreLane): Promise<KiroClassicLinks>;
46
57
  /** Full v2 files are read/parsed in a bounded worker, never on the fleet loop. */
47
58
  export declare function listKiroV2Sessions(workingDirectory: string, sessionsDir: string): Promise<KiroStoreRead>;
48
59
  export declare class KiroIdentityError extends Error {
@@ -72,6 +83,10 @@ export type KiroIdentityDecision =
72
83
  };
73
84
  export type KiroCompactionKept = {
74
85
  reason: "unreadable";
86
+ }
87
+ /** #2738: the store was too big to prove a compaction within the budget. */
88
+ | {
89
+ reason: "over-budget";
75
90
  } | {
76
91
  reason: "ambiguous";
77
92
  from: string;
@@ -99,6 +114,8 @@ export interface ResolveKiroIdentityOptions {
99
114
  upgradeAdoption?: () => "eligible" | "shared-directory" | "unknown-peers" | null;
100
115
  now?: () => number;
101
116
  }
117
+ /** Strict read-only validation for reconciliation's peer ownership proof. */
118
+ export declare function isConsistentKiroIdentityRecord(key: string, value: unknown): boolean;
102
119
  /** Whether launch preparation needs a store snapshot. Only reads the small
103
120
  * identity/claim files; never claims or writes. The final resolver rereads this
104
121
  * state synchronously AFTER preparation/admission, so an async result cannot