ferrycat 0.4.0 → 0.5.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.
- package/README.md +57 -10
- package/README_zh.md +54 -10
- package/bin/ferrycat.js +1 -0
- package/dist/cli.js +157 -14
- package/dist/cli.js.map +1 -1
- package/dist/daemon.d.ts +137 -1
- package/dist/daemon.js +673 -10
- package/dist/daemon.js.map +1 -1
- package/dist/delivery.d.ts +48 -0
- package/dist/delivery.js +158 -0
- package/dist/delivery.js.map +1 -0
- package/dist/demo.js +10 -7
- package/dist/demo.js.map +1 -1
- package/dist/engine.d.ts +15 -1
- package/dist/engine.js +287 -29
- package/dist/engine.js.map +1 -1
- package/dist/fingerprint.d.ts +60 -4
- package/dist/fingerprint.js +438 -9
- package/dist/fingerprint.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +62 -0
- package/dist/init.js +356 -0
- package/dist/init.js.map +1 -0
- package/dist/schemas.d.ts +64 -0
- package/dist/schemas.js +30 -0
- package/dist/schemas.js.map +1 -1
- package/dist/supervisor.d.ts +10 -0
- package/dist/supervisor.js +34 -26
- package/dist/supervisor.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/package.json +16 -4
- package/server.json +3 -3
package/dist/engine.js
CHANGED
|
@@ -3,7 +3,7 @@ import fs from 'node:fs';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { DatabaseSync } from 'node:sqlite';
|
|
6
|
-
import { computeFingerprints, verifyAllPointers, verifyFingerprintsWithRetry, } from './fingerprint.js';
|
|
6
|
+
import { assertSafeGitPatch, assertSafePointerPath, computeFingerprints, verifyAllPointers, verifyAndSnapshotMutationPointers, verifyCommittedMutationSnapshot, verifyFingerprintsWithRetry, } from './fingerprint.js';
|
|
7
7
|
import { validateContractOutput } from './schema-validator.js';
|
|
8
8
|
import { MAX_JSON_PAYLOAD_BYTES, validateJsonPayload } from './schemas.js';
|
|
9
9
|
/** Default queue window (SUBMITTED) in seconds. */
|
|
@@ -124,7 +124,9 @@ export class FerryCatEngine {
|
|
|
124
124
|
release_count INTEGER NOT NULL DEFAULT 0,
|
|
125
125
|
toctou_strike INTEGER NOT NULL DEFAULT 0,
|
|
126
126
|
salvaged_result_json TEXT,
|
|
127
|
-
claim_token TEXT
|
|
127
|
+
claim_token TEXT,
|
|
128
|
+
git_patch TEXT,
|
|
129
|
+
patch_sha256 TEXT
|
|
128
130
|
);
|
|
129
131
|
|
|
130
132
|
CREATE INDEX IF NOT EXISTS idx_contracts_poll
|
|
@@ -148,6 +150,8 @@ export class FerryCatEngine {
|
|
|
148
150
|
['toctou_strike', 'INTEGER NOT NULL DEFAULT 0'],
|
|
149
151
|
['salvaged_result_json', 'TEXT'],
|
|
150
152
|
['claim_token', 'TEXT'],
|
|
153
|
+
['git_patch', 'TEXT'],
|
|
154
|
+
['patch_sha256', 'TEXT'],
|
|
151
155
|
];
|
|
152
156
|
const existingColumns = new Set(this.db.prepare('PRAGMA table_info(contracts)').all().map((c) => c.name));
|
|
153
157
|
for (const [column, ddl] of migrations) {
|
|
@@ -190,6 +194,15 @@ export class FerryCatEngine {
|
|
|
190
194
|
}
|
|
191
195
|
const resolvedWorkspace = path.resolve(expandTilde(input.workspace_root));
|
|
192
196
|
const { fingerprints, recentlyModified } = computeFingerprints(resolvedWorkspace, input.pointers, nowMs);
|
|
197
|
+
let gitPatch = null;
|
|
198
|
+
let patchSha256 = null;
|
|
199
|
+
let patchBytes;
|
|
200
|
+
if (input.git_patch !== undefined) {
|
|
201
|
+
const patchInfo = assertSafeGitPatch(input.git_patch, input.pointers);
|
|
202
|
+
gitPatch = input.git_patch;
|
|
203
|
+
patchSha256 = patchInfo.sha256;
|
|
204
|
+
patchBytes = patchInfo.byteLength;
|
|
205
|
+
}
|
|
193
206
|
const contractId = `fc_${nowMs}_${crypto.randomBytes(4).toString('hex')}`;
|
|
194
207
|
const queueTtlSec = input.queue_ttl_sec ?? DEFAULT_QUEUE_TTL_SEC;
|
|
195
208
|
const execTtlSec = input.exec_ttl_sec ?? DEFAULT_EXEC_TTL_SEC_BY_TASK_TYPE[input.task_type] ?? 300;
|
|
@@ -197,10 +210,11 @@ export class FerryCatEngine {
|
|
|
197
210
|
INSERT INTO contracts (
|
|
198
211
|
id, requester_agent, target_agent, task_type, title, context_summary,
|
|
199
212
|
workspace_root, pointers_json, contract_schema_json, status,
|
|
200
|
-
retry_count, max_retries, queue_ttl_sec, exec_ttl_sec, created_at, queued_at
|
|
201
|
-
|
|
213
|
+
retry_count, max_retries, queue_ttl_sec, exec_ttl_sec, created_at, queued_at,
|
|
214
|
+
git_patch, patch_sha256
|
|
215
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'SUBMITTED', 0, 2, ?, ?, ?, ?, ?, ?)
|
|
202
216
|
`);
|
|
203
|
-
stmt.run(contractId, requester, target, input.task_type, input.title, input.context_summary, resolvedWorkspace, JSON.stringify(fingerprints), input.contract_schema ? JSON.stringify(input.contract_schema) : null, queueTtlSec, execTtlSec, nowMs, nowMs);
|
|
217
|
+
stmt.run(contractId, requester, target, input.task_type, input.title, input.context_summary, resolvedWorkspace, JSON.stringify(fingerprints), input.contract_schema ? JSON.stringify(input.contract_schema) : null, queueTtlSec, execTtlSec, nowMs, nowMs, gitPatch, patchSha256);
|
|
204
218
|
const result = {
|
|
205
219
|
contract_id: contractId,
|
|
206
220
|
status: 'SUBMITTED',
|
|
@@ -214,6 +228,7 @@ export class FerryCatEngine {
|
|
|
214
228
|
last_line: fp.last_line,
|
|
215
229
|
...(fp.line_range ? { line_range: fp.line_range } : {}),
|
|
216
230
|
})),
|
|
231
|
+
...(patchSha256 ? { patch_sha256: patchSha256, patch_bytes: patchBytes } : {}),
|
|
217
232
|
};
|
|
218
233
|
if (recentlyModified) {
|
|
219
234
|
result.warning =
|
|
@@ -244,7 +259,56 @@ export class FerryCatEngine {
|
|
|
244
259
|
.run(nowMs, nowMs);
|
|
245
260
|
}
|
|
246
261
|
}
|
|
247
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Evaluates whether a read-only contract carrying `git_patch` can safely operate in
|
|
264
|
+
* Self-Contained Patch Mode (FC-202) when the worker's local disk differs from the
|
|
265
|
+
* requester's working tree snapshot (e.g. different Git branch or disjoint checkout).
|
|
266
|
+
*
|
|
267
|
+
* Security invariant:
|
|
268
|
+
* - All pointer paths MUST still pass `assertSafePointerPath` (sensitive files & symlink escapes are never bypassed).
|
|
269
|
+
* - `git_patch` MUST pass `assertSafeGitPatch` and match `patch_sha256`.
|
|
270
|
+
*
|
|
271
|
+
* R5: every refusal carries a machine-readable `rejectReason` so a POINTER_STALE outcome can
|
|
272
|
+
* tell "your patch is unusable" apart from "the files really drifted on disk".
|
|
273
|
+
*/
|
|
274
|
+
canAcceptSelfContainedPatch(row, fingerprints) {
|
|
275
|
+
if (!row.git_patch || typeof row.git_patch !== 'string' || row.git_patch.trim().length === 0) {
|
|
276
|
+
return { accepted: false, rejectReason: 'NO_PATCH_ATTACHED' };
|
|
277
|
+
}
|
|
278
|
+
try {
|
|
279
|
+
for (const fp of fingerprints) {
|
|
280
|
+
assertSafePointerPath(row.workspace_root, fp.path);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch (err) {
|
|
284
|
+
return {
|
|
285
|
+
accepted: false,
|
|
286
|
+
rejectReason: `POINTER_SECURITY_REJECTED: ${err instanceof Error ? err.message : String(err)}`,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
try {
|
|
290
|
+
// Enforce unified-diff validity, hunk/content presence AND full pointer coverage (FC-202 P0/R1)
|
|
291
|
+
const patchInfo = assertSafeGitPatch(row.git_patch, fingerprints);
|
|
292
|
+
if (row.patch_sha256 && patchInfo.sha256 !== row.patch_sha256) {
|
|
293
|
+
return {
|
|
294
|
+
accepted: false,
|
|
295
|
+
rejectReason: `PATCH_SHA_MISMATCH: stored ${row.patch_sha256.slice(0, 16)} != recomputed ${patchInfo.sha256.slice(0, 16)}`,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
return {
|
|
299
|
+
accepted: true,
|
|
300
|
+
patchSha256: patchInfo.sha256,
|
|
301
|
+
touchedPaths: patchInfo.touchedPaths,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
return {
|
|
306
|
+
accepted: false,
|
|
307
|
+
rejectReason: err instanceof Error ? err.message : String(err),
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
async pollNextTask(input = {}, nowMs = Date.now()) {
|
|
248
312
|
const agentId = this.resolveAgentIdentity(input.agent_id, 'agent_id');
|
|
249
313
|
// Step 1: Lazy timeout sweep (SELECT first to avoid write lock contention)
|
|
250
314
|
this.sweepExpiredContractsIfNeeded(nowMs);
|
|
@@ -280,12 +344,12 @@ export class FerryCatEngine {
|
|
|
280
344
|
// Preempted by another concurrent worker process; try next candidate
|
|
281
345
|
continue;
|
|
282
346
|
}
|
|
283
|
-
// Step 4: Verify file fingerprints on disk (with 150ms transient write retry
|
|
347
|
+
// Step 4: Verify file fingerprints on disk (with non-blocking 150ms transient write retry, FC-203)
|
|
284
348
|
let fingerprints;
|
|
285
349
|
let verification;
|
|
286
350
|
try {
|
|
287
351
|
fingerprints = JSON.parse(candidate.pointers_json);
|
|
288
|
-
verification = verifyFingerprintsWithRetry(candidate.workspace_root, fingerprints, this.fingerprintRetryDelayMs);
|
|
352
|
+
verification = await verifyFingerprintsWithRetry(candidate.workspace_root, fingerprints, this.fingerprintRetryDelayMs);
|
|
289
353
|
}
|
|
290
354
|
catch (err) {
|
|
291
355
|
const errMsg = `UNEXPECTED_FS_ERROR: ${err instanceof Error ? err.message : String(err)}`;
|
|
@@ -304,22 +368,46 @@ export class FerryCatEngine {
|
|
|
304
368
|
}
|
|
305
369
|
continue;
|
|
306
370
|
}
|
|
371
|
+
let patchMode = candidate.git_patch
|
|
372
|
+
? 'ATTACHED'
|
|
373
|
+
: undefined;
|
|
307
374
|
if (!verification.valid) {
|
|
308
|
-
|
|
309
|
-
//
|
|
310
|
-
const
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
reason: verification.reason,
|
|
319
|
-
message: `Contract "${candidate.id}" rejected as POINTER_STALE (${errorReason}). Please ask requester "${candidate.requester_agent}" to re-dispatch with fresh file fingerprints.`,
|
|
375
|
+
// FC-202: If the worker is on a different Git branch or disjoint checkout, allow claiming
|
|
376
|
+
// in SELF_CONTAINED patch mode when a verified git_patch is attached and no security policy was violated.
|
|
377
|
+
const isReadOnlyTask = candidate.task_type === 'code_review' || candidate.task_type === 'architecture_audit';
|
|
378
|
+
const patchFallback = isReadOnlyTask && verification.reason !== 'SECURITY_REJECTED'
|
|
379
|
+
? this.canAcceptSelfContainedPatch(candidate, fingerprints)
|
|
380
|
+
: {
|
|
381
|
+
accepted: false,
|
|
382
|
+
rejectReason: isReadOnlyTask
|
|
383
|
+
? 'SECURITY_REJECTED'
|
|
384
|
+
: `TASK_TYPE_NOT_ELIGIBLE: ${candidate.task_type} is a mutation task`,
|
|
320
385
|
};
|
|
386
|
+
if (patchFallback.accepted) {
|
|
387
|
+
patchMode = 'SELF_CONTAINED';
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
// R5: surface WHY the patch fallback was refused, so a stale claim can be diagnosed
|
|
391
|
+
// as "bad patch" vs "files really drifted" without re-reading the source.
|
|
392
|
+
const patchNote = candidate.git_patch
|
|
393
|
+
? ` [patch_rejected: ${patchFallback.rejectReason ?? 'UNKNOWN'}]`
|
|
394
|
+
: '';
|
|
395
|
+
const errorReason = `${verification.reason}: ${verification.detail}${patchNote}`;
|
|
396
|
+
// CAS-protected state transition to prevent racing with concurrent timeout/cancellation
|
|
397
|
+
const updRes = this.db
|
|
398
|
+
.prepare(`UPDATE contracts
|
|
399
|
+
SET status = 'POINTER_STALE', error_reason = ?
|
|
400
|
+
WHERE id = ? AND status = 'CLAIMED' AND claim_token = ?`)
|
|
401
|
+
.run(errorReason, candidate.id, claimToken);
|
|
402
|
+
if (updRes.changes > 0) {
|
|
403
|
+
lastStaleError = {
|
|
404
|
+
contract_id: candidate.id,
|
|
405
|
+
reason: verification.reason,
|
|
406
|
+
message: `Contract "${candidate.id}" rejected as POINTER_STALE (${errorReason}). Please ask requester "${candidate.requester_agent}" to re-dispatch with fresh file fingerprints.`,
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
continue;
|
|
321
410
|
}
|
|
322
|
-
continue;
|
|
323
411
|
}
|
|
324
412
|
return {
|
|
325
413
|
has_task: true,
|
|
@@ -339,6 +427,18 @@ export class FerryCatEngine {
|
|
|
339
427
|
claimed_at: nowMs,
|
|
340
428
|
exec_ttl_sec: candidate.exec_ttl_sec,
|
|
341
429
|
claim_token: claimToken,
|
|
430
|
+
...(candidate.git_patch
|
|
431
|
+
? {
|
|
432
|
+
git_patch: candidate.git_patch,
|
|
433
|
+
patch_sha256: candidate.patch_sha256 ?? null,
|
|
434
|
+
patch_mode: patchMode,
|
|
435
|
+
...(patchMode === 'SELF_CONTAINED'
|
|
436
|
+
? {
|
|
437
|
+
workspace_warning: 'SELF_CONTAINED_PATCH_MODE: On-disk pointer files do NOT match the dispatched revision (cross-branch or disjoint checkout). Do NOT review stale on-disk files directly; inspect contract.git_patch as the authoritative diff baseline.',
|
|
438
|
+
}
|
|
439
|
+
: {}),
|
|
440
|
+
}
|
|
441
|
+
: {}),
|
|
342
442
|
},
|
|
343
443
|
};
|
|
344
444
|
}
|
|
@@ -377,11 +477,32 @@ export class FerryCatEngine {
|
|
|
377
477
|
message: `Contract "${row.id}" exceeded execution TTL (${row.exec_ttl_sec}s) and was marked TIMED_OUT.`,
|
|
378
478
|
};
|
|
379
479
|
}
|
|
380
|
-
//Re-verify file fingerprints at fulfill time to close the claim->read->fulfill TOCTOU window (ADR-0004)
|
|
480
|
+
// Re-verify file fingerprints at fulfill time to close the claim->read->fulfill TOCTOU window (ADR-0004).
|
|
481
|
+
// For mutation tasks ('implementation' | 'test_generation'), the worker is expected to edit pointer files on
|
|
482
|
+
// disk; only SECURITY_REJECTED / FILE_MISSING block fulfillment, while post-mutation SHA-256 hashes are
|
|
483
|
+
// committed into verified_sha256_json (preserving the pre-mutation baseline in pointers_json).
|
|
381
484
|
const fingerprints = JSON.parse(row.pointers_json);
|
|
382
|
-
const
|
|
383
|
-
|
|
384
|
-
|
|
485
|
+
const isMutationTask = row.task_type === 'implementation' || row.task_type === 'test_generation';
|
|
486
|
+
const toctouCheck = isMutationTask
|
|
487
|
+
? verifyAndSnapshotMutationPointers(row.workspace_root, fingerprints, input.artifacts_pointers)
|
|
488
|
+
: verifyAllPointers(row.workspace_root, fingerprints);
|
|
489
|
+
const hasSecurityRejection = toctouCheck.dirtyFiles.some((d) => d.reason === 'SECURITY_REJECTED');
|
|
490
|
+
const patchFallback = !toctouCheck.valid && !isMutationTask && !hasSecurityRejection
|
|
491
|
+
? this.canAcceptSelfContainedPatch(row, fingerprints)
|
|
492
|
+
: {
|
|
493
|
+
accepted: false,
|
|
494
|
+
rejectReason: isMutationTask
|
|
495
|
+
? `MUTATION_TASK_NO_PATCH_FALLBACK: ${row.task_type}`
|
|
496
|
+
: hasSecurityRejection
|
|
497
|
+
? 'SECURITY_REJECTED'
|
|
498
|
+
: undefined,
|
|
499
|
+
};
|
|
500
|
+
if (!toctouCheck.valid && toctouCheck.firstFailure && !patchFallback.accepted) {
|
|
501
|
+
// R5: append the concrete patch refusal so the holder can tell a bad patch from real drift
|
|
502
|
+
const patchNote = row.git_patch && patchFallback.rejectReason
|
|
503
|
+
? ` [patch_rejected: ${patchFallback.rejectReason}]`
|
|
504
|
+
: '';
|
|
505
|
+
const toctouReason = `TOCTOU_${toctouCheck.firstFailure.reason}: ${toctouCheck.firstFailure.detail}${patchNote}`;
|
|
385
506
|
const nextStrike = (row.toctou_strike ?? 0) + 1;
|
|
386
507
|
if (nextStrike <= MAX_TOCTOU_STRIKES) {
|
|
387
508
|
// ADR-0004 Soft-Failure Buffering: keep CLAIMED and renew window once so holder can restore files
|
|
@@ -431,7 +552,34 @@ export class FerryCatEngine {
|
|
|
431
552
|
message: `Contract "${row.id}" rejected at fulfill time as terminal POINTER_STALE after exceeding max_toctou_strikes (${MAX_TOCTOU_STRIKES}) (${toctouReason}). Your submitted payload was preserved in salvaged_result so work is not lost. Please ask "${row.requester_agent}" to re-dispatch with fresh file fingerprints.`,
|
|
432
553
|
};
|
|
433
554
|
}
|
|
434
|
-
|
|
555
|
+
let verifiedShaMap;
|
|
556
|
+
if (isMutationTask && 'verifiedShaMap' in toctouCheck) {
|
|
557
|
+
verifiedShaMap = { ...toctouCheck.verifiedShaMap };
|
|
558
|
+
}
|
|
559
|
+
else if (patchFallback.accepted) {
|
|
560
|
+
// FC-202 Audit Integrity (P0): Never record unverified on-disk pointer hashes as verified_sha256.
|
|
561
|
+
// Only include pointer files whose on-disk SHA-256 actually matched the dispatched baseline.
|
|
562
|
+
const dirtyPathsSet = new Set(toctouCheck.dirtyFiles.map((d) => d.path));
|
|
563
|
+
verifiedShaMap = {};
|
|
564
|
+
for (const fp of fingerprints) {
|
|
565
|
+
if (!dirtyPathsSet.has(fp.path)) {
|
|
566
|
+
verifiedShaMap[fp.path] = fp.sha256;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
verifiedShaMap.__patch_mode__ = 'SELF_CONTAINED';
|
|
570
|
+
verifiedShaMap.__git_patch_sha256__ = row.patch_sha256 ?? patchFallback.patchSha256 ?? '';
|
|
571
|
+
// R2: explicit YES/NO instead of the string 'false' (a truthy value in JS).
|
|
572
|
+
verifiedShaMap.__verified_on_disk__ = 'NO';
|
|
573
|
+
verifiedShaMap.__unverified_pointers__ = toctouCheck.dirtyFiles.map((d) => d.path).join(',');
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
verifiedShaMap = Object.fromEntries(fingerprints.map((fp) => [fp.path, fp.sha256]));
|
|
577
|
+
if (row.patch_sha256) {
|
|
578
|
+
verifiedShaMap.__patch_mode__ = 'ATTACHED';
|
|
579
|
+
verifiedShaMap.__git_patch_sha256__ = row.patch_sha256;
|
|
580
|
+
verifiedShaMap.__verified_on_disk__ = 'YES';
|
|
581
|
+
}
|
|
582
|
+
}
|
|
435
583
|
const verifiedSha256Json = JSON.stringify(verifiedShaMap);
|
|
436
584
|
// Validate against contract_schema if defined
|
|
437
585
|
if (row.contract_schema_json) {
|
|
@@ -490,13 +638,18 @@ export class FerryCatEngine {
|
|
|
490
638
|
if (Number(completeRes.changes) !== 1) {
|
|
491
639
|
throw new Error(`Concurrent state change detected: contract "${row.id}" is no longer in 'CLAIMED' state.`);
|
|
492
640
|
}
|
|
641
|
+
const isNoOp = Boolean(isMutationTask && 'noOp' in toctouCheck && toctouCheck.noOp);
|
|
642
|
+
const noOpWarning = isNoOp
|
|
643
|
+
? ' (WARNING: no-op fulfillment — 0 pointer files modified and 0 new artifact files added on disk.)'
|
|
644
|
+
: '';
|
|
493
645
|
return {
|
|
494
646
|
ok: true,
|
|
495
647
|
contract_id: row.id,
|
|
496
648
|
status: 'COMPLETED',
|
|
497
649
|
retry_count: row.retry_count,
|
|
498
650
|
max_retries: row.max_retries,
|
|
499
|
-
|
|
651
|
+
...(isNoOp ? { no_op: true } : {}),
|
|
652
|
+
message: `Contract "${row.id}" fulfilled by "${agentId}" and marked COMPLETED.${noOpWarning}`,
|
|
500
653
|
};
|
|
501
654
|
}
|
|
502
655
|
/**
|
|
@@ -708,7 +861,7 @@ export class FerryCatEngine {
|
|
|
708
861
|
*/
|
|
709
862
|
getLeaseSnapshot(contractId) {
|
|
710
863
|
const row = this.db
|
|
711
|
-
.prepare(`SELECT status, claim_token, claimed_at, exec_ttl_sec, extend_count FROM contracts WHERE id = ?`)
|
|
864
|
+
.prepare(`SELECT status, task_type, claim_token, claimed_at, exec_ttl_sec, extend_count FROM contracts WHERE id = ?`)
|
|
712
865
|
.get(contractId);
|
|
713
866
|
return row ?? null;
|
|
714
867
|
}
|
|
@@ -787,12 +940,93 @@ export class FerryCatEngine {
|
|
|
787
940
|
throw new Error(`Contract "${input.contract_id}" not found.`);
|
|
788
941
|
}
|
|
789
942
|
const fingerprints = JSON.parse(row.pointers_json);
|
|
790
|
-
const
|
|
943
|
+
const isMutationTask = row.task_type === 'implementation' || row.task_type === 'test_generation';
|
|
791
944
|
const toctouStrike = row.toctou_strike ?? 0;
|
|
792
945
|
const callerAgent = input.agent_id?.trim();
|
|
793
946
|
const holderNote = callerAgent && callerAgent !== row.target_agent
|
|
794
947
|
? ` (Note: contract is assigned to "${row.target_agent}", verified by "${callerAgent}".)`
|
|
795
948
|
: '';
|
|
949
|
+
if (row.status === 'CLAIMED' && isMutationTask) {
|
|
950
|
+
const mutationCheck = verifyAndSnapshotMutationPointers(row.workspace_root, fingerprints);
|
|
951
|
+
if (mutationCheck.valid) {
|
|
952
|
+
const modifiedCount = mutationCheck.dirtyFiles.length;
|
|
953
|
+
const modifiedSummary = modifiedCount > 0
|
|
954
|
+
? `${modifiedCount} of ${fingerprints.length} pointer file(s) modified on disk [${mutationCheck.dirtyFiles.map((d) => d.path).join(', ')}]; post-mutation SHA-256 hashes will be committed into verified_sha256 upon fulfill_contract.`
|
|
955
|
+
: `All ${fingerprints.length} pointer file(s) currently match the pre-mutation baseline.`;
|
|
956
|
+
return {
|
|
957
|
+
ok: true,
|
|
958
|
+
valid: true,
|
|
959
|
+
contract_id: row.id,
|
|
960
|
+
status: row.status,
|
|
961
|
+
fulfillable: true,
|
|
962
|
+
target_agent: row.target_agent,
|
|
963
|
+
toctou_strike: toctouStrike,
|
|
964
|
+
max_toctou_strikes: MAX_TOCTOU_STRIKES,
|
|
965
|
+
dirty_files: mutationCheck.dirtyFiles,
|
|
966
|
+
message: `Mutation contract "${row.id}" (${row.task_type}) passed security & existence checks. ${modifiedSummary} Safe to fulfill.${holderNote}`,
|
|
967
|
+
};
|
|
968
|
+
}
|
|
969
|
+
const badPaths = mutationCheck.dirtyFiles.map((d) => d.path).join(', ');
|
|
970
|
+
return {
|
|
971
|
+
ok: true,
|
|
972
|
+
valid: false,
|
|
973
|
+
contract_id: row.id,
|
|
974
|
+
status: row.status,
|
|
975
|
+
fulfillable: false,
|
|
976
|
+
target_agent: row.target_agent,
|
|
977
|
+
toctou_strike: toctouStrike,
|
|
978
|
+
max_toctou_strikes: MAX_TOCTOU_STRIKES,
|
|
979
|
+
dirty_files: mutationCheck.dirtyFiles,
|
|
980
|
+
message: `Mutation contract "${row.id}" (${row.task_type}) failed pointer verification [${badPaths}]: ${mutationCheck.firstFailure?.detail ?? 'missing or rejected file'}. Restore missing/unsafe pointer files before calling fulfill_contract.${holderNote}`,
|
|
981
|
+
};
|
|
982
|
+
}
|
|
983
|
+
if (row.status === 'COMPLETED' && isMutationTask) {
|
|
984
|
+
if (!row.verified_sha256_json) {
|
|
985
|
+
return {
|
|
986
|
+
ok: true,
|
|
987
|
+
valid: false,
|
|
988
|
+
contract_id: row.id,
|
|
989
|
+
status: row.status,
|
|
990
|
+
fulfillable: false,
|
|
991
|
+
target_agent: row.target_agent,
|
|
992
|
+
toctou_strike: toctouStrike,
|
|
993
|
+
max_toctou_strikes: MAX_TOCTOU_STRIKES,
|
|
994
|
+
dirty_files: [],
|
|
995
|
+
message: `Completed mutation contract "${row.id}" (${row.task_type}) has no recorded verified_sha256 snapshot (legacy row); post-completion verification skipped.${holderNote}`,
|
|
996
|
+
};
|
|
997
|
+
}
|
|
998
|
+
const committedShaMap = JSON.parse(row.verified_sha256_json);
|
|
999
|
+
const postCheck = verifyCommittedMutationSnapshot(row.workspace_root, committedShaMap);
|
|
1000
|
+
const deliveredCount = Object.keys(committedShaMap).length;
|
|
1001
|
+
if (postCheck.valid) {
|
|
1002
|
+
return {
|
|
1003
|
+
ok: true,
|
|
1004
|
+
valid: true,
|
|
1005
|
+
contract_id: row.id,
|
|
1006
|
+
status: row.status,
|
|
1007
|
+
fulfillable: false,
|
|
1008
|
+
target_agent: row.target_agent,
|
|
1009
|
+
toctou_strike: toctouStrike,
|
|
1010
|
+
max_toctou_strikes: MAX_TOCTOU_STRIKES,
|
|
1011
|
+
dirty_files: [],
|
|
1012
|
+
message: `All ${deliveredCount} delivered file(s) for completed mutation contract "${row.id}" (${row.task_type}) match the committed post-mutation verified_sha256 snapshot.${holderNote}`,
|
|
1013
|
+
};
|
|
1014
|
+
}
|
|
1015
|
+
const driftedPaths = postCheck.dirtyFiles.map((d) => d.path).join(', ');
|
|
1016
|
+
return {
|
|
1017
|
+
ok: true,
|
|
1018
|
+
valid: false,
|
|
1019
|
+
contract_id: row.id,
|
|
1020
|
+
status: row.status,
|
|
1021
|
+
fulfillable: false,
|
|
1022
|
+
target_agent: row.target_agent,
|
|
1023
|
+
toctou_strike: toctouStrike,
|
|
1024
|
+
max_toctou_strikes: MAX_TOCTOU_STRIKES,
|
|
1025
|
+
dirty_files: postCheck.dirtyFiles,
|
|
1026
|
+
message: `Post-completion drift detected in ${postCheck.dirtyFiles.length} delivered file(s) [${driftedPaths}] for completed mutation contract "${row.id}" against committed verified_sha256.${holderNote}`,
|
|
1027
|
+
};
|
|
1028
|
+
}
|
|
1029
|
+
const check = verifyAllPointers(row.workspace_root, fingerprints);
|
|
796
1030
|
if (check.valid) {
|
|
797
1031
|
const fulfillable = row.status === 'CLAIMED';
|
|
798
1032
|
return {
|
|
@@ -810,6 +1044,27 @@ export class FerryCatEngine {
|
|
|
810
1044
|
: `All ${fingerprints.length} pointer file(s) for contract "${row.id}" match the baseline, but contract status is '${row.status}' and it can no longer be fulfilled. Ask the requester to re-dispatch with fresh fingerprints.${holderNote}`,
|
|
811
1045
|
};
|
|
812
1046
|
}
|
|
1047
|
+
const hasSecurityRejection = check.dirtyFiles.some((d) => d.reason === 'SECURITY_REJECTED');
|
|
1048
|
+
const patchFallback = !isMutationTask && !hasSecurityRejection
|
|
1049
|
+
? this.canAcceptSelfContainedPatch(row, fingerprints)
|
|
1050
|
+
: { accepted: false };
|
|
1051
|
+
if (patchFallback.accepted) {
|
|
1052
|
+
const fulfillable = row.status === 'CLAIMED';
|
|
1053
|
+
return {
|
|
1054
|
+
ok: true,
|
|
1055
|
+
valid: true,
|
|
1056
|
+
contract_id: row.id,
|
|
1057
|
+
status: row.status,
|
|
1058
|
+
fulfillable,
|
|
1059
|
+
target_agent: row.target_agent,
|
|
1060
|
+
toctou_strike: toctouStrike,
|
|
1061
|
+
max_toctou_strikes: MAX_TOCTOU_STRIKES,
|
|
1062
|
+
dirty_files: check.dirtyFiles,
|
|
1063
|
+
message: fulfillable
|
|
1064
|
+
? `Self-contained git_patch baseline verified (sha256: ${patchFallback.patchSha256?.slice(0, 16)}...) for cross-branch contract "${row.id}". Safe to fulfill despite ${check.dirtyFiles.length} local working-tree difference(s).${holderNote}`
|
|
1065
|
+
: `Self-contained git_patch baseline verified for contract "${row.id}", but contract status is '${row.status}' and it can no longer be fulfilled.${holderNote}`,
|
|
1066
|
+
};
|
|
1067
|
+
}
|
|
813
1068
|
const dirtyPaths = check.dirtyFiles.map((d) => d.path).join(', ');
|
|
814
1069
|
return {
|
|
815
1070
|
ok: true,
|
|
@@ -882,6 +1137,9 @@ export class FerryCatEngine {
|
|
|
882
1137
|
release_count: r.release_count ?? 0,
|
|
883
1138
|
toctou_strike: r.toctou_strike ?? 0,
|
|
884
1139
|
pointers: JSON.parse(r.pointers_json),
|
|
1140
|
+
patch_sha256: r.patch_sha256 ?? null,
|
|
1141
|
+
patch_bytes: r.git_patch ? Buffer.byteLength(r.git_patch, 'utf8') : null,
|
|
1142
|
+
...(input.include_patch ? { git_patch: r.git_patch ?? null } : {}),
|
|
885
1143
|
contract_schema: r.contract_schema_json ? JSON.parse(r.contract_schema_json) : null,
|
|
886
1144
|
result_summary: r.result_summary,
|
|
887
1145
|
structured_output: r.structured_output_json ? JSON.parse(r.structured_output_json) : null,
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA6B3E,mDAAmD;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAuC;IACnF,WAAW,EAAE,IAAI;IACjB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,sGAAsG;AACtG,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAE1D,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAAqB;IACjD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AASD,MAAM,OAAO,cAAc;IACT,MAAM,CAAS;IACd,EAAE,CAAe;IACjB,gBAAgB,CAAU;IAC1B,uBAAuB,CAAS;IACjC,iBAAiB,CAAU;IAE3C,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC3E,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,GAAG,CAAC;QACtE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;QAE3D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,iBAAiB;QACvB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,iDAAiD,OAAO,CAAC,OAAO,iGAAiG,CAClK,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8CZ,CAAC,CAAC;QAEH,2FAA2F;QAC3F,oGAAoG;QACpG,MAAM,UAAU,GAAyC;YACvD,CAAC,sBAAsB,EAAE,MAAM,CAAC;YAChC,CAAC,WAAW,EAAE,SAAS,CAAC;YACxB,CAAC,cAAc,EAAE,4BAA4B,CAAC;YAC9C,CAAC,eAAe,EAAE,4BAA4B,CAAC;YAC/C,CAAC,eAAe,EAAE,4BAA4B,CAAC;YAC/C,CAAC,sBAAsB,EAAE,MAAM,CAAC;YAChC,CAAC,aAAa,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,GAAG,CAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAA8B,CAAC,GAAG,CACpF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACd,CACF,CAAC;QACF,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YACvC,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;2CAE0B,eAAe;KACrD,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,aAAsB,EAAE,YAAoB,OAAO;QAC9E,MAAM,QAAQ,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,6HAA6H,CAC1I,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,gBAAgB,CACrB,KAA4B,EAC5B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1E,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAC5D,iBAAiB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,CACN,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,IAAI,qBAAqB,CAAC;QACjE,MAAM,UAAU,GACd,KAAK,CAAC,YAAY,IAAI,iCAAiC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;QAElF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAM5B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CACN,UAAU,EACV,SAAS,EACT,MAAM,EACN,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,eAAe,EACrB,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC5B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EACpE,WAAW,EACX,UAAU,EACV,KAAK,EACL,KAAK,CACN,CAAC;QAEF,MAAM,MAAM,GAA2B;YACrC,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC,CAAC;SACJ,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO;gBACZ,0JAA0J,CAAC;QAC/J,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,6BAA6B,CAAC,KAAa;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CACN;4CACoC,eAAe;iFACsB,CAC1E;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAuC,CAAC;QAE3D,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;;;8CAMoC,eAAe;mFACsB,CAC1E;iBACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEM,YAAY,CACjB,QAA2B,EAAE,EAC7B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEtE,2EAA2E;QAC3E,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAE1C,sFAAsF;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B;;6CAEuC,CACxC,CAAC;QAEF,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAClG,IAAI,eAAe,GAAG,yEAAyE,CAAC;QAChG,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,eAAe,IAAI,sBAAsB,YAAY,GAAG,CAAC;QAC3D,CAAC;QACD,eAAe,IAAI,aAAa,eAAe,0BAA0B,CAAC;QAE1E,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACxD,MAAM,WAAW,GAA2B,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,eAAe,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,cAA6D,CAAC;QAClE,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW,CAA6B,CAAC;YAClF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC;YAEzB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,6EAA6E;gBAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpE,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvC,qEAAqE;oBACrE,SAAS;gBACX,CAAC;gBAED,gGAAgG;gBAChG,IAAI,YAA+B,CAAC;gBACpC,IAAI,YAAY,CAAC;gBACjB,IAAI,CAAC;oBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAsB,CAAC;oBACxE,YAAY,GAAG,2BAA2B,CACxC,SAAS,CAAC,cAAc,EACxB,YAAY,EACZ,IAAI,CAAC,uBAAuB,CAC7B,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1F,wFAAwF;oBACxF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;yBACnB,OAAO,CACN;;uEAEyD,CAC1D;yBACA,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBACzC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACvB,cAAc,GAAG;4BACf,WAAW,EAAE,SAAS,CAAC,EAAE;4BACzB,MAAM,EAAE,qBAAqB;4BAC7B,OAAO,EAAE,aAAa,SAAS,CAAC,EAAE,mDAAmD,MAAM,IAAI;yBAChG,CAAC;oBACJ,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;oBACxB,MAAM,WAAW,GAAG,GAAG,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;oBACrE,wFAAwF;oBACxF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;yBACnB,OAAO,CACN;;uEAEyD,CAC1D;yBACA,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAE9C,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACvB,cAAc,GAAG;4BACf,WAAW,EAAE,SAAS,CAAC,EAAE;4BACzB,MAAM,EAAE,YAAY,CAAC,MAAO;4BAC5B,OAAO,EAAE,aAAa,SAAS,CAAC,EAAE,gCAAgC,WAAW,4BAA4B,SAAS,CAAC,eAAe,gDAAgD;yBACnL,CAAC;oBACJ,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE;wBACR,WAAW,EAAE,SAAS,CAAC,EAAE;wBACzB,eAAe,EAAE,SAAS,CAAC,eAAe;wBAC1C,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,eAAe,EAAE,SAAS,CAAC,eAAe;wBAC1C,cAAc,EAAE,SAAS,CAAC,cAAc;wBACxC,QAAQ,EAAE,YAAY;wBACtB,eAAe,EAAE,SAAS,CAAC,oBAAoB;4BAC7C,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAA6B;4BACzE,CAAC,CAAC,IAAI;wBACR,UAAU,EAAE,KAAK;wBACjB,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,WAAW,EAAE,UAAU;qBACxB;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,cAAc;aAC5B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,iBAAiB;gBACxB,CAAC,CAAC,gCAAgC,OAAO,yCAAyC;gBAClF,CAAC,CAAC,6CAA6C,OAAO,IAAI;SAC7D,CAAC;IACJ,CAAC;IAEM,eAAe,CACpB,KAA2B,EAC3B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,SAAS,EACT,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6BAA6B,GAAG,CAAC,YAAY,8BAA8B;aACxG,CAAC;QACJ,CAAC;QAED,wGAAwG;QACxG,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAsB,CAAC;QACxE,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,YAAY,GAAG,UAAU,WAAW,CAAC,YAAY,CAAC,MAAM,KAAK,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACrG,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,UAAU,IAAI,kBAAkB,EAAE,CAAC;gBACrC,kGAAkG;gBAClG,IAAI,CAAC,EAAE;qBACJ,OAAO,CACN;;iDAEqC,CACtC;qBACA,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAElC,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,WAAW,EAAE,GAAG,CAAC,EAAE;oBACnB,MAAM,EAAE,cAAc;oBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,aAAa,EAAE,UAAU;oBACzB,kBAAkB,EAAE,kBAAkB;oBACtC,WAAW,EAAE,WAAW,CAAC,UAAU;oBACnC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,qCAAqC,UAAU,IAAI,kBAAkB,yCAAyC,GAAG,CAAC,YAAY,cAAc,YAAY,qKAAqK,GAAG,CAAC,EAAE,qKAAqK,GAAG,CAAC,eAAe,mBAAmB;iBAC3iB,CAAC;YACJ,CAAC;YAED,yHAAyH;YACzH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,IAAI;gBAClD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBACpD,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,WAAW,CAAC,UAAU;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;;;+CAMqC,CACtC;iBACA,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,eAAe;gBACvB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,aAAa,EAAE,UAAU;gBACzB,kBAAkB,EAAE,kBAAkB;gBACtC,WAAW,EAAE,WAAW,CAAC,UAAU;gBACnC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,4FAA4F,kBAAkB,MAAM,YAAY,+FAA+F,GAAG,CAAC,eAAe,gDAAgD;aAC/T,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE1D,8CAA8C;QAC9C,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAA4B,CAAC;YAC/E,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAE3E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;gBAE3C,IAAI,cAAc,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACtC,6FAA6F;oBAC7F,IAAI,CAAC,EAAE;yBACJ,OAAO,CACN,0FAA0F,CAC3F;yBACA,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEtC,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,WAAW,EAAE,GAAG,CAAC,EAAE;wBACnB,MAAM,EAAE,cAAc;wBACtB,WAAW,EAAE,cAAc;wBAC3B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,iBAAiB,EAAE,UAAU,CAAC,MAAM;wBACpC,OAAO,EAAE,8DAA8D,cAAc,iBAAiB,GAAG,CAAC,WAAW,mCAAmC,GAAG,CAAC,YAAY,oDAAoD;qBAC7N,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,kCAAkC,GAAG,CAAC,WAAW,aAAa,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChH,IAAI,CAAC,EAAE;yBACJ,OAAO,CACN;;;;;mDAKqC,CACtC;yBACA,GAAG,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBAElD,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,WAAW,EAAE,GAAG,CAAC,EAAE;wBACnB,MAAM,EAAE,mBAAmB;wBAC3B,WAAW,EAAE,cAAc;wBAC3B,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,iBAAiB,EAAE,UAAU,CAAC,MAAM;wBACpC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6EAA6E,GAAG,CAAC,WAAW,IAAI;qBAC7H,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;aACxB,OAAO,CACN;;;;;;;6CAOqC,CACtC;aACA,GAAG,CACF,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EACxE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1E,kBAAkB,EAClB,KAAK,EACL,GAAG,CAAC,EAAE,CACP,CAAC;QAEJ,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,oCAAoC,CAC1F,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,mBAAmB,OAAO,yBAAyB;SAChF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,4BAA4B,CAClC,UAAkB,EAClB,OAAe,EACf,SAAoD,EACpD,UAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,sCAAsC,CAAC;aAC/C,GAAG,CAAC,UAAU,CAAuC,CAAC;QAEzD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,cAAc,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,GAAG,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,gCAAgC,GAAG,CAAC,EAAE,sBAAsB,GAAG,CAAC,YAAY,UAAU,MAAM,sBAAsB,OAAO,IAAI,CAC9H,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,UAAU,SAAS,cAAc,UAAU,wDAAwD,GAAG,CAAC,MAAM,IAAI,CAClH,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,gCAAgC,GAAG,CAAC,EAAE,uFAAuF,SAAS,GAAG,CAC1I,CAAC;YACJ,CAAC;YACD,IAAI,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CACb,qEAAqE,SAAS,iBAAiB,GAAG,CAAC,EAAE,IAAI,CAC1G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAC5B,GAAgB,EAChB,KAAa,EACb,cAAsB,kBAAkB;QAExC,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC;YACjF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,iGAAiG,CAClG;aACA,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,GAAgB;QAC1C,OAAO,GAAG,CAAC,UAAU,GAAG,6BAA6B,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IACnF,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CACpB,KAA2B,EAC3B,QAAgB,IAAI,CAAC,GAAG,EAAE;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,SAAS,EACT,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6BAA6B,GAAG,CAAC,YAAY,6CAA6C;aACvH,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN,2HAA2H,CAC5H;iBACA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,wCAAwC,6BAA6B,6DAA6D;aAC/J,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,aAAa,IAAI,YAAY,EAAE,CAAC;YACtC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,YAAY,EAAE,YAAY;gBAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,+BAA+B,GAAG,CAAC,aAAa,eAAe,YAAY,2BAA2B,OAAO,gEAAgE;aAC1M,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACrF,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY;YAClC,CAAC,CAAC,GAAG,YAAY,YAAY,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;YAC9D,CAAC,CAAC,YAAY,CAAC;QAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;wFASgF,CACjF;aACA,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAE/D,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,oCAAoC,CAC1F,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,YAAY;YAC3B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,kBAAkB,OAAO,yCAAyC,YAAY,IAAI,YAAY,WAAW,GAAG,CAAC,aAAa,kBAAkB;SACzK,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,KAAqB,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,QAAQ,EACR,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,6BAA6B,GAAG,CAAC,YAAY,2FAA2F;aACrK,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAE7E,IAAI,GAAG,CAAC,YAAY,IAAI,kBAAkB,EAAE,CAAC;YAC3C,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,UAAU,EAAE,gBAAgB;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,yCAAyC,GAAG,CAAC,EAAE,MAAM,kBAAkB,IAAI,kBAAkB,qHAAqH;aAC5N,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAAC;YAC9B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,UAAU,EAAE,gBAAgB;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,qDAAqD,6BAA6B,oFAAoF,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,GAAG;aAC9O,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1D,IAAI,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;YACzC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,SAAS;gBACvC,UAAU,EAAE,gBAAgB;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,4CAA4C,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,0CAA0C,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,uCAAuC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,GAAG;aACtR,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;uFAE+E,CAChF;aACA,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,yCAAyC,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,GAAG,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QAClD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,kCAAkC,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,YAAY,gBAAgB,WAAW,IAAI,kBAAkB,IAAI;SACxI,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,UAAkB;QAOxC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN,gGAAgG,CACjG;aACA,GAAG,CAAC,UAAU,CAQJ,CAAC;QACd,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAAC,KAKpB;QACC,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,sBAAsB,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;wDAKgD,CACjD;aACA,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,KAAwB,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,4BAA4B,CAC3C,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,MAAM,EACN,KAAK,CAAC,WAAW,CAClB,CAAC;QAEF,uGAAuG;QACvG,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,0CAA0C,MAAM,GAAG,CAAC,EAAE,CAAC;YACjG,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,yCAAyC,GAAG,CAAC,YAAY,wDAAwD;aAC9I,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GACX,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;YACvD,CAAC,CAAC;;wFAE8E;YAChF,CAAC,CAAC;;oEAE0D,CAAC;QAEjE,MAAM,UAAU,GACd,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;YACvD,CAAC,CAAC,CAAC,kBAAkB,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;YACvE,CAAC,CAAC,CAAC,kBAAkB,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAExD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,CAAC,EAAE,oCAAoC,CAC1F,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,uBAAuB,OAAO,IAAI;SAC/D,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,KAA0B;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,sCAAsC,CAAC;aAC/C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAuC,CAAC;QAEhE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,WAAW,cAAc,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAsB,CAAC;QACxE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM,UAAU,GACd,WAAW,IAAI,WAAW,KAAK,GAAG,CAAC,YAAY;YAC7C,CAAC,CAAC,oCAAoC,GAAG,CAAC,YAAY,mBAAmB,WAAW,KAAK;YACzF,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;YAC7C,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,GAAG,CAAC,EAAE;gBACnB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW;gBACX,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,aAAa,EAAE,YAAY;gBAC3B,kBAAkB,EAAE,kBAAkB;gBACtC,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,WAAW;oBAClB,CAAC,CAAC,OAAO,YAAY,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,4DAA4D,UAAU,EAAE;oBAC5I,CAAC,CAAC,OAAO,YAAY,CAAC,MAAM,kCAAkC,GAAG,CAAC,EAAE,iDAAiD,GAAG,CAAC,MAAM,iGAAiG,UAAU,EAAE;aAC/O,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,aAAa,EAAE,YAAY;YAC3B,kBAAkB,EAAE,kBAAkB;YACtC,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,OAAO,EAAE,6BAA6B,KAAK,CAAC,UAAU,CAAC,MAAM,aAAa,UAAU,mBAAmB,GAAG,CAAC,EAAE,wIAAwI,UAAU,EAAE;SAClQ,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,gBAAgB,CACrB,QAA+B,EAAE,EACjC,QAAgB,IAAI,CAAC,GAAG,EAAE;QAK1B,IAAI,IAAmB,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;QAEhD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;iBACnB,OAAO,CAAC,sCAAsC,CAAC;iBAC/C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAuC,CAAC;YAChE,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAE1C,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC9B,UAAU,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,IAAI,GAAG,IAAI,CAAC,EAAE;iBACX,OAAO,CAAC,2BAA2B,WAAW,mCAAmC,CAAC;iBAClF,GAAG,CAAC,GAAG,MAAM,CAA6B,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC;YAC/C,MAAM,kBAAkB,GACtB,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC;gBACzE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS;oBACrB,CAAC,CAAC,UAAU,KAAK,IAAI;oBACrB,KAAK,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YAElD,OAAO;gBACL,WAAW,EAAE,CAAC,CAAC,EAAE;gBACjB,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,oBAAoB,EAAE,kBAAkB;gBACxC,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC;gBACjC,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC;gBACnC,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;gBACrC,eAAe,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,iBAAiB,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzF,kBAAkB,EAAE,CAAC,CAAC,uBAAuB;oBAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC;oBACvC,CAAC,CAAC,IAAI;gBACR,eAAe,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,eAAe,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnF,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,SAAS,EAAE,UAAU;gBACrB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,eAAe,EACb,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;oBAC7C,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,GAAG,IAAI;oBACtC,CAAC,CAAC,IAAI;gBACV,YAAY,EAAE,CAAC,CAAC,YAAY;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,cAAc,EAAE,SAAS,CAAC,MAAM;YAChC,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,yCAAyC;IACzC,+EAA+E;IAC/E,4EAA4E;IAErE,kBAAkB,CAAC,KAA8B;QACtD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;QACxC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,qDAAqD;QACrD,8EAA8E;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;KAS5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE/F,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,MAAM;gBACf,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,SAAS;aACtB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAE,OAAO;gBACd,CAAC,CAAC,UAAU,MAAM,iBAAiB,OAAO,CAAC,WAAW,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,GAAG;gBAC9G,CAAC,CAAC,4BAA4B,MAAM,IAAI;SAC3C,CAAC;IACJ,CAAC;IAEM,gBAAgB,CAAC,KAA4B;QAClD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;QAExC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAE9D,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,SAAS;aACtB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,0BAA0B,MAAM,0BAA0B,UAAU,uBAAuB;SACrG,CAAC;IACJ,CAAC;IAEM,kBAAkB,CAAC,KAA8B;QACtD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;YACtB,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,MAAM,sBAAsB,UAAU,IAAI;SAC/F,CAAC;IACJ,CAAC;IAEM,kBAAkB,CAAC,SAAiB,QAAQ;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,gGAAgG,CAAC;aACzG,GAAG,CAAC,MAAM,CAAyC,CAAC;QACvD,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|