@zzzen/pyright-internal 1.2.0-dev.20221002 → 1.2.0-dev.20221016
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/analyzer/backgroundAnalysisProgram.d.ts +4 -2
- package/dist/analyzer/backgroundAnalysisProgram.js +7 -2
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +18 -1
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.d.ts +14 -0
- package/dist/analyzer/cacheManager.js +65 -0
- package/dist/analyzer/cacheManager.js.map +1 -0
- package/dist/analyzer/checker.d.ts +1 -0
- package/dist/analyzer/checker.js +35 -0
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +6 -1
- package/dist/analyzer/codeFlowEngine.js +102 -87
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +1 -1
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +1 -0
- package/dist/analyzer/importResolver.js +3 -2
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +4 -4
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/program.d.ts +10 -2
- package/dist/analyzer/program.js +67 -44
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/service.d.ts +2 -0
- package/dist/analyzer/service.js +12 -3
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +1 -1
- package/dist/analyzer/sourceFile.js +4 -4
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +6 -3
- package/dist/analyzer/sourceMapper.js +38 -14
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/sourceMapperUtils.d.ts +9 -0
- package/dist/analyzer/sourceMapperUtils.js +45 -0
- package/dist/analyzer/sourceMapperUtils.js.map +1 -0
- package/dist/analyzer/typeEvaluator.js +59 -42
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +4 -36
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +3 -1
- package/dist/analyzer/types.js +6 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.js +1 -0
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/languageServerBase.d.ts +3 -1
- package/dist/languageServerBase.js +12 -8
- package/dist/languageServerBase.js.map +1 -1
- package/dist/localization/localize.d.ts +4 -0
- package/dist/localization/localize.js +2 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -0
- package/dist/parser/parser.js +21 -10
- package/dist/parser/parser.js.map +1 -1
- package/dist/tests/fourslash/findDefinitions.builtinClass.fourslash.js +8 -6
- package/dist/tests/fourslash/findDefinitions.builtinClass.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/runner.js +1 -0
- package/dist/tests/harness/fourslash/runner.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +1 -0
- package/dist/tests/harness/fourslash/testState.js +3 -0
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/parser.test.js +22 -0
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.d.ts +1 -0
- package/dist/tests/sourceMapperUtils.test.js +103 -0
- package/dist/tests/sourceMapperUtils.test.js.map +1 -0
- package/dist/tests/testUtils.js +3 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +8 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +16 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/workspaceMap.js +2 -3
- package/dist/workspaceMap.js.map +1 -1
- package/package.json +1 -1
package/dist/analyzer/program.js
CHANGED
@@ -29,7 +29,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
29
29
|
};
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
31
31
|
exports.Program = exports.MaxWorkspaceIndexFileCount = void 0;
|
32
|
-
const v8_1 = require("v8");
|
33
32
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
34
33
|
const vscode_languageserver_types_1 = require("vscode-languageserver-types");
|
35
34
|
const cancellationUtils_1 = require("../common/cancellationUtils");
|
@@ -49,6 +48,7 @@ const documentSymbolCollector_1 = require("../languageService/documentSymbolColl
|
|
49
48
|
const referencesProvider_1 = require("../languageService/referencesProvider");
|
50
49
|
const renameModuleProvider_1 = require("../languageService/renameModuleProvider");
|
51
50
|
const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
|
51
|
+
const cacheManager_1 = require("./cacheManager");
|
52
52
|
const circularDependency_1 = require("./circularDependency");
|
53
53
|
const parseTreeUtils_1 = require("./parseTreeUtils");
|
54
54
|
const scopeUtils_1 = require("./scopeUtils");
|
@@ -68,7 +68,7 @@ exports.MaxWorkspaceIndexFileCount = 2000;
|
|
68
68
|
// Opened - temporarily opened in the editor
|
69
69
|
// Shadowed - implementation file that shadows a type stub file
|
70
70
|
class Program {
|
71
|
-
constructor(initialImportResolver, initialConfigOptions, console, _extension, logTracker, _disableChecker) {
|
71
|
+
constructor(initialImportResolver, initialConfigOptions, console, _extension, logTracker, _disableChecker, cacheManager) {
|
72
72
|
this._extension = _extension;
|
73
73
|
this._disableChecker = _disableChecker;
|
74
74
|
this._sourceFileList = [];
|
@@ -131,8 +131,13 @@ class Program {
|
|
131
131
|
this._logTracker = logTracker !== null && logTracker !== void 0 ? logTracker : new logTracker_1.LogTracker(console, 'FG');
|
132
132
|
this._importResolver = initialImportResolver;
|
133
133
|
this._configOptions = initialConfigOptions;
|
134
|
+
this._cacheManager = cacheManager !== null && cacheManager !== void 0 ? cacheManager : new cacheManager_1.CacheManager();
|
135
|
+
this._cacheManager.registerCacheOwner(this);
|
134
136
|
this._createNewEvaluator();
|
135
137
|
}
|
138
|
+
dispose() {
|
139
|
+
this._cacheManager.unregisterCacheOwner(this);
|
140
|
+
}
|
136
141
|
get evaluator() {
|
137
142
|
return this._evaluator;
|
138
143
|
}
|
@@ -371,12 +376,16 @@ class Program {
|
|
371
376
|
return sourceFileInfo.sourceFile;
|
372
377
|
}
|
373
378
|
getBoundSourceFile(filePath) {
|
379
|
+
var _a;
|
380
|
+
return (_a = this.getBoundSourceFileInfo(filePath)) === null || _a === void 0 ? void 0 : _a.sourceFile;
|
381
|
+
}
|
382
|
+
getBoundSourceFileInfo(filePath) {
|
374
383
|
const sourceFileInfo = this._getSourceFileInfoFromPath(filePath);
|
375
384
|
if (!sourceFileInfo) {
|
376
385
|
return undefined;
|
377
386
|
}
|
378
387
|
this._bindFile(sourceFileInfo);
|
379
|
-
return
|
388
|
+
return sourceFileInfo;
|
380
389
|
}
|
381
390
|
// Performs parsing and analysis of any source files in the program
|
382
391
|
// that require it. If a limit time is specified, the operation
|
@@ -710,7 +719,20 @@ class Program {
|
|
710
719
|
builtinsScope =
|
711
720
|
(_b = (_a = getScopeIfAvailable(fileToAnalyze.chainedSourceFile)) !== null && _a !== void 0 ? _a : getScopeIfAvailable(fileToAnalyze.ipythonDisplayImport)) !== null && _b !== void 0 ? _b : getScopeIfAvailable(fileToAnalyze.builtinsImport);
|
712
721
|
}
|
713
|
-
fileToAnalyze.sourceFile.
|
722
|
+
let futureImports = fileToAnalyze.sourceFile.getParseResults().futureImports;
|
723
|
+
if (fileToAnalyze.chainedSourceFile) {
|
724
|
+
futureImports = this._getEffectiveFutureImports(futureImports, fileToAnalyze.chainedSourceFile);
|
725
|
+
}
|
726
|
+
fileToAnalyze.effectiveFutureImports = futureImports.size > 0 ? futureImports : undefined;
|
727
|
+
fileToAnalyze.sourceFile.bind(this._configOptions, this._lookUpImport, builtinsScope, futureImports);
|
728
|
+
}
|
729
|
+
_getEffectiveFutureImports(futureImports, chainedSourceFile) {
|
730
|
+
var _a;
|
731
|
+
const effectiveFutureImports = new Set(futureImports);
|
732
|
+
(_a = chainedSourceFile.effectiveFutureImports) === null || _a === void 0 ? void 0 : _a.forEach((value) => {
|
733
|
+
effectiveFutureImports.add(value);
|
734
|
+
});
|
735
|
+
return effectiveFutureImports;
|
714
736
|
}
|
715
737
|
// Build a map of all modules within this program and the module-
|
716
738
|
// level scope that contains the symbol table for the module.
|
@@ -1006,7 +1028,7 @@ class Program {
|
|
1006
1028
|
}
|
1007
1029
|
this._bindFile(sourceFileInfo);
|
1008
1030
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1009
|
-
return sourceFileInfo.sourceFile.getDefinitionsForPosition(this._createSourceMapper(execEnv), position, filter, this._evaluator, token);
|
1031
|
+
return sourceFileInfo.sourceFile.getDefinitionsForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, filter, this._evaluator, token);
|
1010
1032
|
});
|
1011
1033
|
}
|
1012
1034
|
getTypeDefinitionsForPosition(filePath, position, token) {
|
@@ -1017,7 +1039,7 @@ class Program {
|
|
1017
1039
|
}
|
1018
1040
|
this._bindFile(sourceFileInfo);
|
1019
1041
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1020
|
-
return sourceFileInfo.sourceFile.getTypeDefinitionsForPosition(this._createSourceMapper(execEnv, /* mapCompiled */ false, /* preferStubs */ true), position, this._evaluator, filePath, token);
|
1042
|
+
return sourceFileInfo.sourceFile.getTypeDefinitionsForPosition(this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ false, /* preferStubs */ true), position, this._evaluator, filePath, token);
|
1021
1043
|
});
|
1022
1044
|
}
|
1023
1045
|
reportReferencesForPosition(filePath, position, includeDeclaration, reporter, token) {
|
@@ -1029,7 +1051,7 @@ class Program {
|
|
1029
1051
|
const invokedFromUserFile = (0, sourceFileInfoUtils_1.isUserCode)(sourceFileInfo);
|
1030
1052
|
this._bindFile(sourceFileInfo);
|
1031
1053
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1032
|
-
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, reporter, token);
|
1054
|
+
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, reporter, token);
|
1033
1055
|
if (!referencesResult) {
|
1034
1056
|
return;
|
1035
1057
|
}
|
@@ -1159,7 +1181,7 @@ class Program {
|
|
1159
1181
|
}
|
1160
1182
|
this._bindFile(sourceFileInfo);
|
1161
1183
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1162
|
-
return sourceFileInfo.sourceFile.getHoverForPosition(this._createSourceMapper(execEnv, /* mapCompiled */ true), position, format, this._evaluator, token);
|
1184
|
+
return sourceFileInfo.sourceFile.getHoverForPosition(this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), position, format, this._evaluator, token);
|
1163
1185
|
});
|
1164
1186
|
}
|
1165
1187
|
getDocumentHighlight(filePath, position, token) {
|
@@ -1170,7 +1192,7 @@ class Program {
|
|
1170
1192
|
}
|
1171
1193
|
this._bindFile(sourceFileInfo);
|
1172
1194
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1173
|
-
return sourceFileInfo.sourceFile.getDocumentHighlight(this._createSourceMapper(execEnv), position, this._evaluator, token);
|
1195
|
+
return sourceFileInfo.sourceFile.getDocumentHighlight(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, token);
|
1174
1196
|
});
|
1175
1197
|
}
|
1176
1198
|
getSignatureHelpForPosition(filePath, position, format, token) {
|
@@ -1181,7 +1203,7 @@ class Program {
|
|
1181
1203
|
}
|
1182
1204
|
this._bindFile(sourceFileInfo);
|
1183
1205
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1184
|
-
return sourceFileInfo.sourceFile.getSignatureHelpForPosition(position, this._createSourceMapper(execEnv, /* mapCompiled */ true), this._evaluator, format, token);
|
1206
|
+
return sourceFileInfo.sourceFile.getSignatureHelpForPosition(position, this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), this._evaluator, format, token);
|
1185
1207
|
});
|
1186
1208
|
}
|
1187
1209
|
async getCompletionsForPosition(filePath, position, workspacePath, options, nameMap, libraryMap, token) {
|
@@ -1195,7 +1217,7 @@ class Program {
|
|
1195
1217
|
const result = this._runEvaluatorWithCancellationToken(token, () => {
|
1196
1218
|
this._bindFile(sourceFileInfo);
|
1197
1219
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1198
|
-
return sourceFileInfo.sourceFile.getCompletionsForPosition(position, workspacePath, this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
|
1220
|
+
return sourceFileInfo.sourceFile.getCompletionsForPosition(position, workspacePath, this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
|
1199
1221
|
/* includeIndexUserSymbols */ false, token), token);
|
1200
1222
|
});
|
1201
1223
|
ls.add(`found ${(_a = result === null || result === void 0 ? void 0 : result.completionMap.size) !== null && _a !== void 0 ? _a : 'null'} items`);
|
@@ -1227,7 +1249,7 @@ class Program {
|
|
1227
1249
|
}
|
1228
1250
|
this._bindFile(sourceFileInfo);
|
1229
1251
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1230
|
-
sourceFileInfo.sourceFile.resolveCompletionItem(this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
|
1252
|
+
sourceFileInfo.sourceFile.resolveCompletionItem(this._configOptions, this._importResolver, this._lookUpImport, this._evaluator, options, this._createSourceMapper(execEnv, sourceFileInfo, /* mapCompiled */ true), nameMap, libraryMap, () => this._buildModuleSymbolsMap(sourceFileInfo, !!libraryMap,
|
1231
1253
|
/* includeIndexUserSymbols */ false, token), completionItem, token);
|
1232
1254
|
});
|
1233
1255
|
}
|
@@ -1272,7 +1294,7 @@ class Program {
|
|
1272
1294
|
}
|
1273
1295
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1274
1296
|
const declarations = documentSymbolCollector_1.DocumentSymbolCollector.getDeclarationsForNode(node, this._evaluator,
|
1275
|
-
/* resolveLocalNames */ false, token, this._createSourceMapper(execEnv));
|
1297
|
+
/* resolveLocalNames */ false, token, this._createSourceMapper(execEnv, fileInfo));
|
1276
1298
|
const renameModuleProvider = renameModuleProvider_1.RenameModuleProvider.createForSymbol(this._importResolver, this._configOptions, this._evaluator, filePath, newFilePath, declarations, token);
|
1277
1299
|
if (!renameModuleProvider) {
|
1278
1300
|
return undefined;
|
@@ -1402,7 +1424,7 @@ class Program {
|
|
1402
1424
|
}
|
1403
1425
|
this._bindFile(sourceFileInfo);
|
1404
1426
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1405
|
-
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, undefined, token);
|
1427
|
+
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, undefined, token);
|
1406
1428
|
if (!referencesResult || referencesResult.declarations.length === 0) {
|
1407
1429
|
return undefined;
|
1408
1430
|
}
|
@@ -1416,7 +1438,7 @@ class Program {
|
|
1416
1438
|
}
|
1417
1439
|
this._bindFile(sourceFileInfo);
|
1418
1440
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1419
|
-
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, undefined, token);
|
1441
|
+
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, undefined, token);
|
1420
1442
|
if (!referencesResult || referencesResult.declarations.length === 0) {
|
1421
1443
|
return undefined;
|
1422
1444
|
}
|
@@ -1443,7 +1465,7 @@ class Program {
|
|
1443
1465
|
}
|
1444
1466
|
this._bindFile(sourceFileInfo);
|
1445
1467
|
const execEnv = this._configOptions.findExecEnvironment(filePath);
|
1446
|
-
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv), position, this._evaluator, undefined, token);
|
1468
|
+
const referencesResult = sourceFileInfo.sourceFile.getDeclarationForPosition(this._createSourceMapper(execEnv, sourceFileInfo), position, this._evaluator, undefined, token);
|
1447
1469
|
if (!referencesResult || referencesResult.declarations.length === 0) {
|
1448
1470
|
return undefined;
|
1449
1471
|
}
|
@@ -1458,8 +1480,24 @@ class Program {
|
|
1458
1480
|
this._bindFile(sourceFileInfo);
|
1459
1481
|
return sourceFileInfo.sourceFile.performQuickAction(command, args, token);
|
1460
1482
|
}
|
1461
|
-
|
1462
|
-
|
1483
|
+
// Returns a value from 0 to 1 (or more) indicating how "full" the cache is
|
1484
|
+
// relative to some predetermined high-water mark. We'll compute this value
|
1485
|
+
// based on two easy-to-compute metrics: the number of entries in the type
|
1486
|
+
// cache and the number of parsed files.
|
1487
|
+
getCacheUsage() {
|
1488
|
+
const typeCacheEntryCount = this._evaluator.getTypeCacheEntryCount();
|
1489
|
+
const entryCountRatio = typeCacheEntryCount / 750000;
|
1490
|
+
const fileCountRatio = this._parsedFileCount / 1000;
|
1491
|
+
return Math.max(entryCountRatio, fileCountRatio);
|
1492
|
+
}
|
1493
|
+
// Discards any cached information associated with this program.
|
1494
|
+
emptyCache() {
|
1495
|
+
this._createNewEvaluator();
|
1496
|
+
this._discardCachedParseResults();
|
1497
|
+
this._parsedFileCount = 0;
|
1498
|
+
}
|
1499
|
+
test_createSourceMapper(execEnv, from) {
|
1500
|
+
return this._createSourceMapper(execEnv, /*from*/ from, /* mapCompiled */ false);
|
1463
1501
|
}
|
1464
1502
|
_getRenameSymbolMode(sourceFileInfo, referencesResult, isDefaultWorkspace) {
|
1465
1503
|
// We have 2 different cases
|
@@ -1535,34 +1573,19 @@ class Program {
|
|
1535
1573
|
}
|
1536
1574
|
}
|
1537
1575
|
_handleMemoryHighUsage() {
|
1538
|
-
const
|
1539
|
-
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
// Don't bother doing this until we hit this point because the heap usage may not
|
1544
|
-
// drop immediately after we empty the cache due to garbage collection timing.
|
1545
|
-
if (typeCacheEntryCount > 750000 || this._parsedFileCount > 1000) {
|
1546
|
-
const heapStats = (0, v8_1.getHeapStatistics)();
|
1547
|
-
if (this._configOptions.verboseOutput) {
|
1548
|
-
this._console.info(`Heap stats: ` +
|
1549
|
-
`total_heap_size=${convertToMB(heapStats.total_heap_size)}, ` +
|
1550
|
-
`used_heap_size=${convertToMB(heapStats.used_heap_size)}, ` +
|
1551
|
-
`total_physical_size=${convertToMB(heapStats.total_physical_size)}, ` +
|
1552
|
-
`total_available_size=${convertToMB(heapStats.total_available_size)}, ` +
|
1553
|
-
`heap_size_limit=${convertToMB(heapStats.heap_size_limit)}`);
|
1554
|
-
}
|
1576
|
+
const cacheUsage = this._cacheManager.getCacheUsage();
|
1577
|
+
// If the total cache has exceeded 75%, determine whether we should empty
|
1578
|
+
// the cache.
|
1579
|
+
if (cacheUsage > 0.75) {
|
1580
|
+
const usedHeapRatio = this._cacheManager.getUsedHeapRatio(this._configOptions.verboseOutput ? this._console : undefined);
|
1555
1581
|
// The type cache uses a Map, which has an absolute limit of 2^24 entries
|
1556
1582
|
// before it will fail. If we cross the 95% mark, we'll empty the cache.
|
1557
1583
|
const absoluteMaxCacheEntryCount = (1 << 24) * 0.9;
|
1584
|
+
const typeCacheEntryCount = this._evaluator.getTypeCacheEntryCount();
|
1558
1585
|
// If we use more than 90% of the heap size limit, avoid a crash
|
1559
1586
|
// by emptying the type cache.
|
1560
|
-
if (typeCacheEntryCount > absoluteMaxCacheEntryCount ||
|
1561
|
-
|
1562
|
-
this._console.info(`Emptying type cache to avoid heap overflow. Used ${convertToMB(heapStats.used_heap_size)} out of ${convertToMB(heapStats.heap_size_limit)} (${typeCacheEntryCount} cache entries).`);
|
1563
|
-
this._createNewEvaluator();
|
1564
|
-
this._discardCachedParseResults();
|
1565
|
-
this._parsedFileCount = 0;
|
1587
|
+
if (typeCacheEntryCount > absoluteMaxCacheEntryCount || usedHeapRatio > 0.9) {
|
1588
|
+
this._cacheManager.emptyCache(this._console);
|
1566
1589
|
}
|
1567
1590
|
}
|
1568
1591
|
}
|
@@ -1589,7 +1612,7 @@ class Program {
|
|
1589
1612
|
// An unexpected exception occurred, potentially leaving the current evaluator
|
1590
1613
|
// in an inconsistent state. Discard it and replace it with a fresh one. It is
|
1591
1614
|
// Cancellation exceptions are known to handle this correctly.
|
1592
|
-
if (!
|
1615
|
+
if (!cancellationUtils_1.OperationCanceledException.is(e)) {
|
1593
1616
|
this._createNewEvaluator();
|
1594
1617
|
}
|
1595
1618
|
throw e;
|
@@ -1695,7 +1718,7 @@ class Program {
|
|
1695
1718
|
}
|
1696
1719
|
return false;
|
1697
1720
|
}
|
1698
|
-
_createSourceMapper(execEnv, mapCompiled, preferStubs) {
|
1721
|
+
_createSourceMapper(execEnv, from, mapCompiled, preferStubs) {
|
1699
1722
|
const sourceMapper = new sourceMapper_1.SourceMapper(this._importResolver, execEnv, this._evaluator, (stubFilePath, implFilePath) => {
|
1700
1723
|
const stubFileInfo = this._getSourceFileInfoFromPath(stubFilePath);
|
1701
1724
|
if (!stubFileInfo) {
|
@@ -1703,7 +1726,7 @@ class Program {
|
|
1703
1726
|
}
|
1704
1727
|
this._addShadowedFile(stubFileInfo, implFilePath);
|
1705
1728
|
return this.getBoundSourceFile(implFilePath);
|
1706
|
-
}, (f) => this.
|
1729
|
+
}, (f) => this.getBoundSourceFileInfo(f), mapCompiled !== null && mapCompiled !== void 0 ? mapCompiled : false, preferStubs !== null && preferStubs !== void 0 ? preferStubs : false, from);
|
1707
1730
|
return sourceMapper;
|
1708
1731
|
}
|
1709
1732
|
_isImportAllowed(importer, importResult, isImportStubFile) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/analyzer/program.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;AAEH,iEAA0F;AAE1F,6EAOqC;AAErC,mEAAuG;AACvG,+DAAwD;AAExD,+CAAsE;AACtE,2CAAsD;AAKtD,qDAAkD;AAClD,mDAU6B;AAC7B,2DAAoH;AACpH,uDAAoE;AACpE,mDAA0G;AAC1G,6CAAyD;AACzD,kEAMyC;AACzC,oFAAiF;AACjF,8EAK+C;AAE/C,wFAAqF;AAGrF,8EAA4F;AAC5F,kFAA+E;AAK/E,qEAAuD;AACvD,iDAA8C;AAC9C,6DAA0D;AAI1D,qDAAkE;AAElE,6CAA+C;AAC/C,6CAAuD;AACvD,+DAAmD;AACnD,iDAA0D;AAE1D,uDAA6D;AAC7D,iDAAoD;AAEpD,yEAA4E;AAG5E,qDAAkD;AAElD,MAAM,eAAe,GAAG,GAAG,CAAC;AAEf,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAyE/C,gEAAgE;AAChE,yDAAyD;AACzD,6CAA6C;AAC7C,+CAA+C;AAC/C,6CAA6C;AAC7C,gEAAgE;AAChE,MAAa,OAAO;IAahB,YACI,qBAAqC,EACrC,oBAAmC,EACnC,OAA0B,EAClB,UAAqC,EAC7C,UAAuB,EACf,eAAyB,EACjC,YAA2B;QAHnB,eAAU,GAAV,UAAU,CAA2B;QAErC,oBAAe,GAAf,eAAe,CAAU;QAjB7B,oBAAe,GAAqB,EAAE,CAAC;QACvC,mBAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QAMnD,qBAAgB,GAAG,CAAC,CAAC;QA6xBrB,kBAAa,GAAG,CAAC,gBAAmD,EAAkC,EAAE;;YAC5G,IAAI,cAA0C,CAAC;YAE/C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;gBACtC,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;aACtE;iBAAM;gBACH,sBAAsB;gBACtB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CACnD,gBAAgB,CAAC,iBAAiB,EAClC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAC3E;oBACI,WAAW,EAAE,CAAC;oBACd,SAAS,EAAE,gBAAgB,CAAC,SAAS;oBACrC,eAAe,EAAE,SAAS;iBAC7B,CACJ,CAAC;gBAEF,IAAI,YAAY,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClG,IAAI,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACrF,IAAI,YAAY,EAAE;wBACd,wDAAwD;wBACxD,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;wBAE/D,IAAI,CAAC,cAAc,EAAE;4BACjB,YAAY,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;4BAEzD,kCAAkC;4BAClC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;4BAClC,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;yBAClE;qBACJ;iBACJ;aACJ;YAED,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,cAAc,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE;gBAC/C,iEAAiE;gBACjE,4BAA4B;gBAC5B,oBAAW,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,EAAE;oBAC9C,IAAI,CAAC,SAAS,CAAC,cAAe,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;aACN;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;YACrE,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YACjE,MAAM,UAAU,GAAG,YAAa,CAAC,SAAS,CAAC;YAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,YAAa,CAAC,SAAS,CAAC,CAAC;YAEjF,OAAO;gBACH,WAAW;gBACX,cAAc,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK;gBACpC,4BAA4B,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,4BAA4B,mCAAI,KAAK;gBAClF,IAAI,SAAS;oBACT,OAAO,IAAA,6BAAY,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC/C,CAAC;aACJ,CAAC;QACN,CAAC,CAAC;QAh1BE,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,IAAI,yBAAe,EAAE,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,uBAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC;QAE3C,IAAI,CAAC,aAAa,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,2BAAY,EAAE,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,gBAAgB,CAAC,aAA4B;QACzC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QAEpC,0DAA0D;QAC1D,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC5C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QAEtC,2DAA2D;QAC3D,8DAA8D;QAC9D,8DAA8D;QAC9D,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,2DAA2D;IAC3D,eAAe,CAAC,SAAmB;QAC/B,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,0EAA0E;YAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC7C,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,UAAU,CAAC,GAAG,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;YAEH,kDAAkD;YAClD,+BAA+B;YAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBAC3B,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;iBAC7B;YACL,CAAC,CAAC,CAAC;SACN;QAED,uDAAuD;QACvD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACvC,CAAC;IAED,gEAAgE;IAChE,kEAAkE;IAClE,mBAAmB,CAAC,gBAAkC;QAClD,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC9C,CAAC;IAED,+DAA+D;IAC/D,+DAA+D;IAC/D,kEAAkE;IAClE,0DAA0D;IAC1D,uCAAuC;IACvC,2BAA2B,CAAC,WAAqB;QAC7C,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC;IACjD,CAAC;IAED,eAAe,CAAC,SAAmB,EAAE,kBAAkB,GAAG,KAAK,EAAE,kBAAkB,GAAG,KAAK;QACvF,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,kBAAkB,GAAG,KAAK,EAAE,kBAAkB,GAAG,KAAK;QACnF,IAAI,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,cAAc,EAAE;YAChB,2DAA2D;YAC3D,mCAAmC;YACnC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACpD,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;YAChC,OAAO,cAAc,CAAC,UAAU,CAAC;SACpC;QAED,MAAM,UAAU,GAAG,IAAI,uBAAU,CAC7B,IAAI,CAAC,GAAG,EACR,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,CACnB,CAAC;QACF,cAAc,GAAG;YACb,UAAU;YACV,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,kBAAkB;YAClB,0BAA0B,EAAE,kBAAkB;YAC9C,kBAAkB,EAAE,SAAS;YAC7B,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;SACjB,CAAC;QACF,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,aAAa,CACT,QAAgB,EAChB,OAAsB,EACtB,QAA0C,EAC1C,OAAyB;;QAEzB,IAAI,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,cAAc,EAAE;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,uBAAU,CAC7B,IAAI,CAAC,GAAG,EACR,QAAQ,EACR,UAAU;YACV,wBAAwB,CAAC,KAAK;YAC9B,wBAAwB,CAAC,KAAK,EAC9B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,EAChB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EACrB,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,wBAAW,CAAC,IAAI,CAC3C,CAAC;YAEF,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,CAAC;YACjD,cAAc,GAAG;gBACb,UAAU;gBACV,SAAS,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,KAAK;gBACtC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;gBACjG,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,KAAK;gBACrB,kBAAkB,EAAE,KAAK;gBACzB,0BAA0B,EAAE,KAAK;gBACjC,kBAAkB,EAAE,SAAS;gBAC7B,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;SACnD;aAAM;YACH,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC;YAErC,4DAA4D;YAC5D,mEAAmE;YACnE,mEAAmE;YACnE,6DAA6D;YAC7D,cAAc,CAAC,kBAAkB,GAAG,CAAC,CAAC;SACzC;QAED,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,kBAAkB,CAAC,QAAgB;;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,iBAAiB,0CAAE,UAAU,CAAC,WAAW,EAAE,CAAC;IACvE,CAAC;IAED,qBAAqB,CAAC,QAAgB,EAAE,eAAmC;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,cAAc,EAAE;YAChB,cAAc,CAAC,iBAAiB,GAAG,eAAe;gBAC9C,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC;gBAClD,CAAC,CAAC,SAAS,CAAC;YAEhB,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;SACnE;IACL,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,cAAc,EAAE;YAChB,cAAc,CAAC,cAAc,GAAG,KAAK,CAAC;YACtC,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAErD,yEAAyE;YACzE,iEAAiE;YACjE,wEAAwE;YACxE,2CAA2C;YAC3C,IAAI,cAAc,CAAC,UAAU,CAAC,uBAAuB,EAAE,EAAE;gBACrD,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;aACnE;SACJ;QAED,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,QAAgB;QACvB,OAAO,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC;IACnE,CAAC;IAED,iBAAiB,CAAC,qBAA8B,EAAE,cAAc,GAAG,IAAI;QACnE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QAEvC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YAC5C,IAAI,qBAAqB,EAAE;gBACvB,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;aACvD;iBAAM,IAAI,cAAc,CAAC,UAAU,CAAC,uBAAuB,EAAE,EAAE;gBAC5D,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAEpD,mDAAmD;gBACnD,2DAA2D;gBAC3D,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;aAC9D;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,cAAc,CAAC,SAAmB,EAAE,qBAA8B,EAAE,cAAc,GAAG,IAAI;QACrF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,cAAc,EAAE;gBAChB,MAAM,QAAQ,GAAG,IAAA,uBAAW,EAAC,QAAQ,CAAC,CAAC;gBAEvC,kEAAkE;gBAClE,gCAAgC;gBAChC,IAAI,QAAQ,KAAK,cAAc,IAAI,QAAQ,KAAK,kBAAkB,EAAE;oBAChE,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;oBAC9D,OAAO;iBACV;gBAED,8DAA8D;gBAC9D,kEAAkE;gBAClE,0DAA0D;gBAC1D,IACI,qBAAqB;oBACrB,CAAC,CAAC,cAAc,CAAC,cAAc,IAAI,cAAc,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,EACzF;oBACE,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAEpD,mDAAmD;oBACnD,2DAA2D;oBAC3D,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;iBAC9D;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,6EAA6E;IAC7E,eAAe;IACf,gBAAgB;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gCAAU,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,sBAAsB;QAClB,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,OAAO,eAAe,CAAC;SAC1B;QAED,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtC,IAAI,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;oBACjC,eAAe,EAAE,CAAC;iBACrB;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,IAAI,KAAK,CAAC;IAC3D,CAAC;IAED,oBAAoB,CAAC,MAAc;QAC/B,MAAM,UAAU,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,cAAc,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,QAAgB;;QAC/B,OAAO,MAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,0CAAE,UAAU,CAAC;IAC7D,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,mEAAmE;IACnE,+DAA+D;IAC/D,mEAAmE;IACnE,8DAA8D;IAC9D,+DAA+D;IAC/D,mDAAmD;IACnD,OAAO,CAAC,OAAyB,EAAE,QAA2B,yCAAiB,CAAC,IAAI;QAChF,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,WAAW,GAAG,IAAI,iBAAQ,EAAE,CAAC;YAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAClE,CAAC;YAEF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;gBAEhF,wBAAwB;gBACxB,KAAK,MAAM,cAAc,IAAI,SAAS,EAAE;oBACpC,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;wBAClC,IAAI,WAAW,CAAC,yBAAyB,EAAE,GAAG,gBAAgB,EAAE;4BAC5D,OAAO,IAAI,CAAC;yBACf;qBACJ;iBACJ;gBAED,0DAA0D;gBAC1D,uDAAuD;gBACvD,kDAAkD;gBAClD,IAAI,OAAO,KAAK,SAAS,EAAE;oBACvB,OAAO,IAAI,CAAC;iBACf;aACJ;YAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;gBACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;gBAElF,qDAAqD;gBACrD,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;oBAC/C,IAAI,CAAC,IAAA,gCAAU,EAAC,cAAc,CAAC,EAAE;wBAC7B,SAAS;qBACZ;oBAED,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;wBAClC,IAAI,WAAW,CAAC,yBAAyB,EAAE,GAAG,gBAAgB,EAAE;4BAC5D,OAAO,IAAI,CAAC;yBACf;qBACJ;iBACJ;aACJ;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,QAAuD,EAAE,KAAwB;QAC5F,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC/B,OAAO,CAAC,CAAC;SACZ;QAED,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,0DAA0D;YAC1D,yEAAyE;YACzE,yDAAyD;YACzD,sEAAsE;YACtE,2BAA2B;YAC3B,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;YACrD,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC/C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;oBAC9C,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;iBAC1C;aACJ;YAED,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC/C,IAAI,CAAC,IAAA,gCAAU,EAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE;oBAChF,SAAS;iBACZ;gBAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC7F,IAAI,OAAO,EAAE;oBACT,IAAI,EAAE,KAAK,GAAG,kCAA0B,EAAE;wBACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;wBAE7E,sCAAsC,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;wBACjF,OAAO,KAAK,CAAC;qBAChB;oBAED,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;iBAC9D;gBAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC;YAED,sCAAsC,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;YACjF,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,SAAS,sCAAsC,CAC3C,WAA6B,EAC7B,kBAAuC;YAEvC,KAAK,MAAM,cAAc,IAAI,WAAW,EAAE;gBACtC,IAAI,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;oBACvF,SAAS;iBACZ;gBAED,oDAAoD;gBACpD,cAAc,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;aACpD;QACL,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,+CAA+C;IAC/C,0BAA0B;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,SAAS,CAAC;aACxD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,CAAC,UAAU,CAAC,YAAY,EAAG,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,EAAG,CAAC;QACvE,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE5C,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,EAAG,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gEAAgE;IAChE,4CAA4C;IAC5C,iBAAiB,CAAC,cAAsB,EAAE,OAAgB;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;aAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBACrD,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBAClD,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QAEP,MAAM,eAAe,GAAiB,EAAE,CAAC;QAEzC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvB,IAAI,QAAQ,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC1D,IAAI,OAAO,EAAE;gBACT,QAAQ,GAAG,OAAO,CAAC;aACtB;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;YAElC,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,gBAAgB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC7F,CAAC;YACF,IAAI,OAAO,EAAE;gBACT,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7F,CAAC,CAAC,CAAC;aACN;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,gBAAgB,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CACnG,CAAC;YACF,IAAI,OAAO,EAAE;gBACT,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7F,CAAC,CAAC,CAAC;aACN;YAED,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;aAC3C;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,GAAG,eAAe,CAAC,MAAM,QAAQ,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,0BAA0B,CAC1G,CAAC;YACF,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,aAAa,CAAC,gBAAwB,EAAE,kBAA2B,EAAE,QAAgB,EAAE,KAAwB;QAC3G,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/C,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAEzD,iEAAiE;YACjE,2DAA2D;YAC3D,MAAM,YAAY,GAAG,IAAA,2BAAe,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACjE,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC5B,IAAI,YAAY,GAAG,IAAA,yBAAa,EAAC,IAAA,wBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;gBAEvE,+DAA+D;gBAC/D,gEAAgE;gBAChE,2DAA2D;gBAC3D,IAAI,kBAAkB,EAAE;oBACpB,YAAY,GAAG,IAAA,wBAAY,EAAC,IAAA,4BAAgB,EAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;iBAC/E;qBAAM;oBACH,YAAY,GAAG,IAAA,8BAAkB,EAAC,YAAY,CAAC,GAAG,MAAM,CAAC;iBAC5D;gBAED,MAAM,WAAW,GAAG,IAAA,4BAAgB,EAAC,YAAY,CAAC,CAAC;gBAEnD,IAAI;oBACA,IAAA,2BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;iBACpD;gBAAC,OAAO,CAAM,EAAE;oBACb,MAAM,MAAM,GAAG,mCAAmC,WAAW,GAAG,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;iBAC3B;gBAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAE/B,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;oBAChD,MAAM,MAAM,GAAG,IAAI,+BAAc,CAAC,YAAY,EAAE,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,UAAW,CAAC,CAAC;oBAC7F,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,0DAA0D;gBAC1D,0DAA0D;gBAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC;SACJ;IACL,CAAC;IAED,eAAe,CAAC,MAAc;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,CAAC,IAAU,EAAE,eAAwB;QAC1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,aAA4B;QAC1D,IAAI,KAAK,eAAsB,CAAC;QAEhC,IAAI,aAAa,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACnD,KAAK,+BAAsC,CAAC;SAC/C;QAED,IAAI,aAAa,CAAC,iBAAiB,CAAC,yBAAyB,EAAE;YAC3D,KAAK,sCAA4C,CAAC;SACrD;QAED,IAAI,aAAa,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;YACnD,KAAK,kCAAyC,CAAC;SAClD;QAED,IAAI,aAAa,CAAC,iBAAiB,CAAC,wBAAwB,EAAE;YAC1D,KAAK,oCAA2C,CAAC;SACpD;QAED,IAAI,aAAa,CAAC,iBAAiB,CAAC,cAAc,EAAE;YAChD,KAAK,kBAAyB,CAAC;SAClC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAY,GAAG;QACX,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;IAC3C,CAAC;IAEO,qBAAqB,CAAC,QAAgB;QAC1C,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,uEAAuE;QACvE,uCAAuC;QACvC,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CACjE,QAAQ,EACR,IAAI,CAAC,cAAc,CAAC,yBAAyB,EAAE;QAC/C,4BAA4B,CAAC,IAAI,CACpC,CAAC;QACF,OAAO,iBAAiB,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,uFAAuF;IACvF,qFAAqF;IACrF,qFAAqF;IACrF,mFAAmF;IAC3E,gBAAgB,CAAC,QAAwB,EAAE,cAAsB;QACrE,IAAI,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;QAErE,IAAI,CAAC,cAAc,EAAE;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,IAAI,uBAAU,CAC7B,IAAI,CAAC,GAAG,EACR,cAAc,EACd,UAAU;YACV,wBAAwB,CAAC,KAAK;YAC9B,wBAAwB,CAAC,KAAK,EAC9B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,CACnB,CAAC;YACF,cAAc,GAAG;gBACb,UAAU;gBACV,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,KAAK;gBACrB,kBAAkB,EAAE,KAAK;gBACzB,0BAA0B,EAAE,KAAK;gBACjC,kBAAkB,EAAE,SAAS;gBAC7B,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,IAAI,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC;SACnD;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC5C,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YAC/C,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC5C;QAED,OAAO,cAAc,CAAC,UAAU,CAAC;IACrC,CAAC;IAEO,mBAAmB;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,gEAAgE;YAChE,oEAAoE;YACpE,gDAAgD;YAChD,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;SACtC;QAED,IAAI,CAAC,UAAU,GAAG,IAAA,yDAA8B,EAC5C,IAAI,CAAC,aAAa,EAClB;YACI,cAAc,EAAE,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC;YAC/D,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,qBAAqB;YACnD,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,2BAA2B;YACxE,2BAA2B,EAAE,IAAI,CAAC,cAAc,CAAC,2BAA2B;YAC5E,2BAA2B,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B;YAC9E,6BAA6B,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB;SACxE,EACD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CAAC,qBAAqB;YACrC,CAAC,CAAC,IAAA,iCAAkB,EACd,IAAI,CAAC,eAAe,CAAC,cAAc,CAC/B,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAC3E,CACJ;YACH,CAAC,CAAC,SAAS,CAClB,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAEO,UAAU,CAAC,WAA2B,EAAE,OAAgB;QAC5D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE;YAC/E,OAAO;SACV;QAED,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE;YAClF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACnE;QAED,IAAI,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE;YACxC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;YAE9B,mDAAmD;YACnD,2DAA2D;YAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YACvC,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAExD,kDAAkD;YAClD,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;SAC1C;IACL,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IACnE,SAAS,CAAC,aAA6B,EAAE,OAAgB;;QAC7D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE;YACrF,OAAO;SACV;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAExC,MAAM,mBAAmB,GAAG,CAAC,QAAoC,EAAE,EAAE;YACjE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,aAAa,EAAE;gBACzC,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE;gBACrC,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAC3D,IAAI,CAAC,YAAY,EAAE;gBACf,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAChE,IAAA,cAAM,EAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAE5B,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,aAAgC,CAAC;QACrC,IAAI,aAAa,CAAC,cAAc,IAAI,aAAa,CAAC,cAAc,KAAK,aAAa,EAAE;YAChF,gEAAgE;YAChE,yEAAyE;YACzE,aAAa;gBACT,MAAA,MAAA,mBAAmB,CAAC,aAAa,CAAC,iBAAiB,CAAC,mCACpD,mBAAmB,CAAC,aAAa,CAAC,oBAAoB,CAAC,mCACvD,mBAAmB,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;SACzD;QAED,IAAI,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,eAAe,EAAG,CAAC,aAAa,CAAC;QAC9E,IAAI,aAAa,CAAC,iBAAiB,EAAE;YACjC,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;SACnG;QACD,aAAa,CAAC,sBAAsB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAE1F,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IACzG,CAAC;IAEO,0BAA0B,CAAC,aAA0B,EAAE,iBAAiC;;QAC5F,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,CAAC;QAE9D,MAAA,iBAAiB,CAAC,sBAAsB,0CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACxD,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAoED,iEAAiE;IACjE,6DAA6D;IACrD,sBAAsB,CAC1B,mBAAmC,EACnC,YAAqB,EACrB,uBAAgC,EAChC,KAAwB;QAExB,kEAAkE;QAClE,OAAO,IAAA,oCAAqB,EACxB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,mBAAmB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,gCAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACtG,uBAAuB,EACvB,KAAK,CACR,CAAC;IACN,CAAC;IAEO,gBAAgB,CAAC,QAAwB;QAC7C,kEAAkE;QAClE,IAAI,QAAQ,CAAC,cAAc,EAAE;YACzB,OAAO,IAAI,CAAC;SACf;QAED,mEAAmE;QACnE,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,IAAI,QAAQ,CAAC,SAAS,EAAE;YAC/D,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,WAA2B;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC3F,8DAA8D;YAC9D,mEAAmE;YACnE,cAAc;YACd,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;gBAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE;gBAC9C,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;gBACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAE5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;gBAC9D,IAAI,YAAY,EAAE;oBACd,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,UAAW,CAAC,CAAC;iBAC1D;aACJ;YAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACvB,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAW,CAAC,CAAC;aACxE;YAED,oEAAoE;YACpE,uDAAuD;YACvD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAE9B,8CAA8C;YAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,KAAK,MAAM,EAAE;gBACrE,mEAAmE;gBACnE,6CAA6C;gBAC7C,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBACjC,2DAA2D;oBAC3D,+BAA+B;oBAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;oBACrD,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAEtD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBACxB,oBAAW,CAAC,kBAAkB,CAAC,aAAa,CAAC,GAAG,EAAE;4BAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;4BAE1D,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE;gCAC3D,qEAAqE;gCACrE,mEAAmE;gCACnE,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oCACvC,cAAc,CAAC,UAAU,CAAC,gCAAgC,EAAE,CAAC;gCACjE,CAAC,CAAC,CAAC;6BACN;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;iBACN;aACJ;YAED,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,8EAA8E;IAC9E,kFAAkF;IAClF,iFAAiF;IACjF,sDAAsD;IAC9C,oBAAoB,CACxB,IAAoB,EACpB,UAAuC,EACvC,cAAsB;QAEtB,iEAAiE;QACjE,mCAAmC;QACnC,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5E,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO;SACV;QAED,+DAA+D;QAC/D,0BAA0B;QAC1B,IAAI,cAAc,GAAG,eAAe,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACtD,OAAO;SACV;QAED,mCAAmC;QACnC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE/B,mEAAmE;QACnE,+DAA+D;QAC/D,mEAAmE;QACnE,kCAAkC;QAClC,IAAI,IAAA,gCAAU,EAAC,IAAI,CAAC,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACzB;QAED,sCAAsC;QACtC,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,OAAO,EAAE;YACzC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;SAC/E;IACL,CAAC;IAEO,4BAA4B,CAChC,cAA8B,EAC9B,YAAyC,EACzC,kBAAoC,EAAE,EACtC,gBAAgB,IAAI,GAAG,EAAmB;QAE1C,iEAAiE;QACjE,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,cAAc,CAAC,kBAAkB,EAAE;YAC7E,OAAO,KAAK,CAAC;SAChB;QAED,mEAAmE;QACnE,kCAAkC;QAClC,IAAI,cAAc,CAAC,UAAU,CAAC,+BAA+B,EAAE,EAAE;YAC7D,OAAO,KAAK,CAAC;SAChB;QAED,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,CAAC;QAC1E,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACtF,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC7B,+DAA+D;YAC/D,4DAA4D;YAC5D,mDAAmD;YACnD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE;gBACrE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBACtC,aAAa,GAAG,IAAI,CAAC;aACxB;SACJ;aAAM;YACH,iDAAiD;YACjD,mCAAmC;YACnC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC7B,OAAO,KAAK,CAAC;aAChB;YAED,kDAAkD;YAClD,qDAAqD;YACrD,0DAA0D;YAC1D,mBAAmB;YACnB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAErC,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE;gBACtC,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE;oBACtF,aAAa,GAAG,IAAI,CAAC;iBACxB;aACJ;YAED,gEAAgE;YAChE,iEAAiE;YACjE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,eAAe,CAAC,GAAG,EAAE,CAAC;SACzB;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,eAAiC;QACrD,MAAM,OAAO,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACzC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YACvC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAE,CAAC;QACxE,IAAA,cAAM,EAAC,eAAe,KAAK,SAAS,CAAC,CAAC;QACtC,eAAe,CAAC,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IAEO,uBAAuB,CAAC,cAA8B,EAAE,OAAoB,EAAE,cAAc,GAAG,KAAK;QACxG,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtF,oDAAoD;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACxB,cAAc,CAAC,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEtB,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtC,4EAA4E;gBAC5E,uDAAuD;gBACvD,MAAM,cAAc,GAAG,GAAG,CAAC,iBAAiB,KAAK,cAAc,CAAC;gBAChE,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,KAAY,EAAE,KAAwB;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;QAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACtD,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,mCAAmC;YACnC,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAEhC,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,EAAG,CAAC;YAChD,MAAM,SAAS,GAAG,IAAA,uCAAuB,EAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClF,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,SAAS,CAAC;aACpB;YAED,OAAO,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CACV,QAAgB,EAChB,KAAY,EACZ,eAAuB,EACvB,OAAoC,EACpC,OAA0B,EAC1B,KAAwB;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,EAAE,CAAC;SACb;QAED,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;QAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACtD,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,mCAAmC;YACnC,OAAO,EAAE,CAAC;SACb;QAED,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;;YACvD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,EAAG,CAAC;YAChD,MAAM,SAAS,GAAG,IAAA,uCAAuB,EAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClF,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,EAAE,CAAC;aACb;YAED,MAAM,WAAW,GAAG,IAAA,iCAAgB,EAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,WAAW,EAAE;gBACd,OAAO,EAAE,CAAC;aACb;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CACnC,cAAc,EACd,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,6BAA6B,CAAC,IAAI,EAClC,KAAK,CACR,CAAC;YAEF,OAAO,CAAC,cAAc;gBAClB,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,yCAA2B,EAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;YAE9F,MAAM,YAAY,GAAG,IAAI,2BAAY,CACjC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EACjD,IAAI,CAAC,eAAe,EACpB,SAAS,EACT,KAAK,CAAC,KAAK,EACX,IAAI,kCAAa,EAAE,EACnB,GAAG,EACH,OAAO,CACV,CAAC;YAEF,oEAAoE;YACpE,MAAM,OAAO,GAAuB,EAAE,CAAC;YAEvC,MAAM,YAAY,GAAG,IAAA,4BAAe,EAAC,WAAW,CAAC,CAAC;YAClD,IAAI,YAAY,EAAE;gBACd,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,WAAW,CAAC,CAAC;gBACvC,IAAI,IAAI,EAAE;oBACN,0DAA0D;oBAC1D,IAAA,6BAAW,EAAC,OAAO,EAAE,YAAY,CAAC,8BAA8B,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;iBAC/F;gBAED,OAAO,CAAC,IAAI,CACR,GAAG,YAAY;qBACV,uBAAuB,CAAC,WAAW,EAAE,eAAe,EAAE,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC;qBAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAClE,CAAC;aACL;YAED,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,OAAsB;QACjC,MAAM,eAAe,GAAsB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAEvE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE;gBACvC,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC,cAAc,CACxD,OAAO,EACP,cAAc,CAAC,kBAAkB,CACpC,CAAC;gBACF,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC3B,eAAe,CAAC,IAAI,CAAC;wBACjB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE;wBACjD,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,gBAAgB,EAAE;wBACrD,WAAW;qBACd,CAAC,CAAC;oBAEH,2DAA2D;oBAC3D,kEAAkE;oBAClE,cAAc,CAAC,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;iBACxF;aACJ;iBAAM,IACH,CAAC,cAAc,CAAC,cAAc;gBAC9B,OAAO,CAAC,kBAAkB;gBAC1B,cAAc,CAAC,kBAAkB,KAAK,SAAS,EACjD;gBACE,iEAAiE;gBACjE,+DAA+D;gBAC/D,eAAe,CAAC,IAAI,CAAC;oBACjB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE;oBACjD,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,gBAAgB,EAAE;oBACrD,WAAW,EAAE,EAAE;iBAClB,CAAC,CAAC;gBACH,cAAc,CAAC,kBAAkB,GAAG,SAAS,CAAC;aACjD;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,sBAAsB,CAAC,QAAgB,EAAE,KAAY;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,EAAE,CAAC;SACb;QAED,MAAM,qBAAqB,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7E,IAAI,CAAC,qBAAqB,EAAE;YACxB,OAAO,EAAE,CAAC;SACb;QAED,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,OAAO,IAAA,6BAAiB,EAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yBAAyB,CACrB,QAAgB,EAChB,QAAkB,EAClB,MAAwB,EACxB,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,cAAc,CAAC,UAAU,CAAC,yBAAyB,CACtD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,UAAW,EAChB,KAAK,CACR,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,6BAA6B,CACzB,QAAgB,EAChB,QAAkB,EAClB,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,cAAc,CAAC,UAAU,CAAC,6BAA6B,CAC1D,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAClG,QAAQ,EACR,IAAI,CAAC,UAAW,EAChB,QAAQ,EACR,KAAK,CACR,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2BAA2B,CACvB,QAAgB,EAChB,QAAkB,EAClB,kBAA2B,EAC3B,QAA2B,EAC3B,KAAwB;QAExB,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YAChD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO;aACV;YAED,MAAM,mBAAmB,GAAG,IAAA,gCAAU,EAAC,cAAc,CAAC,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,yBAAyB,CACxE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,EACjD,QAAQ,EACR,IAAI,CAAC,UAAW,EAChB,QAAQ,EACR,KAAK,CACR,CAAC;YAEF,IAAI,CAAC,gBAAgB,EAAE;gBACnB,OAAO;aACV;YAED,4CAA4C;YAC5C,IAAI,gBAAgB,CAAC,oBAAoB,EAAE;gBACvC,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,eAAe,EAAE;oBAClD,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;oBAEpC,oEAAoE;oBACpE,2FAA2F;oBAC3F,IAAI,iBAAiB,CAAC,cAAc,IAAI,CAAC,mBAAmB,IAAI,IAAA,gCAAU,EAAC,iBAAiB,CAAC,EAAE;wBAC3F,6EAA6E;wBAC7E,0DAA0D;wBAC1D,MAAM,YAAY,GAAG,iBAAiB,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;wBACnE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;4BACxE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;4BAElC,iBAAiB,CAAC,UAAU,CAAC,aAAa,CACtC,gBAAgB,EAChB,kBAAkB,EAClB,IAAI,CAAC,UAAW,EAChB,KAAK,CACR,CAAC;yBACL;wBAED,0DAA0D;wBAC1D,0DAA0D;wBAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;qBACjC;iBACJ;gBAED,sEAAsE;gBACtE,gCAAgC;gBAChC,IAAI,kBAAkB,EAAE;oBACpB,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,YAAY,EAAE;wBAC9C,IAAA,gDAA4B,EAAC,KAAK,CAAC,CAAC;wBAEpC,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;4BAC9D,oBAAoB;4BACpB,SAAS;yBACZ;wBAED,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChE,IAAI,CAAC,YAAY,EAAE;4BACf,qEAAqE;4BACrE,SAAS;yBACZ;wBAED,MAAM,UAAU,GAAG,IAAI,qCAAgB,CACnC,gBAAgB,CAAC,oBAAoB,EACrC,gBAAgB,CAAC,YAAY,EAC7B,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,YAAY,CAChC,CAAC;wBAEF,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,kBAAkB,EAAE,IAAI,CAAC,UAAW,EAAE,KAAK,CAAC,CAAC;wBAC/F,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE;4BACpC,2DAA2D;4BAC3D,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAA,4BAAgB,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE;gCACnE,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;6BACtC;yBACJ;qBACJ;iBACJ;aACJ;iBAAM;gBACH,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,CAAC,UAAW,EAAE,KAAK,CAAC,CAAC;aAC1G;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,OAAqB,EAAE,KAAwB;QAC1E,IAAI,OAAO,CAAC,yBAAyB,EAAE;YACnC,yDAAyD;YACzD,+CAA+C;YAC/C,MAAM,IAAI,GAAG,IAAA,8BAAkB,EAAC,IAAA,uBAAW,EAAC,QAAQ,CAAC,CAAC,CAAC;YACvD,IAAI,IAAA,0CAAwB,EAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,SAAS,CAAC;aACpB;SACJ;QAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,OAAO,GAAG,MAAA,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,mCAAI,EAAE,CAAC;YACjE,IACI,OAAO,CAAC,yBAAyB;gBACjC,CAAC,OAAO,CAAC,aAAa;gBACtB,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE;gBACvC,CAAC,cAAc,CAAC,UAAU,CAAC,0BAA0B,EAAE,EACzD;gBACE,wDAAwD;gBACxD,6BAA6B;gBAC7B,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;oBAChC,OAAO,SAAS,CAAC;iBACpB;aACJ;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACxC,OAAO,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,QAAgB,EAAE,UAA4B,EAAE,KAAwB;QAC1F,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,cAAc,EAAE;gBAChB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,qBAAqB,EAAE,EAAE;oBACpD,4EAA4E;oBAC5E,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;iBAClC;gBAED,cAAc,CAAC,UAAU,CAAC,iCAAiC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;aAClF;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yBAAyB,CAAC,KAAa,EAAE,QAAiC,EAAE,KAAwB;QAChG,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YAChD,wDAAwD;YACxD,iCAAiC;YACjC,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO;aACV;YAED,4DAA4D;YAC5D,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;gBAC/C,IAAI,CAAC,IAAA,gCAAU,EAAC,cAAc,CAAC,EAAE;oBAC7B,SAAS;iBACZ;gBAED,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,qBAAqB,EAAE,EAAE;oBACpD,4EAA4E;oBAC5E,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;iBAClC;gBAED,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACjF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,QAAQ,CAAC,UAAU,CAAC,CAAC;iBACxB;gBAED,0DAA0D;gBAC1D,0DAA0D;gBAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB,CACf,QAAgB,EAChB,QAAkB,EAClB,MAAkB,EAClB,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAChD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACzE,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,UAAW,EAChB,KAAK,CACR,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB,CAChB,QAAgB,EAChB,QAAkB,EAClB,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,cAAc,CAAC,UAAU,CAAC,oBAAoB,CACjD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,EACjD,QAAQ,EACR,IAAI,CAAC,UAAW,EAChB,KAAK,CACR,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2BAA2B,CACvB,QAAgB,EAChB,QAAkB,EAClB,MAAkB,EAClB,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,cAAc,CAAC,UAAU,CAAC,2BAA2B,CACxD,QAAQ,EACR,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACzE,IAAI,CAAC,UAAW,EAChB,MAAM,EACN,KAAK,CACR,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC3B,QAAgB,EAChB,QAAkB,EAClB,aAAqB,EACrB,OAA0B,EAC1B,OAAoC,EACpC,UAAiD,EACjD,KAAwB;;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CACzC,iBAAiB,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,EAClE,CAAC,EAAE,EAAE,EAAE;;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC/D,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAClE,OAAO,cAAc,CAAC,UAAU,CAAC,yBAAyB,CACtD,QAAQ,EACR,aAAa,EACb,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAW,EAChB,OAAO,EACP,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACzE,OAAO,EACP,UAAU,EACV,GAAG,EAAE,CACD,IAAI,CAAC,sBAAsB,CACvB,cAAc,EACd,CAAC,CAAC,UAAU;gBACZ,6BAA6B,CAAC,KAAK,EACnC,KAAK,CACR,EACL,KAAK,CACR,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,GAAG,CAAC,SAAS,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,IAAI,mCAAI,MAAM,QAAQ,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAClB,CAAC,CACJ,CAAC;QAEF,MAAM,qBAAqB,GAA0B;YACjD,cAAc,EAAE,4CAAc,CAAC,MAAM,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,aAAa,CAAC,OAAO,EAAE,CAAC;YAChF,gBAAgB,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB;YACpD,cAAc,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,cAAc;YAChD,aAAa,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,aAAa;SACjD,CAAC;QAEF,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,uBAAuB,CAAA,EAAE;YAChE,OAAO,qBAAqB,CAAC;SAChC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QACjE,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,MAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAA,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,QAAQ,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrF,IAAI,MAAM,KAAK,SAAS,EAAE;gBACtB,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,uBAAuB,CACjE,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,KAAK,CACR,CAAC;aACL;SACJ;QAED,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,qBAAqB,CACjB,QAAgB,EAChB,cAA8B,EAC9B,OAA0B,EAC1B,OAAoC,EACpC,UAAiD,EACjD,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO;aACV;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,cAAc,CAAC,UAAU,CAAC,qBAAqB,CAC3C,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAW,EAChB,OAAO,EACP,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACzE,OAAO,EACP,UAAU,EACV,GAAG,EAAE,CACD,IAAI,CAAC,sBAAsB,CACvB,cAAc,EACd,CAAC,CAAC,UAAU;YACZ,6BAA6B,CAAC,KAAK,EACnC,KAAK,CACR,EACL,cAAc,EACd,KAAK,CACR,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,OAAe,EAAE,KAAwB;QAChE,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,IAAI,IAAA,kBAAM,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ,EAAE;oBACX,OAAO,SAAS,CAAC;iBACpB;aACJ;YAED,MAAM,oBAAoB,GAAG,2CAAoB,CAAC,eAAe,CAC7D,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,UAAW,EAChB,IAAI,EACJ,OAAO,EACP,KAAK,CACR,CAAC;YACF,IAAI,CAAC,oBAAoB,EAAE;gBACvB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAC/F,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB,CAChB,QAAgB,EAChB,WAAmB,EACnB,QAAkB,EAClB,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAC3D,IAAI,CAAC,YAAY,EAAE;gBACf,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,QAAQ,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrF,IAAI,MAAM,KAAK,SAAS,EAAE;gBACtB,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,IAAI,GAAG,IAAA,iCAAgB,EAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC9D,IAAI,IAAI,KAAK,SAAS,EAAE;gBACpB,OAAO,SAAS,CAAC;aACpB;YAED,kEAAkE;YAClE,IAAI,IAAI,CAAC,QAAQ,kBAAuB,EAAE;gBACtC,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,iDAAuB,CAAC,sBAAsB,CAC/D,IAAI,EACJ,IAAI,CAAC,UAAW;YAChB,uBAAuB,CAAC,KAAK,EAC7B,KAAK,EACL,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAC9C,CAAC;YAEF,MAAM,oBAAoB,GAAG,2CAAoB,CAAC,eAAe,CAC7D,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,UAAW,EAChB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,KAAK,CACR,CAAC;YACF,IAAI,CAAC,oBAAoB,EAAE;gBACvB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1E,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yBAAyB,CACrB,QAAgB,EAChB,QAAkB,EAClB,kBAA2B,EAC3B,iBAA0B,EAC1B,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAC7C,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,KAAK,CACR,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE;gBACnB,OAAO,SAAS,CAAC;aACpB;YAED,IACI,gBAAgB,CAAC,uBAAuB;gBACxC,CAAC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAC/E;gBACE,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;YACnG,IAAI,UAAU,KAAK,MAAM,EAAE;gBACvB,OAAO,SAAS,CAAC;aACpB;YAED,kCAAkC;YAClC,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC,eAAe,EAAG,CAAC;YACjE,OAAO;gBACH,KAAK,EAAE,IAAA,uCAAuB,EAAC,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC;gBAChG,YAAY,EAAE,gBAAgB,CAAC,YAAY;aAC9C,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,sBAAsB,CAClB,QAAgB,EAChB,QAAkB,EAClB,OAAe,EACf,kBAA2B,EAC3B,iBAA0B,EAC1B,KAAwB;QAExB,OAAO,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,GAAG,EAAE;;YACvD,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAC7C,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,KAAK,CACR,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE;gBACnB,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,gBAAgB,CAAC,uBAAuB,EAAE;gBAC1C,oCAAoC;gBACpC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE;oBAC/E,OAAO,SAAS,CAAC;iBACpB;gBAED,MAAM,UAAU,GAAG,2CAAoB,CAAC,uBAAuB,CAC3D,2CAAoB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACvE,OAAO,CACV,CAAC;gBACF,IAAI,CAAC,UAAU,EAAE;oBACb,qCAAqC;oBACrC,OAAO,SAAS,CAAC;iBACpB;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAE1F,0BAA0B;gBAC1B,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,CAAC,IAAI,CAAC;oBAC7B,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,UAAU,CAAC,QAAQ;oBAChC,WAAW,EAAE,UAAU,CAAC,WAAW;iBACtC,CAAC,CAAC;gBAEH,IAAI,IAAA,yBAAU,EAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBACjC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAC7D,UAAU,CAAC,QAAQ,EACnB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC;oBACjD,iBAAiB,CAAC,KAAK,CAC1B,CAAC;oBAEF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;wBACtC,MAAM,gBAAgB,GAAG,2CAAoB,CAAC,uBAAuB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;wBAC7F,IAAI,gBAAgB,EAAE;4BAClB,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,CAAC,IAAI,CAAC;gCAC7B,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,gBAAgB,CAAC,QAAQ;gCACtC,WAAW,EAAE,gBAAgB,CAAC,WAAW;6BAC5C,CAAC,CAAC;yBACN;qBACJ;iBACJ;gBAED,OAAO,WAAW,CAAC;aACtB;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;YACnG,QAAQ,UAAU,EAAE;gBAChB,KAAK,gBAAgB;oBACjB,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,UAAW,EAAE,KAAK,CAAC,CAAC;oBACzF,MAAM;gBAEV,KAAK,eAAe,CAAC,CAAC;oBAClB,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,eAAe,EAAE;wBAClD,kEAAkE;wBAClE,+DAA+D;wBAC/D,IAAI,IAAA,gCAAU,EAAC,iBAAiB,CAAC,EAAE;4BAC/B,sDAAsD;4BACtD,MAAM,OAAO,GAAG,MAAA,iBAAiB,CAAC,UAAU,CAAC,cAAc,EAAE,mCAAI,EAAE,CAAC;4BACpE,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gCAClD,SAAS;6BACZ;4BAED,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;4BAC3C,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,UAAW,EAAE,KAAK,CAAC,CAAC;yBAC/F;wBAED,0DAA0D;wBAC1D,0DAA0D;wBAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;qBACjC;oBACD,MAAM;iBACT;gBAED,KAAK,MAAM;oBACP,yBAAyB;oBACzB,qCAAqC;oBACrC,OAAO,SAAS,CAAC;gBAErB;oBACI,IAAA,mBAAW,EAAC,UAAU,CAAC,CAAC;aAC/B;YAED,MAAM,KAAK,GAAqB,EAAE,CAAC;YACnC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvC,KAAK,CAAC,IAAI,CAAC;oBACP,QAAQ,EAAE,GAAG,CAAC,IAAI;oBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,eAAe,EAAE,OAAO;iBAC3B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,QAAkB,EAAE,KAAwB;QAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,yBAAyB,CACxE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,EACjD,QAAQ,EACR,IAAI,CAAC,UAAW,EAChB,SAAS,EACT,KAAK,CACR,CAAC;QAEF,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YACjE,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,UAAU,GAAG,6CAAqB,CAAC,oBAAoB,CACzD,gBAAgB,CAAC,YAAY,EAC7B,gBAAgB,CAAC,YAAY,CAChC,CAAC;QAEF,OAAO,6CAAqB,CAAC,qBAAqB,CAC9C,gBAAgB,CAAC,UAAU,EAC3B,UAAU,EACV,IAAI,CAAC,UAAW,EAChB,KAAK,CACR,CAAC;IACN,CAAC;IAED,2BAA2B,CACvB,QAAgB,EAChB,QAAkB,EAClB,KAAwB;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,yBAAyB,CACxE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,EACjD,QAAQ,EACR,IAAI,CAAC,UAAW,EAChB,SAAS,EACT,KAAK,CACR,CAAC;QAEF,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YACjE,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,UAAU,GAAG,6CAAqB,CAAC,oBAAoB,CACzD,gBAAgB,CAAC,YAAY,EAC7B,gBAAgB,CAAC,YAAY,CAChC,CAAC;QACF,IAAI,KAAK,GAAgC,EAAE,CAAC;QAE5C,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,eAAe,EAAE;YAClD,IAAI,IAAA,gCAAU,EAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE;gBACnE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;gBAElC,MAAM,UAAU,GAAG,6CAAqB,CAAC,8BAA8B,CACnE,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,EAC1C,gBAAgB,CAAC,UAAU,EAC3B,UAAU,EACV,iBAAiB,CAAC,UAAU,CAAC,eAAe,EAAG,EAC/C,IAAI,CAAC,UAAW,EAChB,KAAK,CACR,CAAC;gBAEF,IAAI,UAAU,EAAE;oBACZ,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;iBACvC;gBAED,0DAA0D;gBAC1D,0DAA0D;gBAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,2BAA2B,CACvB,QAAgB,EAChB,QAAkB,EAClB,KAAwB;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,yBAAyB,CACxE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,EACjD,QAAQ,EACR,IAAI,CAAC,UAAW,EAChB,SAAS,EACT,KAAK,CACR,CAAC;QAEF,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YACjE,OAAO,SAAS,CAAC;SACpB;QACD,MAAM,UAAU,GAAG,6CAAqB,CAAC,oBAAoB,CACzD,gBAAgB,CAAC,YAAY,EAC7B,gBAAgB,CAAC,YAAY,CAChC,CAAC;QAEF,OAAO,6CAAqB,CAAC,8BAA8B,CACvD,UAAU,EACV,cAAc,CAAC,UAAU,CAAC,eAAe,EAAG,EAC5C,IAAI,CAAC,UAAW,EAChB,KAAK,CACR,CAAC;IACN,CAAC;IAED,kBAAkB,CACd,QAAgB,EAChB,OAAe,EACf,IAAW,EACX,KAAwB;QAExB,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAE/B,OAAO,cAAc,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,wCAAwC;IACxC,aAAa;QACT,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAW,CAAC,sBAAsB,EAAE,CAAC;QACtE,MAAM,eAAe,GAAG,mBAAmB,GAAG,MAAM,CAAC;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,gEAAgE;IAChE,UAAU;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,uBAAuB,CAAC,OAA6B,EAAE,IAAqB;QACxE,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACrF,CAAC;IAEO,oBAAoB,CACxB,cAA8B,EAC9B,gBAAkC,EAClC,kBAA2B;QAE3B,4BAA4B;QAC5B,oBAAoB;QACpB,6DAA6D;QAC7D,2BAA2B;QAC3B,uDAAuD;QACvD,EAAE;QACF,uBAAuB;QACvB,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,IAAA,gCAAU,EAAC,cAAc,CAAC,CAAC;QAC5C,IACI,kBAAkB;YAClB,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;YACpD,CAAC,CAAC,QAAQ;gBACN,cAAc,CAAC,cAAc;gBAC7B,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,CAAC,EAC7G;YACE,OAAO,gBAAgB,CAAC;SAC3B;QAED,IAAI,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gCAAU,EAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACjG,OAAO,eAAe,CAAC;SAC1B;QAED,yBAAyB;QACzB,qCAAqC;QACrC,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,oBAAoB,CAAC,YAA2B,EAAE,kBAA2B;QACjF,2FAA2F;QAC3F,OAAO,CAAC,kBAAkB,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gCAAU,EAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjH,CAAC;IAEO,mBAAmB,CACvB,cAA8B,EAC9B,QAAgB,EAChB,QAAkB,EAClB,iBAA0B,EAC1B,KAAwB;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,yBAAyB,CACxE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EACjC,QAAQ,EACR,IAAI,CAAC,UAAW,EAChB,SAAS,EACT,KAAK,CACR,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE;YACnB,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,iBAAiB,IAAI,gBAAgB,CAAC,uBAAuB,EAAE;YAC/D,OAAO,gBAAgB,CAAC;SAC3B;QAED,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;YACrD,oCAAoC;YACpC,OAAO,SAAS,CAAC;SACpB;QAED,sDAAsD;QACtD,OAAO,IAAI,qCAAgB,CACvB,gBAAgB,CAAC,oBAAoB,EACrC,gBAAgB,CAAC,YAAY,EAC7B,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,qBAAqB,CACzC,CAAC;IACN,CAAC;IAEO,wBAAwB,CAC5B,oBAA0C,EAC1C,aAAqB,EACrB,eAAuB;;QAEvB,mFAAmF;QACnF,4CAA4C;QAC5C,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;YAChD,kDAAkD;YAClD,+DAA+D;YAC/D,IAAI,CAAC,IAAA,gCAAU,EAAC,eAAe,CAAC,EAAE;gBAC9B,SAAS;aACZ;YAED,oEAAoE;YACpE,mDAAmD;YACnD,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,MAAA,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,mCAAI,EAAE,CAAC;YAClE,IAAI,QAAQ,KAAK,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBACpE,SAAS;aACZ;YAED,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YACjE,IAAI,CAAC,WAAW,EAAE;gBACd,SAAS;aACZ;YAED,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAE7D,0DAA0D;YAC1D,0DAA0D;YAC1D,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC;IACL,CAAC;IAEO,sBAAsB;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAEtD,yEAAyE;QACzE,aAAa;QACb,IAAI,UAAU,GAAG,IAAI,EAAE;YACnB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CACrD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAChE,CAAC;YAEF,yEAAyE;YACzE,wEAAwE;YACxE,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;YACnD,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAW,CAAC,sBAAsB,EAAE,CAAC;YAEtE,gEAAgE;YAChE,8BAA8B;YAC9B,IAAI,mBAAmB,GAAG,0BAA0B,IAAI,aAAa,GAAG,GAAG,EAAE;gBACzE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChD;SACJ;IACL,CAAC;IAED,yEAAyE;IACzE,qEAAqE;IAC7D,0BAA0B;QAC9B,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/C,cAAc,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;SACpD;IACL,CAAC;IAED,qEAAqE;IACrE,oEAAoE;IACpE,mCAAmC;IAC3B,kCAAkC,CAAI,KAAoC,EAAE,QAAiB;QACjG,IAAI;YACA,IAAI,KAAK,EAAE;gBACP,OAAO,IAAI,CAAC,UAAW,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aACrE;iBAAM;gBACH,OAAO,QAAQ,EAAE,CAAC;aACrB;SACJ;QAAC,OAAO,CAAM,EAAE;YACb,8EAA8E;YAC9E,8EAA8E;YAC9E,8DAA8D;YAC9D,IAAI,CAAC,8CAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;YACD,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAED,gEAAgE;IAChE,0DAA0D;IAC1D,qDAAqD;IAC7C,oBAAoB;QACxB,MAAM,eAAe,GAAsB,EAAE,CAAC;QAE9C,6DAA6D;QAC7D,+BAA+B;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAI;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;gBAC/B,eAAe,CAAC,IAAI,CAAC;oBACjB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE;oBAC3C,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE;oBAC/C,WAAW,EAAE,EAAE;iBAClB,CAAC,CAAC;gBAEH,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;gBACtC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;gBAE3E,sDAAsD;gBACtD,iCAAiC;gBACjC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;oBACtC,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;oBACjF,IAAI,aAAa,GAAG,CAAC,EAAE;wBACnB,OAAO;qBACV;oBAED,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;oBAEjD,wDAAwD;oBACxD,wDAAwD;oBACxD,6BAA6B;oBAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;wBACnC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;wBAClF,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE;4BACzC,eAAe,CAAC,IAAI,CAAC;gCACjB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,WAAW,EAAE;gCAC/C,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,gBAAgB,EAAE;gCACnD,WAAW,EAAE,EAAE;6BAClB,CAAC,CAAC;4BAEH,YAAY,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;4BAC1C,IAAI,CAAC,+BAA+B,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;4BAC3F,CAAC,EAAE,CAAC;yBACP;qBACJ;gBACL,CAAC,CAAC,CAAC;gBAEH,wDAAwD;gBACxD,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;oBACzC,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;gBAC9E,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC;aAC5B;iBAAM;gBACH,8DAA8D;gBAC9D,0CAA0C;gBAC1C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,kBAAkB,KAAK,SAAS,EAAE;oBAC/E,eAAe,CAAC,IAAI,CAAC;wBACjB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE;wBAC3C,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE;wBAC/C,WAAW,EAAE,EAAE;qBAClB,CAAC,CAAC;oBACH,QAAQ,CAAC,kBAAkB,GAAG,SAAS,CAAC;iBAC3C;gBAED,CAAC,EAAE,CAAC;aACP;SACJ;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,aAAa,CAAC,QAAwB;QAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE;YACrC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,cAAc,EAAE;YAC/C,OAAO,IAAI,CAAC;SACf;QAED,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACf;QAED,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,OAAO,KAAK,CAAC;SAChB;QAED,oDAAoD;QACpD,yDAAyD;QACzD,wDAAwD;QACxD,0CAA0C;QAC1C,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;IACtE,CAAC;IAEO,wBAAwB,CAAC,QAAwB,EAAE,YAAyB;QAChF,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9E,OAAO,IAAI,CAAC;SACf;QAED,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAEhF,4BAA4B;QAC5B,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SAChB;QAED,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3B,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,UAAU,EAAE;YAC5C,IAAI,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;gBAC3D,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,mBAAmB,CACvB,OAA6B,EAC7B,IAAqB,EACrB,WAAqB,EACrB,WAAqB;QAErB,MAAM,YAAY,GAAG,IAAI,2BAAY,CACjC,IAAI,CAAC,eAAe,EACpB,OAAO,EACP,IAAI,CAAC,UAAW,EAChB,CAAC,YAAoB,EAAE,YAAoB,EAAE,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,EAAE;gBACf,OAAO,SAAS,CAAC;aACpB;YACD,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACjD,CAAC,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EACrC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK,EACpB,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK,EACpB,IAAI,CACP,CAAC;QACF,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,gBAAgB,CAAC,QAAwB,EAAE,YAA0B,EAAE,gBAAyB;QACpG,gEAAgE;QAChE,yDAAyD;QACzD,IAAI,YAAY,CAAC,WAAW,EAAE;YAC1B,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,uBAAuB,GACvB,IAAI,CAAC,cAAc,CAAC,sBAAsB;YAC1C,CAAC,YAAY,CAAC,UAAU,uBAA0B,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC;YACjF,CAAC,YAAY,CAAC,UAAU,kBAAqB,IAAI,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAE1F,IACI,YAAY,CAAC,UAAU,uBAA0B;YACjD,CAAC,QAAQ,CAAC,kBAAkB,IAAI,YAAY,CAAC,UAAU,kBAAqB,CAAC,EAC/E;YACE,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAChC,IAAI,YAAY,CAAC,UAAU,EAAE;oBACzB,wDAAwD;oBACxD,6CAA6C;oBAC7C,uBAAuB,GAAG,IAAI,CAAC;iBAClC;qBAAM,IACH,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,UAAkB,EAAE,EAAE;oBACvD,qDAAqD;oBACrD,6CAA6C;oBAC7C,2BAA2B;oBAC3B,IAAI,YAAY,CAAC,UAAU,KAAK,UAAU,EAAE;wBACxC,OAAO,IAAI,CAAC;qBACf;oBAED,IAAI,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE;wBACtD,OAAO,IAAI,CAAC;qBACf;oBAED,OAAO,KAAK,CAAC;gBACjB,CAAC,CAAC,EACJ;oBACE,uBAAuB,GAAG,IAAI,CAAC;iBAClC;aACJ;YAED,wEAAwE;YACxE,iBAAiB;YACjB,qEAAqE;YACrE,iEAAiE;YACjE,IAAI,CAAC,gBAAgB,EAAE;gBACnB,OAAO,uBAAuB,CAAC;aAClC;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,wBAAwB,CAAC,cAA8B,EAAE,OAAsB;QACnF,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,kEAAkE;QAClE,iCAAiC;QACjC,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAEvD,oEAAoE;QACpE,qEAAqE;QACrE,8DAA8D;QAC9D,2DAA2D;QAC3D,mEAAmE;QACnE,MAAM,uBAAuB,GAAG,CAAC,YAA0B,EAAE,EAAE;YAC3D,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAE7B,IAAI,YAAY,CAAC,UAAU,uBAA0B,EAAE;gBACnD,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,IAAI,YAAY,CAAC,WAAW,EAAE;oBAC1B,gBAAgB,GAAG,IAAI,CAAC;iBAC3B;aACJ;iBAAM,IAAI,cAAc,CAAC,kBAAkB,IAAI,YAAY,CAAC,UAAU,kBAAqB,EAAE;gBAC1F,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,IAAI,cAAc,CAAC,0BAA0B,EAAE;oBAC3C,gBAAgB,GAAG,IAAI,CAAC;iBAC3B;aACJ;YAED,OAAO;gBACH,kBAAkB;gBAClB,gBAAgB;aACnB,CAAC;QACN,CAAC,CAAC;QAEF,2EAA2E;QAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA4B,CAAC;QAE7D,kDAAkD;QAClD,IAAI,cAAc,CAAC,iBAAiB,EAAE;YAClC,IAAI,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE;gBAC7D,cAAc,CAAC,iBAAiB,GAAG,SAAS,CAAC;aAChD;iBAAM;gBACH,MAAM,QAAQ,GAAG,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC3E,gBAAgB,CAAC,GAAG,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;oBACxD,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE,KAAK;oBACrB,kBAAkB,EAAE,KAAK;oBACzB,gBAAgB,EAAE,KAAK;iBAC1B,CAAC,CAAC;aACN;SACJ;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC7B,IAAI,YAAY,CAAC,aAAa,EAAE;gBAC5B,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE;oBAC9E,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACnF,IAAI,QAAQ,EAAE;4BACV,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;4BACjE,gBAAgB,CAAC,GAAG,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;gCACxD,IAAI,EAAE,QAAQ;gCACd,cAAc,EACV,CAAC,CAAC,YAAY,CAAC,oBAAoB,IAAI,CAAC,CAAC,YAAY,CAAC,wBAAwB;gCAClF,kBAAkB,EAAE,kBAAkB,CAAC,kBAAkB;gCACzD,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB;6BACxD,CAAC,CAAC;yBACN;qBACJ;iBACJ;gBAED,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC5D,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE;wBAChF,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;4BAC7B,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;4BACjE,gBAAgB,CAAC,GAAG,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE;gCACnE,IAAI,EAAE,cAAc,CAAC,IAAI;gCACzB,cAAc,EACV,CAAC,CAAC,YAAY,CAAC,oBAAoB,IAAI,CAAC,CAAC,YAAY,CAAC,wBAAwB;gCAClF,kBAAkB,EAAE,kBAAkB,CAAC,kBAAkB;gCACzD,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB;6BACxD,CAAC,CAAC;yBACN;qBACJ;gBACL,CAAC,CAAC,CAAC;gBAEH,qEAAqE;gBACrE,kDAAkD;gBAClD,IAAI,YAAY,CAAC,mBAAmB,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE;oBACrF,6EAA6E;oBAC7E,oEAAoE;oBACpE,0EAA0E;oBAC1E,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE;wBAC/E,IAAI,OAAO,CAAC,aAAa,EAAE;4BACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,iCAAiC,YAAY,CAAC,UAAU,IAAI;gCACxD,YAAY,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAC7D,CAAC;4BAEF,IAAI,YAAY,CAAC,mBAAmB,CAAC,iBAAiB,EAAE;gCACpD,YAAY,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oCAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gCACpC,CAAC,CAAC,CAAC;6BACN;yBACJ;qBACJ;iBACJ;aACJ;iBAAM,IAAI,OAAO,CAAC,aAAa,EAAE;gBAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,qBAAqB,YAAY,CAAC,UAAU,IAAI;oBAC5C,YAAY,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAC7D,CAAC;gBACF,IAAI,YAAY,CAAC,iBAAiB,EAAE;oBAChC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACpC,CAAC,CAAC,CAAC;iBACN;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC3D,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC1C,MAAM,WAAW,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAErF,iCAAiC;YACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBACpC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAChD,CAAC,EAAE,EAAE,EAAE,CACH,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBACxD,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAC;aACL;iBAAM;gBACH,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;aACjD;QACL,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,oBAAoB,EAAE,EAAE;YAC1D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;gBAC7C,yDAAyD;gBACzD,kBAAkB;gBAClB,IAAI,gBAAgC,CAAC;gBACrC,IAAI,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAClD,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;iBACxE;qBAAM;oBACH,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC/D,MAAM,UAAU,GAAG,IAAI,uBAAU,CAC7B,IAAI,CAAC,GAAG,EACR,UAAU,CAAC,IAAI,EACf,UAAU,EACV,UAAU,CAAC,kBAAkB,EAC7B,UAAU,CAAC,gBAAgB,EAC3B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,CACnB,CAAC;oBACF,gBAAgB,GAAG;wBACf,UAAU;wBACV,SAAS,EAAE,KAAK;wBAChB,cAAc,EAAE,KAAK;wBACrB,cAAc,EAAE,UAAU,CAAC,cAAc;wBACzC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;wBACjD,0BAA0B,EAAE,UAAU,CAAC,gBAAgB;wBACvD,kBAAkB,EAAE,SAAS;wBAC7B,OAAO,EAAE,EAAE;wBACX,UAAU,EAAE,EAAE;wBACd,OAAO,EAAE,EAAE;wBACX,UAAU,EAAE,EAAE;qBACjB,CAAC;oBAEF,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;oBAClD,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBACrC;gBAED,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACjD,gBAAgB,CAAC,GAAG,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;aAChE;QACL,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,gCAAgC;QAChC,cAAc,CAAC,OAAO,GAAG,EAAE,CAAC;QAC5B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;gBACvC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAE,CAAC,CAAC;aACvE;QACL,CAAC,CAAC,CAAC;QAEH,6DAA6D;QAC7D,4CAA4C;QAC5C,cAAc,CAAC,cAAc,GAAG,SAAS,CAAC;QAC1C,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACrE,IAAI,cAAc,IAAI,cAAc,CAAC,aAAa,EAAE;YAChD,MAAM,oBAAoB,GAAG,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACnG,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,oBAAoB,CAAC,CAAC;SACzF;QAED,oEAAoE;QACpE,4CAA4C;QAC5C,cAAc,CAAC,oBAAoB,GAAG,SAAS,CAAC;QAChD,MAAM,oBAAoB,GAAG,cAAc,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC;QACjF,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,aAAa,EAAE;YAC5D,MAAM,0BAA0B,GAC5B,oBAAoB,CAAC,aAAa,CAAC,oBAAoB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtF,cAAc,CAAC,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,0BAA0B,CAAC,CAAC;SACrG;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,0BAA0B,CAAC,QAAgB;QAC/C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,+BAA+B,CAAC,QAAgB,EAAE,aAAqB;QAC3E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAEO,0BAA0B,CAAC,QAAwB;QACvD,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAEhF,uDAAuD;QACvD,IAAA,cAAM,EAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACJ;AAvnFD,0BAunFC"}
|
@@ -21,6 +21,7 @@ import { ReferenceCallback } from '../languageService/referencesProvider';
|
|
21
21
|
import { SignatureHelpResults } from '../languageService/signatureHelpProvider';
|
22
22
|
import { AnalysisCompleteCallback } from './analysis';
|
23
23
|
import { BackgroundAnalysisProgram, BackgroundAnalysisProgramFactory } from './backgroundAnalysisProgram';
|
24
|
+
import { CacheManager } from './cacheManager';
|
24
25
|
import { ImportResolver, ImportResolverFactory } from './importResolver';
|
25
26
|
import { MaxAnalysisTime, Program } from './program';
|
26
27
|
import { IPythonMode } from './sourceFile';
|
@@ -38,6 +39,7 @@ export interface AnalyzerServiceOptions {
|
|
38
39
|
backgroundAnalysisProgramFactory?: BackgroundAnalysisProgramFactory;
|
39
40
|
cancellationProvider?: CancellationProvider;
|
40
41
|
libraryReanalysisTimeProvider?: () => number;
|
42
|
+
cacheManager?: CacheManager;
|
41
43
|
}
|
42
44
|
export declare class AnalyzerService {
|
43
45
|
private _instanceName;
|