@langapi/mcp-server 1.0.5 → 1.0.6
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-translations.d.ts","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BzE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAqB1B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAwM3E;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"sync-translations.d.ts","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BzE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAqB1B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAwM3E;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAunBhE"}
|
|
@@ -15,7 +15,7 @@ import { readSyncCache, writeSyncCache, detectLocalDelta, } from "../utils/sync-
|
|
|
15
15
|
// Input schema
|
|
16
16
|
const SyncTranslationsSchema = z.object({
|
|
17
17
|
source_lang: languageCodeSchema.describe("Source language code (e.g., 'en', 'pt-BR')"),
|
|
18
|
-
target_langs: languageCodesArraySchema.describe("Target language codes to
|
|
18
|
+
target_langs: languageCodesArraySchema.describe("Target language codes to translate to. Can include NEW languages not yet in the project (e.g., ['cs', 'de'] to add Czech and German)"),
|
|
19
19
|
dry_run: z
|
|
20
20
|
.boolean()
|
|
21
21
|
.default(true)
|
|
@@ -134,7 +134,7 @@ function computeTargetFilePath(sourcePath, sourceLang, targetLang) {
|
|
|
134
134
|
* Register the sync_translations tool with the MCP server
|
|
135
135
|
*/
|
|
136
136
|
export function registerSyncTranslations(server) {
|
|
137
|
-
server.tool("sync_translations", "
|
|
137
|
+
server.tool("sync_translations", "Add new languages or sync existing translations via LangAPI. Use this tool to: (1) ADD translations for new languages like Czech, Spanish, French - creates new locale files automatically, (2) SYNC existing translations when source content changes. Supports any valid language code (e.g., 'cs' for Czech, 'de' for German). Default is dry_run=true for preview.", SyncTranslationsSchema.shape, async (args) => {
|
|
138
138
|
const input = SyncTranslationsSchema.parse(args);
|
|
139
139
|
const projectPath = input.project_path || process.cwd();
|
|
140
140
|
// Check if API key is configured
|
|
@@ -366,122 +366,139 @@ export function registerSyncTranslations(server) {
|
|
|
366
366
|
const client = LangAPIClient.create();
|
|
367
367
|
// Track skipped keys per language for reporting
|
|
368
368
|
const skippedKeysReport = {};
|
|
369
|
-
//
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
//
|
|
373
|
-
//
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
369
|
+
// ========== PER-FILE PROCESSING APPROACH ==========
|
|
370
|
+
// Process each source file separately:
|
|
371
|
+
// 1. For each source file, determine which keys need syncing
|
|
372
|
+
// 2. Make one API call per file → all target languages
|
|
373
|
+
// 3. Write to corresponding target files
|
|
374
|
+
// This ensures correct file mapping without namespace matching bugs
|
|
375
|
+
let totalCreditsUsed = 0;
|
|
376
|
+
let totalWordsToTranslate = 0;
|
|
377
|
+
let currentBalance = 0;
|
|
378
|
+
// Track results per language (aggregated across files)
|
|
379
|
+
const langResults = new Map();
|
|
380
|
+
// Initialize results for all target languages
|
|
381
|
+
for (const lang of input.target_langs) {
|
|
382
|
+
langResults.set(lang, { translated_count: 0, files_written: [] });
|
|
383
|
+
}
|
|
384
|
+
// Track completed files for partial error reporting
|
|
385
|
+
const completedFiles = [];
|
|
386
|
+
const allFilesWritten = [];
|
|
387
|
+
// Process each source file
|
|
388
|
+
for (const sourceFileData of sourceFilesData) {
|
|
389
|
+
const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
|
|
390
|
+
// Filter delta content to only keys in this source file
|
|
391
|
+
const fileKeysInDelta = localDelta.contentToSync.filter((item) => sourceFileKeys.has(item.key));
|
|
392
|
+
// Determine which languages need this file's translations
|
|
393
|
+
// and what content to sync per language
|
|
394
|
+
const langContentMap = new Map();
|
|
386
395
|
for (const targetLang of input.target_langs) {
|
|
387
|
-
//
|
|
396
|
+
// Compute target file path
|
|
397
|
+
const targetFilePath = computeTargetFilePath(sourceFileData.file.path, input.source_lang, targetLang);
|
|
398
|
+
if (!targetFilePath || targetFilePath === sourceFileData.file.path) {
|
|
399
|
+
continue;
|
|
400
|
+
}
|
|
401
|
+
const resolvedPath = resolve(targetFilePath);
|
|
402
|
+
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
// Determine base content for this file+language combination
|
|
388
406
|
const isMissingLang = missingLanguages.includes(targetLang);
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
let
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
try {
|
|
402
|
-
const targetContent = await readFile(targetFile.path, "utf-8");
|
|
403
|
-
const parsed = parseJsonWithFormat(targetContent);
|
|
404
|
-
if (parsed) {
|
|
405
|
-
const flatTarget = flattenJson(parsed.data);
|
|
406
|
-
for (const item of flatTarget) {
|
|
407
|
-
// Only count as "existing" if it has a non-empty value
|
|
408
|
-
if (item.value && item.value.trim() !== "") {
|
|
409
|
-
existingTargetKeys.add(item.key);
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
catch {
|
|
415
|
-
// File read failed, treat as missing
|
|
407
|
+
// Check if this specific target file exists
|
|
408
|
+
let targetFileExists = false;
|
|
409
|
+
let existingTargetKeys = new Set();
|
|
410
|
+
try {
|
|
411
|
+
const targetContent = await readFile(resolvedPath, "utf-8");
|
|
412
|
+
targetFileExists = true;
|
|
413
|
+
const parsed = parseJsonWithFormat(targetContent);
|
|
414
|
+
if (parsed) {
|
|
415
|
+
const flatTarget = flattenJson(parsed.data);
|
|
416
|
+
for (const item of flatTarget) {
|
|
417
|
+
if (item.value && item.value.trim() !== "") {
|
|
418
|
+
existingTargetKeys.add(item.key);
|
|
416
419
|
}
|
|
417
420
|
}
|
|
418
|
-
// Filter out keys that already exist in target
|
|
419
|
-
baseContent = baseContent.filter((item) => !existingTargetKeys.has(item.key));
|
|
420
421
|
}
|
|
421
422
|
}
|
|
422
|
-
|
|
423
|
+
catch {
|
|
424
|
+
// File doesn't exist
|
|
425
|
+
}
|
|
426
|
+
// Determine what content to sync
|
|
427
|
+
let contentToSync;
|
|
428
|
+
if (isMissingLang || !targetFileExists) {
|
|
429
|
+
// New language or missing file: sync all keys from this source file
|
|
430
|
+
contentToSync = sourceFileData.flatContent;
|
|
431
|
+
}
|
|
432
|
+
else if (!cachedContent) {
|
|
433
|
+
// No cache: sync only keys missing from target
|
|
434
|
+
contentToSync = sourceFileData.flatContent.filter((item) => !existingTargetKeys.has(item.key));
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
// Has cache: use delta, but only keys from this file
|
|
438
|
+
contentToSync = fileKeysInDelta;
|
|
439
|
+
}
|
|
440
|
+
// Apply skip_keys filter
|
|
423
441
|
const skipSet = getSkipKeysForLang(input.skip_keys, targetLang);
|
|
424
|
-
const filteredContent =
|
|
425
|
-
// Track skipped keys
|
|
442
|
+
const filteredContent = contentToSync.filter((item) => !skipSet.has(item.key));
|
|
443
|
+
// Track skipped keys
|
|
426
444
|
if (skipSet.size > 0) {
|
|
427
|
-
const skippedInContent =
|
|
445
|
+
const skippedInContent = contentToSync
|
|
428
446
|
.filter((item) => skipSet.has(item.key))
|
|
429
447
|
.map((item) => item.key);
|
|
430
448
|
if (skippedInContent.length > 0) {
|
|
431
|
-
skippedKeysReport[targetLang]
|
|
449
|
+
const existing = skippedKeysReport[targetLang] || [];
|
|
450
|
+
skippedKeysReport[targetLang] = [...new Set([...existing, ...skippedInContent])];
|
|
432
451
|
}
|
|
433
452
|
}
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
completedResults.push({
|
|
437
|
-
language: targetLang,
|
|
438
|
-
translated_count: 0,
|
|
439
|
-
skipped_keys: skippedKeysReport[targetLang],
|
|
440
|
-
file_written: null,
|
|
441
|
-
});
|
|
442
|
-
completedLanguages.push(targetLang);
|
|
443
|
-
continue;
|
|
453
|
+
if (filteredContent.length > 0) {
|
|
454
|
+
langContentMap.set(targetLang, filteredContent);
|
|
444
455
|
}
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
// No completed languages - return simple error
|
|
456
|
+
}
|
|
457
|
+
// Skip API call if no languages need this file
|
|
458
|
+
if (langContentMap.size === 0) {
|
|
459
|
+
completedFiles.push(sourceFileData.file.path);
|
|
460
|
+
continue;
|
|
461
|
+
}
|
|
462
|
+
// Collect all unique keys to sync for this file (union across all languages)
|
|
463
|
+
const allKeysToSync = new Set();
|
|
464
|
+
for (const content of langContentMap.values()) {
|
|
465
|
+
for (const item of content) {
|
|
466
|
+
allKeysToSync.add(item.key);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
// Get source content for these keys
|
|
470
|
+
const contentForApi = sourceFileData.flatContent.filter((item) => allKeysToSync.has(item.key));
|
|
471
|
+
if (contentForApi.length === 0) {
|
|
472
|
+
completedFiles.push(sourceFileData.file.path);
|
|
473
|
+
continue;
|
|
474
|
+
}
|
|
475
|
+
// Make API call for this file → all languages that need it
|
|
476
|
+
const langsNeedingSync = Array.from(langContentMap.keys());
|
|
477
|
+
const response = await client.sync({
|
|
478
|
+
source_lang: input.source_lang,
|
|
479
|
+
target_langs: langsNeedingSync,
|
|
480
|
+
content: contentForApi,
|
|
481
|
+
dry_run: input.dry_run,
|
|
482
|
+
});
|
|
483
|
+
// Handle API error
|
|
484
|
+
if (!response.success) {
|
|
485
|
+
// Return partial error with info about completed files
|
|
486
|
+
if (completedFiles.length > 0) {
|
|
487
|
+
const completedLangs = Array.from(langResults.entries())
|
|
488
|
+
.filter(([_, r]) => r.translated_count > 0 || r.files_written.length > 0)
|
|
489
|
+
.map(([lang]) => lang);
|
|
480
490
|
const output = {
|
|
481
491
|
success: false,
|
|
492
|
+
partial_results: {
|
|
493
|
+
languages_completed: completedLangs,
|
|
494
|
+
files_written: allFilesWritten,
|
|
495
|
+
credits_used: totalCreditsUsed,
|
|
496
|
+
},
|
|
482
497
|
error: {
|
|
483
498
|
code: response.error.code,
|
|
484
499
|
message: response.error.message,
|
|
500
|
+
failed_language: langsNeedingSync[0],
|
|
501
|
+
remaining_languages: langsNeedingSync,
|
|
485
502
|
current_balance: response.error.currentBalance,
|
|
486
503
|
required_credits: response.error.requiredCredits,
|
|
487
504
|
top_up_url: response.error.topUpUrl,
|
|
@@ -491,209 +508,45 @@ export function registerSyncTranslations(server) {
|
|
|
491
508
|
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
492
509
|
};
|
|
493
510
|
}
|
|
494
|
-
// Handle dry run response - just accumulate costs
|
|
495
|
-
if ("delta" in response && response.cost) {
|
|
496
|
-
totalWordsToTranslate += response.cost.wordsToTranslate || 0;
|
|
497
|
-
totalCreditsUsed += response.cost.creditsRequired || 0;
|
|
498
|
-
currentBalance = response.cost.currentBalance || 0;
|
|
499
|
-
completedLanguages.push(targetLang);
|
|
500
|
-
continue;
|
|
501
|
-
}
|
|
502
|
-
// Handle execute response - write files immediately for this language
|
|
503
|
-
if ("results" in response && response.cost) {
|
|
504
|
-
totalCreditsUsed += response.cost.creditsUsed || 0;
|
|
505
|
-
currentBalance = response.cost.balanceAfterSync || 0;
|
|
506
|
-
const result = response.results[0];
|
|
507
|
-
if (!result) {
|
|
508
|
-
continue;
|
|
509
|
-
}
|
|
510
|
-
const filesWrittenForLang = [];
|
|
511
|
-
// Write files for this language if requested
|
|
512
|
-
if (input.write_to_files) {
|
|
513
|
-
// Check if target locale exists (use detected files)
|
|
514
|
-
const targetLocale = detection.locales.find((l) => l.lang === targetLang);
|
|
515
|
-
for (const sourceFileData of sourceFilesData) {
|
|
516
|
-
// Compute target file path
|
|
517
|
-
let targetFilePath = null;
|
|
518
|
-
if (targetLocale && targetLocale.files.length > 0) {
|
|
519
|
-
// Use existing detected target file path
|
|
520
|
-
// Match by namespace or use first file for single-file projects
|
|
521
|
-
const matchingFile = targetLocale.files.find((f) => f.namespace === sourceFileData.file.namespace) || targetLocale.files[0];
|
|
522
|
-
targetFilePath = matchingFile.path;
|
|
523
|
-
}
|
|
524
|
-
else {
|
|
525
|
-
// New language - compute path from source
|
|
526
|
-
targetFilePath = computeTargetFilePath(sourceFileData.file.path, input.source_lang, targetLang);
|
|
527
|
-
}
|
|
528
|
-
// Safety check: prevent overwriting source file
|
|
529
|
-
if (!targetFilePath || targetFilePath === sourceFileData.file.path) {
|
|
530
|
-
continue;
|
|
531
|
-
}
|
|
532
|
-
const resolvedPath = resolve(targetFilePath);
|
|
533
|
-
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
534
|
-
continue;
|
|
535
|
-
}
|
|
536
|
-
// Get keys that belong to this source file
|
|
537
|
-
const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
|
|
538
|
-
// Filter translations to only those from this source file
|
|
539
|
-
const fileTranslations = result.translations.filter((t) => sourceFileKeys.has(t.key));
|
|
540
|
-
if (fileTranslations.length === 0) {
|
|
541
|
-
continue;
|
|
542
|
-
}
|
|
543
|
-
// Read existing target file content (if exists)
|
|
544
|
-
let existingContent = {};
|
|
545
|
-
try {
|
|
546
|
-
const existingFileContent = await readFile(resolvedPath, "utf-8");
|
|
547
|
-
const parsed = parseJsonSafe(existingFileContent);
|
|
548
|
-
if (parsed) {
|
|
549
|
-
existingContent = parsed;
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
catch {
|
|
553
|
-
// File doesn't exist yet, start with empty object
|
|
554
|
-
}
|
|
555
|
-
// Unflatten and merge translations
|
|
556
|
-
const newTranslations = unflattenJson(fileTranslations);
|
|
557
|
-
let mergedContent = deepMerge(existingContent, newTranslations);
|
|
558
|
-
mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
|
|
559
|
-
// Write file
|
|
560
|
-
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
561
|
-
const fileContent = stringifyWithFormat(mergedContent, sourceFileData.format);
|
|
562
|
-
await writeFile(resolvedPath, fileContent, "utf-8");
|
|
563
|
-
filesWrittenForLang.push(resolvedPath);
|
|
564
|
-
allFilesWritten.push(resolvedPath);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
completedResults.push({
|
|
568
|
-
language: targetLang,
|
|
569
|
-
translated_count: result.translatedCount,
|
|
570
|
-
skipped_keys: skippedKeysReport[targetLang],
|
|
571
|
-
file_written: filesWrittenForLang.length > 0 ? filesWrittenForLang.join(", ") : null,
|
|
572
|
-
});
|
|
573
|
-
completedLanguages.push(targetLang);
|
|
574
|
-
// Update cache after each successful language write
|
|
575
|
-
if (input.write_to_files) {
|
|
576
|
-
await writeSyncCache(projectPath, input.source_lang, flatContent);
|
|
577
|
-
}
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
// All languages processed successfully
|
|
581
|
-
// Handle dry run response
|
|
582
|
-
if (input.dry_run) {
|
|
583
|
-
const skippedMsg = Object.keys(skippedKeysReport).length > 0
|
|
584
|
-
? ` Skipped keys: ${JSON.stringify(skippedKeysReport)}`
|
|
585
|
-
: "";
|
|
586
511
|
const output = {
|
|
587
|
-
success:
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
cost: {
|
|
595
|
-
words_to_translate: totalWordsToTranslate,
|
|
596
|
-
credits_required: totalCreditsUsed,
|
|
597
|
-
current_balance: currentBalance,
|
|
598
|
-
balance_after_sync: currentBalance - totalCreditsUsed,
|
|
512
|
+
success: false,
|
|
513
|
+
error: {
|
|
514
|
+
code: response.error.code,
|
|
515
|
+
message: response.error.message,
|
|
516
|
+
current_balance: response.error.currentBalance,
|
|
517
|
+
required_credits: response.error.requiredCredits,
|
|
518
|
+
top_up_url: response.error.topUpUrl,
|
|
599
519
|
},
|
|
600
|
-
message: `Preview: ${localDelta.contentToSync.length} keys to sync, ${totalCreditsUsed} credits required.${skippedMsg} Run with dry_run=false to execute.`,
|
|
601
520
|
};
|
|
602
521
|
return {
|
|
603
522
|
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
604
523
|
};
|
|
605
524
|
}
|
|
606
|
-
//
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
message: `Sync complete. ${totalTranslated} keys translated across ${completedLanguages.length} languages.${skippedMsg}`,
|
|
620
|
-
};
|
|
621
|
-
return {
|
|
622
|
-
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
623
|
-
};
|
|
624
|
-
}
|
|
625
|
-
// No skip_keys - use batch approach
|
|
626
|
-
const response = await client.sync({
|
|
627
|
-
source_lang: input.source_lang,
|
|
628
|
-
target_langs: input.target_langs,
|
|
629
|
-
content: localDelta.contentToSync,
|
|
630
|
-
dry_run: input.dry_run,
|
|
631
|
-
});
|
|
632
|
-
// Handle error response
|
|
633
|
-
if (!response.success) {
|
|
634
|
-
const output = {
|
|
635
|
-
success: false,
|
|
636
|
-
error: {
|
|
637
|
-
code: response.error.code,
|
|
638
|
-
message: response.error.message,
|
|
639
|
-
current_balance: response.error.currentBalance,
|
|
640
|
-
required_credits: response.error.requiredCredits,
|
|
641
|
-
top_up_url: response.error.topUpUrl,
|
|
642
|
-
},
|
|
643
|
-
};
|
|
644
|
-
return {
|
|
645
|
-
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
646
|
-
};
|
|
647
|
-
}
|
|
648
|
-
// Handle dry run response - use local delta for accurate new/changed detection
|
|
649
|
-
if (input.dry_run && "delta" in response) {
|
|
650
|
-
const output = {
|
|
651
|
-
success: true,
|
|
652
|
-
dry_run: true,
|
|
653
|
-
delta: {
|
|
654
|
-
new_keys: localDelta.newKeys,
|
|
655
|
-
changed_keys: localDelta.changedKeys,
|
|
656
|
-
total_keys_to_sync: localDelta.contentToSync.length,
|
|
657
|
-
},
|
|
658
|
-
cost: {
|
|
659
|
-
words_to_translate: response.cost.wordsToTranslate,
|
|
660
|
-
credits_required: response.cost.creditsRequired,
|
|
661
|
-
current_balance: response.cost.currentBalance,
|
|
662
|
-
balance_after_sync: response.cost.balanceAfterSync,
|
|
663
|
-
},
|
|
664
|
-
message: `Preview: ${localDelta.contentToSync.length} keys to sync (${localDelta.newKeys.length} new, ${localDelta.changedKeys.length} changed), ${response.cost.creditsRequired} credits required. Run with dry_run=false to execute.`,
|
|
665
|
-
};
|
|
666
|
-
return {
|
|
667
|
-
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
668
|
-
};
|
|
669
|
-
}
|
|
670
|
-
// Handle execute response
|
|
671
|
-
if ("results" in response) {
|
|
672
|
-
const results = [];
|
|
673
|
-
// Write translated content to files if requested
|
|
674
|
-
if (input.write_to_files) {
|
|
525
|
+
// Handle dry run response - accumulate costs
|
|
526
|
+
if ("delta" in response && response.cost) {
|
|
527
|
+
totalWordsToTranslate += response.cost.wordsToTranslate || 0;
|
|
528
|
+
totalCreditsUsed += response.cost.creditsRequired || 0;
|
|
529
|
+
currentBalance = response.cost.currentBalance || 0;
|
|
530
|
+
completedFiles.push(sourceFileData.file.path);
|
|
531
|
+
continue;
|
|
532
|
+
}
|
|
533
|
+
// Handle execute response - write files
|
|
534
|
+
if ("results" in response && response.cost) {
|
|
535
|
+
totalCreditsUsed += response.cost.creditsUsed || 0;
|
|
536
|
+
currentBalance = response.cost.balanceAfterSync || 0;
|
|
537
|
+
// Write translations for each language
|
|
675
538
|
for (const result of response.results) {
|
|
676
|
-
const
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
688
|
-
continue;
|
|
689
|
-
}
|
|
690
|
-
// Get the keys that belong to this source file
|
|
691
|
-
const sourceFileKeys = new Set(sourceFileData.flatContent.map((item) => item.key));
|
|
692
|
-
// Filter translations to only those from this source file
|
|
693
|
-
const fileTranslations = result.translations.filter((t) => sourceFileKeys.has(t.key));
|
|
694
|
-
if (fileTranslations.length === 0) {
|
|
695
|
-
continue;
|
|
696
|
-
}
|
|
539
|
+
const targetLang = result.language;
|
|
540
|
+
// Always compute target path from source (no namespace matching!)
|
|
541
|
+
const targetFilePath = computeTargetFilePath(sourceFileData.file.path, input.source_lang, targetLang);
|
|
542
|
+
if (!targetFilePath || targetFilePath === sourceFileData.file.path) {
|
|
543
|
+
continue;
|
|
544
|
+
}
|
|
545
|
+
const resolvedPath = resolve(targetFilePath);
|
|
546
|
+
if (!isPathWithinProject(resolvedPath, projectPath)) {
|
|
547
|
+
continue;
|
|
548
|
+
}
|
|
549
|
+
if (input.write_to_files) {
|
|
697
550
|
// Read existing target file content (if exists)
|
|
698
551
|
let existingContent = {};
|
|
699
552
|
try {
|
|
@@ -706,58 +559,78 @@ export function registerSyncTranslations(server) {
|
|
|
706
559
|
catch {
|
|
707
560
|
// File doesn't exist yet, start with empty object
|
|
708
561
|
}
|
|
709
|
-
// Unflatten
|
|
710
|
-
const newTranslations = unflattenJson(
|
|
711
|
-
// Deep merge: new translations override existing ones
|
|
562
|
+
// Unflatten and merge translations
|
|
563
|
+
const newTranslations = unflattenJson(result.translations);
|
|
712
564
|
let mergedContent = deepMerge(existingContent, newTranslations);
|
|
713
|
-
// Remove any keys in target that don't exist in this source file
|
|
714
565
|
mergedContent = removeExtraKeys(mergedContent, sourceFileKeys);
|
|
715
|
-
//
|
|
566
|
+
// Write file
|
|
716
567
|
await mkdir(dirname(resolvedPath), { recursive: true });
|
|
717
|
-
// Write file with format preservation
|
|
718
568
|
const fileContent = stringifyWithFormat(mergedContent, sourceFileData.format);
|
|
719
569
|
await writeFile(resolvedPath, fileContent, "utf-8");
|
|
720
|
-
|
|
570
|
+
allFilesWritten.push(resolvedPath);
|
|
571
|
+
// Update per-language results
|
|
572
|
+
const langResult = langResults.get(targetLang);
|
|
573
|
+
langResult.translated_count += result.translatedCount;
|
|
574
|
+
langResult.files_written.push(resolvedPath);
|
|
575
|
+
}
|
|
576
|
+
else {
|
|
577
|
+
// Just track count without writing
|
|
578
|
+
const langResult = langResults.get(targetLang);
|
|
579
|
+
langResult.translated_count += result.translatedCount;
|
|
721
580
|
}
|
|
722
|
-
results.push({
|
|
723
|
-
language: lang,
|
|
724
|
-
translated_count: result.translatedCount,
|
|
725
|
-
file_written: filesWritten.length > 0 ? filesWritten.join(", ") : null,
|
|
726
|
-
});
|
|
727
|
-
}
|
|
728
|
-
}
|
|
729
|
-
else {
|
|
730
|
-
for (const result of response.results) {
|
|
731
|
-
results.push({
|
|
732
|
-
language: result.language,
|
|
733
|
-
translated_count: result.translatedCount,
|
|
734
|
-
file_written: null,
|
|
735
|
-
});
|
|
736
581
|
}
|
|
582
|
+
completedFiles.push(sourceFileData.file.path);
|
|
737
583
|
}
|
|
738
|
-
|
|
584
|
+
}
|
|
585
|
+
// Update cache after all files processed
|
|
586
|
+
if (input.write_to_files && !input.dry_run) {
|
|
739
587
|
await writeSyncCache(projectPath, input.source_lang, flatContent);
|
|
588
|
+
}
|
|
589
|
+
// Build final response
|
|
590
|
+
if (input.dry_run) {
|
|
740
591
|
const output = {
|
|
741
592
|
success: true,
|
|
742
|
-
dry_run:
|
|
743
|
-
|
|
593
|
+
dry_run: true,
|
|
594
|
+
delta: {
|
|
595
|
+
new_keys: localDelta.newKeys,
|
|
596
|
+
changed_keys: localDelta.changedKeys,
|
|
597
|
+
total_keys_to_sync: localDelta.contentToSync.length,
|
|
598
|
+
},
|
|
744
599
|
cost: {
|
|
745
|
-
|
|
746
|
-
|
|
600
|
+
words_to_translate: totalWordsToTranslate,
|
|
601
|
+
credits_required: totalCreditsUsed,
|
|
602
|
+
current_balance: currentBalance,
|
|
603
|
+
balance_after_sync: currentBalance - totalCreditsUsed,
|
|
747
604
|
},
|
|
748
|
-
message: `
|
|
605
|
+
message: `Preview: ${localDelta.contentToSync.length} keys to sync across ${sourceFilesData.length} file(s), ${totalCreditsUsed} credits required. Run with dry_run=false to execute.`,
|
|
749
606
|
};
|
|
750
607
|
return {
|
|
751
608
|
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
752
609
|
};
|
|
753
610
|
}
|
|
754
|
-
//
|
|
611
|
+
// Build results array from aggregated per-language data
|
|
612
|
+
const results = [];
|
|
613
|
+
for (const [lang, data] of langResults) {
|
|
614
|
+
results.push({
|
|
615
|
+
language: lang,
|
|
616
|
+
translated_count: data.translated_count,
|
|
617
|
+
skipped_keys: skippedKeysReport[lang],
|
|
618
|
+
file_written: data.files_written.length > 0 ? data.files_written.join(", ") : null,
|
|
619
|
+
});
|
|
620
|
+
}
|
|
621
|
+
const totalTranslated = results.reduce((sum, r) => sum + r.translated_count, 0);
|
|
622
|
+
const skippedMsg = Object.keys(skippedKeysReport).length > 0
|
|
623
|
+
? ` Skipped: ${JSON.stringify(skippedKeysReport)}`
|
|
624
|
+
: "";
|
|
755
625
|
const output = {
|
|
756
|
-
success:
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
626
|
+
success: true,
|
|
627
|
+
dry_run: false,
|
|
628
|
+
results,
|
|
629
|
+
cost: {
|
|
630
|
+
credits_used: totalCreditsUsed,
|
|
631
|
+
balance_after_sync: currentBalance,
|
|
760
632
|
},
|
|
633
|
+
message: `Sync complete. ${totalTranslated} keys translated across ${input.target_langs.length} languages.${skippedMsg}`,
|
|
761
634
|
};
|
|
762
635
|
return {
|
|
763
636
|
content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-translations.js","sourceRoot":"","sources":["../../src/tools/sync-translations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAQ,OAAO,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAmB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,eAAe;AACf,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACtF,YAAY,EAAE,wBAAwB,CAAC,QAAQ,CAAC,sIAAsI,CAAC;IACvL,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,0EAA0E,CAC3E;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,uDAAuD,CAAC;IACpE,SAAS,EAAE,CAAC;SACT,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACvC,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;CAChF,CAAC,CAAC;AAqEH;;GAEG;AACH,SAAS,kBAAkB,CACzB,QAA8C,EAC9C,IAAY;IAEZ,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B;IAE/B,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IACE,WAAW,KAAK,IAAI;YACpB,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW,KAAK,IAAI;YACpB,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,sCAAsC;YACtC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,WAAsC,EACtC,WAAsC,CACvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,GAA4B,EAC5B,YAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;IAE7D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,GAA4B,MAAM,CAAC;QAE9C,8CAA8C;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,MAAM;YACR,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,SAAkC,EAClC,UAAuB;IAEvB,yCAAyC;IACzC,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAE1C,iDAAiD;IACjD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,UAAkB,EAClB,UAAkB,EAClB,UAAkB;IAElB,qDAAqD;IACrD,MAAM,UAAU,GAAG,IAAI,UAAU,GAAG,CAAC;IACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,UAAU,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,UAAU,OAAO,CAAC;IAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,OAAO,CAAC;IAC1E,CAAC;IAED,gEAAgE;IAChE,MAAM,aAAa,GAAG,IAAI,UAAU,OAAO,CAAC;IAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,OAAO,CAAC;IAC5E,CAAC;IAED,+BAA+B;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,wWAAwW,EACxW,sBAAsB,CAAC,KAAK,EAC5B,KAAK,EAAE,IAAI,EAA+D,EAAE;QAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAExD,iCAAiC;QACjC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,YAAY;oBAClB,OAAO,EACL,sEAAsE;iBACzE;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE1D,qBAAqB;QACrB,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,CACpC,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,MAAM,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,oBAAoB,KAAK,CAAC,WAAW,wBAAwB;iBACvE;aACF,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAUD,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAA+B,CAAC,CAAC;gBACxE,eAAe,CAAC,IAAI,CAAC;oBACnB,IAAI;oBACJ,OAAO,EAAE,MAAM,CAAC,IAA+B;oBAC/C,WAAW;oBACX,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,gFAAgF;QAChF,MAAM,aAAa,GAA4B,EAAE,CAAC;QAClD,IAAI,YAAY,GAAe,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACvE,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;QACjC,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhE,oCAAoC;QACpC,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAEhE,+DAA+D;QAC/D,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,2DAA2D;QAC3D,MAAM,yBAAyB,GAAa,EAAE,CAAC;QAE/C,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC3C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC7C,oCAAoC;gBACpC,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;gBAEF,4DAA4D;gBAC5D,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnE,SAAS;gBACX,CAAC;gBAED,uBAAuB;gBACvB,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,uDAAuD;oBACvD,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;wBACpD,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrH,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,4DAA4D;gBAC5D,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,MAAM,eAAe,GAA6B,EAAE,CAAC;gBAErD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,MAAM,aAAa,GAAa,EAAE,CAAC;oBAEnC,qDAAqD;oBACrD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;wBAC7C,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;wBAEF,4DAA4D;wBAC5D,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;4BACnE,SAAS;wBACX,CAAC;wBAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBAEnF,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;4BACxD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;4BACtC,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,UAAU,GAAG,WAAW,CAAC,MAAiC,CAAC,CAAC;gCAClE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gCACzF,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;4BACnC,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,sCAAsC;wBACxC,CAAC;oBACH,CAAC;oBAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,eAAe,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;wBAC5C,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;oBACzC,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAsB;oBAChC,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,QAAQ,EAAE,EAAE;wBACZ,YAAY,EAAE,EAAE;wBAChB,kBAAkB,EAAE,CAAC;qBACtB;oBACD,IAAI,EAAE;wBACJ,kBAAkB,EAAE,CAAC;wBACrB,gBAAgB,EAAE,CAAC;wBACnB,eAAe,EAAE,CAAC;wBAClB,kBAAkB,EAAE,CAAC;qBACtB;oBACD,OAAO,EAAE,cAAc,GAAG,CAAC;wBACzB,CAAC,CAAC,+BAA+B,cAAc,sGAAsG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE;wBACtL,CAAC,CAAC,mDAAmD;iBACxD,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;YACD,qFAAqF;YACrF,MAAM,OAAO,GAKR,EAAE,CAAC;YAER,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,MAAM,YAAY,GAAa,EAAE,CAAC;oBAClC,IAAI,uBAAuB,GAAG,CAAC,CAAC;oBAEhC,uDAAuD;oBACvD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;wBAC7C,2BAA2B;wBAC3B,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;wBAEF,4DAA4D;wBAC5D,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;4BACnE,SAAS;wBACX,CAAC;wBAED,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;wBAC7C,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;4BACpD,SAAS;wBACX,CAAC;wBAED,+CAA+C;wBAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBAEnF,IAAI,CAAC;4BACH,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;4BAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;4BAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;gCACZ,SAAS;4BACX,CAAC;4BAED,kCAAkC;4BAClC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAiC,EAAE,cAAc,CAAC,CAAC;4BACnF,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;4BACvE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAiC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;4BAElG,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gCAC/B,kDAAkD;gCAClD,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gCACnD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAiC,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;gCACxG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gCAChC,uBAAuB,IAAI,WAAW,CAAC;4BACzC,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,sCAAsC;wBACxC,CAAC;oBACH,CAAC;oBAED,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,UAAU;wBACpB,gBAAgB,EAAE,CAAC;wBACnB,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;wBACtE,YAAY,EAAE,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;qBAChF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAElE,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7F,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpF,MAAM,MAAM,GAAsB;gBAChC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;oBACtE,QAAQ;oBACR,gBAAgB;oBAChB,YAAY;iBACb,CAAC,CAAC;gBACH,IAAI,EAAE;oBACJ,YAAY,EAAE,CAAC;oBACf,kBAAkB,EAAE,CAAC;iBACtB;gBACD,OAAO,EAAE,iBAAiB,GAAG,CAAC;oBAC5B,CAAC,CAAC,mCAAmC,gBAAgB,oBAAoB,iBAAiB,WAAW;oBACrG,CAAC,CAAC,mDAAmD;aACxD,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAEtC,gDAAgD;QAChD,MAAM,iBAAiB,GAA6B,EAAE,CAAC;QAEvD,qDAAqD;QACrD,uCAAuC;QACvC,6DAA6D;QAC7D,uDAAuD;QACvD,yCAAyC;QACzC,oEAAoE;QAEpE,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,uDAAuD;QACvD,MAAM,WAAW,GAIZ,IAAI,GAAG,EAAE,CAAC;QAEf,8CAA8C;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACtC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,oDAAoD;QACpD,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,2BAA2B;QAC3B,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAEnF,wDAAwD;YACxD,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CACvC,CAAC;YAEF,0DAA0D;YAC1D,wCAAwC;YACxC,MAAM,cAAc,GAAuD,IAAI,GAAG,EAAE,CAAC;YAErF,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC5C,2BAA2B;gBAC3B,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;gBAEF,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnE,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;oBACpD,SAAS;gBACX,CAAC;gBAED,4DAA4D;gBAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAE5D,4CAA4C;gBAC5C,IAAI,gBAAgB,GAAG,KAAK,CAAC;gBAC7B,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC3C,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC5D,gBAAgB,GAAG,IAAI,CAAC;oBACxB,MAAM,MAAM,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;oBAClD,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAA+B,CAAC,CAAC;wBACvE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;4BAC9B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gCAC3C,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACnC,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,qBAAqB;gBACvB,CAAC;gBAED,iCAAiC;gBACjC,IAAI,aAAoD,CAAC;gBAEzD,IAAI,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvC,oEAAoE;oBACpE,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC;gBAC7C,CAAC;qBAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC1B,+CAA+C;oBAC/C,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5C,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,qDAAqD;oBACrD,aAAa,GAAG,eAAe,CAAC;gBAClC,CAAC;gBAED,yBAAyB;gBACzB,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAChE,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CACjC,CAAC;gBAEF,qBAAqB;gBACrB,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,gBAAgB,GAAG,aAAa;yBACnC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAChC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;wBACrD,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;gBAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,6EAA6E;YAC7E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,oCAAoC;YACpC,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CACtC,CAAC;YAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACjC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,YAAY,EAAE,gBAAgB;gBAC9B,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YAEH,mBAAmB;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtB,uDAAuD;gBACvD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;yBACrD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;yBACxE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;oBAEzB,MAAM,MAAM,GAA2B;wBACrC,OAAO,EAAE,KAAK;wBACd,eAAe,EAAE;4BACf,mBAAmB,EAAE,cAAc;4BACnC,aAAa,EAAE,eAAe;4BAC9B,YAAY,EAAE,gBAAgB;yBAC/B;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;4BACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;4BAC/B,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;4BACpC,mBAAmB,EAAE,gBAAgB;4BACrC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;4BAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe;4BAChD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;yBACpC;qBACF,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;qBACnE,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAoB;oBAC9B,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI;wBACzB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;wBAC/B,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc;wBAC9C,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,eAAe;wBAChD,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;qBACpC;iBACF,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,IAAI,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACzC,qBAAqB,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC7D,gBAAgB,IAAI,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;gBACvD,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,wCAAwC;YACxC,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC3C,gBAAgB,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;gBACnD,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAErD,uCAAuC;gBACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAEnC,kEAAkE;oBAClE,MAAM,cAAc,GAAG,qBAAqB,CAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,EACxB,KAAK,CAAC,WAAW,EACjB,UAAU,CACX,CAAC;oBAEF,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACnE,SAAS;oBACX,CAAC;oBAED,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC7C,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;wBACpD,SAAS;oBACX,CAAC;oBAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;wBACzB,gDAAgD;wBAChD,IAAI,eAAe,GAA4B,EAAE,CAAC;wBAClD,IAAI,CAAC;4BACH,MAAM,mBAAmB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;4BAClE,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;4BAClD,IAAI,MAAM,EAAE,CAAC;gCACX,eAAe,GAAG,MAAiC,CAAC;4BACtD,CAAC;wBACH,CAAC;wBAAC,MAAM,CAAC;4BACP,kDAAkD;wBACpD,CAAC;wBAED,mCAAmC;wBACnC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC3D,IAAI,aAAa,GAAG,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;wBAChE,aAAa,GAAG,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;wBAE/D,aAAa;wBACb,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxD,MAAM,WAAW,GAAG,mBAAmB,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC9E,MAAM,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;wBAEpD,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAEnC,8BAA8B;wBAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;wBAChD,UAAU,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC;wBACtD,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9C,CAAC;yBAAM,CAAC;wBACN,mCAAmC;wBACnC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;wBAChD,UAAU,CAAC,gBAAgB,IAAI,MAAM,CAAC,eAAe,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAED,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACpE,CAAC;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,MAAM,GAAsB;gBAChC,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU,CAAC,OAAO;oBAC5B,YAAY,EAAE,UAAU,CAAC,WAAW;oBACpC,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,MAAM;iBACpD;gBACD,IAAI,EAAE;oBACJ,kBAAkB,EAAE,qBAAqB;oBACzC,gBAAgB,EAAE,gBAAgB;oBAClC,eAAe,EAAE,cAAc;oBAC/B,kBAAkB,EAAE,cAAc,GAAG,gBAAgB;iBACtD;gBACD,OAAO,EAAE,YAAY,UAAU,CAAC,aAAa,CAAC,MAAM,wBAAwB,eAAe,CAAC,MAAM,aAAa,gBAAgB,uDAAuD;aACvL,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAED,wDAAwD;QACxD,MAAM,OAAO,GAKR,EAAE,CAAC;QAER,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,IAAI;gBACd,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC;gBACrC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;aACnF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC;YAC1D,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,MAAM,GAAsB;YAChC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,OAAO;YACP,IAAI,EAAE;gBACJ,YAAY,EAAE,gBAAgB;gBAC9B,kBAAkB,EAAE,cAAc;aACnC;YACD,OAAO,EAAE,kBAAkB,eAAe,2BAA2B,KAAK,CAAC,YAAY,CAAC,MAAM,cAAc,UAAU,EAAE;SACzH,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|