@markitdownjs/docx 0.1.1 → 0.3.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.
@@ -65,6 +65,21 @@ export declare class DocxConverter implements Converter {
65
65
  * @returns An array of inline AST nodes.
66
66
  */
67
67
  private parseRuns;
68
+ /**
69
+ * Parse a w:drawing element to extract an inline image.
70
+ *
71
+ * Looks for the relationship ID in wp:docPr or a:blip, resolves it via
72
+ * the relationship map, and reads the image data from the zip archive.
73
+ *
74
+ * @param drawingEl - The w:drawing XML element.
75
+ * @param relsMap - Relationship ID to target path mapping.
76
+ * @returns An ImageNode, or null if the image cannot be extracted.
77
+ */
78
+ private parseDrawing;
79
+ /**
80
+ * Guess the MIME type from a file extension.
81
+ */
82
+ private guessImageMimeType;
68
83
  /**
69
84
  * Parse w:hyperlink elements inside a paragraph, resolving targets via the
70
85
  * relationship map.
@@ -112,5 +127,12 @@ export declare class DocxConverter implements Converter {
112
127
  * @returns The data as a Uint8Array.
113
128
  */
114
129
  private toByteArray;
130
+ /**
131
+ * Remove empty inline nodes and merge adjacent same-type wrapper nodes to
132
+ * eliminate `****` / `**text1****text2**` artifacts from OOXML run splitting.
133
+ */
134
+ private mergeInlineRuns;
135
+ /** Returns true if the node contains at least one non-empty text leaf. */
136
+ private hasInlineContent;
115
137
  }
116
138
  //# sourceMappingURL=docx-converter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docx-converter.d.ts","sourceRoot":"","sources":["../src/docx-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAIjB,MAAM,sBAAsB,CAAC;AAkB9B,+DAA+D;AAC/D,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,kBAAkB,WAEzB;IACF,QAAQ,CAAC,mBAAmB,WAAa;IAEzC;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B1D;;;;;;;;;;OAUG;IACG,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6EhE;;;;;OAKG;YACW,kBAAkB;IAuBhC;;;;;OAKG;YACW,aAAa;IAmC3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAmCtB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAiDjB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA2CvB;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;IAQf;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAmElB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAUnB;;;;OAIG;YACW,WAAW;CAQ1B"}
1
+ {"version":3,"file":"docx-converter.d.ts","sourceRoot":"","sources":["../src/docx-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAKjB,MAAM,sBAAsB,CAAC;AAsB9B,+DAA+D;AAC/D,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,kBAAkB,WAEzB;IACF,QAAQ,CAAC,mBAAmB,WAAa;IAEzC;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1D;;;;;;;;;;OAUG;IACG,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2FhE;;;;;OAKG;YACW,kBAAkB;IAqBhC;;;;;OAKG;YACW,aAAa;IAkC3B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IA2DjB;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IA4BpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAsCvB;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;IAQf;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IA8DlB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;OAIG;YACW,WAAW;IAOzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqBvB,0EAA0E;IAC1E,OAAO,CAAC,gBAAgB;CAOzB"}
@@ -1,5 +1,6 @@
1
- import { createNode, parseXML, } from "@markitdownjs/shared";
1
+ import { createNode, parseXML, strictCanConvert, checkZipBombRisk, } from "@markitdownjs/shared";
2
2
  import { MarkdownRenderer } from "@markitdownjs/ast";
3
+ import { isTag } from "./utils.js";
3
4
  /** Convert DOCX files to markdown via AST-first processing. */
4
5
  export class DocxConverter {
5
6
  id = "docx";
@@ -13,28 +14,12 @@ export class DocxConverter {
13
14
  * @returns True if the input is a supported DOCX.
14
15
  */
15
16
  async canConvert(input) {
16
- if (input.mimeType && this.supportedMimeTypes.includes(input.mimeType)) {
17
- return true;
18
- }
19
- if (input.fileName) {
20
- const ext = input.fileName.toLowerCase();
21
- if (this.supportedExtensions.some((e) => ext.endsWith(e))) {
22
- return true;
23
- }
24
- }
25
- if (input.data instanceof Uint8Array || input.data instanceof ArrayBuffer) {
26
- const bytes = input.data instanceof Uint8Array
27
- ? input.data
28
- : new Uint8Array(input.data);
29
- if (bytes.length >= 4 &&
30
- bytes[0] === 0x50 &&
31
- bytes[1] === 0x4b &&
32
- bytes[2] === 0x03 &&
33
- bytes[3] === 0x04) {
34
- return true;
35
- }
36
- }
37
- return false;
17
+ // Strict dispatch: do NOT fall back to ZIP magic bytes — that header is shared by
18
+ // .docx, .xlsx, .pptx, .epub and would cause this converter to intercept other formats.
19
+ return strictCanConvert(input, {
20
+ mimeTypes: this.supportedMimeTypes,
21
+ extensions: this.supportedExtensions,
22
+ });
38
23
  }
39
24
  /**
40
25
  * Convert a DOCX document into markdown via an AST intermediate.
@@ -52,7 +37,11 @@ export class DocxConverter {
52
37
  const data = await this.toByteArray(input.data);
53
38
  const JSZip = (await import("jszip")).default;
54
39
  const zip = await JSZip.loadAsync(data);
40
+ checkZipBombRisk(zip);
55
41
  const renderer = new MarkdownRenderer();
42
+ const warnings = [];
43
+ const opts = input.options ?? {};
44
+ const includeComments = opts.customProperties?.includeComments ?? false;
56
45
  // Parse relationship map (rId -> target file).
57
46
  const relsMap = await this.parseRelationships(zip);
58
47
  // Parse core metadata if available.
@@ -66,6 +55,7 @@ export class DocxConverter {
66
55
  if (!body) {
67
56
  throw new Error("Invalid DOCX: no body element found");
68
57
  }
58
+ // Process document body.
69
59
  const children = [];
70
60
  const headings = [];
71
61
  const tables = [];
@@ -73,7 +63,14 @@ export class DocxConverter {
73
63
  const child = body.childNodes[i];
74
64
  if (!child)
75
65
  continue;
76
- if (child.localName === "p") {
66
+ // Strip track changes / comments unless includeComments is enabled.
67
+ if (!includeComments) {
68
+ const tag = child.tagName?.toLowerCase();
69
+ if (tag === "w:sectpr" || tag === "w:commentRangeStart" || tag === "w:commentRangeEnd") {
70
+ continue;
71
+ }
72
+ }
73
+ if (isTag(child, "p")) {
77
74
  const para = this.parseParagraph(child, relsMap);
78
75
  if (para) {
79
76
  children.push(para);
@@ -85,7 +82,7 @@ export class DocxConverter {
85
82
  }
86
83
  }
87
84
  }
88
- else if (child.localName === "tbl") {
85
+ else if (isTag(child, "tbl")) {
89
86
  const table = this.parseTable(child, relsMap);
90
87
  if (table) {
91
88
  children.push(table);
@@ -113,6 +110,7 @@ export class DocxConverter {
113
110
  inputSize: data.length,
114
111
  outputSize: markdown.length,
115
112
  },
113
+ warnings: warnings.length > 0 ? warnings : undefined,
116
114
  };
117
115
  }
118
116
  /**
@@ -124,9 +122,7 @@ export class DocxConverter {
124
122
  async parseRelationships(zip // eslint-disable-line @typescript-eslint/no-explicit-any
125
123
  ) {
126
124
  const map = new Map();
127
- const relsXml = await zip
128
- .file("word/_rels/document.xml.rels")
129
- ?.async("string");
125
+ const relsXml = await zip.file("word/_rels/document.xml.rels")?.async("string");
130
126
  if (!relsXml)
131
127
  return map;
132
128
  const doc = await parseXML(relsXml);
@@ -194,7 +190,7 @@ export class DocxConverter {
194
190
  */
195
191
  parseParagraph(paraEl, relsMap) {
196
192
  const pStyle = this.getParagraphStyle(paraEl);
197
- const inlineNodes = this.parseRuns(paraEl, relsMap);
193
+ const inlineNodes = this.mergeInlineRuns(this.parseRuns(paraEl, relsMap));
198
194
  // Also gather text from hyperlinks that are direct children of the paragraph.
199
195
  const hyperlinkNodes = this.parseHyperlinks(paraEl, relsMap);
200
196
  const allNodes = [...inlineNodes, ...hyperlinkNodes];
@@ -238,13 +234,22 @@ export class DocxConverter {
238
234
  * @param _relsMap - Relationship mapping (unused for runs, kept for signature).
239
235
  * @returns An array of inline AST nodes.
240
236
  */
241
- parseRuns(paraEl, _relsMap) {
237
+ parseRuns(paraEl, relsMap) {
242
238
  const nodes = [];
243
239
  const runs = paraEl.getElementsByTagName("w:r");
244
240
  for (let i = 0; i < runs.length; i++) {
245
241
  const run = runs.item(i);
246
242
  if (!run)
247
243
  continue;
244
+ // Check for inline images in <w:drawing> elements.
245
+ const drawing = run.getElementsByTagName("w:drawing")[0];
246
+ if (drawing) {
247
+ const imageNode = this.parseDrawing(drawing, relsMap);
248
+ if (imageNode) {
249
+ nodes.push(imageNode);
250
+ continue;
251
+ }
252
+ }
248
253
  const textEl = run.getElementsByTagName("w:t")[0];
249
254
  if (!textEl)
250
255
  continue;
@@ -281,6 +286,59 @@ export class DocxConverter {
281
286
  }
282
287
  return nodes;
283
288
  }
289
+ /**
290
+ * Parse a w:drawing element to extract an inline image.
291
+ *
292
+ * Looks for the relationship ID in wp:docPr or a:blip, resolves it via
293
+ * the relationship map, and reads the image data from the zip archive.
294
+ *
295
+ * @param drawingEl - The w:drawing XML element.
296
+ * @param relsMap - Relationship ID to target path mapping.
297
+ * @returns An ImageNode, or null if the image cannot be extracted.
298
+ */
299
+ parseDrawing(drawingEl, relsMap) {
300
+ // Try wp:inline first (most common for inline images).
301
+ const inline = drawingEl.getElementsByTagName("wp:inline")[0];
302
+ if (!inline)
303
+ return null;
304
+ // Extract alt text from wp:docPr.
305
+ const docPr = inline.getElementsByTagName("wp:docPr")[0];
306
+ const alt = docPr?.getAttribute("title") ?? docPr?.getAttribute("descr") ?? undefined;
307
+ // Find the blip element for the relationship ID.
308
+ const blip = inline.getElementsByTagName("a:blip")[0];
309
+ const rid = blip?.getAttribute("r:embed") ?? blip?.getAttribute("r:link") ?? "";
310
+ if (!rid)
311
+ return null;
312
+ const target = relsMap.get(rid);
313
+ if (!target)
314
+ return null;
315
+ // Build the image path (relative to word/ directory).
316
+ const imagePath = target.startsWith("/") ? target : `word/${target}`;
317
+ return createNode({
318
+ type: "image",
319
+ src: imagePath,
320
+ alt,
321
+ mimeType: this.guessImageMimeType(target),
322
+ });
323
+ }
324
+ /**
325
+ * Guess the MIME type from a file extension.
326
+ */
327
+ guessImageMimeType(path) {
328
+ const ext = path.split(".").pop()?.toLowerCase();
329
+ switch (ext) {
330
+ case "png": return "image/png";
331
+ case "jpg":
332
+ case "jpeg": return "image/jpeg";
333
+ case "gif": return "image/gif";
334
+ case "bmp": return "image/bmp";
335
+ case "tiff":
336
+ case "tif": return "image/tiff";
337
+ case "emf": return "image/emf";
338
+ case "wmf": return "image/wmf";
339
+ default: return "image/png";
340
+ }
341
+ }
284
342
  /**
285
343
  * Parse w:hyperlink elements inside a paragraph, resolving targets via the
286
344
  * relationship map.
@@ -428,9 +486,7 @@ export class DocxConverter {
428
486
  if (node.type === "text")
429
487
  return node.value;
430
488
  if ("children" in node && node.children) {
431
- return node.children
432
- .map((c) => this.getNodeText(c))
433
- .join("");
489
+ return node.children.map((c) => this.getNodeText(c)).join("");
434
490
  }
435
491
  return "";
436
492
  }
@@ -448,5 +504,35 @@ export class DocxConverter {
448
504
  return new Uint8Array(await data.arrayBuffer());
449
505
  return new TextEncoder().encode(data);
450
506
  }
507
+ /**
508
+ * Remove empty inline nodes and merge adjacent same-type wrapper nodes to
509
+ * eliminate `****` / `**text1****text2**` artifacts from OOXML run splitting.
510
+ */
511
+ mergeInlineRuns(nodes) {
512
+ const filtered = nodes.filter((n) => this.hasInlineContent(n));
513
+ const merged = [];
514
+ for (const node of filtered) {
515
+ const last = merged[merged.length - 1];
516
+ if (last &&
517
+ last.type === node.type &&
518
+ (node.type === "strong" || node.type === "emphasis" || node.type === "strikethrough")) {
519
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
520
+ last.children.push(...node.children);
521
+ }
522
+ else {
523
+ merged.push(node);
524
+ }
525
+ }
526
+ return merged;
527
+ }
528
+ /** Returns true if the node contains at least one non-empty text leaf. */
529
+ hasInlineContent(node) {
530
+ if (node.type === "text")
531
+ return node.value !== "";
532
+ if ("children" in node && Array.isArray(node.children)) {
533
+ return node.children.some((c) => this.hasInlineContent(c));
534
+ }
535
+ return true;
536
+ }
451
537
  }
452
538
  //# sourceMappingURL=docx-converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docx-converter.js","sourceRoot":"","sources":["../src/docx-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docx-converter.js","sourceRoot":"","sources":["../src/docx-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Namespace-agnostic tag-name matching for OOXML.
3
+ *
4
+ * Different DOM polyfills handle XML namespace prefixes inconsistently:
5
+ * - True XML parsers strip the prefix → `localName === "p"` for `<w:p>`.
6
+ * - HTML-oriented parsers like linkedom keep it → `localName === "w:p"`.
7
+ *
8
+ * This helper matches both shapes so the converter works under any polyfill.
9
+ */
10
+ export declare function isTag(node: Element | null | undefined, target: string): boolean;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAI/E"}
package/dist/utils.js ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Namespace-agnostic tag-name matching for OOXML.
3
+ *
4
+ * Different DOM polyfills handle XML namespace prefixes inconsistently:
5
+ * - True XML parsers strip the prefix → `localName === "p"` for `<w:p>`.
6
+ * - HTML-oriented parsers like linkedom keep it → `localName === "w:p"`.
7
+ *
8
+ * This helper matches both shapes so the converter works under any polyfill.
9
+ */
10
+ export function isTag(node, target) {
11
+ if (!node)
12
+ return false;
13
+ const name = node.localName || node.nodeName || "";
14
+ return name === target || name.endsWith(":" + target);
15
+ }
16
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,KAAK,CAAC,IAAgC,EAAE,MAAc;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACnD,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@markitdownjs/docx",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "description": "DOCX converter for MarkItDownJS",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,8 +18,8 @@
18
18
  ],
19
19
  "dependencies": {
20
20
  "jszip": "^3.10.0",
21
- "@markitdownjs/ast": "0.1.1",
22
- "@markitdownjs/shared": "0.1.1"
21
+ "@markitdownjs/ast": "0.1.3",
22
+ "@markitdownjs/shared": "0.3.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "typescript": "^5.5.0"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=docx-converter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docx-converter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/docx-converter.test.ts"],"names":[],"mappings":""}
@@ -1,26 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { DocxConverter } from '../docx-converter.js';
3
- describe('DocxConverter', () => {
4
- const converter = new DocxConverter();
5
- it('should detect DOCX by MIME type', async () => {
6
- expect(await converter.canConvert({
7
- data: '',
8
- mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
9
- })).toBe(true);
10
- });
11
- it('should detect DOCX by extension', async () => {
12
- expect(await converter.canConvert({ data: '', fileName: 'test.docx' })).toBe(true);
13
- });
14
- it('should detect DOCX by PK magic bytes (ZIP)', async () => {
15
- const zipHeader = new Uint8Array([0x50, 0x4b, 0x03, 0x04, 0, 0, 0, 0]);
16
- expect(await converter.canConvert({ data: zipHeader })).toBe(true);
17
- });
18
- it('should reject non-DOCX files', async () => {
19
- expect(await converter.canConvert({ data: 'hello', fileName: 'test.txt' })).toBe(false);
20
- });
21
- it('should throw for invalid DOCX data (no word/document.xml)', async () => {
22
- const invalidDocx = new Uint8Array([0x50, 0x4b, 0x03, 0x04]);
23
- await expect(converter.convert({ data: invalidDocx, mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' })).rejects.toThrow();
24
- });
25
- });
26
- //# sourceMappingURL=docx-converter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docx-converter.test.js","sourceRoot":"","sources":["../../src/__tests__/docx-converter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;IAEtC,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC;YAChC,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,yEAAyE;SACpF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,CACV,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,yEAAyE,EAAE,CAAC,CAC9H,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}