diff --git a/doc/unreal/en/ue57_build_fixes.md b/doc/unreal/en/ue57_build_fixes.md new file mode 100644 index 0000000000..ba085b3440 --- /dev/null +++ b/doc/unreal/en/ue57_build_fixes.md @@ -0,0 +1,129 @@ +# UE 5.7 Plugin Build Fixes + +This document records the issues encountered when building the Puerts plugin against +Unreal Engine 5.7 with `RunUAT BuildPlugin` and the configuration changes that resolved them. + +--- + +## Problem 1 — `AdditionalCompilerArguments` silently ignored in UE 5.7 + +### Symptom + +The `BuildConfiguration.xml` contained: + +```xml + + /Zm300 + +``` + +UBT emitted a schema validation warning at build start: + +``` +warning: The element 'WindowsPlatform' has invalid child element 'AdditionalCompilerArguments'. +``` + +The element was silently dropped, so the `/Zm300` flag was never passed to `cl.exe`. + +### Root cause + +UE 5.7 removed `AdditionalCompilerArguments` from the `WindowsPlatform` section of +`BuildConfiguration.xml`. The replacement field is `PCHMemoryAllocationFactor`, which maps +directly to the MSVC `/Zm` compiler switch. + +### Fix + +```xml + +/Zm300 + + +300 +``` + +--- + +## Problem 2 — `C1076` / `C3859` PCH memory exhaustion under XGE executor + +### Symptom + +Even after Problem 1 was fixed and `/Zm300` was confirmed present in the compiler response +files (`.rsp`), the build still failed with: + +``` +c1xx: error C3859: Failed to create virtual memory for PCH +c1xx: note: the system returned code 1455: The paging file is too small for this operation to complete. +c1xx: fatal error C1076: compiler limit: internal heap limit reached +``` + +The errors appeared for 16+ translation units in a single burst. + +### Root cause + +The build was using the **XGE (Incredibuild) executor** (`Total time in XGE executor`). +Although Incredibuild had no active license (remote agents were unavailable), UBT still +dispatched the build through the XGE executor in local mode — and that executor **ignores +`MaxParallelActions`** from `BuildConfiguration.xml`. It can schedule far more concurrent +`cl.exe` processes than the configured limit. + +Each process that creates or loads a shared PCH with `/Zm300` reserves a large block of +virtual address space. With many processes running simultaneously, the system's commit +charge (physical RAM + page file) was exhausted, triggering error 1455. + +### Fix + +Two changes to `BuildConfiguration.xml`: + +1. **Disable the XGE executor** so that UBT falls back to the UBA local executor, which + correctly honours `MaxParallelActions`: + + ```xml + + false + + ``` + +2. **Reduce `MaxParallelActions`** from 8 to 4 to limit peak memory demand from + concurrent PCH allocations: + + ```xml + + 4 + + ``` + +--- + +## Final `BuildConfiguration.xml` + +Location: `%APPDATA%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml` + +```xml + + + + 4 + false + + + 300 + + +``` + +--- + +## Build command + +```bat +set CL=/Zm300 +"C:\Program Files\Epic Games\UE_5.7\Engine\Build\BatchFiles\RunUAT.bat" BuildPlugin ^ + -Plugin="\unreal\Puerts\Puerts.uplugin" ^ + -Package="" ^ + -Rocket +``` + +> **Note:** The `set CL=/Zm300` line is only effective when the command is run in a +> `cmd.exe` shell. When invoked through PowerShell or a Bash-based tool, use the +> `PCHMemoryAllocationFactor` setting in `BuildConfiguration.xml` instead (which is the +> recommended approach regardless). diff --git a/unreal/Puerts/Config/FilterPlugin.ini b/unreal/Puerts/Config/FilterPlugin.ini new file mode 100644 index 0000000000..ccebca2f32 --- /dev/null +++ b/unreal/Puerts/Config/FilterPlugin.ini @@ -0,0 +1,8 @@ +[FilterPlugin] +; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and +; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively. +; +; Examples: +; /README.txt +; /Extras/... +; /Binaries/ThirdParty/*.dll diff --git a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js index 7aac5da657..51f7b3a7f5 100644 --- a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js +++ b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js @@ -26,9 +26,11 @@ function getCustomSystem() { }; function fileExists(path) { let res = UE.FileSystemOperation.FileExists(path); + //console.log(`${path} exists? ${res}`); return res; } function write(s) { + console.log(s); } function readFile(path, encoding) { let data = (0, puerts_1.$ref)(undefined); @@ -37,6 +39,7 @@ function getCustomSystem() { return (0, puerts_1.$unref)(data); } else { + console.warn("readFile: read file fail! path=" + path + ", stack:" + new Error().stack); return undefined; } } @@ -67,6 +70,30 @@ function getCustomSystem() { } return result; } + //for debug only + /*return new Proxy({}, { + get: function(target, name) { + if (!(name in target)) { + if (typeof name === 'string') { + if (!(name in tgamejsSystem)) { + return undefined; + } + let maybeFunc = tgamejsSystem[name]; + if (typeof maybeFunc === 'function') { + target[name] = function(...args: any[]) { + const res = maybeFunc(...args); + console.log("method:", name, ", args:", JSON.stringify(args), ",res:", res); + return res; + } + } else { + target[name] = tgamejsSystem[name]; + } + } + } + + return target[name] + } + }) as ts.System;*/ return customSystem; } let customSystem = getCustomSystem(); @@ -75,14 +102,30 @@ if (!ts.sys) { t.sys = customSystem; } function logErrors(allDiagnostics) { + if (!allDiagnostics || allDiagnostics.length === 0) { + return; + } + let errorCount = 0; + let warningCount = 0; allDiagnostics.forEach(diagnostic => { let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); - if (diagnostic.file) { + let category = ts.DiagnosticCategory[diagnostic.category]; // "Error" / "Warning" / "Message" / "Suggestion" + let code = `TS${diagnostic.code}`; + if (diagnostic.category === ts.DiagnosticCategory.Error) { + errorCount++; + } + else if (diagnostic.category === ts.DiagnosticCategory.Warning) { + warningCount++; + } + if (diagnostic.file && diagnostic.start !== undefined) { let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); + console.error(` [${category} ${code}] ${diagnostic.file.fileName}(${line + 1},${character + 1}): ${message}`); } else { + console.error(` [${category} ${code}] ${message}`); } }); + console.error(`PuertsEditor: TypeScript reported ${errorCount} error(s), ${warningCount} warning(s).`); } const FunctionFlags = { FUNC_None: 0x00000000, @@ -202,17 +245,19 @@ function readAndParseConfigFile(configFilePath) { readDirectory: customSystem.readDirectory, fileExists: customSystem.fileExists, readFile: customSystem.readFile, - trace: s => { } + trace: s => console.log(s) }, customSystem.getCurrentDirectory()); } function watch(configFilePath) { let { fileNames, options } = readAndParseConfigFile(configFilePath); + console.log("start watch..", JSON.stringify({ fileNames: fileNames, options: options })); const versionsFilePath = tsi.getDirectoryPath(configFilePath) + "/ts_file_versions_info.json"; const fileVersions = {}; let beginTime = new Date().getTime(); fileNames.forEach(fileName => { fileVersions[fileName] = { version: UE.FileSystemOperation.FileMD5Hash(fileName), processed: false, isBP: false }; }); + console.log("calc md5 using " + (new Date().getTime() - beginTime) + "ms"); function getDefaultLibLocation() { return tsi.getDirectoryPath(tsi.normalizePath(customSystem.getExecutingFilePath())); } @@ -232,6 +277,7 @@ function watch(configFilePath) { }, getScriptSnapshot: fileName => { if (!customSystem.fileExists(fileName)) { + console.error("getScriptSnapshot: file not existed! path=" + fileName); return undefined; } if (!(fileName in fileVersions)) { @@ -240,6 +286,7 @@ function watch(configFilePath) { if (!scriptSnapshotsCache.has(fileName)) { const sourceFile = customSystem.readFile(fileName); if (!sourceFile) { + console.error("getScriptSnapshot: read file failed! path=" + fileName); return undefined; } scriptSnapshotsCache.set(fileName, { @@ -251,11 +298,13 @@ function watch(configFilePath) { if (scriptSnapshotsInfo.version != fileVersions[fileName].version) { const sourceFile = customSystem.readFile(fileName); if (!sourceFile) { + console.error("getScriptSnapshot: read file failed! path=" + fileName); return undefined; } scriptSnapshotsInfo.version = fileVersions[fileName].version; scriptSnapshotsInfo.scriptSnapshot = ts.ScriptSnapshot.fromString(sourceFile); } + //console.log("getScriptSnapshot:"+ fileName + ",in:" + new Error().stack) return scriptSnapshotsInfo.scriptSnapshot; }, getCurrentDirectory: customSystem.getCurrentDirectory, @@ -274,8 +323,9 @@ function watch(configFilePath) { return service.getProgram(); } catch (e) { + console.error(e); } - //An exception causes a new Language Service to be created. It is possible that it will continue to fail. UE file reading will occasionally fail, and after the failure, ts incremental compilation will continue to fail the assertion at tryReuseStructureFromOldProgram + //异常了从新创建Language Service,有可能不断失败,UE的文件读取偶尔会失败,失败后ts增量编译会不断的在tryReuseStructureFromOldProgram那断言失败 service = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()); } } @@ -322,6 +372,7 @@ function watch(configFilePath) { } beginTime = new Date().getTime(); let program = getProgramFromService(); + console.log("full compile using " + (new Date().getTime() - beginTime) + "ms"); let diagnostics = ts.getPreEmitDiagnostics(program); let restoredFileVersions = {}; var changed = false; @@ -329,6 +380,7 @@ function watch(configFilePath) { if (versionsFileExisted) { try { restoredFileVersions = JSON.parse(customSystem.readFile(versionsFilePath)); + console.log("restore versions from ", versionsFilePath); } catch { } } @@ -336,7 +388,15 @@ function watch(configFilePath) { fileNames.forEach(fileName => { fileVersions[fileName] = restoredFileVersions[fileName] || fileVersions[fileName]; }); + console.error("==================== PuertsEditor: TypeScript compilation FAILED ===================="); logErrors(diagnostics); + // If any diagnostic points at the generated declaration files, the type generation produced invalid TypeScript. + const declErrors = diagnostics.filter(d => d.file && /ue(_bp)?\.d\.ts$/.test(d.file.fileName)); + if (declErrors.length > 0) { + console.error(`PuertsEditor: ${declErrors.length} error(s) originate from generated declaration files (ue.d.ts/ue_bp.d.ts). Regenerate the types (the generator now rejects TypeScript reserved words).`); + } + console.error("PuertsEditor: No JavaScript/Blueprints were generated because of the errors above. Fix them and save again."); + console.error("====================================================================================="); } else { function getClassPathInfo(sourceFilePath) { @@ -387,7 +447,7 @@ function watch(configFilePath) { } } var dirWatcher = new UE.PEDirectoryWatcher(); - global.__dirWatcher = dirWatcher; //prevent it from being released? + global.__dirWatcher = dirWatcher; //防止被释放? dirWatcher.OnChanged.Add((added, modified, removed) => { setTimeout(() => { var changed = false; @@ -418,8 +478,10 @@ function watch(configFilePath) { if (fileName in fileVersions) { let md5 = UE.FileSystemOperation.FileMD5Hash(fileName); if (md5 === fileVersions[fileName].version) { + console.log(fileName + " md5 not changed, so skiped!"); } else { + console.log(`${fileName} md5 from ${fileVersions[fileName].version} to ${md5}`); fileVersions[fileName].version = md5; onSourceFileAddOrChange(fileName, true); changed = true; @@ -428,9 +490,10 @@ function watch(configFilePath) { }); refreshBlueprints(); if (changed) { + console.log("versions saved to " + versionsFilePath); UE.FileSystemOperation.WriteFile(versionsFilePath, JSON.stringify(fileVersions, null, 4)); } - }, 100); //Delay 100 milliseconds to prevent file reading failure due to read conflict + }, 100); //延时100毫秒,防止因为读冲突而文件读取失败 }); dirWatcher.Watch(customSystem.getCurrentDirectory()); function onFileAdded() { @@ -438,6 +501,7 @@ function watch(configFilePath) { let newFiles = []; cmdLine.fileNames.forEach(fileName => { if (!(fileName in fileVersions)) { + console.log(`new file: ${fileName} ...`); newFiles.push(fileName); fileVersions[fileName] = { version: UE.FileSystemOperation.FileMD5Hash(fileName), processed: false }; } @@ -453,6 +517,7 @@ function watch(configFilePath) { if (!program) { let beginTime = new Date().getTime(); program = getProgramFromService(); + console.log("incremental compile " + sourceFilePath + " using " + (new Date().getTime() - beginTime) + "ms"); } let sourceFile = program.getSourceFile(sourceFilePath); if (sourceFile) { @@ -477,6 +542,7 @@ function watch(configFilePath) { let jsSource = undefined; emitOutput.outputFiles.forEach(output => { if (doEmitJs) { + console.log(`write ${output.name} ...`); UE.FileSystemOperation.WriteFile(output.name, output.text); } if (output.name.endsWith(".js") || output.name.endsWith(".mjs")) { @@ -501,6 +567,7 @@ function watch(configFilePath) { if (!type || !type.getSymbol()) return; if (type.getSymbol().getName() != tsi.getBaseFileName(moduleFileName)) { + //console.error("type name must the same as file name!"); return; } let baseTypes = type.getBaseTypes(); @@ -515,15 +582,18 @@ function watch(configFilePath) { baseTypeUClass = structOfType; } else { + console.warn("do not support UStruct:" + checker.typeToString(type)); return; } if (baseTypeUClass) { if (isSubclassOf(type, "Subsystem")) { + console.error("do not support Subsystem " + checker.typeToString(type)); return; } if (!baseTypeUClass.IsNative()) { let moduleNames = getModuleNames(baseTypes[0]); if (moduleNames.length > 1 && moduleNames[0] == 'ue') { + console.error(`${checker.typeToString(type)} extends a blueprint`); return; } } @@ -531,6 +601,7 @@ function watch(configFilePath) { foundBaseTypeUClass = baseTypeUClass; } else { + console.warn("can not find base for " + checker.typeToString(type)); } } }); @@ -572,6 +643,7 @@ function watch(configFilePath) { } } catch (e) { + console.error(`load ue type [${type.symbol.getName()}], throw: ${e}`); } } else if (moduleNames.length == 2) { @@ -587,6 +659,7 @@ function watch(configFilePath) { let baseTypeUClass = getUClassOfType(baseTypes[0]); if (!baseTypeUClass) return undefined; + //console.error("modulePath:", getModulePath(type.symbol.valueDeclaration.getSourceFile().fileName)); let sourceFile = type.symbol.valueDeclaration.getSourceFile(); let sourceFileName; program.emit(sourceFile, writeFile, undefined, false, undefined); @@ -596,6 +669,7 @@ function watch(configFilePath) { } } if (tsi.getBaseFileName(sourceFileName) != type.symbol.getName()) { + console.error("type name must the same as file name!"); return undefined; } if (options.outDir && sourceFileName.startsWith(options.outDir)) { @@ -623,6 +697,7 @@ function watch(configFilePath) { return undefined; try { let typeNode = checker.typeToTypeNode(type, undefined, undefined); + //console.log(checker.typeToString(type), tds) if (ts.isTypeReferenceNode(typeNode) && type.symbol) { let typeName = type.symbol.getName(); if (typeName == 'BigInt') { @@ -638,6 +713,7 @@ function watch(configFilePath) { if (uenum) { return { pinType: new UE.PEGraphPinType("byte", uenum, UE.EPinContainerType.None, false, false) }; } + console.warn("can not find type of " + typeName); return undefined; } let pinType = new UE.PEGraphPinType(category, uclass, UE.EPinContainerType.None, false, false); @@ -651,6 +727,7 @@ function watch(configFilePath) { typeName = typeRef.aliasSymbol.getName(); } if (!typeArguments) { + console.warn("can not find type arguments of " + node.getFullText()); return undefined; } if (node) { @@ -660,6 +737,7 @@ function watch(configFilePath) { } let result = tsTypeToPinType(typeArguments[0], children[1]); if (!result || result.pinType.PinContainerType != UE.EPinContainerType.None && typeName != '$Ref' && typeName != '$InRef') { + console.warn("can not find pin type of typeArguments[0] " + typeName); return undefined; } if (children[1]) { @@ -696,6 +774,7 @@ function watch(configFilePath) { else if (typeName == 'TMap') { let valuePinType = tsTypeToPinType(typeArguments[1], undefined); if (!valuePinType || valuePinType.pinType.PinContainerType != UE.EPinContainerType.None) { + console.warn("can not find pin type of typeArguments[1] " + typeName); return undefined; } if (children[2]) { @@ -706,6 +785,7 @@ function watch(configFilePath) { return result; } else { + console.warn("not support generic type: " + typeName); return undefined; } } @@ -727,6 +807,7 @@ function watch(configFilePath) { category = 'bool'; break; default: + console.warn("not support kind: " + typeNode.kind); return undefined; } let pinType = new UE.PEGraphPinType(category, undefined, UE.EPinContainerType.None, false, false); @@ -734,6 +815,7 @@ function watch(configFilePath) { } } catch (e) { + console.error(e.stack || e); return undefined; } } @@ -815,6 +897,7 @@ function watch(configFilePath) { return ret; } function onBlueprintTypeAddOrChange(baseTypeUClass, type, modulePath) { + console.log(`gen blueprint for ${type.getSymbol().getName()}, path: ${modulePath}`); let lsFunctionLibrary = baseTypeUClass && baseTypeUClass.GetName() === "BlueprintFunctionLibrary"; let bp = new UE.PEBlueprintAsset(); bp.LoadOrCreateWithMetaData(type.getSymbol().getName(), modulePath, baseTypeUClass, 0, 0, uemeta.compileClassMetaData(type)); @@ -824,13 +907,16 @@ function watch(configFilePath) { if (ts.isMethodDeclaration(x) && !manualSkip(x)) { let isStatic = !!(ts.getCombinedModifierFlags(x) & ts.ModifierFlags.Static); if (isStatic && !lsFunctionLibrary) { + console.warn(`do not support static function [${x.name.getText()}]`); return; } if (!isStatic && lsFunctionLibrary) { + console.warn(`do not support non-static function [${x.name.getText()}] in BlueprintFunctionLibrary`); return; } if (x.name.getText() === 'ReceiveInit') { if (baseTypeUClass == UE.GameInstance.StaticClass() || baseTypeUClass.IsChildOf(UE.GameInstance.StaticClass())) { + console.warn(`do not support override GameInstance.ReceiveInit in ${type.getSymbol().getName()}`); return; } } @@ -839,6 +925,7 @@ function watch(configFilePath) { else if (ts.isPropertyDeclaration(x) && !manualSkip(x)) { let isStatic = !!(ts.getCombinedModifierFlags(x) & ts.ModifierFlags.Static); if (isStatic) { + console.warn("static property:" + x.name.getText() + ' not support'); return; } properties.push(checker.getSymbolAtLocation(x.name)); @@ -856,9 +943,11 @@ function watch(configFilePath) { let methodType = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration); let signatures = checker.getSignaturesOfType(methodType, ts.SignatureKind.Call); if (!signatures) { + console.warn(`can not find signature for ${symbol.getName()} `); return; } if (signatures.length != 1) { + console.warn(`find more than one signature for ${symbol.getName()} `); return; } let signature = signatures[0]; @@ -866,6 +955,7 @@ function watch(configFilePath) { let paramType = checker.getTypeOfSymbolAtLocation(signature.parameters[i], signature.parameters[i].valueDeclaration); let paramPinType = tsTypeToPinType(paramType, getSymbolTypeNode(signature.parameters[i])); if (!paramPinType) { + console.warn(symbol.getName() + " of " + checker.typeToString(type) + " has not supported parameter!"); bp.ClearParameter(); return; } @@ -873,6 +963,7 @@ function watch(configFilePath) { // bp.AddParameter(signature.parameters[i].getName(), paramPinType.pinType, paramPinType.pinValueType); bp.AddParameterWithMetaData(signature.parameters[i].getName(), paramPinType.pinType, paramPinType.pinValueType, uemeta.compileParamMetaData(signature.parameters[i])); } + //console.log("add function", symbol.getName()); let sflags = tryGetAnnotation(symbol.valueDeclaration, "flags", true); let flags = getFlagsValue(sflags, FunctionFlags); let clearFlags = 0; @@ -889,6 +980,7 @@ function watch(configFilePath) { let returnType = signature.getReturnType(); let resultPinType = tsTypeToPinType(returnType, getSymbolTypeNode(symbol)); if (!resultPinType) { + console.warn(symbol.getName() + " of " + checker.typeToString(type) + " has not supported return type!"); bp.ClearParameter(); return; } @@ -902,29 +994,27 @@ function watch(configFilePath) { let propType = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration); let propPinType = tsTypeToPinType(propType, getSymbolTypeNode(symbol)); if (!propPinType) { + console.warn(symbol.getName() + " of " + checker.typeToString(type) + " not support!"); } else { postProcessPinType(symbol.valueDeclaration, propPinType.pinType, true); + //console.log("add member variable", symbol.getName()); let sflags = tryGetAnnotation(symbol.valueDeclaration, "flags", true); let localFlags = BigInt(getFlagsValue(sflags, PropertyFlags)); // From //@flags let cond = 0; - if (symbol.valueDeclaration && symbol.valueDeclaration.decorators) { // Handle @flags() decorator localFlags |= getDecoratorFlagsValue(symbol.valueDeclaration, "flags", PropertyFlags); - // Handle @condition() for CPF_Net cond = Number(getDecoratorFlagsValue(symbol.valueDeclaration, "condition", ELifetimeCondition)); if (cond != 0) { - localFlags |= BigInt(PropertyFlags.CPF_Net); + localFlags |= BigInt(PropertyFlags.CPF_Net); } - // Handle specific @edit_on_instance decorator as an override if (hasDecorator(symbol.valueDeclaration, "edit_on_instance")) { localFlags &= ~BigInt(PropertyFlags.CPF_DisableEditOnInstance); // Remove restriction localFlags |= BigInt(PropertyFlags.CPF_Edit); // Ensure it's editable if this is used } - // Attachment logic (preserved) symbol.valueDeclaration.decorators.forEach((decorator) => { let expression = decorator.expression; @@ -937,22 +1027,19 @@ function watch(configFilePath) { } }); } - let propertyMetaData = uemeta.compilePropertyMetaData(symbol); - // If UEMeta provides no metadata (e.g. no @uproperty decorator on the member) AND // localFlags themselves don't already make the property editable, // then apply a default CPF_DisableEditOnInstance to localFlags. // This makes un-decorated or un-annotated properties non-editable on instances by default. if (!propertyMetaData && !(localFlags & BigInt(PropertyFlags.CPF_Edit))) { // Check hasDecorator again because the main decorators loop might not have run if no decorators exist at all - if (!symbol.valueDeclaration || !symbol.valueDeclaration.decorators || !hasDecorator(symbol.valueDeclaration, "edit_on_instance")) { - localFlags |= BigInt(PropertyFlags.CPF_DisableEditOnInstance); + if (!symbol.valueDeclaration || !symbol.valueDeclaration.decorators || !hasDecorator(symbol.valueDeclaration, "edit_on_instance")) { + localFlags |= BigInt(PropertyFlags.CPF_DisableEditOnInstance); } } - // When propertyMetaData *is* present, its internal flags (derived by UEMeta.js from EditAnywhere etc.) + // When propertyMetaData *is* present, its internal flags (derived by UEMeta.ts from EditAnywhere etc.) // are authoritative. localFlags here are for truly additional/override flags. - bp.AddMemberVariableWithMetaData(symbol.getName(), propPinType.pinType, propPinType.pinValueType, Number(localFlags & 0xffffffffn), Number(localFlags >> 32n), cond, propertyMetaData); } } @@ -1009,9 +1096,11 @@ function watch(configFilePath) { } function list(pattern) { var re = new RegExp(pattern ? pattern : '.*'); + console.log(`id\t\t\t\t\t\t\t\t\tprocessed\tisBP\tpath`); for (var key in fileVersions) { var value = fileVersions[key]; if (!pattern || re.test(key)) { + console.log(`${value.version}\t${!!value.processed}\t\t${!!value.isBP}\t${key}`); } } } @@ -1019,6 +1108,7 @@ function watch(configFilePath) { for (var key in fileVersions) { var value = fileVersions[key]; if (value.version === id.trim()) { + console.log(`compiling ${key} ...`); onSourceFileAddOrChange(key, true); } } @@ -1032,6 +1122,7 @@ function watch(configFilePath) { compile(args); } else { + console.error(`unknow command for Puerts ${cmd}`); } } cpp.FPuertsEditorModule.SetCmdCallback(dispatchCmd); diff --git a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map index 12c022ab05..da4569202f 100644 --- a/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map +++ b/unreal/Puerts/Content/JavaScript/PuertsEditor/CodeAnalyze.js.map @@ -1 +1 @@ -{"version":3,"file":"CodeAnalyze.js","sourceRoot":"","sources":["../../../PuertsEditor/CodeAnalyze.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"CodeAnalyze.js","sourceRoot":"","sources":["../../../../Documents/Projects/UE-sourcecode/puerts/unreal/Puerts/PuertsEditor/CodeAnalyze.ts"],"names":[],"mappings":";;AAAA,yBAAwB;AACxB,mCAA0C;AAC1C,iCAAiC;AACjC,4CAA2C;AAC3C,mCAAkC;AAClC,2BAA0B;AAE1B,SAAS,eAAe;IACpB,MAAM,YAAY,GAAc;QAC5B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,IAAI;QACb,yBAAyB,EAAE,IAAI;QAC/B,KAAK;QACL,QAAQ;QACR,SAAS;QACT,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU;QACV,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,eAAe,EAAE,GAAG,CAAC,eAAe;QACpC,oBAAoB;QACpB,mBAAmB;QACnB,cAAc;QACd,aAAa;QACb,IAAI;KACP,CAAA;IAED,SAAS,UAAU,CAAC,IAAY;QAC5B,IAAI,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClD,wCAAwC;QACxC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,SAAS,KAAK,CAAC,CAAS;QACpB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAiB;QAC7C,IAAI,IAAI,GAAG,IAAA,aAAI,EAAS,SAAS,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,GAAG,EAAE;YACL,OAAO,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC;SACvB;aAAM;YACH,OAAO,CAAC,IAAI,CAAC,iCAAiC,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;YACxF,OAAO,SAAS,CAAC;SACpB;IACL,CAAC;IAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,kBAA4B;QACvE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IAEH,SAAS,aAAa,CAAC,IAAY,EAAE,UAAkC,EAAE,QAAgC,EAAE,QAAgC,EAAE,KAAc;QACvJ,iDAAiD;QACjD,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,8BAA8B,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtJ,CAAC;IAED,SAAS,IAAI,CAAC,QAAiB;QAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,oBAAoB;QACzB,OAAO,mBAAmB,EAAE,GAAG,oEAAoE,CAAC;IACxG,CAAC;IAED,SAAS,mBAAmB;QACxB,OAAO,EAAE,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;IACxD,CAAC;IAED,SAAS,cAAc,CAAC,IAAY;QAChC,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACvD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB;;;;;;;;;;;;;;;;;;;;;;sBAsBkB;IAElB,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,IAAI,YAAY,GAAG,eAAe,EAAE,CAAA;AACpC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;IACT,IAAI,CAAC,GAAS,EAAE,CAAC;IACjB,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC;CACxB;AAED,SAAS,SAAS,CAAC,cAAwC;IACvD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAChD,OAAO;KACV;IACD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAClC,IAAI,OAAO,GAAG,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,iDAAiD;QAC5G,IAAI,IAAI,GAAG,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE;YACrD,UAAU,EAAE,CAAC;SAChB;aAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAC9D,YAAY,EAAE,CAAC;SAClB;QACD,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE;YACrD,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,6BAA6B,CACrE,UAAU,CAAC,KAAK,CACjB,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,MAAM,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;SAChH;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,MAAM,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;SACrD;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,qCAAqC,UAAU,cAAc,YAAY,cAAc,CAAC,CAAC;AAC3G,CAAC;AAID,MAAM,aAAa,GAAG;IAClB,SAAS,EAAM,UAAU;IAE5B,UAAU,EAAM,UAAU;IAC1B,gBAAgB,EAAK,UAAU;IAC/B,2BAA2B,EAAE,UAAU;IACvC,sBAAsB,EAAG,UAAU;IACnC,sCAAsC;IACtC,sCAAsC;IACtC,QAAQ,EAAM,UAAU;IACxB,gBAAgB,EAAI,UAAU;IAC9B,eAAe,EAAK,UAAU;IAC9B,SAAS,EAAM,UAAU;IACzB,WAAW,EAAM,UAAU;IAC3B,UAAU,EAAM,UAAU;IAC1B,gBAAgB,EAAI,UAAU;IAC9B,WAAW,EAAM,UAAU;IAC3B,iBAAiB,EAAI,UAAU;IAC/B,sBAAsB,EAAG,UAAU;IACnC,sBAAsB,EAAG,UAAU;IACnC,WAAW,EAAM,UAAU;IAC3B,YAAY,EAAK,UAAU;IAC3B,cAAc,EAAK,UAAU;IAC7B,aAAa,EAAK,UAAU;IAC5B,cAAc,EAAK,UAAU;IAC7B,gBAAgB,EAAI,UAAU;IAC9B,gBAAgB,EAAI,UAAU;IAC9B,cAAc,EAAK,UAAU;IAC7B,cAAc,EAAK,UAAU;IAC7B,sBAAsB,EAAG,UAAU;IACnC,mBAAmB,EAAI,UAAU;IACjC,kBAAkB,EAAI,UAAU;IAChC,eAAe,EAAK,UAAU;IAC9B,UAAU,EAAM,UAAU;IAC1B,gBAAgB,EAAI,UAAU;IAE9B,aAAa,EAAI,UAAU;CAC3B,CAAC;AAEF,MAAM,aAAa,GAAG;IACrB,QAAQ,EAAG,CAAC;IAEZ,QAAQ,EAAS,kBAAkB;IACnC,aAAa,EAAQ,kBAAkB;IACvC,oBAAoB,EAAM,kBAAkB;IAC5C,gBAAgB,EAAO,kBAAkB;IACzC,qBAAqB,EAAM,kBAAkB;IAC7C,OAAO,EAAU,kBAAkB;IACnC,iBAAiB,EAAO,kBAAkB;IAC1C,QAAQ,EAAS,kBAAkB;IACnC,WAAW,EAAS,kBAAkB;IACtC,mBAAmB,EAAO,kBAAkB;IAC5C,cAAc,EAAQ,kBAAkB;IACxC,yBAAyB,EAAK,kBAAkB;IAChD,6CAA6C;IAC7C,aAAa,EAAU,kBAAkB;IACzC,UAAU,EAAa,kBAAkB;IACzC,yCAAyC;IACzC,yBAAyB,EAAK,kBAAkB;IAChD,aAAa,EAAU,kBAAkB;IACzC,gBAAgB,EAAO,kBAAkB;IACzC,sBAAsB,EAAM,kBAAkB;IAC9C,wCAAwC;IACxC,sBAAsB,EAAM,kBAAkB;IAC9C,sBAAsB,EAAM,kBAAkB;IAC9C,4CAA4C;IAC5C,YAAY,EAAQ,kBAAkB;IACtC,WAAW,EAAS,kBAAkB;IACtC,yCAAyC;IACzC,iBAAiB,EAAO,kBAAkB;IAC1C,uBAAuB,EAAM,kBAAkB;IAC/C,cAAc,EAAS,kBAAkB;IACzC,kBAAkB,EAAO,kBAAkB;IAC3C,WAAW,EAAS,kBAAkB;IACtC,aAAa,EAAQ,kBAAkB;IACvC,UAAU,EAAS,kBAAkB;IACrC,oBAAoB,EAAM,kBAAkB;IAC5C,cAAc,EAAQ,kBAAkB;IACxC,gBAAgB,EAAO,kBAAkB;IACzC,wCAAwC;IACxC,YAAY,EAAQ,kBAAkB;IACtC,8BAA8B,EAAI,kBAAkB;IACpD,2BAA2B,EAAK,kBAAkB;IAClD,iBAAiB,EAAO,kBAAkB;IAC1C,mBAAmB,EAAO,kBAAkB;IAC5C,aAAa,EAAQ,kBAAkB;IACvC,qBAAqB,EAAM,kBAAkB;IAC7C,0BAA0B,EAAK,kBAAkB;IACjD,uBAAuB,EAAM,kBAAkB;IAC/C,4BAA4B,EAAI,kBAAkB;IAClD,iBAAiB,EAAO,kBAAkB;IAC1C,sBAAsB,EAAM,kBAAkB;IAC9C,kBAAkB,EAAO,kBAAkB;IAC3C,uBAAuB,EAAM,kBAAkB;IAC/C,+BAA+B,EAAI,kBAAkB;IACrD,kCAAkC,EAAG,kBAAkB;IACvD,gCAAgC,EAAG,kBAAkB;IACrD,qBAAqB,EAAM,kBAAkB,EAAE,oEAAoE;CACnH,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACvB,kBAAkB,EAAG,CAAC;IACtB,gBAAgB,EAAG,CAAC;IACpB,gBAAgB,EAAG,CAAC;IACpB,oBAAoB,EAAG,CAAC;IACxB,qBAAqB,EAAG,CAAC;IACzB,yBAAyB,EAAG,CAAC;IAC7B,qBAAqB,EAAG,CAAC;IACzB,aAAa,EAAG,CAAC;IACjB,oBAAoB,EAAG,CAAC;IACxB,iBAAiB,EAAG,EAAE;IACtB,4BAA4B,EAAG,EAAE;IACjC,iCAAiC,EAAG,EAAE;IACtC,iBAAiB,EAAG,EAAE;IACtB,YAAY,EAAG,EAAE,EAAW,+CAA+C;CAC9E,CAAC;AAMF,SAAS,sBAAsB,CAAC,cAAsB;IAClD,IAAI,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE1E,OAAO,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE;QACpD,yBAAyB,EAAE,IAAI;QAC/B,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7B,EAAE,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,KAAK,CAAC,cAAqB;IAChC,IAAI,EAAC,SAAS,EAAE,OAAO,EAAC,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,SAAS,EAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;IACtF,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,6BAA6B,CAAC;IAC9F,MAAM,YAAY,GAAwE,EAAE,CAAC;IAE7F,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACrC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;IACnH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAE,iBAAiB,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5E,SAAS,qBAAqB;QAC1B,OAAO,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAgE,CAAC;IAErG,gFAAgF;IAChF,MAAM,YAAY,GAA2B;QAC3C,kBAAkB,EAAE,GAAG,EAAE,CAAC,SAAS;QACnC,gBAAgB,EAAE,QAAQ,CAAC,EAAE;YACzB,IAAG,QAAQ,IAAI,YAAY,EAAE;gBACzB,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;aAC9E;iBAAM;gBACH,IAAI,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACvD,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC;gBAC3D,OAAO,GAAG,CAAC;aACd;QACL,CAAC;QACD,iBAAiB,EAAE,QAAQ,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACpC,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,QAAQ,CAAC,CAAC;gBACvE,OAAO,SAAS,CAAC;aACpB;YAED,IAAI,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,EAAE;gBAC7B,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC;aACtG;YAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACrC,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,UAAU,EAAE;oBACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,QAAQ,CAAC,CAAC;oBACvE,OAAO,SAAS,CAAC;iBACpB;gBACD,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC/B,OAAO,EAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO;oBACtC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC3D,CAAC,CAAC;aACN;YAED,IAAI,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE7D,IAAI,mBAAmB,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;gBAC/D,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,UAAU,EAAE;oBACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,QAAQ,CAAC,CAAC;oBACvE,OAAO,SAAS,CAAC;iBACpB;gBACD,mBAAmB,CAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;gBAC7D,mBAAmB,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;aACjF;YACD,0EAA0E;YAE1E,OAAO,mBAAmB,CAAC,cAAc,CAAC;QAC5C,CAAC;QACD,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;QACrD,sBAAsB,EAAE,GAAG,EAAE,CAAC,OAAO;QACrC,qBAAqB,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC9G,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU;QAC7B,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ;QACzB,aAAa,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa;QACnC,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe;QACvC,cAAc,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc;KACtC,CAAC;IAEF,IAAI,OAAO,GAAG,EAAE,CAAC,qBAAqB,CAAC,YAAY,EAAE,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAElF,SAAS,qBAAqB;QAC1B,OAAM,IAAI,EAAE;YACR,IAAI;gBACA,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;aAC/B;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpB;YACD,iGAAiG;YACjG,OAAO,GAAG,EAAE,CAAC,qBAAqB,CAAC,YAAY,EAAE,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjF;IACL,CAAC;IAED,IAAI,2BAA2B,GAAwC,EAAE,CAAC;IAC1E,SAAS,SAAS,CAAC,CAAU,EAAE,CAAU;QACrC,IAAI,SAAS,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAgB,CAAC,IAAI,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC;SACf;QACD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACtC,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACf;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,eAAe,CAAC,OAA2C;QAChE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAwC,EAAE,CAAC;QAEvD,SAAS,KAAK,CAAC,IAAiC;YAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;oBAC3B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;wBACpC,KAAK,CAAC,KAAK,CAAC,CAAC;qBACd;iBACF;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnB;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;YACzB,KAAK,CAAC,GAAG,CAAC,CAAC;SACZ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,iBAAiB;QACtB,IAAI,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,2BAA2B,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAC;YAC3E,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtC,GAAG,CAAC,EAAE,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;YACH,2BAA2B,GAAG,EAAE,CAAC;SACpC;IACL,CAAC;IAED,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACtC,OAAO,CAAC,GAAG,CAAE,qBAAqB,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IAChF,IAAI,WAAW,GAAI,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,oBAAoB,GAAuE,EAAE,CAAC;IAClG,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,mBAAmB,GAAG,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACtE,IAAI,mBAAmB,EAAE;QACrB,IAAI;YACA,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;SAC3D;QAAC,MAAM,GAAE;KACb;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QACxB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACzB,YAAY,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;QACvG,SAAS,CAAC,WAAW,CAAC,CAAC;QACvB,gHAAgH;QAChH,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,KAAK,CAAC,iBAAiB,UAAU,CAAC,MAAM,wJAAwJ,CAAC,CAAC;SAC7M;QACD,OAAO,CAAC,KAAK,CAAC,6GAA6G,CAAC,CAAC;QAC7H,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;KAC1G;SAAM;QACH,SAAS,gBAAgB,CAAC,cAAsB;YAC5C,IAAI,UAAU,GAAU,SAAS,CAAC;YAClC,IAAI,cAAc,GAAU,SAAS,CAAC;YACtC,IAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC/B,IAAI,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC/D,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnE,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBAClD,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;iBAC/D;aACJ;YACD,OAAO,EAAC,cAAc,EAAE,UAAU,EAAC,CAAC;QACxC,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACzB,IAAI,CAAC,CAAC,QAAQ,IAAI,oBAAoB,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;gBAC9J,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC/D,OAAO,GAAG,IAAI,CAAC;aAClB;iBAAM;gBACH,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;aAC3C;YACD,IAAI,QAAQ,IAAI,oBAAoB,EAAE;gBAClC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;aACrE;QACL,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACzB,IAAI,mBAAmB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,oBAAoB,CAAC,CAAC;gBAAE,OAAO;YACzE,IAAI,mBAAmB,IAAI,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC1E,MAAM,EAAC,cAAc,EAAE,UAAU,EAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,cAAc,EAAE;gBAChB,SAAS,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;aACvE;YACD,IAAI,CAAC,mBAAmB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;gBAC7J,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzD,OAAO,GAAG,IAAI,CAAC;aAClB;iBAAM;gBACH,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;aAC3C;QACL,CAAC,CAAC,CAAC;QACH,iBAAiB,EAAE,CAAC;QACpB,IAAI,OAAO,EAAE;YACT,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC7F;KACJ;IAED,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;IAC7C,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,QAAQ;IAE1C,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAClD,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,aAAa,GAAkB,EAAE,CAAC;YACtC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBACpC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACvC;YACD,IAAI,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACnC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBACnC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAClC;YACD,IAAI,QAAQ,GAAkB,EAAE,CAAC;YACjC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBACjC,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,wCAAwC;gBACxC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBAC1B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAChC;qBAAM;oBACH,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC3B;aACJ;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,WAAW,EAAE,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;aAClB;YACD,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC7B,IAAI,QAAQ,IAAI,YAAY,EAAE;oBAC1B,IAAI,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACvD,IAAI,GAAG,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;wBACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,8BAA8B,CAAC,CAAC;qBAC1D;yBAAM;wBACH,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,aAAa,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,OAAO,GAAG,EAAE,CAAC,CAAC;wBAChF,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;wBACrC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACxC,OAAO,GAAG,IAAI,CAAC;qBAClB;iBACJ;YACL,CAAC,CAAC,CAAC;YAEH,iBAAiB,EAAE,CAAC;YACpB,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;gBACrD,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aAC7F;QACL,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA,wBAAwB;IACpC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAErD,SAAS,WAAW;QAChB,IAAI,OAAO,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,QAAQ,GAAkB,EAAE,CAAC;QACjC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACjC,IAAI,CAAC,CAAC,QAAQ,IAAI,YAAY,CAAC,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,MAAM,CAAC,CAAA;gBACxC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aACxG;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC1B,OAAO,GAAG,qBAAqB,EAAE,CAAC;YAElC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SAClF;IACL,CAAC;IAED,SAAS,uBAAuB,CAAC,cAAsB,EAAE,MAAe,EAAE,OAAoB,EAAE,WAAoB,IAAI,EAAE,WAAmB,IAAI;QAC7I,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO,GAAG,qBAAqB,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,cAAc,GAAG,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;SAChH;QAED,IAAI,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAEvD,IAAI,UAAU,EAAE;YACZ,MAAM,WAAW,GAAG;gBAChB,GAAG,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC;gBAC9C,GAAG,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC;aAChD,CAAC;YAEF,IAAI,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAEvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,SAAS,CAAC,WAAW,CAAC,CAAC;aAC1B;iBAAM;gBACH,IAAI,QAAQ,EAAE;oBACV,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;iBAC7C;gBACD,YAAY,CAAC,cAAc,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;oBAC/B,IAAI,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAEvD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;wBACzB,IAAI,UAAU,GAAU,SAAS,CAAC;wBAClC,IAAI,cAAc,GAAU,SAAS,CAAC;wBACtC,IAAI,QAAQ,GAAU,SAAS,CAAC;wBAChC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;4BACpC,IAAI,QAAQ,EAAE;gCACV,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,MAAM,CAAE,CAAA;gCACxC,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;6BAC9D;4BAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gCAC7D,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;gCACvB,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oCAC1D,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oCAC/D,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;oCAClD,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;iCACtG;6BACJ;wBACL,CAAC,CAAC,CAAC;wBACH,IAAI,cAAc,IAAI,MAAM,EAAE;4BAC1B,EAAE,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;yBACvE;wBAED,IAAI,CAAC,QAAQ;4BAAE,OAAO;wBAEtB,IAAI,SAAS,GAAY,SAAS,CAAC;wBACnC,IAAI,mBAAmB,GAAc,SAAS,CAAC;wBAC/C,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;4BACjC,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gCACjE,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gCACxD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oCAAE,OAAO;gCACvC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE;oCACnE,yDAAyD;oCACzD,OAAO;iCACV;gCAED,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gCACpC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;oCAAE,OAAO;gCAChD,IAAI,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gCACjD,IAAI,cAAc,GAAY,SAAS,CAAC;gCAExC,IAAG,CAAC,YAAY,EAAC;oCACb,OAAM;iCACT;gCAED,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;oCAC3D,cAAc,GAAG,YAAwB,CAAC;iCAC7C;qCACI;oCACD,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oCACrE,OAAO;iCACV;gCAED,IAAI,cAAc,EAAE;oCAChB,IAAI,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;wCACjC,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;wCACxE,OAAO;qCACV;oCACD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE;wCAC5B,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC/C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;4CAClD,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;4CACnE,OAAO;yCACV;qCACJ;oCAED,SAAS,GAAG,IAAI,CAAC;oCACjB,mBAAmB,GAAG,cAAc,CAAC;iCACxC;qCAAM;oCACH,OAAO,CAAC,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;iCACvE;6BACJ;wBACL,CAAC,CAAC,CAAC;wBAEH,IAAI,SAAS,IAAI,mBAAmB,EAAE;4BAClC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;4BACzC,yEAAyE;4BACzE,2BAA2B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,mBAAmB,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;yBAC3I;qBACJ;iBACJ;aACJ;YAED,SAAS,gBAAgB,CAAC,IAAmB;gBACzC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;oBACvB,OAAO,IAAI,CAAC,IAAI,CAAC;iBACpB;qBACI;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC1B;YACL,CAAC;YAED,SAAS,YAAY,CAAC,IAAY,EAAE,YAAmB;gBACnD,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACxC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,YAAY,EAAE;oBACpD,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YACpD,CAAC;YAED,SAAS,eAAe,CAAC,IAAa;gBAClC,IAAI,CAAC,IAAI;oBAAE,OAAO,SAAS,CAAC;gBAC5B,IAAI,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;oBAClD,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;wBACzB,IAAI;4BACA,IAAI,KAAK,GAAI,EAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;4BAC/C,IAAI,OAAO,KAAK,CAAC,WAAW,IAAI,UAAU,EAAE;gCACxC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;6BAC9B;yBACJ;wBAAC,OAAO,CAAC,EAAE;4BACR,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;yBACzE;qBACJ;yBAAM,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;wBAChC,IAAI,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnE,OAAQ,EAAE,CAAC,KAAK,CAAC,IAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;qBAClD;iBACJ;qBAAM,IAAK,IAAI,CAAC,MAAM,IAAK,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;oBACtD,kBAAkB;oBAClB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;wBAAE,OAAO,SAAS,CAAC;oBAC1D,IAAI,cAAc,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,cAAc;wBAAE,OAAO,SAAS,CAAC;oBAEtC,qGAAqG;oBACrG,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;oBAC9D,IAAI,cAAsB,CAAA;oBAC1B,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;oBACjE,SAAS,SAAS,CAAC,QAAgB,EAAE,IAAY,EAAE,kBAA2B;wBAC1E,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;4BAC1B,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;yBACzD;oBACL,CAAC;oBACD,IAAK,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;wBAC/D,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;wBACvD,OAAO,SAAS,CAAC;qBACpB;oBAED,IAAI,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBAC7D,IAAI,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACtE,IAAI,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;wBACtD,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;wBACnC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,cAA0B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC1F,EAAE,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO,EAAE,CAAC,cAAc,CAAC;qBAC5B;iBACJ;YACL,CAAC;YAED,SAAS,iBAAiB,CAAC,MAAiB;gBACxC,IAAI,MAAM,CAAC,gBAAgB,EAAE;oBACzB,KAAI,IAAI,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,EAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;wBACnE,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAClD,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE;4BAC3C,OAAO,KAAK,CAAC;yBAChB;qBACJ;iBACJ;YACL,CAAC;YAED,SAAS,eAAe,CAAC,IAAa,EAAE,IAAa;gBACjD,IAAI,CAAC,IAAI;oBAAE,OAAO,SAAS,CAAC;gBAC5B,IAAI;oBACA,IAAI,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;oBAClE,8CAA8C;oBAC9C,IAAI,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;wBACjD,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACrC,IAAI,QAAQ,IAAI,QAAQ,EAAE;4BACtB,IAAI,QAAQ,GAAe,OAAO,CAAC;4BACnC,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;4BAClG,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;yBAC7B;wBACD,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;4BAC/D,IAAI,QAAQ,GAAe,QAAQ,CAAC;4BACpC,IAAI,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;4BACnC,IAAI,CAAC,MAAM,EAAE;gCACT,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gCAChD,IAAI,KAAK,EAAE;oCACP,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAC,CAAC;iCACnG;gCACD,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;gCACjD,OAAO,SAAS,CAAC;6BACpB;4BAED,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;4BAC/F,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;yBAC7B;6BAAM,EAAE,oBAAoB;4BACzB,IAAI,OAAO,GAAG,IAAwB,CAAC;4BACvC,IAAI,QAAQ,GAAc,EAAE,CAAC;4BAE7B,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;4BAExE,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,WAAW,EAAE;gCACnD,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;6BAC5C;4BAED,IAAI,CAAC,aAAa,EAAE;gCAChB,OAAO,CAAC,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gCACrE,OAAO,SAAS,CAAC;6BACpB;4BAED,IAAI,IAAI,EAAE;gCACN,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;oCACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCACzB,CAAC,CAAC,CAAA;6BACL;4BAED,IAAI,MAAM,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BAE5D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE;gCACvH,OAAO,CAAC,IAAI,CAAC,4CAA4C,GAAG,QAAQ,CAAC,CAAC;gCACtE,OAAO,SAAS,CAAC;6BACpB;4BAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;gCACb,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;6BAC1D;4BAED,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE;gCAC5C,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;gCAC/G,OAAO,MAAM,CAAC;6BACjB;iCAAM,IAAI,QAAQ,IAAI,aAAa,EAAE;gCAClC,IAAI,QAAQ,GAAe,OAAO,CAAC;gCACnC,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC;gCACtC,OAAO,MAAM,CAAC;6BACjB;iCAAM,IAAI,QAAQ,IAAI,gBAAgB,EAAE;gCACrC,IAAI,QAAQ,GAAe,YAAY,CAAC;gCACxC,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC;gCACtC,OAAO,MAAM,CAAC;6BACjB;iCAAM,IAAI,QAAQ,IAAI,eAAe,EAAE;gCACpC,IAAI,QAAQ,GAAe,WAAW,CAAC;gCACvC,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC;gCACtC,OAAO,MAAM,CAAC;6BACjB;iCAAM,IAAI,QAAQ,IAAK,MAAM,EAAE;gCAC5B,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;gCACnC,OAAO,MAAM,CAAC;6BACjB;iCAAM,IAAI,QAAQ,IAAK,QAAQ,EAAE;gCAC9B,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;gCACnC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;gCAC1B,OAAO,MAAM,CAAC;6BACjB;iCAAM,IAAI,QAAQ,IAAI,MAAM,EAAE;gCAC3B,IAAI,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gCAChE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE;oCACrF,OAAO,CAAC,IAAI,CAAC,4CAA4C,GAAG,QAAQ,CAAC,CAAC;oCACtE,OAAO,SAAS,CAAC;iCACpB;gCACD,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;oCACb,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;iCAChE;gCACD,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;gCAC3D,MAAM,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gCAC9H,OAAO,MAAM,CAAC;6BACjB;iCAAM;gCACH,OAAO,CAAC,IAAI,CAAC,4BAA4B,GAAG,QAAQ,CAAC,CAAC;gCACtD,OAAO,SAAS,CAAC;6BACpB;yBACJ;qBACJ;yBAAM;wBACH,wEAAwE;wBACxE,IAAI,QAAoB,CAAC;wBAEzB,QAAQ,QAAQ,CAAC,IAAI,EAAE;4BACnB,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;gCAC5B,QAAQ,GAAG,OAAO,CAAC;gCACnB,MAAM;4BACV,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;gCAC5B,QAAQ,GAAG,QAAQ,CAAC;gCACpB,MAAM;4BACV,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa;gCAC5B,QAAQ,GAAG,OAAO,CAAC;gCACnB,MAAM;4BACV,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc;gCAC7B,QAAQ,GAAG,MAAM,CAAC;gCAClB,MAAM;4BACV;gCACI,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gCACnD,OAAO,SAAS,CAAC;yBACxB;wBACD,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBAClG,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;qBAC7B;iBACJ;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;oBAC5B,OAAO,SAAS,CAAC;iBACpB;YACL,CAAC;YAED,SAAS,UAAU,CAAC,gBAAgC;gBAChD,MAAM,aAAa,GAAG,EAAE,CAAC,uBAAuB,CAC5C,UAAU,CAAC,WAAW,EAAE,EACxB,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAE,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YACrL,CAAC;YAED,SAAS,gBAAgB,CAAC,gBAAyB,EAAE,GAAU,EAAE,OAAgB;gBAC7E,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CACtF,UAAU,CAAC,WAAW,EAAE,EACxB,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBACvF,IAAI,aAAa,EAAE;oBACf,IAAI,GAAW,CAAA;oBACf,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACtB,IAAI,CAAC,GAAI,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;wBAC3F,IAAI,CAAC,EAAE;4BACH,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;yBACrB;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO,GAAG,CAAC;iBACd;YACL,CAAC;YAED,SAAS,kBAAkB,CAAC,gBAAyB,EAAG,OAA0B,EAAE,OAAgB;gBAChG,IAAI,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE;oBACvD,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;oBAC7B,IAAI,EAAE,KAAK,OAAO,EAAE;wBAChB,IAAI,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBACjE,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,MAAM,EAAE;4BACzC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;yBACjC;qBACJ;yBAAM,IAAI,EAAE,KAAK,QAAQ,EAAE;wBACxB,IAAI,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBACjE,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,EAAE;4BAC1C,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;yBACjC;qBACJ;iBACJ;YACL,CAAC;YAED,SAAS,aAAa,CAAC,GAAW,EAAE,QAAe;gBAC/C,IAAI,CAAC,GAAG;oBAAE,OAAO,CAAC,CAAC;gBACnB,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzH,CAAC;YAED,SAAS,sBAAsB,CAAC,gBAAwB,EAAE,MAAc,EAAE,QAAe;gBACrF,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,UAAU,EAAE;oBACjD,IAAI,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;oBAC7C,IAAI,GAAG,GAAU,EAAE,CAAC;oBACpB,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;wBACpC,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;wBACtC,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;4BACjC,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,MAAM,IAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE;gCAC5G,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oCAC1C,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;yCAC3E,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;yCAClD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC7C,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gCAClB,CAAC,CAAC,CAAA;6BACL;yBACJ;oBACL,CAAC,CAAC,CAAC;oBACH,OAAO,GAAG,CAAC;iBACd;qBAAM;oBACH,OAAO,EAAE,CAAC;iBACb;YACL,CAAC;YAED,SAAS,YAAY,CAAC,gBAAwB,EAAE,MAAc;gBAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;gBAChB,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,UAAU,EAAE;oBACjD,IAAI,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC;oBAC7C,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;wBACpC,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;wBACtC,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;4BACjC,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,MAAM,IAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE;gCAC5G,GAAG,GAAG,IAAI,CAAC;6BACd;yBACJ;oBACL,CAAC,CAAC,CAAC;iBACN;gBACD,OAAO,GAAG,CAAC;YACf,CAAC;YAED,SAAS,0BAA0B,CAAC,cAAwB,EAAE,IAAa,EAAE,UAAiB;gBAC1F,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,UAAU,EAAE,CAAC,CAAC;gBACpF,IAAI,iBAAiB,GAAY,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE,KAAK,0BAA0B,CAAC;gBAC3G,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;gBACnC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7H,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,IAAI,UAAU,GAAgB,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAE,EAAE;oBAC3C,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;wBAC7C,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBAC5E,IAAI,QAAQ,IAAI,CAAC,iBAAiB,EAAE;4BAChC,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;4BACrE,OAAO;yBACV;wBACD,IAAI,CAAC,QAAQ,IAAI,iBAAiB,EAAE;4BAChC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;4BACrG,OAAO;yBACV;wBACD,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,aAAa,EAAE;4BACpC,IAAI,cAAc,IAAI,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE;gCAC5G,OAAO,CAAC,IAAI,CAAC,uDAAuD,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gCAClG,OAAO;6BACV;yBACJ;wBACD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACxD;yBAAM,IAAI,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;wBACtD,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;wBAC5E,IAAI,QAAQ,EAAE;4BACV,OAAO,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;4BACrE,OAAO;yBACV;wBACD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;qBACxD;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;gBAC5D,UAAU;qBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;qBAC3I,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAChB,IAAI,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,gBAAiB,CAAC,EAAE;wBAClD,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,aAAa,EAAE;4BACpC,cAAc,GAAG,IAAI,CAAC;4BACtB,OAAO;yBACV;wBAED,IAAI,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAiB,CAAC,CAAC;wBACrF,IAAI,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBAChF,IAAI,CAAC,UAAU,EAAE;4BACb,OAAO,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;4BAChE,OAAO;yBACV;wBACD,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;4BACxB,OAAO,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;4BACtE,OAAO;yBACV;wBACD,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wBAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAClD,IAAI,SAAS,GAAW,OAAO,CAAC,yBAAyB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAiB,CAAC,CAAC;4BAC9H,IAAI,YAAY,GAAG,eAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1F,IAAI,CAAC,YAAY,EAAG;gCAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,CAAC;gCACvG,EAAE,CAAC,cAAc,EAAE,CAAC;gCACpB,OAAO;6BACV;4BACD,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;4BAC1F,uGAAuG;4BACvG,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBACzK;wBAED,gDAAgD;wBAChD,IAAI,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBACtE,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;wBACjD,IAAI,UAAU,GAAG,CAAC,CAAC;wBAEnB,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE;4BAC/D,KAAK,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;4BACzF,KAAK,IAAI,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;4BAC7F,UAAU,GAAG,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;yBACtG;wBAED,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,KAAK,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BACnG,mFAAmF;4BACnF,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;yBACvI;6BAAM;4BACH,IAAI,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;4BAC3C,IAAI,aAAa,GAAG,eAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;4BAC3E,IAAI,CAAC,aAAa,EAAE;gCAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,iCAAiC,CAAC,CAAC;gCACzG,EAAE,CAAC,cAAc,EAAE,CAAC;gCACpB,OAAO;6BACV;4BACD,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;4BAEzE,iHAAiH;4BACjH,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;yBACrK;wBACD,EAAE,CAAC,cAAc,EAAE,CAAC;qBACvB;yBAAM;wBACH,IAAI,QAAQ,GAAG,OAAO,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAiB,CAAC,CAAC;wBACnF,IAAI,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;wBACvE,IAAI,CAAC,WAAW,EAAE;4BACd,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;yBAC1F;6BAAM;4BACH,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;4BACvE,uDAAuD;4BACvD,IAAI,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;4BACtE,IAAI,UAAU,GAAU,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB;4BACtF,IAAI,IAAI,GAAG,CAAC,CAAC;4BAEb,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE;gCAC/D,4BAA4B;gCAC5B,UAAU,IAAI,sBAAsB,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;gCAEtF,kCAAkC;gCAClC,IAAI,GAAG,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;gCAChG,IAAI,IAAI,IAAI,CAAC,EAAE;oCACX,UAAU,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;iCAC/C;gCAED,6DAA6D;gCAC7D,IAAI,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE;oCAC3D,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,qBAAqB;oCACrF,UAAU,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,uCAAuC;iCACxF;gCAED,+BAA+B;gCAC/B,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oCACrD,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;oCACtC,IAAI,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;wCACjC,IAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;4CACjE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gDACnC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;4CACxE,CAAC,CAAC,CAAC;yCACN;qCACJ;gCACL,CAAC,CAAC,CAAC;6BACN;4BAED,IAAI,gBAAgB,GAAG,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;4BAE9D,kFAAkF;4BAClF,mEAAmE;4BACnE,gEAAgE;4BAChE,2FAA2F;4BAC3F,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE;gCACtE,6GAA6G;gCAC7G,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EAAE;oCAC9H,UAAU,IAAI,MAAM,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;iCAClE;6BACH;4BACD,uGAAuG;4BACvG,8EAA8E;4BAE9E,EAAE,CAAC,6BAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;yBAC1L;qBACJ;gBACL,CAAC,CAAC,CAAC;gBACX,EAAE,CAAC,yBAAyB,EAAE,CAAC;gBAC/B,EAAE,CAAC,8BAA8B,EAAE,CAAC;gBACpC,EAAE,CAAC,wBAAwB,EAAE,CAAC;gBAC9B,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBACjC,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC;gBACnC,EAAE,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YAED,SAAS,cAAc,CAAC,IAAa;gBACjC,IAAI,GAAG,GAAY,EAAE,CAAA;gBACrB,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;oBAC5I,IAAI,UAAU,GAAkB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;oBAEpE,OAAM,UAAU,EAAE;wBACd,IAAI,iBAAiB,GAAwB,UAAU,CAAC,MAAM,CAAC;wBAC/D,IAAI,YAAY,GAAU,SAAS,CAAC;wBACpC,OAAM,iBAAiB,EAAE;4BACrB,IAAI,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;4BACrC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/C,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC7D,IAAI,EAAE,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;gCAClD,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC;6BAChD;iCAAM;gCACH,MAAM;6BACT;yBACJ;wBACD,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACvB,IAAI,iBAAiB,IAAI,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;4BACjE,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC;yBACzC;6BAAM;4BACH,MAAM;yBACT;qBACJ;iBACJ;gBACD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;YACzB,CAAC;SACJ;IACL,CAAC;IAED,uDAAuD;IACvD,SAAS,aAAa,CAAC,QAAgB;QACnC,MAAM,eAAe,GAAG,OAAO,CAAC;QAChC,IAAI,kCAA0C,CAAC;QAC/C,IAAI,eAAe,CAAC,MAAM,EAAE;YACxB,kCAAkC,GAAG,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC,mBAAmB,EAAE,EAAG,OAAe,CAAC,wBAAwB,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SAC1M;aACI;YACD,kCAAkC,GAAG,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;SAC1E;QAED,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IAED,SAAS,IAAI,CAAC,OAAe;QACzB,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,KAAI,IAAI,GAAG,IAAI,YAAY,EAAE;YACzB,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;aACpF;SACJ;IACL,CAAC;IAED,SAAS,OAAO,CAAC,EAAU;QACvB,KAAI,IAAI,GAAG,IAAI,YAAY,EAAE;YACzB,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC;gBACpC,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACtC;SACJ;QACD,iBAAiB,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,WAAW,CAAC,GAAU,EAAE,IAAW;QACxC,IAAI,GAAG,IAAI,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,CAAC;SACd;aAAM,IAAI,GAAG,IAAI,SAAS,EAAE;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC;SACjB;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;SACrD;IACL,CAAC;IAED,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE,GAAG,eAAe,CAAC,CAAC"} \ No newline at end of file diff --git a/unreal/Puerts/PuertsEditor/CodeAnalyze.ts b/unreal/Puerts/PuertsEditor/CodeAnalyze.ts index 3797ee6b28..62f404d47f 100644 --- a/unreal/Puerts/PuertsEditor/CodeAnalyze.ts +++ b/unreal/Puerts/PuertsEditor/CodeAnalyze.ts @@ -114,17 +114,30 @@ if (!ts.sys) { } function logErrors(allDiagnostics: readonly ts.Diagnostic[]) { + if (!allDiagnostics || allDiagnostics.length === 0) { + return; + } + let errorCount = 0; + let warningCount = 0; allDiagnostics.forEach(diagnostic => { let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); - if (diagnostic.file) { + let category = ts.DiagnosticCategory[diagnostic.category]; // "Error" / "Warning" / "Message" / "Suggestion" + let code = `TS${diagnostic.code}`; + if (diagnostic.category === ts.DiagnosticCategory.Error) { + errorCount++; + } else if (diagnostic.category === ts.DiagnosticCategory.Warning) { + warningCount++; + } + if (diagnostic.file && diagnostic.start !== undefined) { let { line, character } = diagnostic.file.getLineAndCharacterOfPosition( - diagnostic.start! + diagnostic.start ); - console.error(` Error ${diagnostic.file.fileName} (${line + 1},${character +1}): ${message}`); + console.error(` [${category} ${code}] ${diagnostic.file.fileName}(${line + 1},${character + 1}): ${message}`); } else { - console.error(` Error: ${message}`); + console.error(` [${category} ${code}] ${message}`); } }); + console.error(`PuertsEditor: TypeScript reported ${errorCount} error(s), ${warningCount} warning(s).`); } type PinCategory = "bool" | "class" | "int64" | "string" | "object" | "struct" | "float" | "enum" | "softobject" | "softclass"; @@ -416,7 +429,15 @@ function watch(configFilePath:string) { fileNames.forEach(fileName => { fileVersions[fileName] = restoredFileVersions[fileName] || fileVersions[fileName]; }); + console.error("==================== PuertsEditor: TypeScript compilation FAILED ===================="); logErrors(diagnostics); + // If any diagnostic points at the generated declaration files, the type generation produced invalid TypeScript. + const declErrors = diagnostics.filter(d => d.file && /ue(_bp)?\.d\.ts$/.test(d.file.fileName)); + if (declErrors.length > 0) { + console.error(`PuertsEditor: ${declErrors.length} error(s) originate from generated declaration files (ue.d.ts/ue_bp.d.ts). Regenerate the types (the generator now rejects TypeScript reserved words).`); + } + console.error("PuertsEditor: No JavaScript/Blueprints were generated because of the errors above. Fix them and save again."); + console.error("====================================================================================="); } else { function getClassPathInfo(sourceFilePath: string): {moduleFileName:string, modulePath:string} { let modulePath:string = undefined; diff --git a/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp b/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp index d9ecd74be5..bf4dffb12e 100644 --- a/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp +++ b/unreal/Puerts/Source/DeclarationGenerator/Private/DeclarationGenerator.cpp @@ -77,6 +77,42 @@ bool IsTypeScriptKeyword(const FString& InputString) return TypeScriptKeywords.Contains(InputString); } +// Verification step: scan a generated declaration file for any type/namespace declared with a TypeScript +// reserved word as its identifier (e.g. `namespace enum {`, `enum class {`). FilenameToTypeScriptVariableName +// already escapes such names, so this is a defense-in-depth check: any hit here means the generated .d.ts +// will not compile and would silently abort the PuertsEditor build. Returns the number of violations found. +// The pattern is anchored to the start of a line (after `^` or a newline) so that the declaration keyword +// must be the first token on its line; otherwise the same words occurring in JSDoc prose (e.g. "...the +// class for given controller", "...include the namespace in a token") would be flagged as false positives. +static int32 VerifyNoReservedWordIdentifiers(const FString& Content, const FString& FileLabel) +{ + const FRegexPattern Pattern( + TEXT("(?:^|\\n)\\s*(?:export\\s+)?(?:declare\\s+)?(namespace|enum|class|interface)\\s+([A-Za-z_$][A-Za-z0-9_$]*)")); + FRegexMatcher Matcher(Pattern, Content); + int32 ViolationCount = 0; + while (Matcher.FindNext()) + { + const FString Kind = Matcher.GetCaptureGroup(1); + const FString Identifier = Matcher.GetCaptureGroup(2); + if (PUERTS_NAMESPACE::IsTypeScriptReservedWord(Identifier)) + { + ViolationCount++; + UE_LOG(LogTemp, Error, + TEXT("[Puerts] %s: '%s %s' uses TypeScript reserved word '%s' as an identifier - the declaration " + "file is invalid and TypeScript compilation will abort."), + *FileLabel, *Kind, *Identifier, *Identifier); + } + } + if (ViolationCount > 0) + { + UE_LOG(LogTemp, Error, + TEXT("[Puerts] %s contains %d reserved-word identifier(s); generated types will not compile. This should " + "not happen with the keyword-safe naming rule - please report it."), + *FileLabel, ViolationCount); + } + return ViolationCount; +} + static FString SafeName(const FString& Name) { auto Ret = Name.Replace(TEXT(" "), TEXT("")) @@ -432,6 +468,7 @@ void FTypeScriptDeclarationGenerator::GenTypeScriptDeclaration(bool InGenStruct, #endif FFileHelper::SaveStringToFile(ToString(), *UEDeclarationFilePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM); + VerifyNoReservedWordIdentifiers(ToString(), TEXT("ue.d.ts")); Begin(); for (auto& KV : BlueprintTypeDeclInfoCache) @@ -455,6 +492,19 @@ void FTypeScriptDeclarationGenerator::GenTypeScriptDeclaration(bool InGenStruct, #endif FFileHelper::SaveStringToFile(ToString(), *BPDeclarationFilePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM); + VerifyNoReservedWordIdentifiers(ToString(), TEXT("ue_bp.d.ts")); + + // Generate the entry declaration (index.d.ts) so the `ue` module always resolves to both the engine + // (ue.d.ts) and blueprint (ue_bp.d.ts) declarations. Previously this file was only seeded by a + // non-overwriting directory copy, so a stale/incomplete index.d.ts left in the project could break + // `import * as UE from 'ue'`. We (re)write it on every generation. + const FString UEIndexFilePath = FPaths::ProjectDir() / TEXT("Typing/ue/index.d.ts"); + const FString UEIndexContent = TEXT("/// \n") TEXT("/// \n") + TEXT("/// \n") TEXT("/// \n"); +#ifdef PUERTS_WITH_SOURCE_CONTROL + PuertsSourceControlUtils::MakeSourceControlFileWritable(UEIndexFilePath); +#endif + FFileHelper::SaveStringToFile(UEIndexContent, *UEIndexFilePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM); } static UPackage* GetPackage(UObject* Obj) diff --git a/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs b/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs index 840511bad3..519253f524 100644 --- a/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs +++ b/unreal/Puerts/Source/JsEnv/JsEnv.Build.cs @@ -73,15 +73,15 @@ public JsEnv(ReadOnlyTargetRules Target) : base(Target) PublicDefinitions.Add("WITH_WEBSOCKET"); PublicDefinitions.Add("WITH_WEBSOCKET_SSL"); PublicDependencyModuleNames.Add("OpenSSL"); - } - - + } + + #if UE_5_6_OR_LATER CppCompileWarningSettings.ShadowVariableWarningLevel = WarningLevel.Warning; #else ShadowVariableWarningLevel = WarningLevel.Warning; #endif - + if (!FTextAsString) { PublicDefinitions.Add("PUERTS_FTEXT_AS_OBJECT"); diff --git a/unreal/Puerts/Source/JsEnv/Public/PathEscape.h b/unreal/Puerts/Source/JsEnv/Public/PathEscape.h index 32165f11f9..0c6e4d1847 100644 --- a/unreal/Puerts/Source/JsEnv/Public/PathEscape.h +++ b/unreal/Puerts/Source/JsEnv/Public/PathEscape.h @@ -12,6 +12,29 @@ namespace PUERTS_NAMESPACE { +// ECMAScript reserved words. None of these may be used as a bare binding identifier, so a generated +// `namespace enum { ... }`, `enum class { ... }`, `class default { ... }` etc. is a TypeScript syntax error. +// `skipLibCheck` does NOT suppress such grammar errors in .d.ts files, so a single occurrence aborts the +// whole PuertsEditor compilation. Contextual keywords (any, as, type, namespace, module, ...) are legal as +// identifiers and are intentionally excluded so we never rename a name that did not need it. +FORCEINLINE bool IsTypeScriptReservedWord(const FString& Identifier) +{ + static const TArray ReservedWords = {TEXT("await"), TEXT("break"), TEXT("case"), TEXT("catch"), TEXT("class"), + TEXT("const"), TEXT("continue"), TEXT("debugger"), TEXT("default"), TEXT("delete"), TEXT("do"), TEXT("else"), TEXT("enum"), + TEXT("export"), TEXT("extends"), TEXT("false"), TEXT("finally"), TEXT("for"), TEXT("function"), TEXT("if"), TEXT("import"), + TEXT("in"), TEXT("instanceof"), TEXT("new"), TEXT("null"), TEXT("return"), TEXT("super"), TEXT("switch"), TEXT("this"), + TEXT("throw"), TEXT("true"), TEXT("try"), TEXT("typeof"), TEXT("var"), TEXT("void"), TEXT("while"), TEXT("with"), + // future reserved words in strict mode (a .d.ts is parsed in strict mode) + TEXT("implements"), TEXT("interface"), TEXT("let"), TEXT("package"), TEXT("private"), TEXT("protected"), TEXT("public"), + TEXT("static"), TEXT("yield")}; + + // Case-sensitive match: TypeScript reserved words are lowercase, while UE type names are PascalCase + // (Class, Enum, Function, Interface, Package, ...). FString's operator== / TArray::Contains are + // case-INsensitive, which would wrongly treat those valid identifiers as reserved and escape/flag them. + return ReservedWords.ContainsByPredicate( + [&Identifier](const FString& Word) { return Identifier.Equals(Word, ESearchCase::CaseSensitive); }); +} + FORCEINLINE FString FilenameToTypeScriptVariableName(const FString& Filename) { FString TypeScriptVariable; @@ -36,6 +59,14 @@ FORCEINLINE FString FilenameToTypeScriptVariableName(const FString& Filename) TypeScriptVariable.AppendChar('$'); } } + // A reserved word can not be emitted as a bare identifier. Escape its first character with the same + // reversible `$$` scheme used above; the result (e.g. "enum" -> "$101$num") is a valid, + // non-reserved identifier that TypeScriptVariableNameToFilename() restores to the original name, so + // runtime class/enum/struct loading (FStructWrapper::Load with UnEscape=true) keeps working. + if (IsTypeScriptReservedWord(TypeScriptVariable)) + { + TypeScriptVariable = FString::Printf(TEXT("$%d$"), (int) TypeScriptVariable[0]) + TypeScriptVariable.RightChop(1); + } return TypeScriptVariable; }