@n8n/workflow-sdk 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ast-interpreter/interpreter.js +14 -0
- package/dist/ast-interpreter/interpreter.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/codegen/code-generator.d.ts +2 -1
- package/dist/codegen/code-generator.js +114 -45
- package/dist/codegen/code-generator.js.map +1 -1
- package/dist/codegen/composite-builder.js +261 -74
- package/dist/codegen/composite-builder.js.map +1 -1
- package/dist/codegen/composite-handlers/build-utils.js +21 -4
- package/dist/codegen/composite-handlers/build-utils.js.map +1 -1
- package/dist/codegen/composite-handlers/if-else-handler.js +18 -0
- package/dist/codegen/composite-handlers/if-else-handler.js.map +1 -1
- package/dist/codegen/composite-handlers/switch-case-handler.js +4 -1
- package/dist/codegen/composite-handlers/switch-case-handler.js.map +1 -1
- package/dist/codegen/composite-tree.d.ts +2 -0
- package/dist/codegen/constants.js +6 -1
- package/dist/codegen/constants.js.map +1 -1
- package/dist/codegen/output-utils.d.ts +1 -0
- package/dist/codegen/output-utils.js +11 -0
- package/dist/codegen/output-utils.js.map +1 -1
- package/dist/codegen/semantic-graph.js +55 -9
- package/dist/codegen/semantic-graph.js.map +1 -1
- package/dist/codegen/semantic-registry.js +1 -1
- package/dist/codegen/semantic-registry.js.map +1 -1
- package/dist/codegen/subnode-generator.js +18 -9
- package/dist/codegen/subnode-generator.js.map +1 -1
- package/dist/codegen/types.d.ts +1 -0
- package/dist/codegen/variable-names.js +10 -0
- package/dist/codegen/variable-names.js.map +1 -1
- package/dist/types/base.d.ts +7 -2
- package/dist/types/base.js +49 -0
- package/dist/types/base.js.map +1 -1
- package/dist/validation/test-schema-setup.js +2 -1
- package/dist/validation/test-schema-setup.js.map +1 -1
- package/dist/workflow-builder/node-builders/node-builder.js +22 -19
- package/dist/workflow-builder/node-builders/node-builder.js.map +1 -1
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js +32 -0
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js.map +1 -1
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js +2 -1
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js.map +1 -1
- package/dist/workflow-builder/subnode-utils.js +70 -115
- package/dist/workflow-builder/subnode-utils.js.map +1 -1
- package/dist/workflow-builder/workflow-import.d.ts +1 -1
- package/dist/workflow-builder/workflow-import.js +16 -4
- package/dist/workflow-builder/workflow-import.js.map +1 -1
- package/dist/workflow-builder.js +75 -12
- package/dist/workflow-builder.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema } from 'n8n-workflow';
|
|
2
|
-
import type { CompositeTree } from './composite-tree';
|
|
2
|
+
import type { CompositeTree, CompositeNode, MultiOutputNode } from './composite-tree';
|
|
3
3
|
import type { NodeExecutionStatus } from './execution-status';
|
|
4
4
|
import type { SemanticGraph } from './types';
|
|
5
5
|
import type { WorkflowJSON } from '../types/base';
|
|
@@ -11,4 +11,5 @@ export interface ExecutionContextOptions {
|
|
|
11
11
|
valuesExcluded?: boolean;
|
|
12
12
|
pinnedNodes?: Set<string>;
|
|
13
13
|
}
|
|
14
|
+
export declare function collectNestedMultiOutputs(node: CompositeNode, collected: MultiOutputNode[], visited?: WeakSet<CompositeNode>): void;
|
|
14
15
|
export declare function generateCode(tree: CompositeTree, json: WorkflowJSON, graph: SemanticGraph, executionContext?: ExecutionContextOptions): string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectNestedMultiOutputs = collectNestedMultiOutputs;
|
|
3
4
|
exports.generateCode = generateCode;
|
|
4
5
|
const constants_1 = require("./constants");
|
|
5
6
|
const execution_schema_jsdoc_1 = require("./execution-schema-jsdoc");
|
|
@@ -13,7 +14,7 @@ function getIndent(ctx) {
|
|
|
13
14
|
function generateSubnodeCall(subnodeNode, builderName, ctx) {
|
|
14
15
|
const parts = [];
|
|
15
16
|
parts.push(`type: '${subnodeNode.type}'`);
|
|
16
|
-
parts.push(`version: ${subnodeNode.json.typeVersion}`);
|
|
17
|
+
parts.push(`version: ${subnodeNode.json.typeVersion ?? 1}`);
|
|
17
18
|
const configParts = [];
|
|
18
19
|
const defaultName = (0, node_type_utils_1.generateDefaultNodeName)(subnodeNode.type);
|
|
19
20
|
if (subnodeNode.json.name && subnodeNode.json.name !== defaultName) {
|
|
@@ -47,27 +48,33 @@ function generateSubnodesConfigForNode(node, ctx) {
|
|
|
47
48
|
}
|
|
48
49
|
const grouped = new Map();
|
|
49
50
|
for (const sub of node.subnodes) {
|
|
51
|
+
if (sub.subnodeName === node.name)
|
|
52
|
+
continue;
|
|
50
53
|
const subnodeNode = ctx.graph.nodes.get(sub.subnodeName);
|
|
51
54
|
if (!subnodeNode)
|
|
52
55
|
continue;
|
|
53
56
|
const existing = grouped.get(sub.connectionType) ?? [];
|
|
54
|
-
existing.push(subnodeNode);
|
|
57
|
+
existing.push({ node: subnodeNode, index: sub.index });
|
|
55
58
|
grouped.set(sub.connectionType, existing);
|
|
56
59
|
}
|
|
57
60
|
const entries = [];
|
|
58
|
-
for (const [connType,
|
|
61
|
+
for (const [connType, subnodeEntries] of grouped) {
|
|
59
62
|
const configKey = constants_1.AI_CONNECTION_TO_CONFIG_KEY[connType];
|
|
60
63
|
const builderName = constants_1.AI_CONNECTION_TO_BUILDER[connType];
|
|
61
|
-
if (
|
|
64
|
+
if (subnodeEntries.length === 0)
|
|
62
65
|
continue;
|
|
63
|
-
const calls =
|
|
66
|
+
const calls = subnodeEntries.map((e) => generateSubnodeCall(e.node, builderName, ctx));
|
|
64
67
|
if (constants_1.AI_ALWAYS_ARRAY_TYPES.has(connType)) {
|
|
65
68
|
entries.push(`${configKey}: [${calls.join(', ')}]`);
|
|
66
69
|
}
|
|
67
70
|
else if (constants_1.AI_OPTIONAL_ARRAY_TYPES.has(connType)) {
|
|
68
|
-
if (
|
|
71
|
+
if (subnodeEntries.length === 1) {
|
|
69
72
|
entries.push(`${configKey}: ${calls[0]}`);
|
|
70
73
|
}
|
|
74
|
+
else if (connType === 'ai_languageModel' &&
|
|
75
|
+
subnodeEntries.every((e) => e.index === subnodeEntries[0].index)) {
|
|
76
|
+
entries.push(`${configKey}: [[${calls.join(', ')}]]`);
|
|
77
|
+
}
|
|
71
78
|
else {
|
|
72
79
|
entries.push(`${configKey}: [${calls.join(', ')}]`);
|
|
73
80
|
}
|
|
@@ -84,14 +91,19 @@ function generateSubnodesConfigForNode(node, ctx) {
|
|
|
84
91
|
function generateSubnodesConfig(node, ctx) {
|
|
85
92
|
return generateSubnodesConfigForNode(node, ctx);
|
|
86
93
|
}
|
|
87
|
-
function collectSubnodesAsVariables(node, ctx) {
|
|
94
|
+
function collectSubnodesAsVariables(node, ctx, visited = new Set()) {
|
|
88
95
|
if (node.subnodes.length === 0)
|
|
89
96
|
return;
|
|
90
97
|
for (const sub of node.subnodes) {
|
|
98
|
+
if (visited.has(sub.subnodeName))
|
|
99
|
+
continue;
|
|
100
|
+
visited.add(sub.subnodeName);
|
|
91
101
|
const subnodeNode = ctx.graph.nodes.get(sub.subnodeName);
|
|
92
102
|
if (!subnodeNode)
|
|
93
103
|
continue;
|
|
94
|
-
collectSubnodesAsVariables(subnodeNode, ctx);
|
|
104
|
+
collectSubnodesAsVariables(subnodeNode, ctx, visited);
|
|
105
|
+
if (ctx.variableNodes.has(sub.subnodeName))
|
|
106
|
+
continue;
|
|
95
107
|
const builderName = constants_1.AI_CONNECTION_TO_BUILDER[sub.connectionType];
|
|
96
108
|
ctx.subnodeVariables.set(sub.subnodeName, { node: subnodeNode, builderName });
|
|
97
109
|
}
|
|
@@ -99,7 +111,7 @@ function collectSubnodesAsVariables(node, ctx) {
|
|
|
99
111
|
function generateSubnodeCallWithVarRefs(subnodeNode, builderName, ctx) {
|
|
100
112
|
const parts = [];
|
|
101
113
|
parts.push(`type: '${subnodeNode.type}'`);
|
|
102
|
-
parts.push(`version: ${subnodeNode.json.typeVersion}`);
|
|
114
|
+
parts.push(`version: ${subnodeNode.json.typeVersion ?? 1}`);
|
|
103
115
|
const configParts = [];
|
|
104
116
|
const defaultName = (0, node_type_utils_1.generateDefaultNodeName)(subnodeNode.type);
|
|
105
117
|
if (subnodeNode.json.name && subnodeNode.json.name !== defaultName) {
|
|
@@ -133,23 +145,30 @@ function generateSubnodesConfigWithVarRefs(node, ctx) {
|
|
|
133
145
|
}
|
|
134
146
|
const grouped = new Map();
|
|
135
147
|
for (const sub of node.subnodes) {
|
|
148
|
+
if (sub.subnodeName === node.name)
|
|
149
|
+
continue;
|
|
136
150
|
const varName = (0, variable_names_1.getVarName)(sub.subnodeName, ctx);
|
|
137
151
|
const existing = grouped.get(sub.connectionType) ?? [];
|
|
138
|
-
existing.push(varName);
|
|
152
|
+
existing.push({ varName, index: sub.index });
|
|
139
153
|
grouped.set(sub.connectionType, existing);
|
|
140
154
|
}
|
|
141
155
|
const entries = [];
|
|
142
|
-
for (const [connType,
|
|
156
|
+
for (const [connType, varEntries] of grouped) {
|
|
143
157
|
const configKey = constants_1.AI_CONNECTION_TO_CONFIG_KEY[connType];
|
|
144
|
-
if (
|
|
158
|
+
if (varEntries.length === 0)
|
|
145
159
|
continue;
|
|
160
|
+
const varNames = varEntries.map((e) => e.varName);
|
|
146
161
|
if (constants_1.AI_ALWAYS_ARRAY_TYPES.has(connType)) {
|
|
147
162
|
entries.push(`${configKey}: [${varNames.join(', ')}]`);
|
|
148
163
|
}
|
|
149
164
|
else if (constants_1.AI_OPTIONAL_ARRAY_TYPES.has(connType)) {
|
|
150
|
-
if (
|
|
165
|
+
if (varEntries.length === 1) {
|
|
151
166
|
entries.push(`${configKey}: ${varNames[0]}`);
|
|
152
167
|
}
|
|
168
|
+
else if (connType === 'ai_languageModel' &&
|
|
169
|
+
varEntries.every((e) => e.index === varEntries[0].index)) {
|
|
170
|
+
entries.push(`${configKey}: [[${varNames.join(', ')}]]`);
|
|
171
|
+
}
|
|
153
172
|
else {
|
|
154
173
|
entries.push(`${configKey}: [${varNames.join(', ')}]`);
|
|
155
174
|
}
|
|
@@ -177,7 +196,7 @@ function generateNodeConfig(node, ctx) {
|
|
|
177
196
|
const innerIndent = getIndent({ ...ctx, indent: ctx.indent + 1 });
|
|
178
197
|
const parts = [];
|
|
179
198
|
parts.push(`${innerIndent}type: '${node.type}'`);
|
|
180
|
-
parts.push(`${innerIndent}version: ${node.json.typeVersion}`);
|
|
199
|
+
parts.push(`${innerIndent}version: ${node.json.typeVersion ?? 1}`);
|
|
181
200
|
const configParts = [];
|
|
182
201
|
if (node.json.name) {
|
|
183
202
|
configParts.push(`name: '${(0, string_utils_1.escapeString)(node.json.name)}'`);
|
|
@@ -243,7 +262,7 @@ function generateNodeConfig(node, ctx) {
|
|
|
243
262
|
return `{\n${parts.join(',\n')}\n${indent}}`;
|
|
244
263
|
}
|
|
245
264
|
function getVarRefOrInlineNode(node, ctx) {
|
|
246
|
-
const nodeName = node.
|
|
265
|
+
const nodeName = node.name;
|
|
247
266
|
if (nodeName && ctx.variableNodes.has(nodeName)) {
|
|
248
267
|
return (0, variable_names_1.getVarName)(nodeName, ctx);
|
|
249
268
|
}
|
|
@@ -282,7 +301,12 @@ function generateStickyCall(node, ctx) {
|
|
|
282
301
|
}
|
|
283
302
|
const params = node.json.parameters;
|
|
284
303
|
if (params?.color !== undefined) {
|
|
285
|
-
|
|
304
|
+
if (typeof params.color === 'number') {
|
|
305
|
+
options.push(`color: ${params.color}`);
|
|
306
|
+
}
|
|
307
|
+
else if (typeof params.color === 'string') {
|
|
308
|
+
options.push(`color: '${(0, string_utils_1.escapeString)(params.color)}'`);
|
|
309
|
+
}
|
|
286
310
|
}
|
|
287
311
|
if (params?.width !== undefined) {
|
|
288
312
|
options.push(`width: ${Number(params.width)}`);
|
|
@@ -301,7 +325,7 @@ function generateMergeCall(node, ctx) {
|
|
|
301
325
|
const indent = getIndent(ctx);
|
|
302
326
|
const innerIndent = getIndent({ ...ctx, indent: ctx.indent + 1 });
|
|
303
327
|
const parts = [];
|
|
304
|
-
parts.push(`${innerIndent}version: ${node.json.typeVersion}`);
|
|
328
|
+
parts.push(`${innerIndent}version: ${node.json.typeVersion ?? 1}`);
|
|
305
329
|
const configParts = [];
|
|
306
330
|
if (node.json.name) {
|
|
307
331
|
configParts.push(`name: '${(0, string_utils_1.escapeString)(node.json.name)}'`);
|
|
@@ -340,7 +364,7 @@ function generateNodeCall(node, ctx) {
|
|
|
340
364
|
}
|
|
341
365
|
}
|
|
342
366
|
function generateLeafCode(leaf, ctx) {
|
|
343
|
-
const nodeName = leaf.node.
|
|
367
|
+
const nodeName = leaf.node.name;
|
|
344
368
|
if (nodeName && ctx.variableNodes.has(nodeName)) {
|
|
345
369
|
return (0, variable_names_1.getVarName)(nodeName, ctx);
|
|
346
370
|
}
|
|
@@ -375,8 +399,8 @@ function generateChain(chain, ctx) {
|
|
|
375
399
|
}
|
|
376
400
|
return parts.join('\n' + getIndent(ctx));
|
|
377
401
|
}
|
|
378
|
-
function generateVarRef(varRef,
|
|
379
|
-
return varRef.
|
|
402
|
+
function generateVarRef(varRef, ctx) {
|
|
403
|
+
return (0, variable_names_1.getVarName)(varRef.nodeName, ctx);
|
|
380
404
|
}
|
|
381
405
|
function generateBranchCode(branch, ctx) {
|
|
382
406
|
if (branch === null)
|
|
@@ -399,6 +423,10 @@ function generateIfElse(ifElse, ctx) {
|
|
|
399
423
|
const falseBranchCode = generateBranchCode(ifElse.falseBranch, innerCtx);
|
|
400
424
|
code += `.onFalse(${falseBranchCode})`;
|
|
401
425
|
}
|
|
426
|
+
if (ifElse.errorHandler) {
|
|
427
|
+
const errorHandlerCode = generateComposite(ifElse.errorHandler, innerCtx);
|
|
428
|
+
code += `.onError(${errorHandlerCode})`;
|
|
429
|
+
}
|
|
402
430
|
return code;
|
|
403
431
|
}
|
|
404
432
|
function generateSwitchCase(switchCase, ctx) {
|
|
@@ -462,7 +490,7 @@ function generateSplitInBatches(sib, ctx) {
|
|
|
462
490
|
if (strippedCode === null) {
|
|
463
491
|
branchCode = `nextBatch(${sibVarName})`;
|
|
464
492
|
}
|
|
465
|
-
else {
|
|
493
|
+
else if (strippedCode !== branchCode) {
|
|
466
494
|
branchCode = `${strippedCode}.to(nextBatch(${sibVarName}))`;
|
|
467
495
|
}
|
|
468
496
|
}
|
|
@@ -477,7 +505,7 @@ function generateSplitInBatches(sib, ctx) {
|
|
|
477
505
|
if (strippedCode === null) {
|
|
478
506
|
eachCode = `nextBatch(${sibVarName})`;
|
|
479
507
|
}
|
|
480
|
-
else {
|
|
508
|
+
else if (strippedCode !== eachCode) {
|
|
481
509
|
eachCode = `${strippedCode}.to(nextBatch(${sibVarName}))`;
|
|
482
510
|
}
|
|
483
511
|
}
|
|
@@ -570,18 +598,21 @@ function generateVariableDeclarations(variables, ctx) {
|
|
|
570
598
|
}
|
|
571
599
|
return declarations.join('\n\n');
|
|
572
600
|
}
|
|
573
|
-
function collectNestedMultiOutputs(node, collected) {
|
|
601
|
+
function collectNestedMultiOutputs(node, collected, visited = new WeakSet()) {
|
|
574
602
|
if (!node)
|
|
575
603
|
return;
|
|
604
|
+
if (visited.has(node))
|
|
605
|
+
return;
|
|
606
|
+
visited.add(node);
|
|
576
607
|
if (node.kind === 'multiOutput') {
|
|
577
608
|
collected.push(node);
|
|
578
609
|
for (const [, target] of node.outputTargets) {
|
|
579
|
-
collectNestedMultiOutputs(target, collected);
|
|
610
|
+
collectNestedMultiOutputs(target, collected, visited);
|
|
580
611
|
}
|
|
581
612
|
}
|
|
582
613
|
else if (node.kind === 'chain') {
|
|
583
614
|
for (const n of node.nodes) {
|
|
584
|
-
collectNestedMultiOutputs(n, collected);
|
|
615
|
+
collectNestedMultiOutputs(n, collected, visited);
|
|
585
616
|
}
|
|
586
617
|
}
|
|
587
618
|
else if (node.kind === 'splitInBatches') {
|
|
@@ -589,19 +620,19 @@ function collectNestedMultiOutputs(node, collected) {
|
|
|
589
620
|
if (sib.doneChain) {
|
|
590
621
|
if (Array.isArray(sib.doneChain)) {
|
|
591
622
|
for (const b of sib.doneChain)
|
|
592
|
-
collectNestedMultiOutputs(b, collected);
|
|
623
|
+
collectNestedMultiOutputs(b, collected, visited);
|
|
593
624
|
}
|
|
594
625
|
else {
|
|
595
|
-
collectNestedMultiOutputs(sib.doneChain, collected);
|
|
626
|
+
collectNestedMultiOutputs(sib.doneChain, collected, visited);
|
|
596
627
|
}
|
|
597
628
|
}
|
|
598
629
|
if (sib.loopChain) {
|
|
599
630
|
if (Array.isArray(sib.loopChain)) {
|
|
600
631
|
for (const b of sib.loopChain)
|
|
601
|
-
collectNestedMultiOutputs(b, collected);
|
|
632
|
+
collectNestedMultiOutputs(b, collected, visited);
|
|
602
633
|
}
|
|
603
634
|
else {
|
|
604
|
-
collectNestedMultiOutputs(sib.loopChain, collected);
|
|
635
|
+
collectNestedMultiOutputs(sib.loopChain, collected, visited);
|
|
605
636
|
}
|
|
606
637
|
}
|
|
607
638
|
}
|
|
@@ -610,19 +641,19 @@ function collectNestedMultiOutputs(node, collected) {
|
|
|
610
641
|
if (ifElse.trueBranch) {
|
|
611
642
|
if (Array.isArray(ifElse.trueBranch)) {
|
|
612
643
|
for (const b of ifElse.trueBranch)
|
|
613
|
-
collectNestedMultiOutputs(b, collected);
|
|
644
|
+
collectNestedMultiOutputs(b, collected, visited);
|
|
614
645
|
}
|
|
615
646
|
else {
|
|
616
|
-
collectNestedMultiOutputs(ifElse.trueBranch, collected);
|
|
647
|
+
collectNestedMultiOutputs(ifElse.trueBranch, collected, visited);
|
|
617
648
|
}
|
|
618
649
|
}
|
|
619
650
|
if (ifElse.falseBranch) {
|
|
620
651
|
if (Array.isArray(ifElse.falseBranch)) {
|
|
621
652
|
for (const b of ifElse.falseBranch)
|
|
622
|
-
collectNestedMultiOutputs(b, collected);
|
|
653
|
+
collectNestedMultiOutputs(b, collected, visited);
|
|
623
654
|
}
|
|
624
655
|
else {
|
|
625
|
-
collectNestedMultiOutputs(ifElse.falseBranch, collected);
|
|
656
|
+
collectNestedMultiOutputs(ifElse.falseBranch, collected, visited);
|
|
626
657
|
}
|
|
627
658
|
}
|
|
628
659
|
}
|
|
@@ -632,34 +663,46 @@ function collectNestedMultiOutputs(node, collected) {
|
|
|
632
663
|
if (c) {
|
|
633
664
|
if (Array.isArray(c)) {
|
|
634
665
|
for (const b of c)
|
|
635
|
-
collectNestedMultiOutputs(b, collected);
|
|
666
|
+
collectNestedMultiOutputs(b, collected, visited);
|
|
636
667
|
}
|
|
637
668
|
else {
|
|
638
|
-
collectNestedMultiOutputs(c, collected);
|
|
669
|
+
collectNestedMultiOutputs(c, collected, visited);
|
|
639
670
|
}
|
|
640
671
|
}
|
|
641
672
|
}
|
|
642
673
|
}
|
|
643
674
|
else if (node.kind === 'fanOut') {
|
|
644
675
|
const fanOut = node;
|
|
645
|
-
collectNestedMultiOutputs(fanOut.sourceNode, collected);
|
|
676
|
+
collectNestedMultiOutputs(fanOut.sourceNode, collected, visited);
|
|
646
677
|
for (const t of fanOut.targets) {
|
|
647
|
-
collectNestedMultiOutputs(t, collected);
|
|
678
|
+
collectNestedMultiOutputs(t, collected, visited);
|
|
648
679
|
}
|
|
649
680
|
}
|
|
650
681
|
else if (node.kind === 'merge') {
|
|
651
682
|
const merge = node;
|
|
652
683
|
for (const b of merge.branches) {
|
|
653
|
-
collectNestedMultiOutputs(b, collected);
|
|
684
|
+
collectNestedMultiOutputs(b, collected, visited);
|
|
654
685
|
}
|
|
655
686
|
}
|
|
656
687
|
}
|
|
688
|
+
function generateMultiOutputTarget(targetComposite, multiOutputSourceName, ctx) {
|
|
689
|
+
if (targetComposite.kind === 'fanOut' &&
|
|
690
|
+
targetComposite.sourceNode.kind === 'leaf' &&
|
|
691
|
+
targetComposite.sourceNode.node.name === multiOutputSourceName) {
|
|
692
|
+
const innerCtx = { ...ctx, indent: ctx.indent + 1 };
|
|
693
|
+
const targetsCode = targetComposite.targets
|
|
694
|
+
.map((target) => generateComposite(target, innerCtx))
|
|
695
|
+
.join(',\n' + getIndent(innerCtx));
|
|
696
|
+
return `[\n${getIndent(innerCtx)}${targetsCode}]`;
|
|
697
|
+
}
|
|
698
|
+
return generateComposite(targetComposite, ctx);
|
|
699
|
+
}
|
|
657
700
|
function generateMultiOutputConnections(multiOutput, ctx) {
|
|
658
701
|
const calls = [];
|
|
659
702
|
const sourceVarName = (0, variable_names_1.getVarName)(multiOutput.sourceNode.name, ctx);
|
|
660
703
|
const sortedOutputs = [...multiOutput.outputTargets.entries()].sort((a, b) => a[0] - b[0]);
|
|
661
704
|
for (const [outputIndex, targetComposite] of sortedOutputs) {
|
|
662
|
-
const targetCode =
|
|
705
|
+
const targetCode = generateMultiOutputTarget(targetComposite, multiOutput.sourceNode.name, ctx);
|
|
663
706
|
calls.push(['add', `${sourceVarName}.output(${outputIndex}).to(${targetCode})`]);
|
|
664
707
|
}
|
|
665
708
|
return calls;
|
|
@@ -671,9 +714,15 @@ function flattenToWorkflowCalls(root, ctx) {
|
|
|
671
714
|
const sourceVarName = (0, variable_names_1.getVarName)(multiOutput.sourceNode.name, ctx);
|
|
672
715
|
calls.push(['add', sourceVarName]);
|
|
673
716
|
const sortedOutputs = [...multiOutput.outputTargets.entries()].sort((a, b) => a[0] - b[0]);
|
|
717
|
+
const nestedMultiOutputs = [];
|
|
674
718
|
for (const [outputIndex, targetComposite] of sortedOutputs) {
|
|
675
|
-
const targetCode =
|
|
719
|
+
const targetCode = generateMultiOutputTarget(targetComposite, multiOutput.sourceNode.name, ctx);
|
|
676
720
|
calls.push(['add', `${sourceVarName}.output(${outputIndex}).to(${targetCode})`]);
|
|
721
|
+
collectNestedMultiOutputs(targetComposite, nestedMultiOutputs);
|
|
722
|
+
}
|
|
723
|
+
for (const nested of nestedMultiOutputs) {
|
|
724
|
+
const nestedCalls = generateMultiOutputConnections(nested, ctx);
|
|
725
|
+
calls.push(...nestedCalls);
|
|
677
726
|
}
|
|
678
727
|
}
|
|
679
728
|
else if (root.kind === 'explicitConnections') {
|
|
@@ -702,8 +751,9 @@ function flattenToWorkflowCalls(root, ctx) {
|
|
|
702
751
|
calls.push([method, sourceVarName]);
|
|
703
752
|
const sortedOutputs = [...multiOutput.outputTargets.entries()].sort((a, b) => a[0] - b[0]);
|
|
704
753
|
for (const [outputIndex, targetComposite] of sortedOutputs) {
|
|
705
|
-
const targetCode =
|
|
754
|
+
const targetCode = generateMultiOutputTarget(targetComposite, multiOutput.sourceNode.name, ctx);
|
|
706
755
|
calls.push(['add', `${sourceVarName}.output(${outputIndex}).to(${targetCode})`]);
|
|
756
|
+
collectNestedMultiOutputs(targetComposite, nestedMultiOutputsInChain);
|
|
707
757
|
}
|
|
708
758
|
}
|
|
709
759
|
else {
|
|
@@ -745,6 +795,9 @@ function generateCode(tree, json, graph, executionContext) {
|
|
|
745
795
|
valuesExcluded: executionContext?.valuesExcluded,
|
|
746
796
|
pinnedNodes: executionContext?.pinnedNodes,
|
|
747
797
|
};
|
|
798
|
+
for (const nodeName of graph.nodes.keys()) {
|
|
799
|
+
(0, variable_names_1.getUniqueVarName)(nodeName, ctx);
|
|
800
|
+
}
|
|
748
801
|
for (const node of graph.nodes.values()) {
|
|
749
802
|
collectSubnodesAsVariables(node, ctx);
|
|
750
803
|
}
|
|
@@ -773,10 +826,18 @@ function generateCode(tree, json, graph, executionContext) {
|
|
|
773
826
|
for (const conn of tree.deferredConnections) {
|
|
774
827
|
const sourceVarName = (0, variable_names_1.getVarName)(conn.sourceNodeName, ctx);
|
|
775
828
|
const targetVarName = (0, variable_names_1.getVarName)(conn.targetNode.name, ctx);
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
829
|
+
if (conn.isErrorOutput) {
|
|
830
|
+
const targetRef = conn.targetInputIndex > 0
|
|
831
|
+
? `${targetVarName}.input(${conn.targetInputIndex})`
|
|
832
|
+
: targetVarName;
|
|
833
|
+
workflowCalls.push(` .add(${sourceVarName}.onError(${targetRef}))`);
|
|
834
|
+
}
|
|
835
|
+
else {
|
|
836
|
+
const sourceRef = conn.sourceOutputIndex > 0
|
|
837
|
+
? `${sourceVarName}.output(${conn.sourceOutputIndex})`
|
|
838
|
+
: sourceVarName;
|
|
839
|
+
workflowCalls.push(` .add(${sourceRef}.to(${targetVarName}.input(${conn.targetInputIndex})))`);
|
|
840
|
+
}
|
|
780
841
|
}
|
|
781
842
|
for (const downstream of tree.deferredMergeDownstreams) {
|
|
782
843
|
const mergeVarName = (0, variable_names_1.getVarName)(downstream.mergeNode.name, ctx);
|
|
@@ -784,6 +845,14 @@ function generateCode(tree, json, graph, executionContext) {
|
|
|
784
845
|
const chainCode = generateComposite(downstream.downstreamChain, ctx);
|
|
785
846
|
workflowCalls.push(` .add(${mergeVarName})`);
|
|
786
847
|
workflowCalls.push(` .to(${chainCode})`);
|
|
848
|
+
const nestedMultiOutputs = [];
|
|
849
|
+
collectNestedMultiOutputs(downstream.downstreamChain, nestedMultiOutputs);
|
|
850
|
+
for (const nested of nestedMultiOutputs) {
|
|
851
|
+
const nestedCalls = generateMultiOutputConnections(nested, ctx);
|
|
852
|
+
for (const [method, args] of nestedCalls) {
|
|
853
|
+
workflowCalls.push(` .${method}(${args})`);
|
|
854
|
+
}
|
|
855
|
+
}
|
|
787
856
|
}
|
|
788
857
|
}
|
|
789
858
|
lines.push('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/codegen/code-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/codegen/code-generator.ts"],"names":[],"mappings":";;AAohCA,8DA2EC;AAkLD,oCA8IC;AAz4CD,2CAKqB;AACrB,qEAAgE;AAEhE,uDAK2B;AAC3B,iDAAgE;AAChE,2DAAkD;AAElD,qDAAgE;AA4ChE,SAAS,SAAS,CAAC,GAAsB;IACxC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAMD,SAAS,mBAAmB,CAC3B,WAAyB,EACzB,WAAmB,EACnB,GAAsB;IAEtB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5D,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,IAAA,yCAAuB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACpE,WAAW,CAAC,IAAI,CAAC,UAAU,IAAA,2BAAY,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxF,WAAW,CAAC,IAAI,CAAC,eAAe,IAAA,+BAAW,EAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,gBAAgB,IAAA,+BAAW,EAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAGD,MAAM,oBAAoB,GAAG,6BAA6B,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7E,IAAI,oBAAoB,EAAE,CAAC;QAC1B,WAAW,CAAC,IAAI,CAAC,aAAa,oBAAoB,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,GAAG,WAAW,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,CAAC;AAKD,SAAS,6BAA6B,CAAC,IAAkB,EAAE,GAAsB;IAChF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAGD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkE,CAAC;IAE1F,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI;YAAE,SAAS;QAE5C,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAGD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,OAAO,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,uCAA2B,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,oCAAwB,CAAC,QAAQ,CAAC,CAAC;QAEvD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAE1C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;QAEvF,IAAI,iCAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAEzC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,mCAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAElD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;iBAAM,IACN,QAAQ,KAAK,kBAAkB;gBAC/B,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC/D,CAAC;gBAEF,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBAEP,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;aAAM,CAAC;YAEP,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,CAAC;AAKD,SAAS,sBAAsB,CAAC,IAAkB,EAAE,GAAsB;IACzE,OAAO,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAQD,SAAS,0BAA0B,CAClC,IAAkB,EAClB,GAAsB,EACtB,UAAU,IAAI,GAAG,EAAU;IAE3B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,SAAS;QAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE7B,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW;YAAE,SAAS;QAG3B,0BAA0B,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAItD,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,SAAS;QAGrD,MAAM,WAAW,GAAG,oCAAwB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/E,CAAC;AACF,CAAC;AAKD,SAAS,8BAA8B,CACtC,WAAyB,EACzB,WAAmB,EACnB,GAAsB;IAEtB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAE5D,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,IAAA,yCAAuB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACpE,WAAW,CAAC,IAAI,CAAC,UAAU,IAAA,2BAAY,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxF,WAAW,CAAC,IAAI,CAAC,eAAe,IAAA,+BAAW,EAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,gBAAgB,IAAA,+BAAW,EAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAGD,MAAM,oBAAoB,GAAG,iCAAiC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACjF,IAAI,oBAAoB,EAAE,CAAC;QAC1B,WAAW,CAAC,IAAI,CAAC,aAAa,oBAAoB,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,GAAG,WAAW,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,CAAC;AAKD,SAAS,iCAAiC,CACzC,IAAkB,EAClB,GAAsB;IAEtB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAGD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+D,CAAC;IAEvF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI;YAAE,SAAS;QAE5C,MAAM,OAAO,GAAG,IAAA,2BAAU,EAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAGD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,uCAA2B,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEtC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,iCAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAEzC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,mCAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAElD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,IACN,QAAQ,KAAK,kBAAkB;gBAC/B,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACvD,CAAC;gBAEF,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBAEP,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxD,CAAC;QACF,CAAC;aAAM,CAAC;YAEP,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,CAAC;AAKD,SAAS,mCAAmC,CAAC,GAAsB;IAClE,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,IAAA,iCAAgB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,8BAA8B,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACpE,YAAY,CAAC,IAAI,CAAC,SAAS,OAAO,MAAM,IAAI,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,YAAY,CAAC;AACrB,CAAC;AAKD,SAAS,kBAAkB,CAAC,IAAkB,EAAE,GAAsB;IACrE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;IAElE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,UAAU,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAa,EAAE,CAAC;IAGjC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,UAAU,IAAA,2BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,WAAW,CAAC,IAAI,CAAC,eAAe,IAAA,+BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC,gBAAgB,IAAA,+BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAGD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAGD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrD,CAAC;IAID,MAAM,cAAc,GACnB,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC;QAC5B,CAAC,CAAC,iCAAiC,CAAC,IAAI,EAAE,GAAG,CAAC;QAC9C,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,cAAc,EAAE,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,aAAa,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;IAGD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,wBAAwB,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,wBAAwB,IAAI,YAAY,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;YAInE,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAG/C,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAG7E,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC;gBACd,CAAC;gBAGD,OAAO,KAAK,GAAG,GAAG,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CACT,GAAG,WAAW,cAAc,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,GAAG,CACtG,CAAC;QACH,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,aAAa,SAAS,IAAI,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,YAAY,CAAC,CAAC;IACxC,CAAC;IAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAChC,IAAI,QAAQ,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAA,6CAAoB,EAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;QACtE,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAE1D,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,uDAAuD,CAAC,CAAC;YACnF,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,YAAY,IAAA,+BAAW,EAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC;IAEF,CAAC;IAED,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,MAAM,GAAG,CAAC;AAC9C,CAAC;AAMD,SAAS,qBAAqB,CAAC,IAAkB,EAAE,GAAsB;IAGxE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,IAAI,QAAQ,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,OAAO,IAAA,2BAAU,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAMD,SAAS,oBAAoB,CAAC,UAAwB,EAAE,GAAsB;IAC7E,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAG3C,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEhD,IAAI,IAAA,8BAAY,EAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAG7C,IACC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK;YAC5B,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAC5B,CAAC;YACF,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,OAAO;gBAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAMD,SAAS,kBAAkB,CAAC,IAAkB,EAAE,GAAsB;IACrE,MAAM,OAAO,GAAG,IAAA,2BAAY,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAkB,IAAI,EAAE,CAAC,CAAC;IAG9E,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAE/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAG7B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,UAAU,IAAA,2BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACpC,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,WAAW,IAAA,2BAAY,EAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;IAEF,CAAC;IACD,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,WAAW,OAAO,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC;AACzD,CAAC;AAMD,SAAS,iBAAiB,CAAC,IAAkB,EAAE,GAAsB;IACpE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;IAElE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAa,EAAE,CAAC;IAGjC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,UAAU,IAAA,2BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,WAAW,CAAC,IAAI,CAAC,eAAe,IAAA,+BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC,gBAAgB,IAAA,+BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAGD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAGD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,MAAM,IAAI,CAAC;AACrD,CAAC;AAKD,SAAS,gBAAgB,CAAC,IAAkB,EAAE,GAAsB;IACnE,IAAI,IAAA,8BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAA,6BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE7C,IAAI,IAAA,+BAAa,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,WAAW,MAAM,GAAG,CAAC;IAC7B,CAAC;SAAM,CAAC;QACP,OAAO,QAAQ,MAAM,GAAG,CAAC;IAC1B,CAAC;AACF,CAAC;AAKD,SAAS,gBAAgB,CAAC,IAAc,EAAE,GAAsB;IAI/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAChC,IAAI,QAAQ,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAGjD,OAAO,IAAA,2BAAU,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAGD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,GAAG,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChC,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAKD,SAAS,YAAY,CAAC,IAAc,EAAE,GAAsB;IAC3D,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAGvC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACnE,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,YAAY,gBAAgB,GAAG,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAKD,SAAS,aAAa,CAAC,KAAgB,EAAE,GAAsB;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,GAAG,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC;AAKD,SAAS,cAAc,CAAC,MAAyB,EAAE,GAAsB;IACxE,OAAO,IAAA,2BAAU,EAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAKD,SAAS,kBAAkB,CAC1B,MAA8C,EAC9C,GAAsB;IAEtB,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAE3B,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO,IAAI,YAAY,GAAG,CAAC;IAC5B,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC;AAMD,SAAS,cAAc,CAAC,MAA2B,EAAE,GAAsB;IAC1E,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAGpD,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG5D,IAAI,IAAI,GAAG,SAAS,CAAC;IAGrB,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAChC,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvE,IAAI,IAAI,WAAW,cAAc,GAAG,CAAC;IACtC,CAAC;IAGD,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzE,IAAI,IAAI,YAAY,eAAe,GAAG,CAAC;IACxC,CAAC;IAGD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC1E,IAAI,IAAI,YAAY,gBAAgB,GAAG,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAMD,SAAS,kBAAkB,CAAC,UAAmC,EAAE,GAAsB;IACtF,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAGpD,MAAM,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAGxE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,aAAa,CAAC;IACtB,CAAC;IAGD,IAAI,IAAI,GAAG,aAAa,CAAC;IACzB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,IAAI,WAAW,SAAS,KAAK,QAAQ,GAAG,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACb,CAAC;AAQD,SAAS,aAAa,CAAC,KAAyB,EAAE,GAAsB;IACvE,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAGpD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,QAAQ,UAAU,KAAK,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;IAChE,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAGb,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAEjE,OAAO,SAAS,YAAY,OAAO,YAAY,KAAK,CAAC;AACtD,CAAC;AAKD,SAAS,oBAAoB,CAAC,MAA8C;IAC3E,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAElC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAE3B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC;AAOD,SAAS,2BAA2B,CAAC,IAAY,EAAE,OAAe;IAEjE,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,WAAW,IAAA,+BAAgB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAGD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAMD,SAAS,sBAAsB,CAAC,GAAgC,EAAE,GAAsB;IACvF,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAGpD,MAAM,UAAU,GAAG,IAAA,2BAAU,EAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAGrD,IAAI,IAAI,GAAG,kBAAkB,UAAU,GAAG,CAAC;IAG3C,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,QAAgB,CAAC;QAGrB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,MAAM,mBAAmB,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxD,IAAI,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAGrD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,MAAM,YAAY,GAAG,2BAA2B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBACzE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;wBAE3B,UAAU,GAAG,aAAa,UAAU,GAAG,CAAC;oBACzC,CAAC;yBAAM,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;wBAExC,UAAU,GAAG,GAAG,YAAY,iBAAiB,UAAU,IAAI,CAAC;oBAC7D,CAAC;gBAGF,CAAC;gBAED,OAAO,UAAU,CAAC;YACnB,CAAC,CAAC,CAAC;YACH,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAClD,CAAC;aAAM,CAAC;YAEP,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAGvD,IAAI,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAEzC,MAAM,YAAY,GAAG,2BAA2B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACvE,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAE3B,QAAQ,GAAG,aAAa,UAAU,GAAG,CAAC;gBACvC,CAAC;qBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAEtC,QAAQ,GAAG,GAAG,YAAY,iBAAiB,UAAU,IAAI,CAAC;gBAC3D,CAAC;YAGF,CAAC;QACF,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,gBAAgB,QAAQ,GAAG,CAAC;IACxD,CAAC;IAGD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,WAAW,QAAQ,GAAG,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAKD,SAAS,cAAc,CAAC,MAA2B,EAAE,GAAsB;IAC1E,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAGpD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAG7D,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO;SAChC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACpD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAGpC,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC,GAAG,CAAC,UAAU,SAAS,CAAC,QAAQ,CAAC,GAAG,WAAW,IAAI,CAAC;AACxF,CAAC;AAKD,SAAS,2BAA2B,CACnC,aAAsC,EACtC,GAAsB;IAKtB,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAA,2BAAU,EAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAKD,SAAS,mBAAmB,CAAC,WAA4B,EAAE,GAAsB;IAGhF,MAAM,OAAO,GAAG,IAAA,2BAAU,EAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC;AAChB,CAAC;AAKD,SAAS,iBAAiB,CAAC,IAAmB,EAAE,GAAsB;IACrE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,KAAK,OAAO;YACX,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,KAAK,QAAQ;YACZ,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,KAAK,QAAQ;YACZ,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,KAAK,YAAY;YAChB,OAAO,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,KAAK,OAAO;YACX,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,KAAK,gBAAgB;YACpB,OAAO,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,KAAK,QAAQ;YACZ,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,KAAK,qBAAqB;YACzB,OAAO,2BAA2B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,KAAK,aAAa;YACjB,OAAO,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;AACF,CAAC;AAKD,SAAS,iBAAiB,CAAC,QAAgB,EAAE,GAAsB;IAClE,MAAM,UAAU,GAAa,EAAE,CAAC;IAGhC,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,MAAM,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QACzC,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAElB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAKD,SAAS,4BAA4B,CACpC,SAAoC,EACpC,GAAsB;IAEtB,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAA,iCAAgB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAG7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACX,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,OAAO,MAAM,QAAQ,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,YAAY,CAAC,IAAI,CAAC,SAAS,OAAO,MAAM,QAAQ,GAAG,CAAC,CAAC;QACtD,CAAC;QAED,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAMD,SAAgB,yBAAyB,CACxC,IAAmB,EACnB,SAA4B,EAC5B,UAAkC,IAAI,OAAO,EAAE;IAE/C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAElB,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErB,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS;oBAAE,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACP,yBAAyB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS;oBAAE,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACP,yBAAyB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU;oBAAE,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACP,yBAAyB,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW;oBAAE,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACP,yBAAyB,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,EAAE,CAAC;gBACP,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtB,KAAK,MAAM,CAAC,IAAI,CAAC;wBAAE,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACP,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,yBAAyB,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAChC,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;AAEF,CAAC;AAOD,SAAS,yBAAyB,CACjC,eAA8B,EAC9B,qBAA6B,EAC7B,GAAsB;IAEtB,IACC,eAAe,CAAC,IAAI,KAAK,QAAQ;QACjC,eAAe,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM;QAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAC7D,CAAC;QACF,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO;aACzC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACpD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,OAAO,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,WAAW,GAAG,CAAC;IACnD,CAAC;IACD,OAAO,iBAAiB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAKD,SAAS,8BAA8B,CACtC,WAA4B,EAC5B,GAAsB;IAEtB,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAA,2BAAU,EAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAGnE,MAAM,aAAa,GAAG,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,KAAK,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,aAAa,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,yBAAyB,CAAC,eAAe,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,aAAa,WAAW,WAAW,QAAQ,UAAU,GAAG,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAMD,SAAS,sBAAsB,CAC9B,IAAmB,EACnB,GAAsB;IAEtB,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAEjC,MAAM,WAAW,GAAG,IAAI,CAAC;QACzB,MAAM,aAAa,GAAG,IAAA,2BAAU,EAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAGnE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;QAInC,MAAM,aAAa,GAAG,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAG3F,MAAM,kBAAkB,GAAsB,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,aAAa,EAAE,CAAC;YAC5D,MAAM,UAAU,GAAG,yBAAyB,CAC3C,eAAe,EACf,WAAW,CAAC,UAAU,CAAC,IAAI,EAC3B,GAAG,CACH,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,aAAa,WAAW,WAAW,QAAQ,UAAU,GAAG,CAAC,CAAC,CAAC;YACjF,yBAAyB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,8BAA8B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAEhD,MAAM,aAAa,GAAG,IAAI,CAAC;QAG3B,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAA,2BAAU,EAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9B,CAAC;QAGD,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAA,2BAAU,EAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAA,2BAAU,EAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC;gBACV,SAAS;gBACT,GAAG,SAAS,KAAK,IAAI,CAAC,YAAY,KAAK,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE;aACvE,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAGlC,MAAM,yBAAyB,GAAsB,EAAE,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAIjC,MAAM,WAAW,GAAG,IAAI,CAAC;gBACzB,MAAM,aAAa,GAAG,IAAA,2BAAU,EAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAGnE,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;gBAGpC,MAAM,aAAa,GAAG,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE3F,KAAK,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC5D,MAAM,UAAU,GAAG,yBAAyB,CAC3C,eAAe,EACf,WAAW,CAAC,UAAU,CAAC,IAAI,EAC3B,GAAG,CACH,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,aAAa,WAAW,WAAW,QAAQ,UAAU,GAAG,CAAC,CAAC,CAAC;oBAGjF,yBAAyB,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;gBACvE,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBAG3B,yBAAyB,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAGD,KAAK,MAAM,WAAW,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;SAAM,CAAC;QAEP,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAIlD,MAAM,kBAAkB,GAAsB,EAAE,CAAC;QACjD,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAEpD,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAWD,SAAgB,YAAY,CAC3B,IAAmB,EACnB,IAAkB,EAClB,KAAoB,EACpB,gBAA0C;IAE1C,MAAM,GAAG,GAAsB;QAC9B,MAAM,EAAE,CAAC;QACT,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,aAAa,EAAE,IAAI,CAAC,SAAS;QAC7B,KAAK;QACL,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAE3B,WAAW,EAAE,gBAAgB,EAAE,WAAW;QAC1C,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB;QAC1D,qBAAqB,EAAE,gBAAgB,EAAE,qBAAqB;QAC9D,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB;QAC1D,cAAc,EAAE,gBAAgB,EAAE,cAAc;QAChD,WAAW,EAAE,gBAAgB,EAAE,WAAW;KAC1C,CAAC;IAMF,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAA,iCAAgB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAGD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAG3B,MAAM,mBAAmB,GAAG,mCAAmC,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAGD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAGD,MAAM,UAAU,GAAG,IAAA,2BAAY,EAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAA,2BAAY,EAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAGnD,MAAM,WAAW,GAChB,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAA,+BAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAGjG,KAAK,CAAC,IAAI,CAAC,wBAAwB,UAAU,OAAO,YAAY,IAAI,WAAW,IAAI,CAAC,CAAC;IAGrF,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACpC,aAAa,CAAC,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAKD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,IAAA,2BAAU,EAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAA,2BAAU,EAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAExB,MAAM,SAAS,GACd,IAAI,CAAC,gBAAgB,GAAG,CAAC;gBACxB,CAAC,CAAC,GAAG,aAAa,UAAU,IAAI,CAAC,gBAAgB,GAAG;gBACpD,CAAC,CAAC,aAAa,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,UAAU,aAAa,YAAY,SAAS,IAAI,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YAEP,MAAM,SAAS,GACd,IAAI,CAAC,iBAAiB,GAAG,CAAC;gBACzB,CAAC,CAAC,GAAG,aAAa,WAAW,IAAI,CAAC,iBAAiB,GAAG;gBACtD,CAAC,CAAC,aAAa,CAAC;YAGlB,aAAa,CAAC,IAAI,CACjB,UAAU,SAAS,OAAO,aAAa,UAAU,IAAI,CAAC,gBAAgB,KAAK,CAC3E,CAAC;QACH,CAAC;IACF,CAAC;IAID,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,IAAA,2BAAU,EAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACrE,aAAa,CAAC,IAAI,CAAC,UAAU,YAAY,GAAG,CAAC,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,CAAC,CAAC;YAG1C,MAAM,kBAAkB,GAAsB,EAAE,CAAC;YACjD,yBAAyB,CAAC,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;YAC1E,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;gBACzC,MAAM,WAAW,GAAG,8BAA8B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAChE,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;oBAC1C,aAAa,CAAC,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAGf,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|