@astrolabe-dev/cli 1.0.12 → 1.0.16
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/dist/index.js +758 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -6,9 +6,9 @@ import { program } from 'commander';
|
|
|
6
6
|
import { readFileSync, existsSync, statSync, rmSync, mkdirSync } from 'node:fs';
|
|
7
7
|
import { join, dirname, basename, resolve } from 'node:path';
|
|
8
8
|
import { fileURLToPath } from 'node:url';
|
|
9
|
-
import { execSync } from 'node:child_process';
|
|
9
|
+
import { execSync, execFileSync } from 'node:child_process';
|
|
10
10
|
import { createInterface } from 'node:readline';
|
|
11
|
-
import { createKnowledgeGraph, scanPhase, structurePhase, frameworkPhase, markdownPhase, parseEmitPhase, resolutionPhase, routesPhase, toolsPhase, ormPhase, crossFilePhase, mroPhase, communityPhase, processTracingPhase, cobolPhase, accessTrackingPhase, securityScanPhase, coveragePhase, callResolutionPhase, scopeResolutionPhase, initParser, createSqliteStore, createFtsSearch, createLogger, createPhaseContext, runPipeline, startMcpServer, loadRegistry, saveRegistry, removeRepo, getGitRemote, acquireDbLock, generateSkill, loadMeta, saveMeta, computeFileDiff, buildMeta, installHooks, createGroup, removeGroup, addRepoToGroup, removeRepoFromGroup, listGroups, getGroupStatus, groupQuery, getGroupContracts, syncGroupContracts, autoSetup, generateAgentFiles, startHttpServer, generateWiki, startEvalServer, countGraphlets, buildAdjacencyMap, detectPatterns, scoreArchitectureHealth, migrateFromGitNexus, } from '@astrolabe-dev/core';
|
|
11
|
+
import { createKnowledgeGraph, scanPhase, structurePhase, frameworkPhase, markdownPhase, parseEmitPhase, resolutionPhase, routesPhase, toolsPhase, ormPhase, crossFilePhase, mroPhase, communityPhase, processTracingPhase, cobolPhase, accessTrackingPhase, securityScanPhase, coveragePhase, callResolutionPhase, scopeResolutionPhase, patternDetectionPhase, initParser, createSqliteStore, createFtsSearch, createLogger, createPhaseContext, runPipeline, startMcpServer, loadRegistry, saveRegistry, removeRepo, getGitRemote, acquireDbLock, generateSkill, loadMeta, saveMeta, computeFileDiff, buildMeta, installHooks, createGroup, removeGroup, addRepoToGroup, removeRepoFromGroup, listGroups, getGroupStatus, groupQuery, getGroupContracts, syncGroupContracts, autoSetup, generateAgentFiles, startHttpServer, generateWiki, startEvalServer, countGraphlets, buildAdjacencyMap, detectPatterns, scoreArchitectureHealth, detectClones, computeSpectralMetrics, detectAntiPatterns, migrateFromGitNexus, detectCutVertices, detectBridges, computeGraphCoverageMetrics, EDGE_DECAY_FACTORS, applyDecay, noisyOr, exportGnnDataset, computeEmbeddings, propagateEmbeddings, createSemanticEdges, computeSnapshotMetrics, detectTrends, } from '@astrolabe-dev/core';
|
|
12
12
|
// #463: Coverage report parser
|
|
13
13
|
import { parseCoverageReport, detectFormat, annotateGraphWithCoverage } from '@astrolabe-dev/core';
|
|
14
14
|
import { PIPELINE_TIMING_KEY, PIPELINE_MEMORY_KEY } from '@astrolabe-dev/core';
|
|
@@ -129,6 +129,7 @@ program
|
|
|
129
129
|
coveragePhase,
|
|
130
130
|
cobolPhase,
|
|
131
131
|
callResolutionPhase, scopeResolutionPhase, securityScanPhase,
|
|
132
|
+
patternDetectionPhase,
|
|
132
133
|
], ctx);
|
|
133
134
|
nodeCount = graph.nodeCount;
|
|
134
135
|
edgeCount = graph.relationshipCount;
|
|
@@ -149,6 +150,7 @@ program
|
|
|
149
150
|
coveragePhase,
|
|
150
151
|
cobolPhase,
|
|
151
152
|
callResolutionPhase, scopeResolutionPhase, securityScanPhase,
|
|
153
|
+
patternDetectionPhase,
|
|
152
154
|
], context);
|
|
153
155
|
nodeCount = graph.nodeCount;
|
|
154
156
|
edgeCount = graph.relationshipCount;
|
|
@@ -177,6 +179,21 @@ program
|
|
|
177
179
|
// Save graph to SQLite
|
|
178
180
|
const store = createSqliteStore(dbPath);
|
|
179
181
|
store.saveGraph(graph);
|
|
182
|
+
// #807: Auto-save snapshot for temporal evolution tracking
|
|
183
|
+
try {
|
|
184
|
+
const branch = (() => { try {
|
|
185
|
+
return execSync('git rev-parse --abbrev-ref HEAD', { cwd: repoPath, encoding: 'utf-8' }).trim();
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return 'unknown';
|
|
189
|
+
} })();
|
|
190
|
+
const snapshot = computeSnapshotMetrics(graph, lastCommit, branch);
|
|
191
|
+
store.saveSnapshot(snapshot);
|
|
192
|
+
log.info('Snapshot saved', { id: snapshot.id, healthScore: snapshot.healthScore });
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
log.warn('Failed to save snapshot', { error: String(err) });
|
|
196
|
+
}
|
|
180
197
|
// FTS index is created lazily on first query — no eager creation here
|
|
181
198
|
store.close();
|
|
182
199
|
// Save meta.json with current file hashes for next incremental run
|
|
@@ -541,6 +558,8 @@ program
|
|
|
541
558
|
.command('impact <symbol-name>')
|
|
542
559
|
.description('Show code impact analysis for a symbol')
|
|
543
560
|
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
561
|
+
.option('--probabilistic', 'Use probabilistic confidence-decay scoring')
|
|
562
|
+
.option('--decay <schedule>', 'Decay schedule for probabilistic mode', 'linear')
|
|
544
563
|
.action((symbolName, opts) => {
|
|
545
564
|
const store = createSqliteStore(opts.db);
|
|
546
565
|
try {
|
|
@@ -561,20 +580,215 @@ program
|
|
|
561
580
|
}
|
|
562
581
|
bucket.push({ neighborId: rel.sourceId, type: rel.type, direction: 'incoming' });
|
|
563
582
|
}
|
|
564
|
-
|
|
583
|
+
if (opts.probabilistic) {
|
|
584
|
+
// #806: Probabilistic multi-hop BFS with confidence decay and Noisy-OR fusion
|
|
585
|
+
const schedule = (opts.decay ?? 'linear');
|
|
586
|
+
const maxDepth = 3;
|
|
587
|
+
// Find the target node
|
|
588
|
+
let targetId = null;
|
|
589
|
+
for (const node of graph.iterNodes()) {
|
|
590
|
+
if (node.properties.name === symbolName) {
|
|
591
|
+
targetId = node.id;
|
|
592
|
+
break;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
if (!targetId) {
|
|
596
|
+
console.log(`Symbol "${symbolName}" not found.`);
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
// Pre-build adjacency with confidence (incoming + outgoing)
|
|
600
|
+
const probAdj = new Map();
|
|
601
|
+
for (const rel of graph.iterRelationships()) {
|
|
602
|
+
if (rel.type === 'STEP_IN_PROCESS')
|
|
603
|
+
continue;
|
|
604
|
+
// outgoing: source → target
|
|
605
|
+
let bucket = probAdj.get(rel.sourceId);
|
|
606
|
+
if (!bucket) {
|
|
607
|
+
bucket = [];
|
|
608
|
+
probAdj.set(rel.sourceId, bucket);
|
|
609
|
+
}
|
|
610
|
+
bucket.push({ neighborId: rel.targetId, type: rel.type, confidence: rel.confidence, direction: 'outgoing' });
|
|
611
|
+
// incoming: target → source
|
|
612
|
+
bucket = probAdj.get(rel.targetId);
|
|
613
|
+
if (!bucket) {
|
|
614
|
+
bucket = [];
|
|
615
|
+
probAdj.set(rel.targetId, bucket);
|
|
616
|
+
}
|
|
617
|
+
bucket.push({ neighborId: rel.sourceId, type: rel.type, confidence: rel.confidence, direction: 'incoming' });
|
|
618
|
+
}
|
|
619
|
+
// BFS with confidence decay
|
|
620
|
+
const nodeScores = new Map();
|
|
621
|
+
nodeScores.set(targetId, { paths: [], bestScore: 1.0 });
|
|
622
|
+
const queue = [{ id: targetId, depth: 0 }];
|
|
623
|
+
const visited = new Set([targetId]);
|
|
624
|
+
while (queue.length > 0) {
|
|
625
|
+
const current = queue.shift();
|
|
626
|
+
if (current.depth >= maxDepth)
|
|
627
|
+
continue;
|
|
628
|
+
for (const { neighborId, type, confidence } of (probAdj.get(current.id) ?? [])) {
|
|
629
|
+
if (neighborId === targetId)
|
|
630
|
+
continue;
|
|
631
|
+
const edgeDecay = EDGE_DECAY_FACTORS[type] ?? 0.7;
|
|
632
|
+
const parentEntry = nodeScores.get(current.id);
|
|
633
|
+
const parentConfidence = parentEntry?.bestScore ?? 1.0;
|
|
634
|
+
let decayedConfidence = parentConfidence * edgeDecay * Math.max(confidence, 0.1);
|
|
635
|
+
decayedConfidence = applyDecay(decayedConfidence, current.depth + 1, schedule);
|
|
636
|
+
const existing = nodeScores.get(neighborId);
|
|
637
|
+
const pathEntry = { via: current.id, depth: current.depth + 1, confidence: decayedConfidence };
|
|
638
|
+
if (existing) {
|
|
639
|
+
existing.paths.push(pathEntry);
|
|
640
|
+
const allProbs = existing.paths.map((p) => p.confidence);
|
|
641
|
+
existing.bestScore = noisyOr(allProbs);
|
|
642
|
+
}
|
|
643
|
+
else {
|
|
644
|
+
nodeScores.set(neighborId, { paths: [pathEntry], bestScore: decayedConfidence });
|
|
645
|
+
if (!visited.has(neighborId)) {
|
|
646
|
+
visited.add(neighborId);
|
|
647
|
+
queue.push({ id: neighborId, depth: current.depth + 1 });
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
console.log(`Probabilistic impact for "${symbolName}" (decay: ${schedule}, maxDepth: ${maxDepth}):`);
|
|
653
|
+
const sorted = [...nodeScores]
|
|
654
|
+
.filter(([id]) => id !== targetId)
|
|
655
|
+
.map(([id, entry]) => {
|
|
656
|
+
const node = graph.getNode(id);
|
|
657
|
+
return { name: node?.properties.name ?? id, score: Math.round(entry.bestScore * 1000) / 1000, paths: entry.paths.length };
|
|
658
|
+
})
|
|
659
|
+
.sort((a, b) => b.score - a.score);
|
|
660
|
+
for (const { name, score, paths } of sorted) {
|
|
661
|
+
const cat = score >= 0.8 ? 'DIRECT' : score >= 0.4 ? 'TRANSITIVE' : 'LOW-RISK';
|
|
662
|
+
const pathInfo = paths > 1 ? ` (${paths} paths)` : '';
|
|
663
|
+
console.log(` [${cat}] ${name} (confidence: ${score.toFixed(3)})${pathInfo}`);
|
|
664
|
+
}
|
|
665
|
+
if (sorted.length === 0)
|
|
666
|
+
console.log(' (no connected nodes)');
|
|
667
|
+
}
|
|
668
|
+
else {
|
|
669
|
+
let found = 0;
|
|
670
|
+
for (const node of graph.iterNodes()) {
|
|
671
|
+
if (node.properties.name === symbolName) {
|
|
672
|
+
found++;
|
|
673
|
+
console.log(`${node.label}: ${node.id}`);
|
|
674
|
+
const neighbors = adj.get(node.id) ?? [];
|
|
675
|
+
for (const { neighborId, type, direction } of neighbors) {
|
|
676
|
+
const other = graph.getNode(neighborId);
|
|
677
|
+
console.log(` ${direction === 'outgoing' ? '→' : '←'} ${type} ${other?.properties.name ?? neighborId}`);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
if (found === 0)
|
|
682
|
+
console.log(`Symbol "${symbolName}" not found.`);
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
finally {
|
|
686
|
+
store.close();
|
|
687
|
+
}
|
|
688
|
+
});
|
|
689
|
+
// ── detect_changes ───────────────────────────────────────────────────────────
|
|
690
|
+
program
|
|
691
|
+
.command('detect-changes [repoPath]')
|
|
692
|
+
.description('Git-diff impact — maps changed files to affected symbols and processes')
|
|
693
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
694
|
+
.option('--scope <scope>', 'Diff scope: unstaged, staged, or all', 'unstaged')
|
|
695
|
+
.option('--json', 'Output raw JSON')
|
|
696
|
+
.action((repoPath, opts) => {
|
|
697
|
+
const validScopes = ['unstaged', 'staged', 'all'];
|
|
698
|
+
const scope = validScopes.includes(opts.scope) ? opts.scope : 'unstaged';
|
|
699
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
700
|
+
if (!existsSync(dbPath)) {
|
|
701
|
+
console.log('No knowledge graph found. Run `astrolabe analyze` first.');
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
// Get changed files from git
|
|
705
|
+
const cwd = repoPath ?? '.';
|
|
706
|
+
let diffFiles = [];
|
|
707
|
+
try {
|
|
708
|
+
const diffFlag = scope === 'staged' ? '--cached' : scope === 'all' ? 'HEAD' : '';
|
|
709
|
+
const args = ['diff', '--name-only'];
|
|
710
|
+
if (diffFlag)
|
|
711
|
+
args.push(diffFlag);
|
|
712
|
+
const output = execFileSync('git', args, { cwd, encoding: 'utf-8' });
|
|
713
|
+
diffFiles = output.trim().split('\n').filter(Boolean);
|
|
714
|
+
}
|
|
715
|
+
catch {
|
|
716
|
+
console.log('Git diff failed. Is this a git repository?');
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
719
|
+
if (diffFiles.length === 0) {
|
|
720
|
+
if (opts.json) {
|
|
721
|
+
console.log(JSON.stringify({ changed_files: [], changed_count: 0, affected_count: 0, risk_level: 'none' }));
|
|
722
|
+
}
|
|
723
|
+
else {
|
|
724
|
+
console.log('No changes detected.');
|
|
725
|
+
}
|
|
726
|
+
return;
|
|
727
|
+
}
|
|
728
|
+
// Match changed files to graph symbols
|
|
729
|
+
const store = createSqliteStore(resolve(dbPath));
|
|
730
|
+
try {
|
|
731
|
+
const graph = store.loadGraph();
|
|
732
|
+
const diffFileSet = new Set(diffFiles);
|
|
733
|
+
const changedSymbols = [];
|
|
734
|
+
const changedNodeIds = new Set();
|
|
565
735
|
for (const node of graph.iterNodes()) {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
736
|
+
const fp = node.properties.filePath;
|
|
737
|
+
if (fp && diffFileSet.has(fp)) {
|
|
738
|
+
changedNodeIds.add(node.id);
|
|
739
|
+
changedSymbols.push(node.properties.name ?? node.id);
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
// Find affected processes
|
|
743
|
+
const affectedProcesses = [];
|
|
744
|
+
const seenProcessNames = new Set();
|
|
745
|
+
for (const rel of graph.iterRelationshipsByType('STEP_IN_PROCESS')) {
|
|
746
|
+
if (changedNodeIds.has(rel.targetId)) {
|
|
747
|
+
const proc = graph.getNode(rel.sourceId);
|
|
748
|
+
if (proc) {
|
|
749
|
+
const procName = proc.properties.name ?? proc.id;
|
|
750
|
+
if (!seenProcessNames.has(procName)) {
|
|
751
|
+
seenProcessNames.add(procName);
|
|
752
|
+
affectedProcesses.push(procName);
|
|
753
|
+
}
|
|
573
754
|
}
|
|
574
755
|
}
|
|
575
756
|
}
|
|
576
|
-
|
|
577
|
-
|
|
757
|
+
const crossCommunityCount = affectedProcesses.length;
|
|
758
|
+
const riskLevel = affectedProcesses.length > 3 ? 'high'
|
|
759
|
+
: affectedProcesses.length > 0 ? 'medium'
|
|
760
|
+
: changedNodeIds.size > 0 ? 'unknown'
|
|
761
|
+
: 'low';
|
|
762
|
+
const result = {
|
|
763
|
+
changed_files: diffFiles,
|
|
764
|
+
changed_count: diffFiles.length,
|
|
765
|
+
affected_count: affectedProcesses.length,
|
|
766
|
+
risk_level: riskLevel,
|
|
767
|
+
changed_symbols: changedSymbols,
|
|
768
|
+
affected_processes: affectedProcesses,
|
|
769
|
+
cross_community_affected: crossCommunityCount,
|
|
770
|
+
};
|
|
771
|
+
if (opts.json) {
|
|
772
|
+
console.log(JSON.stringify(result, null, 2));
|
|
773
|
+
return;
|
|
774
|
+
}
|
|
775
|
+
console.log(`\n=== Change Impact Analysis (${scope}) ===`);
|
|
776
|
+
console.log(`Changed files: ${result.changed_count}`);
|
|
777
|
+
for (const f of diffFiles)
|
|
778
|
+
console.log(` ${f}`);
|
|
779
|
+
console.log(`Risk level: ${riskLevel}`);
|
|
780
|
+
if (changedSymbols.length > 0) {
|
|
781
|
+
console.log(`\nChanged symbols (${changedSymbols.length}):`);
|
|
782
|
+
for (const s of changedSymbols.slice(0, 20))
|
|
783
|
+
console.log(` ${s}`);
|
|
784
|
+
if (changedSymbols.length > 20)
|
|
785
|
+
console.log(` ... and ${changedSymbols.length - 20} more`);
|
|
786
|
+
}
|
|
787
|
+
if (affectedProcesses.length > 0) {
|
|
788
|
+
console.log(`\nAffected processes (${affectedProcesses.length}):`);
|
|
789
|
+
for (const p of affectedProcesses)
|
|
790
|
+
console.log(` ${p}`);
|
|
791
|
+
}
|
|
578
792
|
}
|
|
579
793
|
finally {
|
|
580
794
|
store.close();
|
|
@@ -1046,6 +1260,78 @@ program
|
|
|
1046
1260
|
}
|
|
1047
1261
|
console.log();
|
|
1048
1262
|
});
|
|
1263
|
+
// ── detect-smells ──────────────────────────────────────────────────────────
|
|
1264
|
+
program
|
|
1265
|
+
.command('detect-smells [repoPath]')
|
|
1266
|
+
.description('Detect architecture smells in the knowledge graph (cycles, god modules, unstable deps, meshes)')
|
|
1267
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1268
|
+
.option('--json', 'Output as JSON')
|
|
1269
|
+
.option('--fan-in <number>', 'Fan-in threshold for hub detection')
|
|
1270
|
+
.option('--fan-out <number>', 'Fan-out threshold for hub detection')
|
|
1271
|
+
.option('--density <number>', 'Density threshold for mesh detection (0-1)')
|
|
1272
|
+
.action((repoPath, opts) => {
|
|
1273
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
1274
|
+
if (!existsSync(dbPath)) {
|
|
1275
|
+
console.log('No knowledge graph found. Run `astrolabe analyze` first.');
|
|
1276
|
+
return;
|
|
1277
|
+
}
|
|
1278
|
+
const store = createSqliteStore(dbPath);
|
|
1279
|
+
const graph = store.loadGraph();
|
|
1280
|
+
store.close();
|
|
1281
|
+
const options = {};
|
|
1282
|
+
if (opts.fanIn)
|
|
1283
|
+
options.fanInThreshold = Number(opts.fanIn);
|
|
1284
|
+
if (opts.fanOut)
|
|
1285
|
+
options.fanOutThreshold = Number(opts.fanOut);
|
|
1286
|
+
if (opts.density)
|
|
1287
|
+
options.densityThreshold = Number(opts.density);
|
|
1288
|
+
const results = detectAntiPatterns(graph, options);
|
|
1289
|
+
if (opts.json) {
|
|
1290
|
+
console.log(JSON.stringify(results, null, 2));
|
|
1291
|
+
return;
|
|
1292
|
+
}
|
|
1293
|
+
console.log('\n=== Architecture Smells ===\n');
|
|
1294
|
+
if (results.sccs?.length) {
|
|
1295
|
+
console.log(`Cyclic Dependencies: ${results.sccs.length} cycle(s) found`);
|
|
1296
|
+
for (const scc of results.sccs) {
|
|
1297
|
+
console.log(` Cycle #${scc.id}: ${scc.size} nodes — ${scc.nodeIds.slice(0, 5).join(', ')}${scc.nodeIds.length > 5 ? '...' : ''}`);
|
|
1298
|
+
}
|
|
1299
|
+
console.log();
|
|
1300
|
+
}
|
|
1301
|
+
if (results.hubs?.length) {
|
|
1302
|
+
console.log(`Hub-like Modules: ${results.hubs.length} detected`);
|
|
1303
|
+
for (const hub of results.hubs) {
|
|
1304
|
+
console.log(` ${hub.nodeId} — fanIn: ${hub.fanIn}, fanOut: ${hub.fanOut}, classification: ${hub.classification}`);
|
|
1305
|
+
}
|
|
1306
|
+
console.log();
|
|
1307
|
+
}
|
|
1308
|
+
if (results.meshes?.length) {
|
|
1309
|
+
console.log(`Dependency Meshes: ${results.meshes.length} detected`);
|
|
1310
|
+
for (const mesh of results.meshes) {
|
|
1311
|
+
console.log(` Mesh: ${mesh.nodeIds.length} nodes, density: ${mesh.density.toFixed(3)}, anchors: ${mesh.acyclicAnchors.length}`);
|
|
1312
|
+
}
|
|
1313
|
+
console.log();
|
|
1314
|
+
}
|
|
1315
|
+
if (results.cutVertices?.length) {
|
|
1316
|
+
console.log(`Cut Vertices (SPoF): ${results.cutVertices.length} detected`);
|
|
1317
|
+
for (const cv of results.cutVertices) {
|
|
1318
|
+
console.log(` ${cv.nodeId} — would split graph into ${cv.componentCountAfterRemoval} components`);
|
|
1319
|
+
}
|
|
1320
|
+
console.log();
|
|
1321
|
+
}
|
|
1322
|
+
if (results.bridges?.length) {
|
|
1323
|
+
console.log(`Bridge Edges: ${results.bridges.length} detected`);
|
|
1324
|
+
for (const bridge of results.bridges.slice(0, 10)) {
|
|
1325
|
+
console.log(` ${bridge.sourceId} → ${bridge.targetId}`);
|
|
1326
|
+
}
|
|
1327
|
+
if (results.bridges.length > 10)
|
|
1328
|
+
console.log(` ... and ${results.bridges.length - 10} more`);
|
|
1329
|
+
console.log();
|
|
1330
|
+
}
|
|
1331
|
+
if (!results.sccs?.length && !results.hubs?.length && !results.meshes?.length) {
|
|
1332
|
+
console.log('No architecture smells detected.');
|
|
1333
|
+
}
|
|
1334
|
+
});
|
|
1049
1335
|
// ── ingest-coverage (#463) ──────────────────────────────────────────────────
|
|
1050
1336
|
program
|
|
1051
1337
|
.command('ingest-coverage <report-file>')
|
|
@@ -1248,5 +1534,465 @@ program
|
|
|
1248
1534
|
store.close();
|
|
1249
1535
|
}
|
|
1250
1536
|
});
|
|
1537
|
+
// ── detect-clones (#810) ─────────────────────────────────────────────────────
|
|
1538
|
+
program
|
|
1539
|
+
.command('detect-clones [repoPath]')
|
|
1540
|
+
.description('Detect structurally similar functions using Weisfeiler-Lehman graph kernels (#810)')
|
|
1541
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1542
|
+
.option('--threshold <n>', 'Similarity threshold (0-1)', '0.6')
|
|
1543
|
+
.option('--json', 'Output raw JSON')
|
|
1544
|
+
.action((repoPath, opts) => {
|
|
1545
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
1546
|
+
if (!existsSync(dbPath)) {
|
|
1547
|
+
console.log('No knowledge graph found. Run `astrolabe analyze` first.');
|
|
1548
|
+
return;
|
|
1549
|
+
}
|
|
1550
|
+
const threshold = parseFloat(opts.threshold);
|
|
1551
|
+
if (isNaN(threshold) || threshold < 0 || threshold > 1) {
|
|
1552
|
+
console.log('Threshold must be a number between 0 and 1.');
|
|
1553
|
+
return;
|
|
1554
|
+
}
|
|
1555
|
+
const store = createSqliteStore(dbPath);
|
|
1556
|
+
try {
|
|
1557
|
+
const graph = store.loadGraph();
|
|
1558
|
+
// Build adjacency + node names — only Function/Method nodes for meaningful clone detection
|
|
1559
|
+
const FUNCTION_LABELS = new Set(['Function', 'Method']);
|
|
1560
|
+
const functionNodes = new Set();
|
|
1561
|
+
const adjList = new Map();
|
|
1562
|
+
const nodeNames = new Map();
|
|
1563
|
+
for (const node of graph.iterNodes()) {
|
|
1564
|
+
if (!FUNCTION_LABELS.has(node.label))
|
|
1565
|
+
continue;
|
|
1566
|
+
functionNodes.add(node.id);
|
|
1567
|
+
if (!adjList.has(node.id))
|
|
1568
|
+
adjList.set(node.id, []);
|
|
1569
|
+
nodeNames.set(node.id, node.properties.name ?? node.id);
|
|
1570
|
+
}
|
|
1571
|
+
for (const rel of graph.iterRelationships()) {
|
|
1572
|
+
if (rel.type !== 'CALLS' && rel.type !== 'IMPORTS')
|
|
1573
|
+
continue;
|
|
1574
|
+
if (!functionNodes.has(rel.sourceId) || !functionNodes.has(rel.targetId))
|
|
1575
|
+
continue;
|
|
1576
|
+
let targets = adjList.get(rel.sourceId);
|
|
1577
|
+
if (!targets) {
|
|
1578
|
+
targets = [];
|
|
1579
|
+
adjList.set(rel.sourceId, targets);
|
|
1580
|
+
}
|
|
1581
|
+
targets.push(rel.targetId);
|
|
1582
|
+
}
|
|
1583
|
+
const result = detectClones(adjList, nodeNames, { threshold });
|
|
1584
|
+
if (opts.json) {
|
|
1585
|
+
console.log(JSON.stringify(result, null, 2));
|
|
1586
|
+
return;
|
|
1587
|
+
}
|
|
1588
|
+
console.log(`\n=== Clone Detection (WL Graph Kernel) ===`);
|
|
1589
|
+
console.log(`Functions analyzed: ${result.totalFunctions}`);
|
|
1590
|
+
console.log(`Clone pairs found: ${result.totalPairs} (threshold: ${threshold})`);
|
|
1591
|
+
console.log(` Exact clones (>=95%): ${result.summary.exactClones}`);
|
|
1592
|
+
console.log(` Near-misses (80-95%): ${result.summary.nearMisses}`);
|
|
1593
|
+
console.log(` Potential clones (60-80%): ${result.summary.potentialClones}`);
|
|
1594
|
+
if (result.clusters.length > 0) {
|
|
1595
|
+
console.log(`\n--- Clone Clusters (${result.clusters.length}) ---`);
|
|
1596
|
+
for (const c of result.clusters.slice(0, 10)) {
|
|
1597
|
+
console.log(` Cluster ${c.clusterId}: ${c.memberCount} functions, representative: ${c.representativeFunction}`);
|
|
1598
|
+
const memberNames = c.members.map((m) => m.name).join(', ');
|
|
1599
|
+
console.log(` Members: ${memberNames}`);
|
|
1600
|
+
}
|
|
1601
|
+
if (result.clusters.length > 10)
|
|
1602
|
+
console.log(` ... and ${result.clusters.length - 10} more clusters`);
|
|
1603
|
+
}
|
|
1604
|
+
if (result.topPairs.length > 0) {
|
|
1605
|
+
console.log(`\n--- Top Similar Pairs ---`);
|
|
1606
|
+
for (const pair of result.topPairs.slice(0, 15)) {
|
|
1607
|
+
console.log(` ${(pair.similarity * 100).toFixed(0)}%: ${pair.functionA.name} ↔ ${pair.functionB.name}`);
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
finally {
|
|
1612
|
+
store.close();
|
|
1613
|
+
}
|
|
1614
|
+
});
|
|
1615
|
+
// ── spectral (#812) ──────────────────────────────────────────────────────────
|
|
1616
|
+
program
|
|
1617
|
+
.command('spectral [repoPath]')
|
|
1618
|
+
.description('Spectral graph analysis — density, entropy, flow hierarchy, topology classification (#812)')
|
|
1619
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1620
|
+
.option('--json', 'Output raw JSON')
|
|
1621
|
+
.action((repoPath, opts) => {
|
|
1622
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
1623
|
+
if (!existsSync(dbPath)) {
|
|
1624
|
+
console.log('No knowledge graph found. Run `astrolabe analyze` first.');
|
|
1625
|
+
return;
|
|
1626
|
+
}
|
|
1627
|
+
const store = createSqliteStore(dbPath);
|
|
1628
|
+
try {
|
|
1629
|
+
const graph = store.loadGraph();
|
|
1630
|
+
// Build adjacency list from CALLS and IMPORTS edges
|
|
1631
|
+
const adjList = new Map();
|
|
1632
|
+
for (const node of graph.iterNodes()) {
|
|
1633
|
+
if (!adjList.has(node.id))
|
|
1634
|
+
adjList.set(node.id, []);
|
|
1635
|
+
}
|
|
1636
|
+
for (const rel of graph.iterRelationships()) {
|
|
1637
|
+
if (rel.type === 'STEP_IN_PROCESS' || rel.type === 'MEMBER_OF' || rel.type === 'ENTRY_POINT_OF')
|
|
1638
|
+
continue;
|
|
1639
|
+
if (rel.type !== 'CALLS' && rel.type !== 'IMPORTS')
|
|
1640
|
+
continue;
|
|
1641
|
+
let targets = adjList.get(rel.sourceId);
|
|
1642
|
+
if (!targets) {
|
|
1643
|
+
targets = [];
|
|
1644
|
+
adjList.set(rel.sourceId, targets);
|
|
1645
|
+
}
|
|
1646
|
+
targets.push(rel.targetId);
|
|
1647
|
+
if (!adjList.has(rel.targetId))
|
|
1648
|
+
adjList.set(rel.targetId, []);
|
|
1649
|
+
}
|
|
1650
|
+
const metrics = computeSpectralMetrics(adjList);
|
|
1651
|
+
if (opts.json) {
|
|
1652
|
+
console.log(JSON.stringify(metrics, null, 2));
|
|
1653
|
+
return;
|
|
1654
|
+
}
|
|
1655
|
+
console.log(`\n=== Spectral Graph Analysis ===`);
|
|
1656
|
+
console.log(`Nodes: ${metrics.nodeCount} | Edges: ${metrics.edgeCount}`);
|
|
1657
|
+
console.log();
|
|
1658
|
+
console.log(`Density: ${(metrics.density * 100).toFixed(2)}% (${metrics.density < 0.1 ? 'sparse/loosely coupled' : metrics.density > 0.3 ? 'dense/tightly coupled' : 'moderate'})`);
|
|
1659
|
+
console.log(`Degree Entropy: ${metrics.degreeEntropy.toFixed(3)} (${metrics.degreeEntropy < 1 ? 'uniform' : metrics.degreeEntropy > 3 ? 'hub-centric/skewed' : 'moderate diversity'})`);
|
|
1660
|
+
console.log(`Avg Degree: ${metrics.avgDegree.toFixed(1)}`);
|
|
1661
|
+
console.log(`Max Degree: ${metrics.maxDegree}`);
|
|
1662
|
+
console.log(`Flow Hierarchy: ${(metrics.flowHierarchy * 100).toFixed(1)}% acyclic (${metrics.flowHierarchy > 0.7 ? 'highly hierarchical' : metrics.flowHierarchy < 0.3 ? 'highly cyclic' : 'mixed'})`);
|
|
1663
|
+
if (metrics.modularityQ > 0) {
|
|
1664
|
+
console.log(`Modularity Q: ${metrics.modularityQ.toFixed(4)} (${metrics.modularityQ > 0.5 ? 'well-modularized' : 'low modularity'})`);
|
|
1665
|
+
}
|
|
1666
|
+
console.log(`Topology: ${metrics.topologyType} (confidence: ${metrics.topologyConfidence.toFixed(2)})`);
|
|
1667
|
+
console.log();
|
|
1668
|
+
}
|
|
1669
|
+
finally {
|
|
1670
|
+
store.close();
|
|
1671
|
+
}
|
|
1672
|
+
});
|
|
1673
|
+
// ── resilience (#805) ─────────────────────────────────────────────────────────
|
|
1674
|
+
program
|
|
1675
|
+
.command('resilience [repoPath]')
|
|
1676
|
+
.description('Analyze graph resilience — detect single points of failure (SPoF) and critical edges')
|
|
1677
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1678
|
+
.option('--json', 'Output raw JSON')
|
|
1679
|
+
.action((repoPath, opts) => {
|
|
1680
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
1681
|
+
if (!existsSync(dbPath)) {
|
|
1682
|
+
console.log('No knowledge graph found. Run `astrolabe analyze` first.');
|
|
1683
|
+
return;
|
|
1684
|
+
}
|
|
1685
|
+
const store = createSqliteStore(dbPath);
|
|
1686
|
+
try {
|
|
1687
|
+
const graph = store.loadGraph();
|
|
1688
|
+
// Build adjacency list from CALLS and IMPORTS edges (same as MCP handler)
|
|
1689
|
+
const adjList = new Map();
|
|
1690
|
+
for (const node of graph.iterNodes()) {
|
|
1691
|
+
if (!adjList.has(node.id))
|
|
1692
|
+
adjList.set(node.id, []);
|
|
1693
|
+
}
|
|
1694
|
+
for (const rel of graph.iterRelationships()) {
|
|
1695
|
+
if (rel.type === 'STEP_IN_PROCESS' || rel.type === 'MEMBER_OF' || rel.type === 'ENTRY_POINT_OF')
|
|
1696
|
+
continue;
|
|
1697
|
+
if (rel.type !== 'CALLS' && rel.type !== 'IMPORTS')
|
|
1698
|
+
continue;
|
|
1699
|
+
let targets = adjList.get(rel.sourceId);
|
|
1700
|
+
if (!targets) {
|
|
1701
|
+
targets = [];
|
|
1702
|
+
adjList.set(rel.sourceId, targets);
|
|
1703
|
+
}
|
|
1704
|
+
targets.push(rel.targetId);
|
|
1705
|
+
if (!adjList.has(rel.targetId))
|
|
1706
|
+
adjList.set(rel.targetId, []);
|
|
1707
|
+
}
|
|
1708
|
+
const cutVertices = detectCutVertices(adjList);
|
|
1709
|
+
const bridges = detectBridges(adjList);
|
|
1710
|
+
// Resolve names (staging API: CutVertexResult.nodeId, BridgeResult.sourceId/targetId)
|
|
1711
|
+
const namedCutVertices = cutVertices.map((cv) => {
|
|
1712
|
+
const node = graph.getNode(cv.nodeId);
|
|
1713
|
+
return { id: cv.nodeId, name: node?.properties.name ?? cv.nodeId };
|
|
1714
|
+
});
|
|
1715
|
+
const namedBridges = bridges.map((b) => {
|
|
1716
|
+
const srcNode = graph.getNode(b.sourceId);
|
|
1717
|
+
const tgtNode = graph.getNode(b.targetId);
|
|
1718
|
+
return {
|
|
1719
|
+
source: { id: b.sourceId, name: srcNode?.properties.name ?? b.sourceId },
|
|
1720
|
+
target: { id: b.targetId, name: tgtNode?.properties.name ?? b.targetId },
|
|
1721
|
+
};
|
|
1722
|
+
});
|
|
1723
|
+
const nodeCount = adjList.size;
|
|
1724
|
+
const edgeCount = Array.from(adjList.values()).reduce((s, t) => s + t.length, 0);
|
|
1725
|
+
if (opts.json) {
|
|
1726
|
+
console.log(JSON.stringify({
|
|
1727
|
+
nodeCount,
|
|
1728
|
+
edgeCount,
|
|
1729
|
+
cutVertices: { count: cutVertices.length, nodes: namedCutVertices },
|
|
1730
|
+
bridgeEdges: { count: bridges.length, edges: namedBridges },
|
|
1731
|
+
isBiconnected: cutVertices.length === 0 && bridges.length === 0,
|
|
1732
|
+
}, null, 2));
|
|
1733
|
+
return;
|
|
1734
|
+
}
|
|
1735
|
+
console.log(`\n=== Graph Resilience Analysis ===`);
|
|
1736
|
+
console.log(`Nodes: ${nodeCount} | Edges: ${edgeCount}`);
|
|
1737
|
+
console.log();
|
|
1738
|
+
if (cutVertices.length === 0 && bridges.length === 0) {
|
|
1739
|
+
console.log('\u2713 The graph is biconnected \u2014 no single points of failure detected.');
|
|
1740
|
+
}
|
|
1741
|
+
else {
|
|
1742
|
+
if (cutVertices.length > 0) {
|
|
1743
|
+
console.log(`--- Single Points of Failure (${cutVertices.length} cut vertices) ---`);
|
|
1744
|
+
console.log('These nodes, if removed, would disconnect the dependency graph:');
|
|
1745
|
+
for (const n of namedCutVertices.slice(0, 20)) {
|
|
1746
|
+
console.log(` \u26A0 ${n.name}`);
|
|
1747
|
+
}
|
|
1748
|
+
if (namedCutVertices.length > 20) {
|
|
1749
|
+
console.log(` ... and ${namedCutVertices.length - 20} more`);
|
|
1750
|
+
}
|
|
1751
|
+
console.log();
|
|
1752
|
+
}
|
|
1753
|
+
if (bridges.length > 0) {
|
|
1754
|
+
console.log(`--- Critical Dependency Bridges (${bridges.length} bridge edges) ---`);
|
|
1755
|
+
console.log('These edges are the ONLY connection between subsystems:');
|
|
1756
|
+
for (const b of namedBridges.slice(0, 20)) {
|
|
1757
|
+
console.log(` \u26A1 ${b.source.name} \u2192 ${b.target.name}`);
|
|
1758
|
+
}
|
|
1759
|
+
if (namedBridges.length > 20) {
|
|
1760
|
+
console.log(` ... and ${namedBridges.length - 20} more`);
|
|
1761
|
+
}
|
|
1762
|
+
console.log();
|
|
1763
|
+
}
|
|
1764
|
+
}
|
|
1765
|
+
}
|
|
1766
|
+
finally {
|
|
1767
|
+
store.close();
|
|
1768
|
+
}
|
|
1769
|
+
});
|
|
1770
|
+
// ── test-coverage (#811) ─────────────────────────────────────────────────────
|
|
1771
|
+
program
|
|
1772
|
+
.command('test-coverage [repoPath]')
|
|
1773
|
+
.description('Analyze test coverage using graph structure — per-community metrics and gap prioritization (#811)')
|
|
1774
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1775
|
+
.option('--json', 'Output raw JSON')
|
|
1776
|
+
.action((repoPath, opts) => {
|
|
1777
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
1778
|
+
if (!existsSync(dbPath)) {
|
|
1779
|
+
console.log('No knowledge graph found. Run `astrolabe analyze` first.');
|
|
1780
|
+
return;
|
|
1781
|
+
}
|
|
1782
|
+
const store = createSqliteStore(dbPath);
|
|
1783
|
+
try {
|
|
1784
|
+
const graph = store.loadGraph();
|
|
1785
|
+
const metrics = computeGraphCoverageMetrics(graph);
|
|
1786
|
+
if (opts.json) {
|
|
1787
|
+
console.log(JSON.stringify(metrics, null, 2));
|
|
1788
|
+
return;
|
|
1789
|
+
}
|
|
1790
|
+
if (metrics.totalFunctionNodes === 0) {
|
|
1791
|
+
console.log('No function nodes found. Run `astrolabe analyze` first.');
|
|
1792
|
+
return;
|
|
1793
|
+
}
|
|
1794
|
+
console.log(`\n=== Test Coverage Analysis (Graph-Aware) ===`);
|
|
1795
|
+
console.log(`\nOverall:`);
|
|
1796
|
+
console.log(` Node coverage: ${metrics.overallNodeCoveragePercent.toFixed(1)}% (${metrics.coveredFunctionNodes} covered / ${metrics.partialFunctionNodes} partial / ${metrics.uncoveredFunctionNodes} uncovered of ${metrics.totalFunctionNodes} total)`);
|
|
1797
|
+
console.log(` Edge coverage: ${metrics.overallEdgeCoveragePercent.toFixed(1)}% (${metrics.coveredCallEdges} covered / ${metrics.totalCallEdges} total call edges)`);
|
|
1798
|
+
console.log(`\n--- Per-Community Coverage (${metrics.communities.length} communities) ---`);
|
|
1799
|
+
for (const c of metrics.communities) {
|
|
1800
|
+
const bar = '█'.repeat(Math.round(c.nodeCoveragePercent / 10)) + '░'.repeat(10 - Math.round(c.nodeCoveragePercent / 10));
|
|
1801
|
+
console.log(` ${c.communityName}: ${bar} ${c.nodeCoveragePercent.toFixed(0)}% nodes`);
|
|
1802
|
+
for (const gap of c.topGaps.slice(0, 3)) {
|
|
1803
|
+
console.log(` ⚠ ${gap.label}:${gap.name} (impact: ${gap.impact})`);
|
|
1804
|
+
}
|
|
1805
|
+
}
|
|
1806
|
+
if (metrics.topUntestedHighImpact.length > 0) {
|
|
1807
|
+
console.log(`\n--- Top Untested High-Impact Symbols ---`);
|
|
1808
|
+
for (const gap of metrics.topUntestedHighImpact.slice(0, 15)) {
|
|
1809
|
+
console.log(` ⚠ [${gap.community}] ${gap.label}:${gap.name} — ${gap.impact} dependents`);
|
|
1810
|
+
}
|
|
1811
|
+
if (metrics.topUntestedHighImpact.length > 15) {
|
|
1812
|
+
console.log(` ... and ${metrics.topUntestedHighImpact.length - 15} more`);
|
|
1813
|
+
}
|
|
1814
|
+
}
|
|
1815
|
+
console.log();
|
|
1816
|
+
}
|
|
1817
|
+
finally {
|
|
1818
|
+
store.close();
|
|
1819
|
+
}
|
|
1820
|
+
});
|
|
1821
|
+
// ── gnn-export (GNN feature engineering and dataset export, #809) ───────────
|
|
1822
|
+
program
|
|
1823
|
+
.command('gnn-export [repoPath]')
|
|
1824
|
+
.description('Export GNN-ready feature vectors and dataset from the knowledge graph (#809)')
|
|
1825
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1826
|
+
.option('-o, --output <path>', 'Output directory', '.astrolabe/gnn-dataset/')
|
|
1827
|
+
.option('--format <format>', 'Output format: csv or json', 'csv')
|
|
1828
|
+
.option('--include-embeddings', 'Include 384-D embedding vectors in node features')
|
|
1829
|
+
.action((repoPath, opts) => {
|
|
1830
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
1831
|
+
if (!existsSync(dbPath)) {
|
|
1832
|
+
console.error(`Database not found: ${dbPath}`);
|
|
1833
|
+
console.error('Run `astrolabe analyze <repo>` first.');
|
|
1834
|
+
process.exit(1);
|
|
1835
|
+
}
|
|
1836
|
+
const format = (opts.format === 'json' ? 'json' : 'csv');
|
|
1837
|
+
const outputPath = resolve(opts.output);
|
|
1838
|
+
const store = createSqliteStore(resolve(dbPath));
|
|
1839
|
+
try {
|
|
1840
|
+
const graph = store.loadGraph();
|
|
1841
|
+
console.log(`Loaded graph: ${graph.nodeCount.toLocaleString()} nodes, ${graph.relationshipCount.toLocaleString()} edges`);
|
|
1842
|
+
const result = exportGnnDataset(graph, outputPath, {
|
|
1843
|
+
dbPath: resolve(dbPath),
|
|
1844
|
+
includeEmbeddings: opts.includeEmbeddings,
|
|
1845
|
+
format,
|
|
1846
|
+
});
|
|
1847
|
+
console.log(`\nGNN dataset exported to: ${result.exportPath}`);
|
|
1848
|
+
console.log(` Nodes: ${result.nodeCount.toLocaleString()}`);
|
|
1849
|
+
console.log(` Edges: ${result.edgeCount.toLocaleString()}`);
|
|
1850
|
+
console.log(` Feature dims: ${result.featureDimensions}`);
|
|
1851
|
+
console.log(` Format: ${format}`);
|
|
1852
|
+
console.log(` Embeddings: ${opts.includeEmbeddings ? 'included' : 'not included'}`);
|
|
1853
|
+
console.log(`\nOutput files:`);
|
|
1854
|
+
console.log(` ${join(outputPath, format === 'json' ? 'nodes.json' : 'nodes.csv')}`);
|
|
1855
|
+
console.log(` ${join(outputPath, format === 'json' ? 'edges.json' : 'edges.csv')}`);
|
|
1856
|
+
console.log(` ${join(outputPath, 'node_labels.json')}`);
|
|
1857
|
+
console.log(` ${join(outputPath, 'edge_types.json')}`);
|
|
1858
|
+
}
|
|
1859
|
+
finally {
|
|
1860
|
+
store.close();
|
|
1861
|
+
}
|
|
1862
|
+
});
|
|
1863
|
+
// ── embed (semantic embedding computation, #813) ──────────────────────────────
|
|
1864
|
+
program
|
|
1865
|
+
.command('embed [repoPath]')
|
|
1866
|
+
.description('Compute semantic embeddings for code nodes with optional propagation (#813)')
|
|
1867
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1868
|
+
.option('--propagate', 'Propagate embeddings along graph edges (neighbor averaging)', false)
|
|
1869
|
+
.option('--propagate-hops <n>', 'Number of hops for embedding propagation', '1')
|
|
1870
|
+
.option('--threshold <n>', 'Cosine similarity threshold for SEMANTICALLY_SIMILAR edges', '0.85')
|
|
1871
|
+
.option('--provider <type>', 'Embedding provider (auto, transformers, tfidf, remote)', 'auto')
|
|
1872
|
+
.option('--no-edges', 'Skip creating SEMANTICALLY_SIMILAR edges')
|
|
1873
|
+
.option('--log-level <level>', 'Log level', 'info')
|
|
1874
|
+
.action(async (repoPath, opts) => {
|
|
1875
|
+
const resolvedPath = repoPath ? resolve(repoPath) : process.cwd();
|
|
1876
|
+
const dbPath = opts.db !== '.astrolabe/astrolabe.db' ? resolve(opts.db) : join(resolvedPath, '.astrolabe', 'astrolabe.db');
|
|
1877
|
+
const propagateHops = parseInt(opts.propagateHops, 10) || 1;
|
|
1878
|
+
const threshold = parseFloat(opts.threshold) || 0.85;
|
|
1879
|
+
if (!existsSync(dbPath)) {
|
|
1880
|
+
console.error(`Database not found: ${dbPath}`);
|
|
1881
|
+
console.error('Run `astrolabe analyze <repo>` first.');
|
|
1882
|
+
process.exit(1);
|
|
1883
|
+
}
|
|
1884
|
+
const store = createSqliteStore(dbPath);
|
|
1885
|
+
try {
|
|
1886
|
+
const graph = store.loadGraph();
|
|
1887
|
+
console.log(`Loaded graph: ${graph.nodeCount.toLocaleString()} nodes, ${graph.relationshipCount.toLocaleString()} edges`);
|
|
1888
|
+
// Step 1: Compute embeddings
|
|
1889
|
+
const providerType = opts.provider;
|
|
1890
|
+
const result = await computeEmbeddings(graph, { provider: providerType, dbPath });
|
|
1891
|
+
console.log(`Embeddings computed: ${result.nodeCount.toLocaleString()} nodes (${result.dimensions}D)`);
|
|
1892
|
+
// Step 2: Propagate if requested
|
|
1893
|
+
if (opts.propagate) {
|
|
1894
|
+
const propagated = propagateEmbeddings(graph, result.embeddings, propagateHops);
|
|
1895
|
+
console.log(`Embeddings propagated: ${propagated.size.toLocaleString()} nodes, ${propagateHops} hop(s)`);
|
|
1896
|
+
}
|
|
1897
|
+
// Step 3: Create semantic edges (unless --no-edges)
|
|
1898
|
+
if (opts.edges) {
|
|
1899
|
+
const edges = createSemanticEdges(graph, result.embeddings, threshold);
|
|
1900
|
+
console.log(`Semantic edges created: ${edges.edgesAdded} edges (threshold=${threshold})`);
|
|
1901
|
+
if (edges.edgesAdded > 0) {
|
|
1902
|
+
store.saveGraph(graph);
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
console.log('Embedding computation complete.');
|
|
1906
|
+
}
|
|
1907
|
+
finally {
|
|
1908
|
+
store.close();
|
|
1909
|
+
}
|
|
1910
|
+
});
|
|
1911
|
+
// ── evolution (temporal graph snapshots) ────────────────────────────────────
|
|
1912
|
+
// #807: Temporal graph evolution — view snapshots and trends
|
|
1913
|
+
program
|
|
1914
|
+
.command('evolution [repoPath]')
|
|
1915
|
+
.description('View temporal graph evolution — snapshots, health trends, and diffs over time')
|
|
1916
|
+
.option('-d, --db <path>', 'Database path', '.astrolabe/astrolabe.db')
|
|
1917
|
+
.option('--since <iso-date>', 'ISO 8601 start date for snapshot range')
|
|
1918
|
+
.option('--until <iso-date>', 'ISO 8601 end date for snapshot range')
|
|
1919
|
+
.option('--format <format>', 'Output format: table (default) or json', 'table')
|
|
1920
|
+
.action((repoPath, opts) => {
|
|
1921
|
+
const dbPath = repoPath ? join(repoPath, '.astrolabe', 'astrolabe.db') : opts.db;
|
|
1922
|
+
if (!existsSync(dbPath)) {
|
|
1923
|
+
console.log('No analysis found. Run `astrolabe analyze <repo>` first.');
|
|
1924
|
+
return;
|
|
1925
|
+
}
|
|
1926
|
+
const store = createSqliteStore(dbPath);
|
|
1927
|
+
try {
|
|
1928
|
+
const snapshots = store.loadSnapshots(opts.since, opts.until);
|
|
1929
|
+
if (snapshots.length === 0) {
|
|
1930
|
+
console.log('No snapshots found. Run `astrolabe analyze` to create the first snapshot.');
|
|
1931
|
+
return;
|
|
1932
|
+
}
|
|
1933
|
+
const trend = detectTrends(snapshots);
|
|
1934
|
+
if (opts.format === 'json') {
|
|
1935
|
+
const output = snapshots.map((s) => ({
|
|
1936
|
+
id: s.id,
|
|
1937
|
+
timestamp: s.timestamp,
|
|
1938
|
+
commitSha: s.commitSha.slice(0, 7),
|
|
1939
|
+
branch: s.branch,
|
|
1940
|
+
nodes: s.nodeCount,
|
|
1941
|
+
edges: s.edgeCount,
|
|
1942
|
+
communities: s.communityCount,
|
|
1943
|
+
health: s.healthScore,
|
|
1944
|
+
cohesion: Math.round(s.cohesion * 1000) / 1000,
|
|
1945
|
+
complexity: Math.round(s.complexity * 1000) / 1000,
|
|
1946
|
+
cycles: s.cycleCount,
|
|
1947
|
+
hubs: s.hubCount,
|
|
1948
|
+
unstableDeps: s.unstableDepCount,
|
|
1949
|
+
}));
|
|
1950
|
+
console.log(JSON.stringify({
|
|
1951
|
+
repo: repoPath ?? 'unknown',
|
|
1952
|
+
snapshotCount: snapshots.length,
|
|
1953
|
+
trend,
|
|
1954
|
+
snapshots: output,
|
|
1955
|
+
}, null, 2));
|
|
1956
|
+
return;
|
|
1957
|
+
}
|
|
1958
|
+
// Table format
|
|
1959
|
+
const headers = ['Timestamp', 'Nodes', 'Edges', 'Health', 'Cycles', 'Hubs', 'Trend'];
|
|
1960
|
+
const colWidths = [20, 8, 8, 8, 8, 6, 10];
|
|
1961
|
+
const pad = (s, w) => s.padEnd(w);
|
|
1962
|
+
console.log();
|
|
1963
|
+
console.log(`Temporal Graph Evolution (${snapshots.length} snapshot(s))`);
|
|
1964
|
+
console.log(`Repo: ${repoPath ?? 'unknown'}`);
|
|
1965
|
+
console.log();
|
|
1966
|
+
console.log(headers.map((h, i) => pad(h, colWidths[i])).join(''));
|
|
1967
|
+
console.log(colWidths.map((w) => '-'.repeat(w)).join(''));
|
|
1968
|
+
for (let i = 0; i < snapshots.length; i++) {
|
|
1969
|
+
const s = snapshots[i];
|
|
1970
|
+
let trendIcon = '';
|
|
1971
|
+
if (i > 0) {
|
|
1972
|
+
const delta = s.healthScore - snapshots[i - 1].healthScore;
|
|
1973
|
+
trendIcon = delta > 1 ? '\u2191' : delta < -1 ? '\u2193' : '\u2192';
|
|
1974
|
+
}
|
|
1975
|
+
const cols = [
|
|
1976
|
+
s.timestamp.replace('T', ' ').slice(0, 19),
|
|
1977
|
+
String(s.nodeCount),
|
|
1978
|
+
String(s.edgeCount),
|
|
1979
|
+
s.healthScore.toFixed(1),
|
|
1980
|
+
String(s.cycleCount),
|
|
1981
|
+
String(s.hubCount),
|
|
1982
|
+
trendIcon,
|
|
1983
|
+
];
|
|
1984
|
+
console.log(cols.map((c, ci) => pad(c, colWidths[ci])).join(''));
|
|
1985
|
+
}
|
|
1986
|
+
// Trend summary
|
|
1987
|
+
console.log();
|
|
1988
|
+
const trendLabel = trend.direction === 'improving' ? '\u2191 IMPROVING' : trend.direction === 'degrading' ? '\u2193 DEGRADING' : '\u2192 STABLE';
|
|
1989
|
+
console.log(`Health Trend: ${trendLabel} (slope: ${trend.slope > 0 ? '+' : ''}${trend.slope.toFixed(3)}/snapshot, confidence: ${(trend.confidence * 100).toFixed(0)}%)`);
|
|
1990
|
+
console.log(`Current Score: ${trend.currentScore.toFixed(1)} \u2192 Projected: ${trend.projectedScore.toFixed(1)}`);
|
|
1991
|
+
console.log();
|
|
1992
|
+
}
|
|
1993
|
+
finally {
|
|
1994
|
+
store.close();
|
|
1995
|
+
}
|
|
1996
|
+
});
|
|
1251
1997
|
program.parse();
|
|
1252
1998
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,oBAAoB,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAC9F,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAClE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAC7C,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EAAE,oBAAoB,EACzC,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAC9C,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAC7D,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EACpD,aAAa,EACb,aAAa,EACb,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAC9C,YAAY,EACZ,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EACzF,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EACjD,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAC1E,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,+BAA+B;AAC/B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEnG,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,CAAC;QAAC,OAAO,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAC3F,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;AAC7B,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAErG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/H,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,CAAC;KAChF,MAAM,CAAC,qBAAqB,EAAE,sCAAsC,EAAE,MAAM,CAAC;KAC7E,MAAM,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;KACtE,MAAM,CAAC,kBAAkB,EAAE,4CAA4C,CAAC;KACxE,MAAM,CAAC,UAAU,EAAE,8CAA8C,CAAC;KAClE,MAAM,CAAC,YAAY,EAAE,sDAAsD,CAAC;KAC5E,MAAM,CAAC,sBAAsB,EAAE,wDAAwD,EAAE,QAAQ,CAAC;KAClG,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAuK,EAAE,EAAE;IAC1M,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAe,EAAE,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjE,qDAAqD;IACrD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,gDAAgD,OAAO,CAAC,GAAG,CAAC,uBAAuB,oBAAoB,CAAC,CAAC;IACpH,CAAC;IAED,IAAI,MAAM,GAA4C,IAAI,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEpC,qEAAqE;QACrE,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;QAEnC,yEAAyE;QACzE,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACpE,MAAM,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,UAAU,GAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAA4B,CAAC;QAChF,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK;YAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAEpE,iEAAiE;QACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAA8C,CAAC;QACnD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC,uCAAuC;QAElE,kEAAkE;QAClE,IAAI,UAAU,GAA2C,IAAI,CAAC;QAE9D,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;YAC3B,yBAAyB;YACzB,aAAa,GAAG,IAAI,CAAC,CAAC,uCAAuC;YAC7D,GAAG,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACnF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBACtD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;aAC/D,CAAC,CAAC;YAEH,iEAAiE;YACjE,IAAI,YAAY,KAAK,CAAC,IAAI,UAAU,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC/D,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBACpD,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YAED,+DAA+D;YAC/D,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YAC9B,SAAS,CAAC,KAAK,EAAE,CAAC;YAElB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO;gBAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC3D,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO;gBAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAE3D,4EAA4E;YAC5E,0EAA0E;YAC1E,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC3D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,8DAA8D;YAC9D,MAAM,eAAe,GAAoB;gBACvC,YAAY,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnC,UAAU,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC/B,YAAY,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnC,cAAc,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvC,aAAa,EAAE,IAAI;aACpB,CAAC;YAEF,wCAAwC;YACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YAC7E,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAChD,oFAAoF;YACpF,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrF,MAAM,WAAW,CAAC;gBAChB,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc;gBAC7D,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc;gBAClE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB;gBAClE,aAAa;gBACb,UAAU;gBACV,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB;aAC7D,EAAE,GAAG,CAAC,CAAC;YAER,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YAC5B,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAClF,kEAAkE;YAClE,UAAU,GAAG,GAAG,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,KAAK,GAAG,oBAAoB,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YACpD,MAAM,WAAW,CAAC;gBAChB,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc;gBAC7D,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc;gBAClE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB;gBAClE,aAAa;gBACb,UAAU;gBACV,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB;aAC7D,EAAE,OAAO,CAAC,CAAC;YACZ,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YAC5B,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3E,kEAAkE;YAClE,UAAU,GAAG,OAAO,CAAC;QACvB,CAAC;QAED,2DAA2D;QAC3D,IAAI,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAiC,CAAC;YACzF,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAA0E,CAAC;YAC/H,MAAM,WAAW,GAAG;gBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC;gBAC7B,MAAM,EAAE,GAAG,IAAI,IAAI;gBACnB,SAAS;gBACT,SAAS;aACV,CAAC;YACF,4EAA4E;YAC5E,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC/C,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,sEAAsE;QACtE,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,mEAAmE;QACnE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;QAEhE,8DAA8D;QAC9D,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;QACtD,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC;QACvG,IAAI,WAAW,IAAI,CAAC;YAAE,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;;YAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpB,wDAAwD;QACxD,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAEpG,oEAAoE;QACpE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,uBAAuB;YACvB,MAAM,EAAE,GAA2B,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE;gBAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAExE,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,EAAE;gBAC/C,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,iBAAiB,EAAE,SAAS;gBAC5B,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;gBAChC,cAAc,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC5B,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC1B,UAAU;gBACV,aAAa;gBACb,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBACtC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;gBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;aAC/B,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9I,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,OAAO,EAAE,CAAC;IACpB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,sBAAsB,EAAE,aAAa,EAAE,IAAI,CAAC;KACnD,MAAM,CAAC,CAAC,MAAc,EAAE,IAAmC,EAAE,EAAE;IAC9D,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC7D,CAAC;YAAS,CAAC;QAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,wBAAwB,EAAE,yCAAyC,EAAE,OAAO,CAAC;KACpF,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,EAAE,MAAM,CAAC;KAChF,MAAM,CAAC,mBAAmB,EAAE,8CAA8C,EAAE,WAAW,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,IAAuD,EAAE,EAAE;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,SAA6B,CAAC;IACzD,IAAI,aAAa,KAAK,OAAO,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,0BAA0B,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,cAAc,CAAC;QACnB,SAAS,EAAE,aAAa;QACxB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,6EAA6E;AAC7E,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,WAAW,CAAC;KAC3D,MAAM,CAAC,CAAC,IAAoC,EAAE,EAAE;IAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEL,4EAA4E;AAC5E,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,WAAW,CAAC;KAC3D,MAAM,CAAC,0BAA0B,EAAE,kCAAkC,EAAE,KAAK,CAAC;KAC7E,MAAM,CAAC,CAAC,IAAyD,EAAE,EAAE;IACpE,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEL,iFAAiF;AACjF,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAC9G,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACrH,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,YAAY,EAAE,oBAAoB,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;gBAC9F,CAAC;YAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEL,kFAAkF;AAClF,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,GAAG,EAAE;IACX,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAAC,CAAC;SAClI,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEL,kFAAkF;AAClF,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,qBAAqB,EAAE,sCAAsC,EAAE,MAAM,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,EAAE,QAAQ,EAAE,GAAG,CAAC;KAC7E,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAwD,EAAE,EAAE;IAC3F,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,KAAK,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE;YACxC,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAChF,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,4FAA4F,CAAC;KACzG,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,CAAC;KACpF,MAAM,CAAC,SAAS,EAAE,uCAAuC,CAAC;KAC1D,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;KACtD,MAAM,CAAC,CAAC,QAA4B,EAAE,IAA6D,EAAE,EAAE;IACtG,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;IAE9C,uEAAuE;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,yCAAyC;IACzC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yDAAyD;IACzD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACjC,QAAQ,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC1C,CAAC;gBAAS,CAAC;YAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0CAA0C;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,mCAAmC,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gDAAgD;IAChD,IAAI,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,SAAS,CAAC;IAC/C,IAAI,SAA6B,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,UAAU,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7F,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC;IAC3G,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,IAAI,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,uBAAuB,CAAC,CAAC;IAC9D,CAAC;IACD,YAAY,CAAC,KAAK,CAAC,CAAC;IAEpB,OAAO,CAAC,GAAG,CAAC,WAAW,YAAY,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,oBAAoB,QAAQ,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,iFAAiF;AACjF,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,SAAS,EAAE,oDAAoD,CAAC;KACvE,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAA0C,EAAE,EAAE;IAC3E,qDAAqD;IACrD,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAC9E,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,gCAAgC,MAAM,UAAU,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAEpD,0CAA0C;IAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,GAAG,EAAE,EAAE;YAC/C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,EAAE,CAAC,QAAQ,CAAC,8BAA8B,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,IAAI,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,kCAAkC,YAAY,GAAG,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,wDAAwD;AACxD,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,wEAAwE,CAAC;KACrF,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,CAAC;KAChF,MAAM,CAAC,qBAAqB,EAAE,sCAAsC,EAAE,MAAM,CAAC;KAC7E,MAAM,CAAC,CAAC,UAAkB,EAAE,IAA0C,EAAE,EAAE;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,SAAS,WAAW,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC;QACxF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kFAAkF;AAClF,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,CAAC,UAAkB,EAAE,IAAoB,EAAE,EAAE;IACnD,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,IAAI,CAAC,CAAC;QAAC,CAAC;aACnF,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,IAAI,CAAC,CAAC;YAAC,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;QAAC,CAAC;IACxI,CAAC;YAAS,CAAC;QAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,kFAAkF;AAClF,OAAO;KACJ,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,CAAC,UAAkB,EAAE,IAAoB,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAEhC,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,GAAG,EAA0E,CAAC;QAC9F,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC5C,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC;gBAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;YACjF,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC;gBAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxC,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACzC,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC;oBACxD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;gBAC3G,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;IACpE,CAAC;YAAS,CAAC;QAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,kFAAkF;AAClF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,8CAA8C,CAAC;KACzE,MAAM,CAAC,CAAC,IAAoC,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;gBAAE,SAAS;YACtD,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC;YAC7G,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBAAC,MAAM;YAAC,CAAC;QACpE,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,mFAAmF;AACnF,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC;KACvE,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;IACnC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,yDAAyD,CAAC,CAAC;AAEjH,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;KAC9B,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;KAC9B,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,WAAW,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,+BAA+B,CAAC;KAC9C,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,CAAC,KAAa,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE;IACxD,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,eAAe,KAAK,cAAc,IAAI,IAAI,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,4BAA4B,CAAC;KAC3C,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;IACtC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,iBAAiB,KAAK,IAAI,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;KACrB,WAAW,CAAC,iBAAiB,CAAC;KAC9B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;IACnC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAChH,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;KAC9B,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,IAAY,EAAE,IAAwB,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,SAAS,CAAC,CAAC;IACjE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,cAAc,OAAO,GAAG,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC;KACjC,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;KACtE,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;KACvE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,IAAY,EAAE,IAA2E,EAAE,EAAE;IACpG,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,qCAAqC,IAAI,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,gCAAgC,IAAI,UAAU,CAAC,CAAC;QACvG,CAAC;QACD,OAAO;IACT,CAAC;IAED,gBAAgB;IAChB,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CACpC,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;YAC1D,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;YACzC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;YACzC,cAAc,EAAE,UAAU,CAAC,MAAM;YACjC,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,UAAU;YACV,UAAU,EAAG,SAAiB,CAAC,UAAU,IAAI,EAAE;SAChD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAI,SAAiB,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,MAAM,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrH,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAChH,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,iBAAiB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACvH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC;KACrC,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;KAC5E,MAAM,CAAC,aAAa,EAAE,sBAAsB,EAAE,GAAG,CAAC;KAClD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,IAAY,EAAE,KAAa,EAAE,IAA2D,EAAE,EAAE;IACnG,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAE/C,yCAAyC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC5B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC;IAEZ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxJ,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,eAAe,IAAI,MAAM,YAAY,mBAAmB,QAAQ,CAAC,MAAM,UAAU,CAAC,CAAC;IAEpH,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC;QACzC,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;KAC5B,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,aAAa,eAAe,CAAC,CAAC,aAAa,eAAe,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnK,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEL,6EAA6E;AAC7E,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACrB,WAAW,CAAC,gFAAgF,CAAC;KAC7F,MAAM,CAAC,SAAS,EAAE,mCAAmC,CAAC;KACtD,MAAM,CAAC,CAAC,IAAyB,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;IAC/C,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,uEAAuE,CAAC,CAAC;IACtG,CAAC;AACH,CAAC,CAAC,CAAC;AAYL,SAAS,eAAe,CACtB,KAA8C,EAC9C,QAAqB,EACrB,QAAgB;IAEhB,sCAAsC;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2F,CAAC;IAC/G,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC5C,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,MAAM,GAAG,EAAE,CAAC;YAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,MAAM,GAAG,EAAE,CAAC;YAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,oDAAoD;IACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,QAAQ,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,CAAC;IAEzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAClC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;oBAAE,SAAS;gBACtC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU;oBAC7C,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,SAAS;oBACnC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,EAAE;oBAC7C,YAAY,EAAE,IAAI;oBAClB,SAAS;oBACT,KAAK;iBACN,CAAC,CAAC;gBACH,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,QAAQ,GAAG,YAAY,CAAC;QACxB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM;IACjC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,2FAA2F,CAAC;KACxG,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,CAAC;KAClE,MAAM,CAAC,CAAC,OAAe,EAAE,IAAmD,EAAE,EAAE;IAC/E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAExD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAEhC,2DAA2D;QAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAA4F,EAAE,CAAC;QAC5G,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAI,IAAI,CAAC,UAAU,CAAC,IAAe,IAAI,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI;oBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ,EAAG,IAAI,CAAC,UAAU,CAAC,QAAmB,IAAI,EAAE;oBACpD,SAAS,EAAG,IAAI,CAAC,UAAU,CAAC,SAAoB,IAAI,CAAC;iBACtD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,IAAI,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAExD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG;gBACb,OAAO;gBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;aACJ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtG,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAClE,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC9E,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,WAAW,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAC9E,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;KAC/B,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,CAAC;KAC1D,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KAC9C,MAAM,CAAC,uBAAuB,EAAE,oEAAoE,CAAC;KACrG,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,SAAS,EAAE,iCAAiC,CAAC;KACpD,MAAM,CAAC,UAAU,EAAE,mDAAmD,CAAC;KACvE,MAAM,CAAC,UAAU,EAAE,uCAAuC,CAAC;KAC3D,MAAM,CAAC,QAAQ,EAAE,qDAAqD,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,EAAE,QAAQ,CAAC;KAC9E,MAAM,CAAC,mBAAmB,EAAE,uDAAuD,CAAC;KACpF,MAAM,CAAC,sBAAsB,EAAE,mCAAmC,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAA+N,EAAE,EAAE;IAClQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAE5D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,KAAK,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,QAAQ,EAAE,QAAQ,EAAE,KAAK;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;QAC7D,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;QAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;QACzD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc;KACpE,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,SAAS,WAAW,MAAM,CAAC,WAAW,UAAU,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iFAAiF;AACjF,OAAO;KACJ,OAAO,CAAC,iCAAiC,CAAC;KAC1C,WAAW,CAAC,+EAA+E,CAAC;KAC5F,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;KACnC,MAAM,CAAC,CAAC,QAA4B,EAAE,IAAoC,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACjF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,yDAAyD;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;IAE1D,8CAA8C;IAC9C,MAAM,WAAW,GAA6C,EAAE,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAG,IAAI,CAAC,UAAU,CAAC,WAAsB,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAErE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtH,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IAExI,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,SAAS,aAAa,OAAO,CAAC,SAAS,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC7J,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,aAAa,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,wBAAwB,YAAY,aAAa,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7G,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,YAAY,UAAU,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChL,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,YAAY;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,+EAA+E;AAC/E,OAAO;KACJ,OAAO,CAAC,+BAA+B,CAAC;KACxC,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,uEAAuE,CAAC;KAClG,MAAM,CAAC,eAAe,EAAE,gDAAgD,CAAC;KACzE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAAoE,EAAE,EAAE;IACzG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAI,IAAI,CAAC,MAAwD,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACvG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC1G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEpD,qBAAqB;IACrB,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAExD,kCAAkC;QAClC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEvB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,MAAM;gBACN,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;oBAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1D,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;iBACnE;gBACD,UAAU,EAAE,MAAM;aACnB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,WAAW,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1H,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxI,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,cAAc,QAAQ,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iFAAiF;AACjF,OAAO;KACJ,OAAO,CAAC,0BAA0B,CAAC;KACnC,WAAW,CAAC,yEAAyE,CAAC;KACtF,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;KACrE,MAAM,CAAC,cAAc,EAAE,yDAAyD,CAAC;KACjF,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,MAAM,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,QAAiB,EAAE,IAA4F,EAAE,EAAE;IAChI,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,yBAAyB,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,iBAAiB,GAAG,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC;QAElD,4BAA4B;QAC5B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE9D,kBAAkB;QAClB,MAAM,eAAe,GAAG;YACtB,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAmB,EAAE;YACvF,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,uFAAuF,EAAE,QAAQ,EAAE,UAAmB,EAAE;YAC3J,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,UAAmB,EAAE;YAChG,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,UAAmB,EAAE;YACxF,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,qCAAqC,EAAE,QAAQ,EAAE,MAAe,EAAE;YAClG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gDAAgD,EAAE,QAAQ,EAAE,UAAmB,EAAE;YACjH,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,uDAAuD,EAAE,QAAQ,EAAE,QAAiB,EAAE;YAC9G,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,4DAA4D,EAAE,QAAQ,EAAE,MAAe,EAAE;YAC7H,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,uEAAuE,EAAE,QAAQ,EAAE,MAAe,EAAE;YACvI,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAe,EAAE;YACxF,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,UAAmB,EAAE;SAC5G,CAAC;QAEF,MAAM,iBAAiB,GAAG;YACxB,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,sDAAsD,CAAC,EAAE,QAAQ,EAAE,QAAiB,EAAE;YACrH,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,yDAAyD,CAAC,EAAE,QAAQ,EAAE,QAAiB,EAAE;YAC1H,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,4EAA4E,CAAC,EAAE,QAAQ,EAAE,MAAe,EAAE;YACxI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,qDAAqD,CAAC,EAAE,QAAQ,EAAE,KAAc,EAAE;YACpH,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,6DAA6D,CAAC,EAAE,QAAQ,EAAE,MAAe,EAAE;SAC9H,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAEtK,MAAM,QAAQ,GAAmH,EAAE,CAAC;QACpI,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAC3D,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAExC,kBAAkB;YAClB,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,eAAe,EAAE,CAAC;oBACvE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC;wBAAE,SAAS;oBAC1D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBACxD,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBACxB,WAAW,EAAE,CAAC;wBACd,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,WAAW,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC1K,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,iBAAiB,EAAE,CAAC;oBACjE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC;wBAAE,SAAS;oBAC1D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;wBAChD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC3B,oBAAoB,EAAE,CAAC;4BACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,QAAQ,eAAe,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;4BACpL,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,UAAU,GAAY,IAAI,CAAC;QAC/B,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACzG,MAAM,UAAU,GAAG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAClD,MAAM,OAAO,GAAgE,EAAE,CAAC;gBAChF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;oBAChD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,GAAG,EAAE,KAAK,EAAE,4BAA4B,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACpE,CAAC;QACH,CAAC;QAED,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClK,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,oBAAoB,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,oBAAoB;gBACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;gBACtD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACZ,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAClC,CAAC;gBACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,CAAC,MAAM,YAAY,CAAC,CAAC;oBACjE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;oBAC3D,CAAC;oBACD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;wBAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;oBAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|