@cosmocoder/mcp-web-docs 2.0.13 → 2.0.14
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/build/config.d.ts +0 -1
- package/build/config.js +0 -5
- package/build/config.js.map +1 -1
- package/build/config.test.js +1 -25
- package/build/config.test.js.map +1 -1
- package/build/crawler/base.test.js +1 -0
- package/build/crawler/base.test.js.map +1 -1
- package/build/crawler/content-extractor-types.d.ts +3 -0
- package/build/crawler/crawlee-crawler.js +14 -9
- package/build/crawler/crawlee-crawler.js.map +1 -1
- package/build/crawler/crawlee-crawler.test.js +58 -7
- package/build/crawler/crawlee-crawler.test.js.map +1 -1
- package/build/crawler/default-extractor.js +1 -0
- package/build/crawler/default-extractor.js.map +1 -1
- package/build/crawler/default-extractor.test.js +1 -0
- package/build/crawler/default-extractor.test.js.map +1 -1
- package/build/crawler/docs-crawler.test.js +18 -10
- package/build/crawler/docs-crawler.test.js.map +1 -1
- package/build/crawler/github-pages-extractor.js +2 -0
- package/build/crawler/github-pages-extractor.js.map +1 -1
- package/build/crawler/github-pages-extractor.test.js +2 -0
- package/build/crawler/github-pages-extractor.test.js.map +1 -1
- package/build/crawler/github.js +1 -0
- package/build/crawler/github.js.map +1 -1
- package/build/crawler/github.test.js +1 -0
- package/build/crawler/github.test.js.map +1 -1
- package/build/crawler/queue-manager.test.js +7 -0
- package/build/crawler/queue-manager.test.js.map +1 -1
- package/build/crawler/storybook-extractor.js +3 -0
- package/build/crawler/storybook-extractor.js.map +1 -1
- package/build/crawler/storybook-extractor.test.js +2 -0
- package/build/crawler/storybook-extractor.test.js.map +1 -1
- package/build/index.test.js +2 -2
- package/build/index.test.js.map +1 -1
- package/build/processor/markdown.d.ts +15 -6
- package/build/processor/markdown.js +7 -30
- package/build/processor/markdown.js.map +1 -1
- package/build/processor/markdown.test.js +39 -6
- package/build/processor/markdown.test.js.map +1 -1
- package/build/processor/processor.js +8 -26
- package/build/processor/processor.js.map +1 -1
- package/build/processor/processor.test.js +118 -172
- package/build/processor/processor.test.js.map +1 -1
- package/build/types.d.ts +2 -0
- package/package.json +2 -3
- package/build/processor/content.d.ts +0 -16
- package/build/processor/content.js +0 -287
- package/build/processor/content.js.map +0 -1
- package/build/processor/content.test.d.ts +0 -1
- package/build/processor/content.test.js +0 -369
- package/build/processor/content.test.js.map +0 -1
|
@@ -5,6 +5,7 @@ describe('Markdown Processor', () => {
|
|
|
5
5
|
const page = {
|
|
6
6
|
url: 'https://example.com/docs/guide.md',
|
|
7
7
|
path: '/docs/guide.md',
|
|
8
|
+
contentFormat: 'markdown',
|
|
8
9
|
title: 'Guide',
|
|
9
10
|
content: `# Introduction
|
|
10
11
|
|
|
@@ -35,6 +36,7 @@ npm install our-library
|
|
|
35
36
|
const page = {
|
|
36
37
|
url: 'https://example.com/docs/page.md',
|
|
37
38
|
path: '/docs/page.md',
|
|
39
|
+
contentFormat: 'markdown',
|
|
38
40
|
title: 'Page',
|
|
39
41
|
content: `---
|
|
40
42
|
title: Custom Title
|
|
@@ -54,6 +56,7 @@ Content here.
|
|
|
54
56
|
const page = {
|
|
55
57
|
url: 'https://example.com/docs/code.md',
|
|
56
58
|
path: '/docs/code.md',
|
|
59
|
+
contentFormat: 'markdown',
|
|
57
60
|
title: 'Code Examples',
|
|
58
61
|
content: `# Code Examples
|
|
59
62
|
|
|
@@ -83,6 +86,7 @@ def hello():
|
|
|
83
86
|
const page = {
|
|
84
87
|
url: 'https://example.com/docs/simple.md',
|
|
85
88
|
path: '/docs/simple.md',
|
|
89
|
+
contentFormat: 'markdown',
|
|
86
90
|
title: 'Simple Page',
|
|
87
91
|
content: `This is just a simple paragraph.
|
|
88
92
|
|
|
@@ -94,11 +98,36 @@ And a final one.
|
|
|
94
98
|
const result = await processMarkdownContent(page);
|
|
95
99
|
expect(result).toBeDefined();
|
|
96
100
|
expect(result?.article.components.length).toBeGreaterThan(0);
|
|
101
|
+
expect(result?.article.title).toBe('Simple Page');
|
|
102
|
+
});
|
|
103
|
+
it('should preserve heading-only markdown', async () => {
|
|
104
|
+
const page = {
|
|
105
|
+
url: 'https://storybook.example.com/button',
|
|
106
|
+
path: '/button',
|
|
107
|
+
contentFormat: 'markdown',
|
|
108
|
+
title: '',
|
|
109
|
+
content: '# Button Component',
|
|
110
|
+
};
|
|
111
|
+
const result = await processMarkdownContent(page);
|
|
112
|
+
expect(result?.article.title).toBe('Button Component');
|
|
113
|
+
expect(result?.article.components).toEqual([{ title: 'Button Component', body: '' }]);
|
|
114
|
+
});
|
|
115
|
+
it('should preserve the supplied page title when its H1 differs', async () => {
|
|
116
|
+
const page = {
|
|
117
|
+
url: 'https://example.com/docs/guide.md',
|
|
118
|
+
path: '/docs/guide.md',
|
|
119
|
+
contentFormat: 'markdown',
|
|
120
|
+
title: 'Crawled Title',
|
|
121
|
+
content: 'Introductory preamble.\n\n# Real Guide\n\nGuide body.',
|
|
122
|
+
};
|
|
123
|
+
const result = await processMarkdownContent(page);
|
|
124
|
+
expect(result?.article.title).toBe('Crawled Title');
|
|
97
125
|
});
|
|
98
126
|
it('should return undefined for empty content', async () => {
|
|
99
127
|
const page = {
|
|
100
128
|
url: 'https://example.com/docs/empty.md',
|
|
101
129
|
path: '/docs/empty.md',
|
|
130
|
+
contentFormat: 'markdown',
|
|
102
131
|
title: 'Empty',
|
|
103
132
|
content: '',
|
|
104
133
|
};
|
|
@@ -109,6 +138,7 @@ And a final one.
|
|
|
109
138
|
const page = {
|
|
110
139
|
url: 'https://example.com/docs/whitespace.md',
|
|
111
140
|
path: '/docs/whitespace.md',
|
|
141
|
+
contentFormat: 'markdown',
|
|
112
142
|
title: 'Whitespace',
|
|
113
143
|
content: ' \n\n \n ',
|
|
114
144
|
};
|
|
@@ -119,6 +149,7 @@ And a final one.
|
|
|
119
149
|
const page = {
|
|
120
150
|
url: 'https://example.com/docs/nested.md',
|
|
121
151
|
path: '/docs/nested.md',
|
|
152
|
+
contentFormat: 'markdown',
|
|
122
153
|
title: 'Nested',
|
|
123
154
|
content: `# Top Level
|
|
124
155
|
|
|
@@ -145,6 +176,7 @@ Deep content.
|
|
|
145
176
|
const page = {
|
|
146
177
|
url: 'https://example.com/docs/docusaurus.md',
|
|
147
178
|
path: '/docs/docusaurus.md',
|
|
179
|
+
contentFormat: 'markdown',
|
|
148
180
|
title: 'Docusaurus Page',
|
|
149
181
|
content: `# Main Title
|
|
150
182
|
|
|
@@ -167,6 +199,7 @@ Here is an example.
|
|
|
167
199
|
const page = {
|
|
168
200
|
url: 'https://example.com/docs/special.md',
|
|
169
201
|
path: '/docs/special.md',
|
|
202
|
+
contentFormat: 'markdown',
|
|
170
203
|
title: 'Special Characters',
|
|
171
204
|
content: `# Special Characters
|
|
172
205
|
|
|
@@ -193,6 +226,7 @@ Here are some special characters: < > & " ' \` * _ [] () {}
|
|
|
193
226
|
const page = {
|
|
194
227
|
url: 'https://example.com/component',
|
|
195
228
|
path: '/component',
|
|
229
|
+
contentFormat: 'text',
|
|
196
230
|
title: 'Button Component',
|
|
197
231
|
content: `# Button
|
|
198
232
|
|
|
@@ -211,7 +245,6 @@ A versatile button component.
|
|
|
211
245
|
<Button variant="secondary">Click me</Button>
|
|
212
246
|
\`\`\`
|
|
213
247
|
`,
|
|
214
|
-
extractorUsed: 'StorybookExtractor',
|
|
215
248
|
};
|
|
216
249
|
const result = await processExtractedContent(page);
|
|
217
250
|
expect(result).toBeDefined();
|
|
@@ -222,11 +255,11 @@ A versatile button component.
|
|
|
222
255
|
const page = {
|
|
223
256
|
url: 'https://example.com/simple',
|
|
224
257
|
path: '/simple',
|
|
258
|
+
contentFormat: 'text',
|
|
225
259
|
title: 'Simple Page',
|
|
226
260
|
content: `Just some plain text content without any headers or structure.
|
|
227
261
|
|
|
228
262
|
This is another paragraph.`,
|
|
229
|
-
extractorUsed: 'DefaultExtractor',
|
|
230
263
|
};
|
|
231
264
|
const result = await processExtractedContent(page);
|
|
232
265
|
expect(result).toBeDefined();
|
|
@@ -237,9 +270,9 @@ This is another paragraph.`,
|
|
|
237
270
|
const page = {
|
|
238
271
|
url: 'https://example.com/empty',
|
|
239
272
|
path: '/empty',
|
|
273
|
+
contentFormat: 'text',
|
|
240
274
|
title: 'Empty',
|
|
241
275
|
content: '',
|
|
242
|
-
extractorUsed: 'StorybookExtractor',
|
|
243
276
|
};
|
|
244
277
|
const result = await processExtractedContent(page);
|
|
245
278
|
expect(result).toBeUndefined();
|
|
@@ -248,6 +281,7 @@ This is another paragraph.`,
|
|
|
248
281
|
const page = {
|
|
249
282
|
url: 'https://example.com/formatted',
|
|
250
283
|
path: '/formatted',
|
|
284
|
+
contentFormat: 'text',
|
|
251
285
|
title: 'Formatted',
|
|
252
286
|
content: `# Formatted Content
|
|
253
287
|
|
|
@@ -261,7 +295,6 @@ Here is **bold** and *italic* text.
|
|
|
261
295
|
|
|
262
296
|
And some \`inline code\` too.
|
|
263
297
|
`,
|
|
264
|
-
extractorUsed: 'GithubPagesExtractor',
|
|
265
298
|
};
|
|
266
299
|
const result = await processExtractedContent(page);
|
|
267
300
|
expect(result).toBeDefined();
|
|
@@ -273,6 +306,7 @@ And some \`inline code\` too.
|
|
|
273
306
|
const page = {
|
|
274
307
|
url: 'https://example.com/notitle',
|
|
275
308
|
path: '/notitle',
|
|
309
|
+
contentFormat: 'text',
|
|
276
310
|
title: 'Page Title from Crawl',
|
|
277
311
|
content: `## Only H2 Headers
|
|
278
312
|
|
|
@@ -282,7 +316,6 @@ Some content here.
|
|
|
282
316
|
|
|
283
317
|
More content.
|
|
284
318
|
`,
|
|
285
|
-
extractorUsed: 'StorybookExtractor',
|
|
286
319
|
};
|
|
287
320
|
const result = await processExtractedContent(page);
|
|
288
321
|
expect(result).toBeDefined();
|
|
@@ -299,9 +332,9 @@ ${Array(100)
|
|
|
299
332
|
const page = {
|
|
300
333
|
url: 'https://example.com/long',
|
|
301
334
|
path: '/long',
|
|
335
|
+
contentFormat: 'text',
|
|
302
336
|
title: 'Long Document',
|
|
303
337
|
content: longContent,
|
|
304
|
-
extractorUsed: 'DefaultExtractor',
|
|
305
338
|
};
|
|
306
339
|
const result = await processExtractedContent(page);
|
|
307
340
|
expect(result).toBeDefined();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../src/processor/markdown.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGhF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,IAAI,GAAgB;gBACxB,GAAG,EAAE,mCAAmC;gBACxC,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE;;;;;;;;;;;;;;;CAehB;aACM,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,kEAAkE;YAClE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAI,GAAgB;gBACxB,GAAG,EAAE,kCAAkC;gBACvC,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE;;;;;;;;CAQhB;aACM,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAI,GAAgB;gBACxB,GAAG,EAAE,kCAAkC;gBACvC,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE;;;;;;;;;;;;;;;;CAgBhB;aACM,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,IAAI,GAAgB;gBACxB,GAAG,EAAE,oCAAoC;gBACzC,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE;;;;;CAKhB;aACM,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../src/processor/markdown.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import { processHtmlContent } from './content.js';
|
|
2
1
|
import { processMarkdownContent, processExtractedContent } from './markdown.js';
|
|
3
|
-
import { isMarkdownPath } from '../config.js';
|
|
4
2
|
import { logger } from '../util/logger.js';
|
|
5
3
|
import { parseMetadata } from './metadata-parser.js';
|
|
6
|
-
// Extractors that return already-formatted or plain text content (not raw HTML)
|
|
7
|
-
const FORMATTED_CONTENT_EXTRACTORS = [
|
|
8
|
-
'StorybookExtractor',
|
|
9
|
-
'GithubPagesExtractor',
|
|
10
|
-
'DefaultExtractor', // Crawlee's default extractor returns plain text, not HTML
|
|
11
|
-
// Add more extractors here as they're implemented
|
|
12
|
-
];
|
|
13
4
|
/**
|
|
14
5
|
* Create a DocumentChunk with parsed metadata from the content
|
|
15
6
|
*/
|
|
@@ -120,24 +111,15 @@ export class WebDocumentProcessor {
|
|
|
120
111
|
logger.debug(`[WebDocumentProcessor] Content length: ${crawlResult.content.length} bytes`);
|
|
121
112
|
logger.debug(`[WebDocumentProcessor] Extractor used: ${crawlResult.extractorUsed || 'unknown'}`);
|
|
122
113
|
try {
|
|
123
|
-
|
|
114
|
+
logger.debug(`[WebDocumentProcessor] Using ${crawlResult.contentFormat} processor for ${crawlResult.path}`);
|
|
124
115
|
let processedContent;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
else if (isMarkdownPath(crawlResult.path)) {
|
|
133
|
-
// Raw markdown file
|
|
134
|
-
logger.debug(`[WebDocumentProcessor] Using markdown processor for ${crawlResult.path}`);
|
|
135
|
-
processedContent = await processMarkdownContent(crawlResult);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
// Raw HTML - needs parsing
|
|
139
|
-
logger.debug(`[WebDocumentProcessor] Using HTML processor for ${crawlResult.path}`);
|
|
140
|
-
processedContent = await processHtmlContent(crawlResult);
|
|
116
|
+
switch (crawlResult.contentFormat) {
|
|
117
|
+
case 'markdown':
|
|
118
|
+
processedContent = await processMarkdownContent(crawlResult);
|
|
119
|
+
break;
|
|
120
|
+
case 'text':
|
|
121
|
+
processedContent = await processExtractedContent(crawlResult);
|
|
122
|
+
break;
|
|
141
123
|
}
|
|
142
124
|
if (!processedContent) {
|
|
143
125
|
logger.error(`[WebDocumentProcessor] Failed to parse document content for ${crawlResult.url}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/processor/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/processor/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,SAAS,uBAAuB,CAC9B,OAAe,EACf,YAA0D,EAC1D,SAAiB,EACjB,OAAe,EACf,MAAgB;IAEhB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,GAAG,EAAE,YAAY,CAAC,GAAG;QACrB,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,WAAW;YACxB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACzD,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;SACzE;KACF,CAAC;AACJ,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,eAAe,CAC7B,OAAe,EACf,YAAoB,EACpB,UAA8B,EAC9B,QAIC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAChD,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC;YACnC,SAAS;QACX,CAAC;QAED,gEAAgE;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExD,kDAAkD;QAClD,IAAI,aAAa,GAAG,YAAY,EAAE,CAAC;YACjC,yCAAyC;YACzC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACpD,MAAM,uBAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;gBACjG,YAAY,GAAG,EAAE,CAAC;YACpB,CAAC;YAED,mCAAmC;YACnC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,cAAc,GAAG,CAAC,CAAC;YAEvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAElD,IAAI,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;oBACnD,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;wBACrD,MAAM,uBAAuB,CAC3B,aAAa,CAAC,IAAI,EAAE,EACpB,QAAQ,EACR,WAAW,EACX,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAClD,MAAM,CACP,CAAC;oBACJ,CAAC;oBACD,aAAa,GAAG,QAAQ,CAAC;oBACzB,cAAc,GAAG,UAAU,CAAC;gBAC9B,CAAC;qBACI,CAAC;oBACJ,aAAa,IAAI,GAAG,GAAG,QAAQ,CAAC;oBAChC,cAAc,IAAI,UAAU,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACrD,MAAM,uBAAuB,CAC3B,aAAa,CAAC,IAAI,EAAE,EACpB,QAAQ,EACR,WAAW,EACX,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAClD,MAAM,CACP,CAAC;YACJ,CAAC;QACH,CAAC;QACD,8EAA8E;aACzE,IAAI,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;YACvD,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACpD,MAAM,uBAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YACnG,CAAC;YACD,YAAY,GAAG,WAAW,CAAC;YAC3B,UAAU,GAAG,aAAa,CAAC;YAC3B,SAAS,GAAG,WAAW,CAAC;QAC1B,CAAC;QACD,yCAAyC;aACpC,CAAC;YACJ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,YAAY,IAAI,MAAM,CAAC;YACzB,CAAC;YACD,YAAY,IAAI,WAAW,CAAC;YAC5B,UAAU,IAAI,aAAa,CAAC;QAC9B,CAAC;QAED,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,iCAAiC;IACjC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,uBAAuB,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC;AACH,CAAC;AAED,MAAM,OAAO,oBAAoB;IAEZ;IACA;IAFnB,YACmB,UAA8B,EAC9B,eAAuB,IAAI;QAD3B,eAAU,GAAV,UAAU,CAAoB;QAC9B,iBAAY,GAAZ,YAAY,CAAe;IAC3C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,WAAwB;QACpC,MAAM,CAAC,KAAK,CAAC,qCAAqC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,0CAA0C,WAAW,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC3F,MAAM,CAAC,KAAK,CAAC,0CAA0C,WAAW,CAAC,aAAa,IAAI,SAAS,EAAE,CAAC,CAAC;QAEjG,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,gCAAgC,WAAW,CAAC,aAAa,kBAAkB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5G,IAAI,gBAAgB,CAAC;YACrB,QAAQ,WAAW,CAAC,aAAa,EAAE,CAAC;gBAClC,KAAK,UAAU;oBACb,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;oBAC7D,MAAM;gBACR,KAAK,MAAM;oBACT,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;oBAC9D,MAAM;YACV,CAAC;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,CAAC,+DAA+D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/F,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,6DAA6D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,gCAAgC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;YACtG,MAAM,CAAC,KAAK,CAAC,8CAA8C,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAE7F,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,MAAM,QAAQ,GAAG;gBACf,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG;gBACjC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK;gBACrC,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI;aACpC,CAAC;YAEF,oCAAoC;YACpC,KAAK,MAAM,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC5D,MAAM,CAAC,KAAK,CAAC,gDAAgD,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChF,MAAM,CAAC,KAAK,CAAC,iDAAiD,SAAS,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;gBAE7F,MAAM,gBAAgB,GAAG,GAAG,SAAS,CAAC,KAAK,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;oBAC1G,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnB,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,kCAAkC,WAAW,SAAS,CAAC,CAAC;YAErE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,2DAA2D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1F,MAAM,CAAC,IAAI,CAAC,mDAAmD,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7F,MAAM,CAAC,IAAI,CAAC,oDAAoD,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,iDAAiD,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YACjF,OAAO;gBACL,QAAQ,EAAE;oBACR,GAAG,EAAE,WAAW,CAAC,GAAG;oBACpB,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK;oBACrC,WAAW,EAAE,IAAI,IAAI,EAAE;iBACxB;gBACD,MAAM;aACP,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,2CAA2C,WAAW,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACpG,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|