@remnux/mcp-server 0.1.43 → 0.1.44
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/archive-extractor.d.ts +15 -0
- package/dist/archive-extractor.d.ts.map +1 -1
- package/dist/archive-extractor.js +96 -0
- package/dist/archive-extractor.js.map +1 -1
- package/dist/handlers/extract-archive.d.ts.map +1 -1
- package/dist/handlers/extract-archive.js +14 -0
- package/dist/handlers/extract-archive.js.map +1 -1
- package/package.json +1 -1
|
@@ -32,6 +32,21 @@ export declare function loadPasswordList(): string[];
|
|
|
32
32
|
* @returns Command array for execution
|
|
33
33
|
*/
|
|
34
34
|
export declare function getExtractionCommand(archiveType: ArchiveType, archivePath: string, outputDir: string, password?: string): string[];
|
|
35
|
+
/** A symlink discovered in the extracted tree: its path (relative to outputDir) and target. */
|
|
36
|
+
export interface ExtractedSymlink {
|
|
37
|
+
name: string;
|
|
38
|
+
target: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Return the names of symlinks whose resolved target escapes outputDir.
|
|
42
|
+
*
|
|
43
|
+
* A target is safe only if it stays within outputDir. Absolute targets are
|
|
44
|
+
* resolved as-is; relative targets are resolved against the symlink's own
|
|
45
|
+
* directory. An empty target (unresolved on the portable fallback path) is
|
|
46
|
+
* treated as an escape — fail closed. Internal symlinks (target stays inside
|
|
47
|
+
* outputDir) are preserved so legitimate archives are unaffected.
|
|
48
|
+
*/
|
|
49
|
+
export declare function findEscapingSymlinks(symlinks: ExtractedSymlink[], outputDir: string): string[];
|
|
35
50
|
/**
|
|
36
51
|
* Extract an archive file with automatic password detection
|
|
37
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-extractor.d.ts","sourceRoot":"","sources":["../src/archive-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAKnE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAY/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAgB3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"archive-extractor.d.ts","sourceRoot":"","sources":["../src/archive-extractor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAKnE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAY/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAgB3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAgDV;AAgGD,+FAA+F;AAC/F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAyDD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAsBV;AAuDD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAwI3B"}
|
|
@@ -60,6 +60,13 @@ export function getExtractionCommand(archiveType, archivePath, outputDir, passwo
|
|
|
60
60
|
if (password && /[;&|`$\n\r'"\\]/.test(password)) {
|
|
61
61
|
throw new Error("Password contains invalid characters");
|
|
62
62
|
}
|
|
63
|
+
// Reject a leading "-": for zip the password is passed as a standalone argv
|
|
64
|
+
// token (["-P", password]), so a value like "--help" would be parsed by unzip
|
|
65
|
+
// as an option rather than a password (argument injection). 7z/rar glue it as
|
|
66
|
+
// -p<password> so they are unaffected, but reject uniformly for consistency.
|
|
67
|
+
if (password && password.startsWith("-")) {
|
|
68
|
+
throw new Error("Password cannot start with '-' (option injection)");
|
|
69
|
+
}
|
|
63
70
|
switch (archiveType) {
|
|
64
71
|
case "7z":
|
|
65
72
|
// 7z x archive.7z -ooutputdir -ppassword -y
|
|
@@ -164,6 +171,76 @@ function validateExtractedPaths(files, outputDir) {
|
|
|
164
171
|
}
|
|
165
172
|
return escapeAttempts;
|
|
166
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* List symlinks in the extracted tree along with their targets.
|
|
176
|
+
*
|
|
177
|
+
* The name-based check in validateExtractedPaths only inspects regular-file
|
|
178
|
+
* names (find -type f). A malicious archive can instead ship a symlink whose
|
|
179
|
+
* target escapes outputDir (e.g. "link" -> "/home/remnux") followed by an entry
|
|
180
|
+
* "link/evil" that the extractor writes THROUGH the symlink, landing outside
|
|
181
|
+
* outputDir. find -type f never lists the symlink and reports "link/evil" as a
|
|
182
|
+
* path that lexically resolves inside outputDir, so the escape is invisible.
|
|
183
|
+
* Enumerating symlinks and resolving their targets closes that gap.
|
|
184
|
+
*/
|
|
185
|
+
async function listExtractedSymlinks(connector, outputDir) {
|
|
186
|
+
try {
|
|
187
|
+
// GNU find: %P = path relative to outputDir, %l = symlink target.
|
|
188
|
+
const result = await connector.execute(["find", outputDir, "-type", "l", "-printf", "%P\\t%l\\n"], { timeout: 30000 });
|
|
189
|
+
if (result.exitCode === 0) {
|
|
190
|
+
return result.stdout
|
|
191
|
+
.split("\n")
|
|
192
|
+
.map((line) => line.trim())
|
|
193
|
+
.filter((line) => line.length > 0)
|
|
194
|
+
.map((line) => {
|
|
195
|
+
const [name, ...rest] = line.split("\t");
|
|
196
|
+
return { name: name ?? "", target: rest.join("\t") };
|
|
197
|
+
})
|
|
198
|
+
.filter((s) => s.name.length > 0);
|
|
199
|
+
}
|
|
200
|
+
// BSD/portable fallback: find lacks -printf. List symlink paths only; we
|
|
201
|
+
// cannot resolve targets here, so fail closed — treat any symlink as an
|
|
202
|
+
// escape attempt rather than letting an unresolved one through.
|
|
203
|
+
const lsResult = await connector.execute(["find", outputDir, "-type", "l"], { timeout: 30000 });
|
|
204
|
+
if (lsResult.exitCode === 0 && lsResult.stdout) {
|
|
205
|
+
return lsResult.stdout
|
|
206
|
+
.split("\n")
|
|
207
|
+
.map((f) => f.trim())
|
|
208
|
+
.filter((f) => f.length > 0)
|
|
209
|
+
.map((f) => ({ name: f, target: "" }));
|
|
210
|
+
}
|
|
211
|
+
return [];
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
return [];
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Return the names of symlinks whose resolved target escapes outputDir.
|
|
219
|
+
*
|
|
220
|
+
* A target is safe only if it stays within outputDir. Absolute targets are
|
|
221
|
+
* resolved as-is; relative targets are resolved against the symlink's own
|
|
222
|
+
* directory. An empty target (unresolved on the portable fallback path) is
|
|
223
|
+
* treated as an escape — fail closed. Internal symlinks (target stays inside
|
|
224
|
+
* outputDir) are preserved so legitimate archives are unaffected.
|
|
225
|
+
*/
|
|
226
|
+
export function findEscapingSymlinks(symlinks, outputDir) {
|
|
227
|
+
const normalizedBase = resolve(outputDir);
|
|
228
|
+
const escapes = [];
|
|
229
|
+
for (const link of symlinks) {
|
|
230
|
+
if (link.target.length === 0) {
|
|
231
|
+
// Unresolved target (portable fallback) — fail closed.
|
|
232
|
+
escapes.push(link.name);
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const linkDir = dirname(resolve(outputDir, link.name));
|
|
236
|
+
const resolvedTarget = resolve(linkDir, link.target);
|
|
237
|
+
if (resolvedTarget !== normalizedBase &&
|
|
238
|
+
!resolvedTarget.startsWith(normalizedBase + "/")) {
|
|
239
|
+
escapes.push(link.name);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return escapes;
|
|
243
|
+
}
|
|
167
244
|
/**
|
|
168
245
|
* List entries in an archive WITHOUT extracting, to detect zip-slip before extraction.
|
|
169
246
|
* Returns entry names as reported by the archive tool.
|
|
@@ -297,6 +374,25 @@ export async function extractArchive(connector, archivePath, samplesDir, customP
|
|
|
297
374
|
outputDir,
|
|
298
375
|
};
|
|
299
376
|
}
|
|
377
|
+
// Validate for zip-slip via symlink indirection: a symlink whose target
|
|
378
|
+
// escapes outputDir lets a follow-on entry write through it (the
|
|
379
|
+
// name-based check above cannot see this). Resolve symlink targets and
|
|
380
|
+
// reject any that leave outputDir. Note: detection is post-extraction, so
|
|
381
|
+
// a file already written THROUGH an escaping symlink lands outside
|
|
382
|
+
// outputDir and is not reverted by the rm -rf below; container/VM
|
|
383
|
+
// isolation remains the boundary (TOCTOU is accepted per the threat model).
|
|
384
|
+
const symlinks = await listExtractedSymlinks(connector, outputDir);
|
|
385
|
+
const symlinkEscapes = findEscapingSymlinks(symlinks, outputDir);
|
|
386
|
+
if (symlinkEscapes.length > 0) {
|
|
387
|
+
// Clean up potentially malicious files
|
|
388
|
+
await connector.execute(["rm", "-rf", outputDir], { timeout: 30000 });
|
|
389
|
+
return {
|
|
390
|
+
success: false,
|
|
391
|
+
files: [],
|
|
392
|
+
error: `Archive contains symlink path escape attempts (zip-slip): ${symlinkEscapes.slice(0, 3).join(", ")}${symlinkEscapes.length > 3 ? ` and ${symlinkEscapes.length - 3} more` : ""}`,
|
|
393
|
+
outputDir,
|
|
394
|
+
};
|
|
395
|
+
}
|
|
300
396
|
return {
|
|
301
397
|
success: true,
|
|
302
398
|
files,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive-extractor.js","sourceRoot":"","sources":["../src/archive-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"archive-extractor.js","sourceRoot":"","sources":["../src/archive-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-archive.d.ts","sourceRoot":"","sources":["../../src/handlers/extract-archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAO9D,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,kBAAkB;;;;;;
|
|
1
|
+
{"version":3,"file":"extract-archive.d.ts","sourceRoot":"","sources":["../../src/handlers/extract-archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAO9D,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,kBAAkB;;;;;;GA0HzB"}
|
|
@@ -25,6 +25,20 @@ export async function handleExtractArchive(deps, args) {
|
|
|
25
25
|
return formatError("extract_archive", new REMnuxError("Output subdirectory contains invalid characters", "INVALID_SUBDIR", "validation", "Use only alphanumeric characters, hyphens, and underscores"), startTime);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
// Security: validate the password up front (argument/option injection guard).
|
|
29
|
+
// This is not a path-sandbox aid, so it applies even with --no-sandbox: a
|
|
30
|
+
// leading "-" would be parsed by unzip as an option (["-P", password]), and
|
|
31
|
+
// shell metacharacters are rejected as defense-in-depth. Surfacing the error
|
|
32
|
+
// here gives a clear message instead of it being swallowed by the password
|
|
33
|
+
// retry loop in extractArchive (getExtractionCommand enforces the same rules).
|
|
34
|
+
if (args.password) {
|
|
35
|
+
if (args.password.startsWith("-")) {
|
|
36
|
+
return formatError("extract_archive", new REMnuxError("Password cannot start with '-' (option injection)", "INVALID_PASSWORD", "validation", "Provide a password that does not begin with a hyphen"), startTime);
|
|
37
|
+
}
|
|
38
|
+
if (/[;&|`$\n\r'"\\]/.test(args.password)) {
|
|
39
|
+
return formatError("extract_archive", new REMnuxError("Password contains invalid characters", "INVALID_PASSWORD", "validation", "Remove shell metacharacters from the password"), startTime);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
28
42
|
// Verify archive type is supported
|
|
29
43
|
const archiveType = detectArchiveType(args.archive_file);
|
|
30
44
|
if (!archiveType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-archive.js","sourceRoot":"","sources":["../../src/handlers/extract-archive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extract-archive.js","sourceRoot":"","sources":["../../src/handlers/extract-archive.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAiB,EACjB,IAAwB;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEnC,qDAAqD;IACrD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,UAAU,CAAC,KAAK,IAAI,2BAA2B,EAC/C,cAAc,EACd,YAAY,EACZ,kDAAkD,CACnD,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACrC,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,+BAA+B,EAC/B,gBAAgB,EAChB,YAAY,EACZ,kEAAkE,CACnE,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/G,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,kCAAkC,EAClC,gBAAgB,EAChB,YAAY,EACZ,uDAAuD,CACxD,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,iDAAiD,EACjD,gBAAgB,EAChB,YAAY,EACZ,4DAA4D,CAC7D,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,mDAAmD,EACnD,kBAAkB,EAClB,YAAY,EACZ,sDAAsD,CACvD,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,sCAAsC,EACtC,kBAAkB,EAClB,YAAY,EACZ,+CAA+C,CAChD,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,wDAAwD,EACxD,oBAAoB,EACpB,YAAY,EACZ,oEAAoE,CACrE,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAED,0BAA0B;IAC1B,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;IAEhE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,SAAS,EACT,WAAW,EACX,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,aAAa,CACnB,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,oDAAoD;YACpD,IAAI,MAAM,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAChC,IAAI,CAAC,YAAY,EACjB,MAAM,CAAC,KAAK,EACZ,WAAW,EACX,MAAM,CAAC,QAAQ,CAChB,CAAC;YACJ,CAAC;YAED,OAAO,cAAc,CAAC,iBAAiB,EAAE;gBACvC,YAAY,EAAE,MAAM,CAAC,SAAS;gBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBAC/B,aAAa,EAAE,MAAM,CAAC,QAAQ,IAAI,oCAAoC;aACvE,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,OAAO,WAAW,CAAC,iBAAiB,EAAE,IAAI,WAAW,CACnD,MAAM,CAAC,KAAK,IAAI,mBAAmB,EACnC,mBAAmB,EACnB,cAAc,EACd,mDAAmD,CACpD,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,iBAAiB,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC"}
|