translomatic-cli 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -6
- package/dist/commands/models.d.ts +10 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +137 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/translate.d.ts +1 -0
- package/dist/commands/translate.d.ts.map +1 -1
- package/dist/commands/translate.js +6 -1
- package/dist/commands/translate.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,12 +51,13 @@ translomatic init --force # Overwrite existing config
|
|
|
51
51
|
Translates all missing strings in your project. Only translates new/changed strings by default — existing translations are preserved.
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
translomatic translate
|
|
55
|
-
translomatic translate --force
|
|
56
|
-
translomatic translate -
|
|
57
|
-
translomatic translate -
|
|
58
|
-
translomatic translate
|
|
59
|
-
translomatic translate -
|
|
54
|
+
translomatic translate # Translate all missing strings
|
|
55
|
+
translomatic translate --force # Re-translate everything
|
|
56
|
+
translomatic translate -m transloai-pro # Use a specific model
|
|
57
|
+
translomatic translate -l vi,ja # Only translate specific languages
|
|
58
|
+
translomatic translate -n common # Only translate specific namespaces
|
|
59
|
+
translomatic translate --dry-run # Preview without changes
|
|
60
|
+
translomatic translate -v # Verbose output
|
|
60
61
|
```
|
|
61
62
|
|
|
62
63
|
**Features:**
|
|
@@ -66,6 +67,36 @@ translomatic translate -v # Verbose output
|
|
|
66
67
|
- Context-aware translation using AI models
|
|
67
68
|
- Per-language glossary support
|
|
68
69
|
|
|
70
|
+
### `translomatic models`
|
|
71
|
+
|
|
72
|
+
Lists all available translation models with speed, quality, and feature information.
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
translomatic models # List all models
|
|
76
|
+
translomatic models -v # Include plan tier details
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Example output:**
|
|
80
|
+
```
|
|
81
|
+
TransloFlash — Fast Translation
|
|
82
|
+
|
|
83
|
+
Model ID Speed Quality Tier Features
|
|
84
|
+
───────────────────────────────────────────────────────────────────────
|
|
85
|
+
transloflash-lite ⚡ fastest ☆ good free translation
|
|
86
|
+
transloflash ⚡ fast ☆ high pro translation
|
|
87
|
+
translomax ◆ moderate ★ very high pro translation
|
|
88
|
+
|
|
89
|
+
TransloAI — AI-Powered Context-Aware
|
|
90
|
+
|
|
91
|
+
Model ID Speed Quality Tier Features
|
|
92
|
+
───────────────────────────────────────────────────────────────────────
|
|
93
|
+
transloai-nano ⚡ fast ☆ good business translation, context, glossary
|
|
94
|
+
transloai-lite ⚡ fast ☆ high business translation, context, glossary
|
|
95
|
+
transloai-base ◆ moderate ★ very high business translation, context, glossary
|
|
96
|
+
transloai-pro ◆ moderate ★ excellent enterprise translation, context, glossary
|
|
97
|
+
transloai-ultra ◇ slow ★ best enterprise translation, context, glossary
|
|
98
|
+
```
|
|
99
|
+
|
|
69
100
|
### `translomatic analyze`
|
|
70
101
|
|
|
71
102
|
Uses AI to analyze your source strings and auto-generate:
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `translomatic models` command
|
|
3
|
+
*
|
|
4
|
+
* Lists all available translation models with their capabilities.
|
|
5
|
+
* Helps users choose the best model for their needs.
|
|
6
|
+
*/
|
|
7
|
+
export declare function modelsCommand(projectDir: string, options: {
|
|
8
|
+
verbose?: boolean;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsHf"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { loadConfig, resolveApiKey } from "../config.js";
|
|
2
|
+
import { Logger } from "../logger.js";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
/**
|
|
5
|
+
* `translomatic models` command
|
|
6
|
+
*
|
|
7
|
+
* Lists all available translation models with their capabilities.
|
|
8
|
+
* Helps users choose the best model for their needs.
|
|
9
|
+
*/
|
|
10
|
+
export async function modelsCommand(projectDir, options) {
|
|
11
|
+
const logger = new Logger(options.verbose);
|
|
12
|
+
logger.banner();
|
|
13
|
+
logger.section("Available Translation Models");
|
|
14
|
+
// Get API key
|
|
15
|
+
let apiKey;
|
|
16
|
+
let baseUrl = "https://api.translomatic.com";
|
|
17
|
+
try {
|
|
18
|
+
const config = await loadConfig(projectDir);
|
|
19
|
+
apiKey = resolveApiKey(config);
|
|
20
|
+
if (config.apiKey)
|
|
21
|
+
apiKey = config.apiKey;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
apiKey = process.env.TRANSLOMATIC_API_KEY || "";
|
|
25
|
+
if (!apiKey) {
|
|
26
|
+
logger.error("API key required. Set TRANSLOMATIC_API_KEY or run 'translomatic init' first.");
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
// Direct fetch to /v1/models
|
|
32
|
+
const response = await fetch(`${baseUrl}/v1/models`, {
|
|
33
|
+
headers: { "X-API-Key": apiKey },
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`API error: ${response.status} ${response.statusText}`);
|
|
37
|
+
}
|
|
38
|
+
const data = (await response.json());
|
|
39
|
+
const { models, tiers } = data;
|
|
40
|
+
// Group by family
|
|
41
|
+
const families = new Map();
|
|
42
|
+
for (const model of models) {
|
|
43
|
+
const family = model.family;
|
|
44
|
+
if (!families.has(family))
|
|
45
|
+
families.set(family, []);
|
|
46
|
+
families.get(family).push(model);
|
|
47
|
+
}
|
|
48
|
+
for (const [family, familyModels] of families) {
|
|
49
|
+
const familyTitle = family === "transloflash"
|
|
50
|
+
? "TransloFlash — Fast Translation"
|
|
51
|
+
: "TransloAI — AI-Powered Context-Aware";
|
|
52
|
+
console.log();
|
|
53
|
+
console.log(chalk.bold.cyan(` ${familyTitle}`));
|
|
54
|
+
console.log();
|
|
55
|
+
// Table header
|
|
56
|
+
const idWidth = 22;
|
|
57
|
+
const speedWidth = 12;
|
|
58
|
+
const qualityWidth = 14;
|
|
59
|
+
const tierWidth = 12;
|
|
60
|
+
console.log(chalk.dim(" ") +
|
|
61
|
+
chalk.bold("Model ID".padEnd(idWidth)) +
|
|
62
|
+
chalk.bold("Speed".padEnd(speedWidth)) +
|
|
63
|
+
chalk.bold("Quality".padEnd(qualityWidth)) +
|
|
64
|
+
chalk.bold("Tier".padEnd(tierWidth)) +
|
|
65
|
+
chalk.bold("Features"));
|
|
66
|
+
console.log(chalk.dim(" " + "─".repeat(idWidth + speedWidth + qualityWidth + tierWidth + 28)));
|
|
67
|
+
for (const model of familyModels) {
|
|
68
|
+
const speedIcon = getSpeedIcon(model.speed);
|
|
69
|
+
const qualityIcon = getQualityIcon(model.quality);
|
|
70
|
+
const tierColor = getTierColor(model.tier);
|
|
71
|
+
const features = model.features.join(", ");
|
|
72
|
+
console.log(chalk.dim(" ") +
|
|
73
|
+
chalk.white(model.id.padEnd(idWidth)) +
|
|
74
|
+
`${speedIcon} ${model.speed}`.padEnd(speedWidth + 2) +
|
|
75
|
+
`${qualityIcon} ${model.quality}`.padEnd(qualityWidth + 2) +
|
|
76
|
+
tierColor(model.tier.padEnd(tierWidth)) +
|
|
77
|
+
chalk.dim(features));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Plan tiers
|
|
81
|
+
if (options.verbose) {
|
|
82
|
+
logger.section("Plan Tiers → Available Models");
|
|
83
|
+
for (const [tier, modelIds] of Object.entries(tiers)) {
|
|
84
|
+
console.log(chalk.dim(" ") +
|
|
85
|
+
getTierColor(tier)(tier.padEnd(14)) +
|
|
86
|
+
chalk.white(modelIds.join(", ")));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Usage hint
|
|
90
|
+
console.log();
|
|
91
|
+
logger.info("Use a model with --model flag:");
|
|
92
|
+
logger.info(" translomatic translate --model transloai-pro");
|
|
93
|
+
logger.info("");
|
|
94
|
+
logger.info("Or set default model in .translomaticrc.json:");
|
|
95
|
+
logger.info(' "model": "transloai-pro"');
|
|
96
|
+
if (models.some((m) => m.context_aware)) {
|
|
97
|
+
logger.info("");
|
|
98
|
+
logger.info(chalk.cyan("Tip: ") +
|
|
99
|
+
"TransloAI models support context + glossary for accurate translations.");
|
|
100
|
+
logger.info(" Run 'translomatic analyze' to auto-configure context.");
|
|
101
|
+
}
|
|
102
|
+
console.log();
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
logger.error(`Failed to fetch models: ${err.message}`);
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function getSpeedIcon(speed) {
|
|
110
|
+
switch (speed) {
|
|
111
|
+
case "fastest": return chalk.green("⚡");
|
|
112
|
+
case "fast": return chalk.green("⚡");
|
|
113
|
+
case "moderate": return chalk.yellow("◆");
|
|
114
|
+
case "slow": return chalk.red("◇");
|
|
115
|
+
default: return " ";
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function getQualityIcon(quality) {
|
|
119
|
+
switch (quality) {
|
|
120
|
+
case "best": return chalk.green("★");
|
|
121
|
+
case "excellent": return chalk.green("★");
|
|
122
|
+
case "very high": return chalk.cyan("★");
|
|
123
|
+
case "high": return chalk.blue("☆");
|
|
124
|
+
case "good": return chalk.dim("☆");
|
|
125
|
+
default: return " ";
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function getTierColor(tier) {
|
|
129
|
+
switch (tier) {
|
|
130
|
+
case "free": return chalk.green;
|
|
131
|
+
case "pro": return chalk.blue;
|
|
132
|
+
case "business": return chalk.yellow;
|
|
133
|
+
case "enterprise": return chalk.magenta;
|
|
134
|
+
default: return chalk.white;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,IAAI,CAAC,CA8Df"}
|
|
@@ -19,7 +19,12 @@ export async function translateCommand(projectDir, options) {
|
|
|
19
19
|
? options.lang.split(",").map((l) => l.trim())
|
|
20
20
|
: config.targetLangs;
|
|
21
21
|
logger.info(`Target languages: ${targetLangs.join(", ")}`);
|
|
22
|
-
|
|
22
|
+
// --model flag overrides config.model
|
|
23
|
+
if (options.model) {
|
|
24
|
+
config.model = options.model;
|
|
25
|
+
logger.info(`Model: ${options.model} (from --model flag)`);
|
|
26
|
+
}
|
|
27
|
+
else if (config.model) {
|
|
23
28
|
logger.info(`Model: ${config.model}`);
|
|
24
29
|
}
|
|
25
30
|
if (config.context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAyB,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,11 +4,12 @@ import { initCommand } from "./commands/init.js";
|
|
|
4
4
|
import { translateCommand } from "./commands/translate.js";
|
|
5
5
|
import { analyzeCommand } from "./commands/analyze.js";
|
|
6
6
|
import { statusCommand } from "./commands/status.js";
|
|
7
|
+
import { modelsCommand } from "./commands/models.js";
|
|
7
8
|
const program = new Command();
|
|
8
9
|
program
|
|
9
10
|
.name("translomatic")
|
|
10
11
|
.description("Auto-scan and translate your entire project using Translomatic API")
|
|
11
|
-
.version("1.
|
|
12
|
+
.version("1.1.0");
|
|
12
13
|
// ─── init ──────────────────────────────────────────────
|
|
13
14
|
program
|
|
14
15
|
.command("init")
|
|
@@ -22,6 +23,7 @@ program
|
|
|
22
23
|
.command("translate")
|
|
23
24
|
.description("Translate all missing strings in the project")
|
|
24
25
|
.option("--force", "Re-translate all strings (ignore existing translations)")
|
|
26
|
+
.option("-m, --model <model>", "Translation model to use (e.g. transloai-pro, translomax)")
|
|
25
27
|
.option("-l, --lang <langs>", "Only translate specific languages (comma-separated)")
|
|
26
28
|
.option("-n, --namespace <ns>", "Only translate specific namespaces (comma-separated)")
|
|
27
29
|
.option("--dry-run", "Show what would be translated without making changes")
|
|
@@ -29,6 +31,14 @@ program
|
|
|
29
31
|
.action(async (options) => {
|
|
30
32
|
await translateCommand(process.cwd(), options);
|
|
31
33
|
});
|
|
34
|
+
// ─── models ────────────────────────────────────────────
|
|
35
|
+
program
|
|
36
|
+
.command("models")
|
|
37
|
+
.description("List all available translation models")
|
|
38
|
+
.option("-v, --verbose", "Show plan tier details")
|
|
39
|
+
.action(async (options) => {
|
|
40
|
+
await modelsCommand(process.cwd(), options);
|
|
41
|
+
});
|
|
32
42
|
// ─── analyze ───────────────────────────────────────────
|
|
33
43
|
program
|
|
34
44
|
.command("analyze")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,SAAS,EAAE,yDAAyD,CAAC;KAC5E,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,MAAM,CAAC,sBAAsB,EAAE,sDAAsD,CAAC;KACtF,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,SAAS,EAAE,yDAAyD,CAAC;KAC5E,MAAM,CAAC,qBAAqB,EAAE,2DAA2D,CAAC;KAC1F,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,MAAM,CAAC,sBAAsB,EAAE,sDAAsD,CAAC;KACtF,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,0DAA0D;AAE1D,OAAO,CAAC,KAAK,EAAE,CAAC"}
|