@alloy-js/python 0.4.0-dev.5 → 0.4.0-dev.7
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/dev/src/name-conflict-resolver.js +6 -2
- package/dist/dev/src/name-conflict-resolver.js.map +1 -1
- package/dist/dev/test/name-conflict.test.js +38 -0
- package/dist/dev/test/name-conflict.test.js.map +1 -0
- package/dist/src/name-conflict-resolver.d.ts +2 -2
- package/dist/src/name-conflict-resolver.d.ts.map +1 -1
- package/dist/src/name-conflict-resolver.js +6 -2
- package/dist/src/name-conflict-resolver.js.map +1 -1
- package/dist/test/name-conflict.test.d.ts +2 -0
- package/dist/test/name-conflict.test.d.ts.map +1 -0
- package/dist/test/name-conflict.test.js +38 -0
- package/dist/test/name-conflict.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/AttributeDoc.md +36 -0
- package/docs/api/components/CallSignature.md +62 -0
- package/docs/api/components/CallSignatureParameters.md +49 -0
- package/docs/api/components/ClassDeclaration.md +67 -0
- package/docs/api/components/ClassDoc.md +55 -0
- package/docs/api/components/ClassEnumDeclaration.md +111 -0
- package/docs/api/components/ClassInstantiation.md +44 -0
- package/docs/api/components/ClassMethodDeclaration.md +31 -0
- package/docs/api/components/ConstructorDeclaration.md +27 -0
- package/docs/api/components/DataclassDeclaration.md +55 -0
- package/docs/api/components/Declaration.md +41 -0
- package/docs/api/components/DunderMethodDeclaration.md +31 -0
- package/docs/api/components/EnumMember.md +61 -0
- package/docs/api/components/ExceptionDoc.md +55 -0
- package/docs/api/components/FunctionCallExpression.md +43 -0
- package/docs/api/components/FunctionDeclaration.md +50 -0
- package/docs/api/components/FunctionDoc.md +61 -0
- package/docs/api/components/FunctionalEnumDeclaration.md +79 -0
- package/docs/api/components/FutureStatement.md +51 -0
- package/docs/api/components/GeneratorDoc.md +58 -0
- package/docs/api/components/InlineDoc.md +29 -0
- package/docs/api/components/LexicalScope.md +65 -0
- package/docs/api/components/MemberExpression.md +53 -0
- package/docs/api/components/MemberScope.md +28 -0
- package/docs/api/components/MethodDeclaration.md +49 -0
- package/docs/api/components/MethodDoc.md +61 -0
- package/docs/api/components/ModuleDoc.md +52 -0
- package/docs/api/components/PropertyDeclaration.md +46 -0
- package/docs/api/components/PropertyDoc.md +52 -0
- package/docs/api/components/PyDoc.md +29 -0
- package/docs/api/components/PyDocExample.md +29 -0
- package/docs/api/components/PythonBlock.md +47 -0
- package/docs/api/components/Reference.md +31 -0
- package/docs/api/components/SimpleCommentBlock.md +27 -0
- package/docs/api/components/SimpleInlineComment.md +27 -0
- package/docs/api/components/SourceFile.md +83 -0
- package/docs/api/components/StatementList.md +47 -0
- package/docs/api/components/StaticMethodDeclaration.md +31 -0
- package/docs/api/components/TypeArguments.md +27 -0
- package/docs/api/components/TypeRefContext.md +41 -0
- package/docs/api/components/TypeReference.md +37 -0
- package/docs/api/components/UnionTypeExpression.md +27 -0
- package/docs/api/components/VariableDeclaration.md +87 -0
- package/docs/api/components/index.md +46 -0
- package/docs/api/components/useSourceFile.md +19 -0
- package/docs/api/contexts/PythonSourceFile-context.md +18 -0
- package/docs/api/contexts/index.md +3 -0
- package/docs/api/functions/createFunctionSymbol.md +23 -0
- package/docs/api/functions/createMethodSymbol.md +23 -0
- package/docs/api/functions/createModule.md +18 -0
- package/docs/api/functions/createPythonNamePolicy.md +17 -0
- package/docs/api/functions/getCallSignatureProps.md +21 -0
- package/docs/api/functions/index.md +13 -0
- package/docs/api/functions/isParameterDescriptor.md +18 -0
- package/docs/api/functions/isTypeRefContext.md +17 -0
- package/docs/api/functions/ref.md +25 -0
- package/docs/api/functions/usePythonLexicalScope.md +17 -0
- package/docs/api/functions/usePythonNamePolicy.md +17 -0
- package/docs/api/functions/usePythonScope.md +17 -0
- package/docs/api/index.md +7 -0
- package/docs/api/types/AddImportOptions.md +7 -0
- package/docs/api/types/BaseDeclarationProps.md +10 -0
- package/docs/api/types/CommonFunctionProps.md +15 -0
- package/docs/api/types/CreateModuleProps.md +8 -0
- package/docs/api/types/CreatePythonSymbolFunctionOptions.md +9 -0
- package/docs/api/types/DataclassDecoratorKey.md +5 -0
- package/docs/api/types/DataclassDecoratorKwargs.md +5 -0
- package/docs/api/types/EnumPropsBase.md +11 -0
- package/docs/api/types/GoogleStyleDocAttributeProps.md +9 -0
- package/docs/api/types/ImportRecordProps.md +7 -0
- package/docs/api/types/ImportRecords.md +8 -0
- package/docs/api/types/ImportedSymbol.md +10 -0
- package/docs/api/types/LexicalScopeProps.md +5 -0
- package/docs/api/types/MemberExpressionPartProps.md +13 -0
- package/docs/api/types/ModuleDescriptor.md +7 -0
- package/docs/api/types/ModuleRefkeys.md +7 -0
- package/docs/api/types/NamedMap.md +7 -0
- package/docs/api/types/ParameterDescriptor.md +13 -0
- package/docs/api/types/ParameterMarker.md +5 -0
- package/docs/api/types/PropertyMethodDeclarationProps.md +9 -0
- package/docs/api/types/PythonElements.md +5 -0
- package/docs/api/types/PythonLexicalScope.md +11 -0
- package/docs/api/types/PythonMemberScope.md +9 -0
- package/docs/api/types/PythonModuleScope.md +13 -0
- package/docs/api/types/PythonOutputScope.md +5 -0
- package/docs/api/types/PythonOutputSymbol.md +21 -0
- package/docs/api/types/PythonOutputSymbolOptions.md +10 -0
- package/docs/api/types/RefOptions.md +7 -0
- package/docs/api/types/SubscriptionProps.md +9 -0
- package/docs/api/types/index.md +31 -0
- package/docs/api/variables/abcModule.md +7 -0
- package/docs/api/variables/dataclassDecoratorKeySet.md +5 -0
- package/docs/api/variables/dataclassDecoratorKeys.md +7 -0
- package/docs/api/variables/dataclassesModule.md +7 -0
- package/docs/api/variables/enumModule.md +7 -0
- package/docs/api/variables/index.md +8 -0
- package/docs/api/variables/requestsModule.md +8 -0
- package/package.json +4 -4
- package/src/name-conflict-resolver.ts +9 -11
- package/test/name-conflict.test.ts +37 -0
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
export function pythonNameConflictResolver(_, symbols) {
|
|
2
|
+
if (symbols.length === 0) return;
|
|
3
|
+
// Clear any prior deconflict rename on the first symbol so it reverts to
|
|
4
|
+
// the plain name once a collision is resolved.
|
|
5
|
+
symbols[0].deconflictedName = undefined;
|
|
2
6
|
for (let i = 1; i < symbols.length; i++) {
|
|
3
|
-
// Rename all but the first symbol to have a suffix of _2, _3, plus the scope name if available.
|
|
4
7
|
const symbol = symbols[i];
|
|
5
|
-
|
|
8
|
+
// Rename all but the first symbol to have a suffix of _2, _3, plus the scope name if available.
|
|
9
|
+
symbol.deconflictedName = symbol.originalName + "_" + (i + 1) + "_" + (symbol.aliasTarget?.scope?.name ?? symbol.module ?? "");
|
|
6
10
|
}
|
|
7
11
|
}
|
|
8
12
|
//# sourceMappingURL=name-conflict-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pythonNameConflictResolver","_","symbols","
|
|
1
|
+
{"version":3,"names":["pythonNameConflictResolver","_","symbols","length","deconflictedName","undefined","i","symbol","originalName","aliasTarget","scope","name","module"],"sources":["../../../src/name-conflict-resolver.ts"],"sourcesContent":[null],"mappings":"AAGA,OAAO,SAASA,0BAA0BA,CAACC,CAAS,EAAEC,OAAuB,EAAE;EAC7E,IAAIA,OAAO,CAACC,MAAM,KAAK,CAAC,EAAE;EAC1B;EACA;EACAD,OAAO,CAAC,CAAC,CAAC,CAACE,gBAAgB,GAAGC,SAAS;EACvC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,OAAO,CAACC,MAAM,EAAEG,CAAC,EAAE,EAAE;IACvC,MAAMC,MAAM,GAAGL,OAAO,CAACI,CAAC,CAAuB;IAC/C;IACAC,MAAM,CAACH,gBAAgB,GACrBG,MAAM,CAACC,YAAY,GACnB,GAAG,IACFF,CAAC,GAAG,CAAC,CAAC,GACP,GAAG,IACFC,MAAM,CAACE,WAAW,EAAEC,KAAK,EAAEC,IAAI,IAAIJ,MAAM,CAACK,MAAM,IAAI,EAAE,CAAC;EAC5D;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createOutputBinder } from "@alloy-js/core";
|
|
2
|
+
import { expect, it } from "vitest";
|
|
3
|
+
import { pythonNameConflictResolver } from "../src/name-conflict-resolver.js";
|
|
4
|
+
import { createPythonSymbol } from "../src/symbol-creation.js";
|
|
5
|
+
import { PythonModuleScope } from "../src/symbols/index.js";
|
|
6
|
+
it("reverts Python's non-`_N` rename scheme when the conflict is removed", () => {
|
|
7
|
+
// Python renames via `foo_2_modulename` — the old regex-based revert would
|
|
8
|
+
// never match this pattern. The deconflictedName slot is pattern-agnostic,
|
|
9
|
+
// so invoking the resolver with the survivor alone clears the rename
|
|
10
|
+
// regardless of scheme.
|
|
11
|
+
const binder = createOutputBinder();
|
|
12
|
+
const scope = new PythonModuleScope("root", undefined, {
|
|
13
|
+
binder
|
|
14
|
+
});
|
|
15
|
+
const a = createPythonSymbol("foo", scope.symbols);
|
|
16
|
+
const b = createPythonSymbol("foo", scope.symbols);
|
|
17
|
+
|
|
18
|
+
// Simulate a conflict pass.
|
|
19
|
+
pythonNameConflictResolver("foo", [a, b]);
|
|
20
|
+
expect(a.name).toBe("foo");
|
|
21
|
+
expect(b.name).not.toBe("foo");
|
|
22
|
+
expect(b.deconflictedName).toBeDefined();
|
|
23
|
+
|
|
24
|
+
// Simulate the post-delete deconflict pass — the sole survivor must have
|
|
25
|
+
// its prior rename cleared, even though its "rename scheme" differs from
|
|
26
|
+
// the default `_N` shape.
|
|
27
|
+
b.deconflictedName = "foo_2_module"; // pretend b had been renamed using python scheme
|
|
28
|
+
pythonNameConflictResolver("foo", [a]);
|
|
29
|
+
expect(a.name).toBe("foo");
|
|
30
|
+
expect(a.deconflictedName).toBeUndefined();
|
|
31
|
+
|
|
32
|
+
// And if a was the one carrying the prior rename:
|
|
33
|
+
a.deconflictedName = "foo_3_other";
|
|
34
|
+
pythonNameConflictResolver("foo", [a]);
|
|
35
|
+
expect(a.name).toBe("foo");
|
|
36
|
+
expect(a.deconflictedName).toBeUndefined();
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=name-conflict.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createOutputBinder","expect","it","pythonNameConflictResolver","createPythonSymbol","PythonModuleScope","binder","scope","undefined","a","symbols","b","name","toBe","not","deconflictedName","toBeDefined","toBeUndefined"],"sources":["../../../test/name-conflict.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,gBAAgB;AACnD,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAASC,iBAAiB,QAAQ,yBAAyB;AAE3DH,EAAE,CAAC,sEAAsE,EAAE,MAAM;EAC/E;EACA;EACA;EACA;EACA,MAAMI,MAAM,GAAGN,kBAAkB,CAAC,CAAC;EACnC,MAAMO,KAAK,GAAG,IAAIF,iBAAiB,CAAC,MAAM,EAAEG,SAAS,EAAE;IAAEF;EAAO,CAAC,CAAC;EAElE,MAAMG,CAAC,GAAGL,kBAAkB,CAAC,KAAK,EAAEG,KAAK,CAACG,OAAO,CAAC;EAClD,MAAMC,CAAC,GAAGP,kBAAkB,CAAC,KAAK,EAAEG,KAAK,CAACG,OAAO,CAAC;;EAElD;EACAP,0BAA0B,CAAC,KAAK,EAAE,CAACM,CAAC,EAAEE,CAAC,CAAC,CAAC;EACzCV,MAAM,CAACQ,CAAC,CAACG,IAAI,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EAC1BZ,MAAM,CAACU,CAAC,CAACC,IAAI,CAAC,CAACE,GAAG,CAACD,IAAI,CAAC,KAAK,CAAC;EAC9BZ,MAAM,CAACU,CAAC,CAACI,gBAAgB,CAAC,CAACC,WAAW,CAAC,CAAC;;EAExC;EACA;EACA;EACAL,CAAC,CAACI,gBAAgB,GAAG,cAAc,CAAC,CAAC;EACrCZ,0BAA0B,CAAC,KAAK,EAAE,CAACM,CAAC,CAAC,CAAC;EACtCR,MAAM,CAACQ,CAAC,CAACG,IAAI,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EAC1BZ,MAAM,CAACQ,CAAC,CAACM,gBAAgB,CAAC,CAACE,aAAa,CAAC,CAAC;;EAE1C;EACAR,CAAC,CAACM,gBAAgB,GAAG,aAAa;EAClCZ,0BAA0B,CAAC,KAAK,EAAE,CAACM,CAAC,CAAC,CAAC;EACtCR,MAAM,CAACQ,CAAC,CAACG,IAAI,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EAC1BZ,MAAM,CAACQ,CAAC,CAACM,gBAAgB,CAAC,CAACE,aAAa,CAAC,CAAC;AAC5C,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function pythonNameConflictResolver(_: string, symbols:
|
|
1
|
+
import { OutputSymbol } from "@alloy-js/core";
|
|
2
|
+
export declare function pythonNameConflictResolver(_: string, symbols: OutputSymbol[]): void;
|
|
3
3
|
//# sourceMappingURL=name-conflict-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name-conflict-resolver.d.ts","sourceRoot":"","sources":["../../src/name-conflict-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"name-conflict-resolver.d.ts","sourceRoot":"","sources":["../../src/name-conflict-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAe5E"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
export function pythonNameConflictResolver(_, symbols) {
|
|
2
|
+
if (symbols.length === 0) return;
|
|
3
|
+
// Clear any prior deconflict rename on the first symbol so it reverts to
|
|
4
|
+
// the plain name once a collision is resolved.
|
|
5
|
+
symbols[0].deconflictedName = undefined;
|
|
2
6
|
for (let i = 1; i < symbols.length; i++) {
|
|
3
|
-
// Rename all but the first symbol to have a suffix of _2, _3, plus the scope name if available.
|
|
4
7
|
const symbol = symbols[i];
|
|
5
|
-
|
|
8
|
+
// Rename all but the first symbol to have a suffix of _2, _3, plus the scope name if available.
|
|
9
|
+
symbol.deconflictedName = symbol.originalName + "_" + (i + 1) + "_" + (symbol.aliasTarget?.scope?.name ?? symbol.module ?? "");
|
|
6
10
|
}
|
|
7
11
|
}
|
|
8
12
|
//# sourceMappingURL=name-conflict-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pythonNameConflictResolver","_","symbols","
|
|
1
|
+
{"version":3,"names":["pythonNameConflictResolver","_","symbols","length","deconflictedName","undefined","i","symbol","originalName","aliasTarget","scope","name","module"],"sources":["../../src/name-conflict-resolver.ts"],"sourcesContent":[null],"mappings":"AAGA,OAAO,SAASA,0BAA0BA,CAACC,CAAS,EAAEC,OAAuB,EAAE;EAC7E,IAAIA,OAAO,CAACC,MAAM,KAAK,CAAC,EAAE;EAC1B;EACA;EACAD,OAAO,CAAC,CAAC,CAAC,CAACE,gBAAgB,GAAGC,SAAS;EACvC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,OAAO,CAACC,MAAM,EAAEG,CAAC,EAAE,EAAE;IACvC,MAAMC,MAAM,GAAGL,OAAO,CAACI,CAAC,CAAuB;IAC/C;IACAC,MAAM,CAACH,gBAAgB,GACrBG,MAAM,CAACC,YAAY,GACnB,GAAG,IACFF,CAAC,GAAG,CAAC,CAAC,GACP,GAAG,IACFC,MAAM,CAACE,WAAW,EAAEC,KAAK,EAAEC,IAAI,IAAIJ,MAAM,CAACK,MAAM,IAAI,EAAE,CAAC;EAC5D;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-conflict.test.d.ts","sourceRoot":"","sources":["../../test/name-conflict.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createOutputBinder } from "@alloy-js/core";
|
|
2
|
+
import { expect, it } from "vitest";
|
|
3
|
+
import { pythonNameConflictResolver } from "../src/name-conflict-resolver.js";
|
|
4
|
+
import { createPythonSymbol } from "../src/symbol-creation.js";
|
|
5
|
+
import { PythonModuleScope } from "../src/symbols/index.js";
|
|
6
|
+
it("reverts Python's non-`_N` rename scheme when the conflict is removed", () => {
|
|
7
|
+
// Python renames via `foo_2_modulename` — the old regex-based revert would
|
|
8
|
+
// never match this pattern. The deconflictedName slot is pattern-agnostic,
|
|
9
|
+
// so invoking the resolver with the survivor alone clears the rename
|
|
10
|
+
// regardless of scheme.
|
|
11
|
+
const binder = createOutputBinder();
|
|
12
|
+
const scope = new PythonModuleScope("root", undefined, {
|
|
13
|
+
binder
|
|
14
|
+
});
|
|
15
|
+
const a = createPythonSymbol("foo", scope.symbols);
|
|
16
|
+
const b = createPythonSymbol("foo", scope.symbols);
|
|
17
|
+
|
|
18
|
+
// Simulate a conflict pass.
|
|
19
|
+
pythonNameConflictResolver("foo", [a, b]);
|
|
20
|
+
expect(a.name).toBe("foo");
|
|
21
|
+
expect(b.name).not.toBe("foo");
|
|
22
|
+
expect(b.deconflictedName).toBeDefined();
|
|
23
|
+
|
|
24
|
+
// Simulate the post-delete deconflict pass — the sole survivor must have
|
|
25
|
+
// its prior rename cleared, even though its "rename scheme" differs from
|
|
26
|
+
// the default `_N` shape.
|
|
27
|
+
b.deconflictedName = "foo_2_module"; // pretend b had been renamed using python scheme
|
|
28
|
+
pythonNameConflictResolver("foo", [a]);
|
|
29
|
+
expect(a.name).toBe("foo");
|
|
30
|
+
expect(a.deconflictedName).toBeUndefined();
|
|
31
|
+
|
|
32
|
+
// And if a was the one carrying the prior rename:
|
|
33
|
+
a.deconflictedName = "foo_3_other";
|
|
34
|
+
pythonNameConflictResolver("foo", [a]);
|
|
35
|
+
expect(a.name).toBe("foo");
|
|
36
|
+
expect(a.deconflictedName).toBeUndefined();
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=name-conflict.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createOutputBinder","expect","it","pythonNameConflictResolver","createPythonSymbol","PythonModuleScope","binder","scope","undefined","a","symbols","b","name","toBe","not","deconflictedName","toBeDefined","toBeUndefined"],"sources":["../../test/name-conflict.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,gBAAgB;AACnD,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,0BAA0B,QAAQ,kCAAkC;AAC7E,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAASC,iBAAiB,QAAQ,yBAAyB;AAE3DH,EAAE,CAAC,sEAAsE,EAAE,MAAM;EAC/E;EACA;EACA;EACA;EACA,MAAMI,MAAM,GAAGN,kBAAkB,CAAC,CAAC;EACnC,MAAMO,KAAK,GAAG,IAAIF,iBAAiB,CAAC,MAAM,EAAEG,SAAS,EAAE;IAAEF;EAAO,CAAC,CAAC;EAElE,MAAMG,CAAC,GAAGL,kBAAkB,CAAC,KAAK,EAAEG,KAAK,CAACG,OAAO,CAAC;EAClD,MAAMC,CAAC,GAAGP,kBAAkB,CAAC,KAAK,EAAEG,KAAK,CAACG,OAAO,CAAC;;EAElD;EACAP,0BAA0B,CAAC,KAAK,EAAE,CAACM,CAAC,EAAEE,CAAC,CAAC,CAAC;EACzCV,MAAM,CAACQ,CAAC,CAACG,IAAI,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EAC1BZ,MAAM,CAACU,CAAC,CAACC,IAAI,CAAC,CAACE,GAAG,CAACD,IAAI,CAAC,KAAK,CAAC;EAC9BZ,MAAM,CAACU,CAAC,CAACI,gBAAgB,CAAC,CAACC,WAAW,CAAC,CAAC;;EAExC;EACA;EACA;EACAL,CAAC,CAACI,gBAAgB,GAAG,cAAc,CAAC,CAAC;EACrCZ,0BAA0B,CAAC,KAAK,EAAE,CAACM,CAAC,CAAC,CAAC;EACtCR,MAAM,CAACQ,CAAC,CAACG,IAAI,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EAC1BZ,MAAM,CAACQ,CAAC,CAACM,gBAAgB,CAAC,CAACE,aAAa,CAAC,CAAC;;EAE1C;EACAR,CAAC,CAACM,gBAAgB,GAAG,aAAa;EAClCZ,0BAA0B,CAAC,KAAK,EAAE,CAACM,CAAC,CAAC,CAAC;EACtCR,MAAM,CAACQ,CAAC,CAACG,IAAI,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;EAC1BZ,MAAM,CAACQ,CAAC,CAACM,gBAAgB,CAAC,CAACE,aAAa,CAAC,CAAC;AAC5C,CAAC,CAAC","ignoreList":[]}
|