@winspan/claude-forge 2.6.4 → 2.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +2 -2
  2. package/dist/backup/index.d.ts +2 -2
  3. package/dist/backup/index.d.ts.map +1 -1
  4. package/dist/backup/index.js +5 -7
  5. package/dist/backup/index.js.map +1 -1
  6. package/dist/claudemd/writer.d.ts +1 -0
  7. package/dist/claudemd/writer.d.ts.map +1 -1
  8. package/dist/claudemd/writer.js +12 -0
  9. package/dist/claudemd/writer.js.map +1 -1
  10. package/dist/convention/convention-manager.d.ts +2 -4
  11. package/dist/convention/convention-manager.d.ts.map +1 -1
  12. package/dist/convention/convention-manager.js +6 -25
  13. package/dist/convention/convention-manager.js.map +1 -1
  14. package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
  15. package/dist/daemon/handlers/post-tool-use-handler.js +2 -1
  16. package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
  17. package/dist/daemon/handlers/pre-tool-use-handler.d.ts.map +1 -1
  18. package/dist/daemon/handlers/pre-tool-use-handler.js +18 -48
  19. package/dist/daemon/handlers/pre-tool-use-handler.js.map +1 -1
  20. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -1
  21. package/dist/daemon/handlers/stages/09-pipeline-active.js +7 -0
  22. package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -1
  23. package/dist/daemon/handlers/stages/13-template-route.js +2 -2
  24. package/dist/daemon/handlers/stages/13-template-route.js.map +1 -1
  25. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
  26. package/dist/daemon/handlers/stages/18-complex-task.js +11 -3
  27. package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
  28. package/dist/pipeline/artifact-enforcement.d.ts +74 -0
  29. package/dist/pipeline/artifact-enforcement.d.ts.map +1 -0
  30. package/dist/pipeline/artifact-enforcement.js +187 -0
  31. package/dist/pipeline/artifact-enforcement.js.map +1 -0
  32. package/dist/pipeline/artifact-generator.d.ts +5 -1
  33. package/dist/pipeline/artifact-generator.d.ts.map +1 -1
  34. package/dist/pipeline/artifact-generator.js +5 -1
  35. package/dist/pipeline/artifact-generator.js.map +1 -1
  36. package/dist/pipeline/artifact-rules.d.ts +39 -0
  37. package/dist/pipeline/artifact-rules.d.ts.map +1 -0
  38. package/dist/pipeline/artifact-rules.js +104 -0
  39. package/dist/pipeline/artifact-rules.js.map +1 -0
  40. package/dist/pipeline/artifact-validator.d.ts.map +1 -1
  41. package/dist/pipeline/artifact-validator.js +9 -0
  42. package/dist/pipeline/artifact-validator.js.map +1 -1
  43. package/dist/pipeline/completion-detector.d.ts.map +1 -1
  44. package/dist/pipeline/completion-detector.js +10 -0
  45. package/dist/pipeline/completion-detector.js.map +1 -1
  46. package/dist/pipeline/completion-gate.d.ts +56 -0
  47. package/dist/pipeline/completion-gate.d.ts.map +1 -0
  48. package/dist/pipeline/completion-gate.js +165 -0
  49. package/dist/pipeline/completion-gate.js.map +1 -0
  50. package/dist/pipeline/dynamic-node-executor.d.ts +7 -6
  51. package/dist/pipeline/dynamic-node-executor.d.ts.map +1 -1
  52. package/dist/pipeline/dynamic-node-executor.js +116 -185
  53. package/dist/pipeline/dynamic-node-executor.js.map +1 -1
  54. package/dist/pipeline/dynamic-node-types.d.ts +2 -0
  55. package/dist/pipeline/dynamic-node-types.d.ts.map +1 -1
  56. package/dist/pipeline/events.d.ts +3 -0
  57. package/dist/pipeline/events.d.ts.map +1 -1
  58. package/dist/pipeline/events.js +4 -0
  59. package/dist/pipeline/events.js.map +1 -1
  60. package/dist/pipeline/execution-plan-builder.d.ts +20 -0
  61. package/dist/pipeline/execution-plan-builder.d.ts.map +1 -0
  62. package/dist/pipeline/execution-plan-builder.js +100 -0
  63. package/dist/pipeline/execution-plan-builder.js.map +1 -0
  64. package/dist/pipeline/execution-plan.d.ts +64 -0
  65. package/dist/pipeline/execution-plan.d.ts.map +1 -0
  66. package/dist/pipeline/execution-plan.js +57 -0
  67. package/dist/pipeline/execution-plan.js.map +1 -0
  68. package/dist/pipeline/i-node-executor.d.ts +2 -0
  69. package/dist/pipeline/i-node-executor.d.ts.map +1 -1
  70. package/dist/pipeline/index.d.ts +25 -8
  71. package/dist/pipeline/index.d.ts.map +1 -1
  72. package/dist/pipeline/index.js +137 -149
  73. package/dist/pipeline/index.js.map +1 -1
  74. package/dist/pipeline/optimized-aggregator.d.ts.map +1 -1
  75. package/dist/pipeline/optimized-aggregator.js +1 -1
  76. package/dist/pipeline/optimized-aggregator.js.map +1 -1
  77. package/dist/pipeline/phase-manager.d.ts +13 -0
  78. package/dist/pipeline/phase-manager.d.ts.map +1 -1
  79. package/dist/pipeline/phase-manager.js +178 -18
  80. package/dist/pipeline/phase-manager.js.map +1 -1
  81. package/dist/pipeline/types.d.ts +1 -0
  82. package/dist/pipeline/types.d.ts.map +1 -1
  83. package/dist/pipeline/types.js.map +1 -1
  84. package/dist/storage/repositories/dynamic-pipeline-repository.d.ts.map +1 -1
  85. package/dist/storage/repositories/dynamic-pipeline-repository.js +11 -23
  86. package/dist/storage/repositories/dynamic-pipeline-repository.js.map +1 -1
  87. package/dist/utils/forge-resume-block.d.ts +2 -1
  88. package/dist/utils/forge-resume-block.d.ts.map +1 -1
  89. package/dist/utils/forge-resume-block.js +16 -2
  90. package/dist/utils/forge-resume-block.js.map +1 -1
  91. package/dist/utils/mutex-lock.d.ts +1 -0
  92. package/dist/utils/mutex-lock.d.ts.map +1 -1
  93. package/dist/utils/mutex-lock.js +13 -0
  94. package/dist/utils/mutex-lock.js.map +1 -1
  95. package/dist/web-static/assets/{index-C3zW2cbT.js → index-C9F94O8p.js} +1 -1
  96. package/dist/web-static/index.html +1 -1
  97. package/package.json +1 -1
@@ -11,6 +11,8 @@ import { ArtifactManager } from '../utils/artifact-manager.js';
11
11
  import { memoryManager } from '../utils/memory-manager.js';
12
12
  import { MutexLock } from '../utils/mutex-lock.js';
13
13
  import { buildForgeResumeEnvelope, stripForgeResumeBlocks } from '../utils/forge-resume-block.js';
14
+ import { getPlanPhaseLabels, stringifyExecutionPlanMeta, } from './execution-plan.js';
15
+ import { ExecutionPlanBuilder } from './execution-plan-builder.js';
14
16
  import fsPromises from 'fs/promises';
15
17
  import path from 'path';
16
18
  export { TemplateRegistry } from './template-registry.js';
@@ -18,6 +20,7 @@ export { TemplateRouter } from './template-router.js';
18
20
  export class PipelineEngine {
19
21
  store;
20
22
  analyzer;
23
+ planBuilder;
21
24
  phaseManager;
22
25
  dynamicNodeExecutor;
23
26
  api;
@@ -38,6 +41,7 @@ export class PipelineEngine {
38
41
  constructor(storage, api, conventionManager, claudeMdWriter) {
39
42
  this.store = new PipelineStore(storage);
40
43
  this.analyzer = new PipelineAnalyzer(api, conventionManager);
44
+ this.planBuilder = new ExecutionPlanBuilder(this.analyzer);
41
45
  this.phaseManager = new PhaseManager(this.store);
42
46
  this.dynamicNodeExecutor = new DynamicNodeExecutor(api);
43
47
  this.api = api;
@@ -123,12 +127,11 @@ export class PipelineEngine {
123
127
  }
124
128
  if (!pipeline || pipeline.phase === 'done')
125
129
  return null;
126
- // 刷新任务列表
127
- pipeline.tasks = this.store.getTasks(pipeline.id);
128
130
  // 计算当前进度指纹,相同时跳过注入(避免每次 PreToolUse 重复输出相同进度)
129
131
  // 注意:动态流水线(dp_)禁用去重,保证持续注入节点执行指令,避免 Claude 丢失上下文后停写
130
132
  const isDynamicPipeline = pipeline.id.startsWith('dp_');
131
133
  if (!isDynamicPipeline) {
134
+ pipeline.tasks = this.store.getTasks(pipeline.id);
132
135
  // total=0 时使用 emptyPhaseNotified 去重:首次注入后标记,状态变化时清除
133
136
  const progress = this.store.getPhaseProgress(pipeline.id, pipeline.phase);
134
137
  const instrKey = `${pipeline.id}:${pipeline.phase}:${progress.completed}/${progress.total}`;
@@ -151,6 +154,8 @@ export class PipelineEngine {
151
154
  const dynPipeline = await this.storage.repositories.dynamicPipelines.getById(pipeline.id);
152
155
  if (!dynPipeline)
153
156
  return null;
157
+ pipeline = this.dynamicPipelineToBridge(dynPipeline);
158
+ this.activePipelines.set(projectPath, pipeline);
154
159
  return this.dynamicNodeExecutor.getInstruction(dynPipeline);
155
160
  }
156
161
  return this.phaseManager.getPhaseInstruction(pipeline);
@@ -442,81 +447,107 @@ ${taskSummary}
442
447
  /**
443
448
  * 启动新 Pipeline
444
449
  */
445
- async startPipeline(requirement, projectPath, sessionId) {
450
+ async startPipeline(requirement, projectPath, sessionId, analysis) {
446
451
  logger.info(`[Pipeline] 启动中(模式:dynamic):"${requirement}"`);
447
- this.clearBlocked(projectPath); // 清理旧的阻断状态
448
- return this.startDynamicPipeline(requirement, projectPath, sessionId);
452
+ this.clearBlocked(projectPath);
453
+ const fallbackAnalysis = analysis ?? {
454
+ complexity: 'moderate',
455
+ requiresPipeline: true,
456
+ requirement,
457
+ reasoning: 'PipelineEngine 启动时未提供显式意图分析,使用默认编排分析',
458
+ estimatedFiles: 1,
459
+ suggestedPhases: [],
460
+ };
461
+ const plan = await this.buildExecutionPlan(requirement, projectPath, sessionId, fallbackAnalysis);
462
+ return this.startPipelineFromPlan(plan);
463
+ }
464
+ /**
465
+ * 生成统一执行计划(动态流水线唯一事实来源)
466
+ */
467
+ async buildExecutionPlan(requirement, projectPath, sessionId, analysis, template, templateRoute) {
468
+ return this.planBuilder.build({
469
+ requirement,
470
+ projectPath,
471
+ sessionId,
472
+ analysis,
473
+ template,
474
+ templateRoute: templateRoute ?? null,
475
+ });
449
476
  }
450
477
  /**
451
- * 启动动态节点 Pipeline(Dynamic 模式)
452
- *
453
- * 使用 DynamicPipelineRepository 创建流水线记录,
454
- * 通过 analyzer.decompose 分析需求,生成顺序依赖的 DynamicNode 列表,
455
- * 并以 Bridge Pattern 返回兼容 Pipeline 接口的对象。
478
+ * 从统一执行计划启动动态 Pipeline
456
479
  */
457
- async startDynamicPipeline(requirement, projectPath, sessionId) {
458
- logger.info(`[Pipeline:Dynamic] 🚀 启动动态流水线:"${requirement}" | 项目=${projectPath}`);
459
- // 1. 使用 analyzer 分析需求,获取规划阶段和复杂度
460
- const analysis = await this.analyzer.decompose(requirement, projectPath);
461
- const { plannedPhases, complexity, taskType, techStack, reasoning, phaseArtifacts } = analysis;
462
- // 2. 生成 Pipeline ID
480
+ async startPipelineFromPlan(plan) {
481
+ logger.info(`[Pipeline:Dynamic] 🚀 启动动态流水线:"${plan.requirement}" | 项目=${plan.projectPath} | source=${plan.source}`);
482
+ this.clearBlocked(plan.projectPath);
483
+ return this.materializeDynamicPipeline(plan);
484
+ }
485
+ async materializeDynamicPipeline(plan) {
463
486
  const pipelineId = `dp_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
464
- // 3. plannedPhases 转换为 DynamicNode 列表(顺序依赖)
465
- const nodes = plannedPhases.map((phaseId, index) => ({
487
+ const nodes = plan.stages.map((stage, index) => ({
466
488
  id: `${pipelineId}_node_${index}`,
467
- nodeTypeId: phaseId,
489
+ nodeTypeId: stage.nodeTypeId,
468
490
  status: (index === 0 ? 'in_progress' : 'pending'),
469
491
  dependencies: index > 0 ? [`${pipelineId}_node_${index - 1}`] : [],
470
492
  }));
471
- // 4. 创建 DynamicPipeline 记录
493
+ const reasoningMeta = stringifyExecutionPlanMeta({
494
+ currentNodeId: nodes[0]?.id,
495
+ originalReasoning: plan.reasoning,
496
+ executionPlan: plan,
497
+ templateId: plan.templateId,
498
+ templateName: plan.templateName,
499
+ source: plan.source,
500
+ });
472
501
  await this.storage.repositories.dynamicPipelines.create({
473
502
  id: pipelineId,
474
- requirement,
475
- projectPath,
476
- sessionId,
477
- complexity,
478
- reasoning: JSON.stringify({ currentNodeId: nodes[0]?.id, originalReasoning: reasoning }),
503
+ requirement: plan.requirement,
504
+ projectPath: plan.projectPath,
505
+ sessionId: plan.sessionId,
506
+ templateId: plan.templateId,
507
+ complexity: plan.complexity,
508
+ reasoning: reasoningMeta,
479
509
  status: 'in_progress',
510
+ executionPlan: plan,
480
511
  });
481
- // 5. 存储节点
482
512
  if (nodes.length > 0) {
483
513
  await this.storage.repositories.dynamicPipelines.createNodes(pipelineId, nodes);
484
514
  }
485
- // 6. 设置 currentNodeId
486
515
  if (nodes[0]) {
487
516
  await this.storage.repositories.dynamicPipelines.updateCurrentNode(pipelineId, nodes[0].id);
488
517
  }
489
- // 7. 构建 Pipeline 兼容对象(Bridge Pattern:DynamicPipeline → Pipeline)
490
518
  const now = new Date().toISOString();
491
- const legacyPipeline = {
519
+ const pipeline = {
492
520
  id: pipelineId,
493
- requirement,
494
- projectPath,
495
- sessionId,
521
+ requirement: plan.requirement,
522
+ projectPath: plan.projectPath,
523
+ sessionId: plan.sessionId,
496
524
  phase: nodes[0]?.nodeTypeId ?? 'code',
497
- tasks: nodes.map(node => ({
525
+ tasks: nodes.map((node, index) => ({
498
526
  id: node.id,
499
- title: PHASE_LABELS[node.nodeTypeId] || node.nodeTypeId,
527
+ title: plan.stages[index]?.name ?? (PHASE_LABELS[node.nodeTypeId] || node.nodeTypeId),
500
528
  phase: node.nodeTypeId,
501
529
  status: node.status === 'in_progress' ? 'in_progress' : node.status === 'completed' ? 'completed' : 'pending',
502
- description: `动态节点:${node.nodeTypeId}`,
530
+ description: plan.tasks[index]?.description ?? `动态节点:${node.nodeTypeId}`,
503
531
  dependencies: node.dependencies,
532
+ source: plan.source,
504
533
  })),
505
- techStack,
506
- complexity,
507
- taskType,
508
- plannedPhases,
509
- phaseArtifacts,
510
- reasoning,
534
+ techStack: plan.techStack,
535
+ complexity: plan.complexity,
536
+ taskType: plan.taskType,
537
+ plannedPhases: plan.stages.map(stage => stage.phase),
538
+ phaseArtifacts: Object.fromEntries(plan.stages.map(stage => [stage.phase, stage.derivedReports])),
539
+ reasoning: plan.reasoning,
540
+ templateId: plan.templateId,
541
+ executionPlan: plan,
511
542
  createdAt: now,
512
543
  updatedAt: now,
513
544
  };
514
- // 8. 缓存到内存,重置质量门禁计数
515
- this.activePipelines.set(projectPath, legacyPipeline);
545
+ this.activePipelines.set(plan.projectPath, pipeline);
516
546
  this.phaseManager.resetFixAttempts(pipelineId);
517
- const nodeFlow = plannedPhases.map(p => PHASE_LABELS[p] || p).join(' → ');
518
- logger.info(`[Pipeline:Dynamic] 动态流水线已创建\n📋 需求:${requirement}\n📊 统计:${nodes.length} 个节点 | 复杂度:${complexity}\n🗺️ 节点规划:${nodeFlow}`);
519
- return legacyPipeline;
547
+ this.writeExecutionPlanArtifact(plan, pipeline);
548
+ const nodeFlow = getPlanPhaseLabels(plan).join(' ');
549
+ logger.info(`[Pipeline:Dynamic] ✅ 动态流水线已创建\n📋 需求:${plan.requirement}\n📊 统计:${nodes.length} 个节点 | 复杂度:${plan.complexity}\n🗺️ 节点规划:${nodeFlow}`);
550
+ return pipeline;
520
551
  }
521
552
  /**
522
553
  * 将 DynamicPipeline 转换为 Pipeline 兼容对象(冷缓存恢复时使用)
@@ -527,7 +558,8 @@ ${taskSummary}
527
558
  : dynPipeline.nodes.find(n => n.status === 'in_progress');
528
559
  const phase = currentNode?.nodeTypeId ??
529
560
  dynPipeline.nodes[0]?.nodeTypeId ?? 'code';
530
- const plannedPhases = dynPipeline.nodes.map(n => n.nodeTypeId);
561
+ const plannedPhases = dynPipeline.executionPlan?.stages.map(stage => stage.phase)
562
+ ?? dynPipeline.nodes.map(n => n.nodeTypeId);
531
563
  return {
532
564
  id: dynPipeline.id,
533
565
  requirement: dynPipeline.requirement,
@@ -545,6 +577,7 @@ ${taskSummary}
545
577
  complexity: dynPipeline.complexity,
546
578
  plannedPhases,
547
579
  reasoning: dynPipeline.reasoning,
580
+ executionPlan: dynPipeline.executionPlan,
548
581
  createdAt: dynPipeline.createdAt,
549
582
  updatedAt: dynPipeline.updatedAt,
550
583
  };
@@ -552,87 +585,29 @@ ${taskSummary}
552
585
  /**
553
586
  * 从 PipelineTemplate 启动 Pipeline(Batch 4:模板驱动,跳过 AI 分解)
554
587
  */
555
- async startPipelineFromTemplate(requirement, projectPath, sessionId, template) {
556
- logger.info(`[Pipeline:Template] 🚀 从模板启动:"${requirement}" | 模板=${template.id}`);
557
- // 从模板阶段构建任务列表
558
- const validPhases = template.phases
559
- .map(p => p.id)
560
- .filter((id) => ['analyze', 'design', 'profile', 'code', 'test', 'review'].includes(id));
561
- const plannedPhases = validPhases.length > 0 ? validPhases : ['code', 'test'];
562
- const complexity = (template.trigger?.complexity?.[0] || 'moderate');
563
- const taskType = template.taskType || 'other';
564
- // 生成 Pipeline ID
565
- const pipelineId = `dp_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
566
- // 将模板 phases 转换为 DynamicNode 列表(顺序依赖)
567
- const nodes = plannedPhases.map((phaseId, index) => ({
568
- id: `${pipelineId}_node_${index}`,
569
- nodeTypeId: phaseId,
570
- status: (index === 0 ? 'in_progress' : 'pending'),
571
- dependencies: index > 0 ? [`${pipelineId}_node_${index - 1}`] : [],
572
- }));
573
- // 创建 DynamicPipeline 记录
574
- await this.storage.repositories.dynamicPipelines.create({
575
- id: pipelineId,
588
+ async startPipelineFromTemplate(requirement, projectPath, sessionId, template, analysis, templateRoute) {
589
+ const fallbackAnalysis = analysis ?? {
590
+ complexity: 'moderate',
591
+ requiresPipeline: true,
576
592
  requirement,
577
- projectPath,
578
- sessionId,
579
- complexity,
580
- reasoning: JSON.stringify({
581
- currentNodeId: nodes[0]?.id,
582
- templateId: template.id,
583
- templateName: template.name,
584
- source: template.source
585
- }),
586
- status: 'in_progress',
587
- });
588
- // 存储节点
589
- if (nodes.length > 0) {
590
- await this.storage.repositories.dynamicPipelines.createNodes(pipelineId, nodes);
591
- }
592
- // 设置 currentNodeId
593
- if (nodes[0]) {
594
- await this.storage.repositories.dynamicPipelines.updateCurrentNode(pipelineId, nodes[0].id);
595
- }
596
- // 构建 Pipeline 兼容对象
597
- const now = new Date().toISOString();
598
- const pipeline = {
599
- id: pipelineId,
600
- requirement,
601
- projectPath,
602
- sessionId,
603
- phase: nodes[0]?.nodeTypeId ?? 'code',
604
- tasks: nodes.map(node => ({
605
- id: node.id,
606
- title: PHASE_LABELS[node.nodeTypeId] || node.nodeTypeId,
607
- phase: node.nodeTypeId,
608
- status: node.status === 'in_progress' ? 'in_progress' : node.status === 'completed' ? 'completed' : 'pending',
609
- description: `模板节点:${node.nodeTypeId}`,
610
- dependencies: node.dependencies,
611
- })),
612
- complexity,
613
- taskType,
614
- plannedPhases,
615
- reasoning: `来源模板:${template.name}(${template.id})`,
616
- createdAt: now,
617
- updatedAt: now,
593
+ reasoning: `模板 ${template.id} 启动时未提供显式意图分析,使用默认编排分析`,
594
+ estimatedFiles: 1,
595
+ suggestedPhases: template.phases.map(phase => phase.id),
618
596
  };
619
- this.activePipelines.set(projectPath, pipeline);
620
- // 新 Pipeline 启动时重置质量门禁修复计数(防止旧计数污染)
621
- this.phaseManager.resetFixAttempts(pipeline.id);
622
- // 写入执行计划文档
597
+ const plan = await this.buildExecutionPlan(requirement, projectPath, sessionId, fallbackAnalysis, template, templateRoute);
598
+ return this.startPipelineFromPlan(plan);
599
+ }
600
+ writeExecutionPlanArtifact(plan, pipeline) {
623
601
  try {
624
- const artifactManager = new ArtifactManager(projectPath);
625
- const phases = plannedPhases.map(p => PHASE_LABELS[p] || p).join(' → ');
626
- const taskLines = pipeline.tasks.map(t => `- [${PHASE_LABELS[t.phase] || t.phase}] ${t.title}${t.description ? `:${t.description}` : ''}`).join('\n');
627
- const planContent = `# 执行计划(模板驱动)\n\n**需求**:${requirement}\n\n**模板**:${template.name}(${template.id})\n\n**阶段规划**:${phases}\n\n## 任务清单\n\n${taskLines}\n`;
628
- artifactManager.writeArtifact('plan', '执行计划.md', planContent, requirement.slice(0, 50), '执行计划');
602
+ const artifactManager = new ArtifactManager(plan.projectPath);
603
+ const phases = getPlanPhaseLabels(plan).join(' → ');
604
+ const taskLines = pipeline.tasks.map(task => `- [${PHASE_LABELS[task.phase] || task.phase}] ${task.title}${task.description ? `:${task.description}` : ''}`).join('\n');
605
+ const planContent = `# 执行计划\n\n**需求**:${plan.requirement}\n\n**来源**:${plan.source}${plan.templateName ? `(${plan.templateName})` : ''}\n\n**阶段规划**:${phases}\n\n## 任务清单\n\n${taskLines}\n`;
606
+ artifactManager.writeArtifact('plan', '执行计划.md', planContent, plan.requirement.slice(0, 50), '执行计划');
629
607
  }
630
608
  catch (err) {
631
- logger.warn(`[Pipeline] 模板执行计划文档写入失败:${err}`);
609
+ logger.warn(`[Pipeline] 执行计划文档写入失败:${err}`);
632
610
  }
633
- const phaseFlow = plannedPhases.map(p => PHASE_LABELS[p] || p).join(' → ');
634
- logger.info(`[Pipeline:Template] ✅ 模板驱动启动完成\n📋 需求:${requirement}\n📊 统计:${pipeline.tasks.length} 个节点 | ${plannedPhases.length} 个阶段 | 模板:${template.name}\n🗺️ 阶段规划:${phaseFlow}`);
635
- return pipeline;
636
611
  }
637
612
  /**
638
613
  * 检查项目是否有活跃 Pipeline
@@ -641,7 +616,9 @@ ${taskSummary}
641
616
  if (this.activePipelines.has(projectPath))
642
617
  return true;
643
618
  const db = this.store.getActivePipeline(projectPath);
644
- return db !== null;
619
+ if (db !== null)
620
+ return true;
621
+ return this.storage.repositories.dynamicPipelines.getActiveByProjectPath(projectPath) !== null;
645
622
  }
646
623
  /**
647
624
  * 获取 Pipeline 状态摘要(用于 resume 注入)
@@ -738,7 +715,14 @@ ${taskSummary}
738
715
  * 获取活跃 Pipeline 对象
739
716
  */
740
717
  getActivePipelineForProject(projectPath) {
741
- return this.activePipelines.get(projectPath) || this.store.getActivePipeline(projectPath);
718
+ const cached = this.activePipelines.get(projectPath);
719
+ if (cached)
720
+ return cached;
721
+ const legacy = this.store.getActivePipeline(projectPath);
722
+ if (legacy)
723
+ return legacy;
724
+ const dynamic = this.storage.repositories.dynamicPipelines.getActiveByProjectPath(projectPath);
725
+ return dynamic ? this.dynamicPipelineToBridge(dynamic) : null;
742
726
  }
743
727
  /**
744
728
  * ESC 中断后从 DB 恢复时,重建 PhaseManager 的内存状态。
@@ -923,32 +907,17 @@ ${taskSummary}
923
907
  return false;
924
908
  return this.dynamicNodeExecutor.hasArtifactRetry(pipeline.id);
925
909
  }
910
+ evaluatePreToolGate(event) {
911
+ const pipeline = this.getActiveDynamicPipelineForProject(event.project_path);
912
+ if (!pipeline)
913
+ return null;
914
+ return this.dynamicNodeExecutor.evaluatePreToolGate(pipeline, event);
915
+ }
926
916
  /**
927
917
  * 检查 Step 级工具白名单(Step 模式启用时生效)
928
918
  */
929
919
  checkStepGate(event) {
930
- const pipeline = this.getActiveDynamicPipelineForProject(event.project_path);
931
- if (!pipeline)
932
- return null;
933
- const currentNode = pipeline.nodes.find(n => n.id === pipeline.currentNodeId);
934
- if (!currentNode)
935
- return null;
936
- // 检查是否启用 Step 模式
937
- const stepOrchestrator = this.dynamicNodeExecutor.getStepOrchestrator();
938
- if (!stepOrchestrator.isStepModeEnabled(currentNode)) {
939
- return null; // 未启用 Step 模式,跳过检查
940
- }
941
- // 获取当前 Step
942
- const currentStep = stepOrchestrator.getCurrentStep(pipeline, currentNode);
943
- if (!currentStep)
944
- return null;
945
- // 加载 Step 定义
946
- const stepDef = stepOrchestrator.loadStepDefinition(currentNode.nodeTypeId, currentStep.stepDefinitionId);
947
- if (!stepDef)
948
- return null;
949
- // 使用 StepGateKeeper 检查工具
950
- const stepGateKeeper = this.dynamicNodeExecutor.getStepGateKeeper();
951
- return stepGateKeeper.checkTool(event, currentStep, stepDef);
920
+ return this.evaluatePreToolGate(event);
952
921
  }
953
922
  /** 标记项目进入硬阻断状态 */
954
923
  markBlocked(projectPath, pipelineId, reason) {
@@ -1006,11 +975,12 @@ ${taskSummary}
1006
975
  * 使用与 PreToolUse 相同的进度指纹缓存机制,避免相同进度下重复注入
1007
976
  */
1008
977
  async getCurrentPhaseDirective(projectPath) {
1009
- const pipeline = this.activePipelines.get(projectPath) || this.store.getActivePipeline(projectPath);
978
+ const pipeline = this.getActivePipelineForProject(projectPath);
1010
979
  if (!pipeline || pipeline.phase === 'done')
1011
980
  return null;
1012
- // 刷新任务列表
1013
- pipeline.tasks = this.store.getTasks(pipeline.id);
981
+ if (!pipeline.id.startsWith('dp_')) {
982
+ pipeline.tasks = this.store.getTasks(pipeline.id);
983
+ }
1014
984
  // 进度指纹去重:与 PreToolUse 共享 lastInstructionKey 缓存
1015
985
  const progress = this.store.getPhaseProgress(pipeline.id, pipeline.phase);
1016
986
  const instrKey = `${pipeline.id}:${pipeline.phase}:${progress.completed}/${progress.total}:user`;
@@ -1053,6 +1023,24 @@ ${taskSummary}
1053
1023
  }
1054
1024
  return lines.join('\n');
1055
1025
  }
1026
+ /**
1027
+ * 获取产物门禁提示(供 stage-scheduler 注入到 AI 上下文)
1028
+ */
1029
+ getArtifactGateReminder(projectPath) {
1030
+ const pipeline = this.activePipelines.get(projectPath) || this.store.getActivePipeline(projectPath);
1031
+ if (!pipeline || pipeline.phase === 'done')
1032
+ return null;
1033
+ return this.phaseManager.getArtifactGateReminder(pipeline.id, pipeline.phase);
1034
+ }
1035
+ /**
1036
+ * 清除产物门禁提示
1037
+ */
1038
+ clearArtifactGateReminder(projectPath) {
1039
+ const pipeline = this.activePipelines.get(projectPath) || this.store.getActivePipeline(projectPath);
1040
+ if (!pipeline || pipeline.phase === 'done')
1041
+ return;
1042
+ this.phaseManager.clearArtifactGateReminder(pipeline.id, pipeline.phase);
1043
+ }
1056
1044
  /**
1057
1045
  * 获取当前阶段名称(用于失败信号上下文)
1058
1046
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGlG,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,cAAc;IACjB,KAAK,CAAgB;IACrB,QAAQ,CAAmB;IAC3B,YAAY,CAAe;IAC3B,mBAAmB,CAAsB;IACzC,GAAG,CAAa;IAChB,OAAO,CAAgB;IAC/B,4CAA4C;IACpC,eAAe,CAA6B;IACpD,4DAA4D;IACpD,kBAAkB,CAA2B;IACrD,gFAAgF;IACxE,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAkB,wBAAwB,EAAE;QAC7F,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,IAAI,CAAC,IAAI;KACf,CAAC,CAAC;IACH,iEAAiE;IACzD,YAAY,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;IACjD,iCAAiC;IACzB,cAAc,CAAkB;IAExC,YAAY,OAAsB,EAAE,GAAe,EAAE,iBAAqC,EAAE,cAA+B;QACzH,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAmB,iBAAiB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAiB,sBAAsB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACtG,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,qDAAqD;IAC7C,mBAAmB,GAAG,aAAa,CAAC,QAAQ,CAAwE,sBAAsB,EAAE;QAClJ,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,IAAI,CAAC,SAAS;KACpB,CAAC,CAAC;IAEH,oDAAoD;IAC5C,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAoE,kBAAkB,EAAE;QACtI,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,IAAI,CAAC,SAAS;KACpB,CAAC,CAAC;IAEH;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAiB;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IACzG,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAiB;QAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;QAEvC,iBAAiB;QACjB,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;YAClE,IAAI,QAAQ,EAAE,CAAC;gBACb,kCAAkC;gBAClC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;gBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACpC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;oBAClF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,qCAAqC;gBACrC,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;oBAC1G,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;oBACjD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,oCAAoC;gBACpC,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;gBACtF,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAS,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;oBAClH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE;wBACxC,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,cAAc;qBACf,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,yBAAyB,eAAe,mBAAmB,CAAC,CAAC;gBAC3E,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1F,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;gBACnG,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrE,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;wBAC9F,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBACxE,CAAC;yBAAM,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,WAAW,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;wBACvH,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;wBAC9D,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBACxE,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;wBACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;wBAChD,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC3G,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAExD,SAAS;QACT,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAElD,6CAA6C;QAC7C,oDAAoD;QACpD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,oDAAoD;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC5F,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBACvE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAiB,EAAE,WAA+B;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3H,OAAO,MAAM,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,KAAiB,EAAE,WAA+B;QACjF,0CAA0C;QAC1C,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;gBACtF,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAS,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;oBAClH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE;wBAC/C,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,cAAc;qBACf,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;YAED,aAAa;YACb,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC1G,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;oBACrE,IAAI,KAAK,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;wBAChC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;wBACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAErE,+BAA+B;QAC/B,IAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACzF,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,IAAI,wCAAwC,CAAC,CAAC;gBAC3H,6BAA6B;gBAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC9E,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,SAAS;QACT,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAErF,oBAAoB;QACpB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,aAAa,IAAI,gDAAgD,CAAC,CAAC;YAC9H,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1N,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAE,SAAS;YAEjD,+BAA+B;YAC/B,MAAM,gBAAgB,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACzC,MAAM,qBAAqB,GAAa,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,sBAAsB,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;qBAC7F,gBAAgB,CAAC,cAAc,EAAE,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAG,UAAU,YAAY,CAAC,cAAc,CAAC,WAAW,GAAG,EAAE,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;gBACxC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,iBAAiB;YACnB,CAAC;YAED,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,iCAAiC;YACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;YAC1E,gDAAgD;YAChD,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAEhE,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAEtC,OAAO;gBACP,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;gBACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;gBAC7E,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;oBACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;oBAC7D,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;gBAClF,CAAC,CAAC,IAAI,EAAE,CAAC;gBAET,gBAAgB;gBAChB,IAAI,aAAa,GAAG;QACpB,QAAQ,CAAC,WAAW;;WAEjB,UAAU;UACX,cAAc;SACf,WAAW;WACT,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAEzD,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,IAAI,uBAAuB,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBACtG,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBACpD,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;wBACxD,aAAa,GAAG,GAAG,aAAa,OAAO,QAAQ,EAAE,CAAC;oBACpD,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YACpC,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,yBAAyB,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACjE,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,aAAa,EAAE,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;aACpF,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;QAC3G,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,yBAAyB,CACrC,QAAkB,EAClB,KAAiB,EACjB,WAA+B;QAE/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAE/F,+CAA+C;QAC/C,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,UAAU;QACV,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;QAChD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,aAAa,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,uBAAuB,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1N,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChF,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,aAAa,CAAC;YAEtC,oBAAoB;YACpB,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,CAC/D,eAAe,EACf,WAAW,EACX,MAAM,CAAC,UAAU,CAAC,SAAS;iBAC5B,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,UAAU;gBACV,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAkB,EAAE,aAAa,CAAC,CAAC;gBAC5G,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,QAAkB,CAAC,CAAC;gBAE3G,qCAAqC;gBACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvE,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,UAAgD,CAAC;gBAC7E,CAAC;gBACD,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACtC,IAAI,CAAC,CAAC,EAAE,KAAK,eAAe;wBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAoB,EAAE,CAAC;oBAC5E,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,QAAQ;wBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,aAAsB,EAAE,CAAC;oBAC9E,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAEvD,sBAAsB;gBACtB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACnD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAE1E,oBAAoB;gBACpB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBAEhE,OAAO;oBACL,OAAO,EAAE,oCAAoC,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACtF,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;oBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;iBACpC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;gBACjF,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAE9C,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC5C,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,OAAO;gBAE1C,IAAI,aAAa,GAAG;QACpB,QAAQ,CAAC,WAAW;;WAEjB,UAAU;UACX,cAAc,EAAE,CAAC;gBAEnB,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,IAAI,uBAAuB,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBACtG,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBACpD,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;wBACxD,aAAa,GAAG,GAAG,aAAa,OAAO,QAAQ,EAAE,CAAC;oBACpD,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,IAAI,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,aAAa,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;QAC5G,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC;QAED,4BAA4B;QAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;IACnG,CAAC;IAED;;;OAGG;IACK,4BAA4B,CAAC,QAAkB,EAAE,WAAmB;QAC1E,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAEtE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACrF,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,aAAa,GACjB,YAAY,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1C,CAAC,CAAC,mBAAmB,CAAC;QAE1B,MAAM,OAAO,GAAG;;;;oBAIA,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;WAChC,QAAQ,CAAC,WAAW;aAClB,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM;;EAErF,WAAW;aACA,aAAa;yDAC+B,CAAC;QAEtD,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE;gBACvD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;YACxC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACX,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC;iBAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;iBACf,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACf,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBACjD,OAAO,UAAU,CAAC,SAAS,CACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EACnC,WAAW,GAAG,MAAM,GAAG,OAAO,EAC9B,OAAO,CACR,CAAC;YACJ,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,EAAE;gBACT,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAChD,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACtB,MAAM,CAAC,IAAI,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QAC7E,MAAM,CAAC,IAAI,CAAC,+BAA+B,WAAW,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAE,WAAW;QAC5C,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,oBAAoB,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QAC5F,MAAM,CAAC,IAAI,CAAC,kCAAkC,WAAW,UAAU,WAAW,EAAE,CAAC,CAAC;QAElF,iCAAiC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACzE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC;QAE/F,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEhF,8CAA8C;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACnD,EAAE,EAAE,GAAG,UAAU,SAAS,KAAK,EAAE;YACjC,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAwD;YACxG,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SACnE,CAAC,CAAC,CAAC;QAEJ,2BAA2B;QAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACtD,EAAE,EAAE,UAAU;YACd,WAAW;YACX,WAAW;YACX,SAAS;YACT,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC;YACxF,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,UAAU;QACV,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClF,CAAC;QAED,sBAAsB;QACtB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,iEAAiE;QACjE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,cAAc,GAAa;YAC/B,EAAE,EAAE,UAAU;YACd,WAAW;YACX,WAAW;YACX,SAAS;YACT,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,EAAE,UAA4B,IAAI,MAAM;YACxD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,UAA2B,CAAC,IAAI,IAAI,CAAC,UAAU;gBACxE,KAAK,EAAE,IAAI,CAAC,UAA2B;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBAC7G,WAAW,EAAE,QAAQ,IAAI,CAAC,UAAU,EAAE;gBACtC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,SAAS;YACT,UAAU;YACV,QAAQ;YACR,aAAa;YACb,cAAc;YACd,SAAS;YACT,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC;QAEF,oBAAoB;QACpB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC,wCAAwC,WAAW,WAAW,KAAK,CAAC,MAAM,cAAc,UAAU,eAAe,QAAQ,EAAE,CAAC,CAAC;QAEzI,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,WAA8D;QAC5F,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa;YAC3C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,aAAa,CAAC;YACjE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAI,WAAW,EAAE,UAA4B;YACrD,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAA4B,IAAI,MAAM,CAAC;QAEhE,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAA2B,CAAC,CAAC;QAEhF,OAAO;YACL,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,KAAK;YACL,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACpC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,UAA2B,CAAC,IAAI,IAAI,CAAC,UAAU;gBACxE,KAAK,EAAE,IAAI,CAAC,UAA2B;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBAC7G,WAAW,EAAE,QAAQ,IAAI,CAAC,UAAU,EAAE;gBACtC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,aAAa;YACb,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAC7B,WAAmB,EACnB,WAAmB,EACnB,SAAiB,EACjB,QAA0B;QAE1B,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,UAAU,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjF,cAAc;QACd,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACd,MAAM,CAAC,CAAC,EAAE,EAA4C,EAAE,CACvD,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CACxE,CAAC;QAEJ,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,MAAM,CAA0C,CAAC;QACxH,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAsC,CAAC;QAC1G,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC;QAE9C,iBAAiB;QACjB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEhF,sCAAsC;QACtC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACnD,EAAE,EAAE,GAAG,UAAU,SAAS,KAAK,EAAE;YACjC,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAwD;YACxG,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SACnE,CAAC,CAAC,CAAC;QAEJ,wBAAwB;QACxB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACtD,EAAE,EAAE,UAAU;YACd,WAAW;YACX,WAAW;YACX,SAAS;YACT,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;gBACxB,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC;YACF,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,OAAO;QACP,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClF,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,mBAAmB;QACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAa;YACzB,EAAE,EAAE,UAAU;YACd,WAAW;YACX,WAAW;YACX,SAAS;YACT,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,EAAE,UAA4B,IAAI,MAAM;YACxD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,UAA2B,CAAC,IAAI,IAAI,CAAC,UAAU;gBACxE,KAAK,EAAE,IAAI,CAAC,UAA2B;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBAC7G,WAAW,EAAE,QAAQ,IAAI,CAAC,UAAU,EAAE;gBACtC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC,CAAC;YACH,UAAU;YACV,QAAQ;YACR,aAAa;YACb,SAAS,EAAE,QAAQ,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,GAAG;YAClD,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChD,oCAAoC;QACpC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhD,WAAW;QACX,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACvC,MAAM,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,WAAW,GAAG,0BAA0B,WAAW,cAAc,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,iBAAiB,MAAM,kBAAkB,SAAS,IAAI,CAAC;YAC1J,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAClG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,yCAAyC,WAAW,WAAW,QAAQ,CAAC,KAAK,CAAC,MAAM,UAAU,aAAa,CAAC,MAAM,aAAa,QAAQ,CAAC,IAAI,eAAe,SAAS,EAAE,CAAC,CAAC;QACpL,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,WAAmB;QACnC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,EAAE,KAAK,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,WAAmB;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAExD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAEhE,OAAO,gBAAgB,QAAQ,CAAC,WAAW;KAC1C,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,WAAmB,EAAE,UAKvC,EAAE,aAAsE;QACvE,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE3E,uBAAuB;QACvB,IAAI,SAAS,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9E,OAAO;QACP,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAoB,CAAC;QACnH,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,QAAQ,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACzD,CAAC,CAAC,EAAE,CAAC;QAEP,kBAAkB;QAClB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/E,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACxB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACrF,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC9C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;QAE/D,SAAS;QACT,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,aAAa,KAAK,oBAAoB,EAAE,CAAC;YAC3C,SAAS,GAAG,cAAc,CAAC;QAC7B,CAAC;aAAM,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YAC3C,SAAS,GAAG,YAAY,CAAC;QAC3B,CAAC;QAED,QAAQ;QACR,MAAM,YAAY,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,GAAG,OAAO,GAAG,IAAI,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,EAAE,CAAC;QAEtL,sBAAsB;QACtB,IAAI,CAAC,UAAU;YAAE,OAAO,YAAY,CAAC;QAErC,IAAI,QAAgB,CAAC;QACrB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,QAAQ,GAAG,sBAAsB,QAAQ,EAAE,CAAC;YAC5C,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAC9B,QAAQ,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;YACD,QAAQ,IAAI,0BAA0B,CAAC;QACzC,CAAC;aAAM,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YACvC,QAAQ,GAAG,yBAAyB,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,mBAAmB,CAAC;QACjC,CAAC;QAED,OAAO,YAAY,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,2BAA2B,CAAC,WAAmB;QAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,QAAkB;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO;QAE7B,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAExG,mCAAmC;QACnC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhD,0BAA0B;QAC1B,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QAE7D,MAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,UAAU,cAAc,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,iCAAiC;IACzB,iBAAiB,CAAC,UAAkB,EAAE,KAAoB;QAChE,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,wBAAwB,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,wCAAwC;IAChC,cAAc,CAAC,UAAkB,EAAE,KAAoB;QAC7D,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAM5B,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,WAAmB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpG,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,wBAAwB,KAAK,4BAA4B,CAAC,CAAC;YACvE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;IAC5D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,WAAmB;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC7C,uBAAuB;YACvB,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,8BAA8B,WAAW,CAAC,UAAU,MAAM,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,eAAuB,EAAE,IAAI,GAAG,KAAK;QACjD,IAAI,IAAI,EAAE,CAAC;YACT,uBAAuB;YACvB,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACtC,mBAAmB;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,EAAE,KAAK,eAAe,EAAE,CAAC;oBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,SAAS;oBAClC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,uBAAuB;gBACvB,IAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAE,SAAS;QAChD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,oBAAoB,eAAe,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,yBAAyB;YACzB,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;gBACnC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,CAAC,MAAM,oBAAoB,KAAK,GAAG,KAAK,SAAS,CAAC,CAAC;YAC5F,cAAc;YACd,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,WAAmB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAClG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oBAAoB;IACpB,SAAS,CAAC,WAAmB;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,WAAmB;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpG,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAiB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,iBAAiB;QACjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,CAAC,mBAAmB;QAClC,CAAC;QAED,YAAY;QACZ,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,aAAa;QACb,MAAM,OAAO,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC1G,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,yBAAyB;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;QACpE,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB;IACV,WAAW,CAAC,WAAmB,EAAE,UAAkB,EAAE,MAAc;QACzE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE;YACpC,UAAU;YACV,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IACR,YAAY,CAAC,WAAmB;QACtC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,oCAAoC;IACpC,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,kCAAkC,CAAC,WAAmB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,WAAmB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,sBAAsB;QACtB,IAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YACnG,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QACxE,CAAC;QAED,yBAAyB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,wBAAwB,CAAC,WAAmB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAExD,SAAS;QACT,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAElD,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,OAAO,CAAC;QACjG,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,QAAQ,CAAC,KAAK,OAAO,CAAC;YACzD,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,QAAQ,CAAC,KAAK,OAAO,CAAC,CAAC;YACxE,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,WAAW,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACjF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,WAAW,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,+BAA+B;QAC/B,IAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,WAAmB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAExD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEjE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC;QAEvG,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7F,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,WAAmB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC7D,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAC1B,WAA4B,EAC5B,KAAiB,EACjB,MAAoD;QAEpD,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,iBAAiB;QACjB,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;QACxE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,iBAAiB;QAC3B,CAAC;QAED,YAAY;QACZ,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,OAAO,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC1G,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,uBAAuB;QACvB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,+BAA+B;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,gBAAgB,EAAE;gBAC3D,OAAO,EAAE,WAAW,CAAC,EAAE;gBACvB,iBAAiB,EAAE,WAAW,CAAC,EAAE;gBACjC,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;gBAChD,SAAS,EAAE,WAAW,CAAC,QAAQ;gBAC/B,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;gBAClC,YAAY,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE;aAChF,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC,0CAA0C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,oCAAoC;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,iBAAiB,EAAE;gBAC5D,OAAO,EAAE,WAAW,CAAC,EAAE;gBACvB,iBAAiB,EAAE,WAAW,CAAC,EAAE;gBACjC,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;gBAChD,MAAM,EAAE,MAAM,CAAC,aAAa,IAAI,oBAAoB;gBACpD,QAAQ,EAAE,WAAW,CAAC,QAAQ;aAC/B,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC,6CAA6C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,8BAA8B;YAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,eAAe,EAAE;gBAC1D,OAAO,EAAE,WAAW,CAAC,EAAE;gBACvB,iBAAiB,EAAE,WAAW,CAAC,EAAE;gBACjC,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;gBAChD,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,WAAW,EAAE,UAAU;aACxB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC,0CAA0C,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC;QAC/G,CAAC;QAED,0EAA0E;QAC1E,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;YAC7F,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE;gBACzD,OAAO,EAAE,WAAW,CAAC,EAAE;gBACvB,iBAAiB,EAAE,WAAW,CAAC,EAAE;gBACjC,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;gBAChD,SAAS,EAAE,WAAW,CAAC,QAAQ;aAChC,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC,yCAAyC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"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"}