felixarntz 0.2.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.
package/dist/index.js CHANGED
@@ -1,226 +1,193 @@
1
1
  #!/usr/bin/env node
2
-
3
2
  // src/util/parse-html.ts
3
+ /**
4
+ * Extracts the content of the node with the given ID from an HTML string.
5
+ *
6
+ * @param html - The HTML string to parse.
7
+ * @param id - The ID of the element to extract.
8
+ * @returns The extracted text content.
9
+ */
4
10
  function parseHtml(html, id) {
5
- const idRegex = new RegExp(
6
- `<([a-zA-Z0-9]+)\\s+[^>]*id\\s*=\\s*["']${id}["'][^>]*>`,
7
- "i"
8
- );
9
- const match = html.match(idRegex);
10
- if (!match) {
11
- return "";
12
- }
13
- const tagName = match[1];
14
- const startIndex = match.index + match[0].length;
15
- let depth = 1;
16
- const tagRegex = new RegExp(`</?${tagName}\\b[^>]*>`, "gi");
17
- tagRegex.lastIndex = startIndex;
18
- let endIndex = -1;
19
- let tagMatch;
20
- while ((tagMatch = tagRegex.exec(html)) !== null) {
21
- if (tagMatch[0].startsWith("</")) {
22
- depth--;
23
- } else if (!tagMatch[0].endsWith("/>")) {
24
- depth++;
25
- }
26
- if (depth === 0) {
27
- endIndex = tagMatch.index;
28
- break;
29
- }
30
- }
31
- if (endIndex === -1) {
32
- return "";
33
- }
34
- let content = html.substring(startIndex, endIndex);
35
- const BR_PLACEHOLDER = "___BR___";
36
- const P_SEP_PLACEHOLDER = "___P_SEP___";
37
- content = content.replace(/<br\s*\/?>/gi, BR_PLACEHOLDER);
38
- content = content.replace(/<\/?p(\s+[^>]*)?>/gi, P_SEP_PLACEHOLDER);
39
- content = content.replace(/<[^>]+>/g, "");
40
- content = content.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#8217;/g, "'").replace(/&#039;/g, "'");
41
- content = content.replace(/\s+/g, " ");
42
- content = content.replace(new RegExp(BR_PLACEHOLDER, "g"), "\n");
43
- const parts = content.split(P_SEP_PLACEHOLDER);
44
- const paragraphs = parts.map((p) => p.trim()).filter((p) => p.length > 0);
45
- return paragraphs.join("\n\n");
11
+ const idRegex = new RegExp(`<([a-zA-Z0-9]+)\\s+[^>]*id\\s*=\\s*["']${id}["'][^>]*>`, "i");
12
+ const match = html.match(idRegex);
13
+ if (!match) return "";
14
+ const tagName = match[1];
15
+ const startIndex = (match.index ?? 0) + match[0].length;
16
+ let depth = 1;
17
+ const tagRegex = new RegExp(`</?${tagName}\\b[^>]*>`, "gi");
18
+ tagRegex.lastIndex = startIndex;
19
+ let endIndex = -1;
20
+ for (;;) {
21
+ const tagMatch = tagRegex.exec(html);
22
+ if (tagMatch === null) break;
23
+ if (tagMatch[0].startsWith("</")) depth--;
24
+ else if (!tagMatch[0].endsWith("/>")) depth++;
25
+ if (depth === 0) {
26
+ endIndex = tagMatch.index;
27
+ break;
28
+ }
29
+ }
30
+ if (endIndex === -1) return "";
31
+ let content = html.slice(startIndex, endIndex);
32
+ const BR_PLACEHOLDER = "___BR___";
33
+ const P_SEP_PLACEHOLDER = "___P_SEP___";
34
+ content = content.replace(/<br\s*\/?>/gi, BR_PLACEHOLDER);
35
+ content = content.replace(/<\/?p(\s+[^>]*)?>/gi, P_SEP_PLACEHOLDER);
36
+ content = content.replace(/<[^>]+>/g, "");
37
+ content = content.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&#8217;/g, "'").replace(/&#039;/g, "'");
38
+ content = content.replace(/\s+/g, " ");
39
+ content = content.replace(new RegExp(BR_PLACEHOLDER, "g"), "\n");
40
+ return content.split(P_SEP_PLACEHOLDER).map((p) => p.trim()).filter((p) => p.length > 0).join("\n\n");
46
41
  }
47
-
48
42
  // src/util/parse-html-links.ts
43
+ const LINK_TAG_REGEX = /<a\b([^>]*)>([\s\S]*?)<\/a>/gi;
44
+ const HREF_ATTR_REGEX = /href\s*=\s*(["'])(.*?)\1/i;
45
+ const HTTP_URL_REGEX = /^https?:\/\//i;
46
+ const STRIP_TAGS_REGEX = /<[^>]+>/g;
47
+ const IMG_ALT_REGEX = /<img\b[^>]*alt\s*=\s*(["'])(.*?)\1/i;
48
+ const WHITESPACE_REGEX = /\s+/g;
49
+ function findClosingTagIndex(html, tagName, startIndex) {
50
+ const tagRegex = new RegExp(`</?${tagName}\\b[^>]*>`, "gi");
51
+ tagRegex.lastIndex = startIndex;
52
+ let depth = 1;
53
+ for (;;) {
54
+ const tagMatch = tagRegex.exec(html);
55
+ if (tagMatch === null) break;
56
+ if (tagMatch[0].startsWith("</")) depth--;
57
+ else if (!tagMatch[0].endsWith("/>")) depth++;
58
+ if (depth === 0) return tagMatch.index;
59
+ }
60
+ return -1;
61
+ }
62
+ function decodeEntities(text) {
63
+ return text.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&#8217;/g, "'").replace(/&#039;/g, "'");
64
+ }
65
+ function extractLinkEntry(attributes, innerContent) {
66
+ const hrefMatch = attributes.match(HREF_ATTR_REGEX);
67
+ if (!hrefMatch) return null;
68
+ const href = hrefMatch[2].trim();
69
+ if (!HTTP_URL_REGEX.test(href)) return null;
70
+ let label = innerContent.replace(STRIP_TAGS_REGEX, "");
71
+ let isFromAlt = false;
72
+ if (!label.trim()) {
73
+ const imgMatch = innerContent.match(IMG_ALT_REGEX);
74
+ if (imgMatch) {
75
+ label = imgMatch[2];
76
+ isFromAlt = true;
77
+ }
78
+ }
79
+ label = decodeEntities(label).replace(WHITESPACE_REGEX, " ").trim();
80
+ return {
81
+ href,
82
+ label,
83
+ isFromAlt
84
+ };
85
+ }
86
+ /**
87
+ * Extracts links from the node with the given ID in an HTML string.
88
+ *
89
+ * @param html - The HTML string to parse.
90
+ * @param id - The ID of the element to extract links from.
91
+ * @returns A markdown list of links.
92
+ */
49
93
  function parseHtmlLinks(html, id) {
50
- const idRegex = new RegExp(
51
- `<([a-zA-Z0-9]+)\\s+[^>]*id\\s*=\\s*["']${id}["'][^>]*>`,
52
- "i"
53
- );
54
- const match = html.match(idRegex);
55
- if (!match) {
56
- return "";
57
- }
58
- const tagName = match[1];
59
- const startIndex = match.index + match[0].length;
60
- let depth = 1;
61
- const tagRegex = new RegExp(`</?${tagName}\\b[^>]*>`, "gi");
62
- tagRegex.lastIndex = startIndex;
63
- let endIndex = -1;
64
- let tagMatch;
65
- while ((tagMatch = tagRegex.exec(html)) !== null) {
66
- if (tagMatch[0].startsWith("</")) {
67
- depth--;
68
- } else if (!tagMatch[0].endsWith("/>")) {
69
- depth++;
70
- }
71
- if (depth === 0) {
72
- endIndex = tagMatch.index;
73
- break;
74
- }
75
- }
76
- if (endIndex === -1) {
77
- return "";
78
- }
79
- const content = html.substring(startIndex, endIndex);
80
- const linksMap = /* @__PURE__ */ new Map();
81
- const linkRegex = /<a\b([^>]*)>([\s\S]*?)<\/a>/gi;
82
- let linkMatch;
83
- while ((linkMatch = linkRegex.exec(content)) !== null) {
84
- const attributes = linkMatch[1];
85
- const innerContent = linkMatch[2];
86
- const hrefMatch = attributes.match(/href\s*=\s*(["'])(.*?)\1/i);
87
- if (!hrefMatch) {
88
- continue;
89
- }
90
- const href = hrefMatch[2].trim();
91
- if (!/^https?:\/\//i.test(href)) {
92
- continue;
93
- }
94
- let label = innerContent.replace(/<[^>]+>/g, "");
95
- let isFromAlt = false;
96
- if (!label.trim()) {
97
- const imgMatch = innerContent.match(
98
- /<img\b[^>]*alt\s*=\s*(["'])(.*?)\1/i
99
- );
100
- if (imgMatch) {
101
- label = imgMatch[2];
102
- isFromAlt = true;
103
- }
104
- }
105
- label = label.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#8217;/g, "'").replace(/&#039;/g, "'");
106
- label = label.replace(/\s+/g, " ").trim();
107
- if (!linksMap.has(href)) {
108
- linksMap.set(href, { label, isFromAlt });
109
- } else {
110
- const existing = linksMap.get(href);
111
- if (existing.isFromAlt && !isFromAlt) {
112
- linksMap.set(href, { label, isFromAlt });
113
- }
114
- }
115
- }
116
- return Array.from(linksMap.entries()).map(([href, { label }]) => `- ${label}: ${href}`).join("\n");
94
+ const idRegex = new RegExp(`<([a-zA-Z0-9]+)\\s+[^>]*id\\s*=\\s*["']${id}["'][^>]*>`, "i");
95
+ const match = html.match(idRegex);
96
+ if (!match) return "";
97
+ const tagName = match[1];
98
+ const startIndex = (match.index ?? 0) + match[0].length;
99
+ const endIndex = findClosingTagIndex(html, tagName, startIndex);
100
+ if (endIndex === -1) return "";
101
+ const content = html.slice(startIndex, endIndex);
102
+ const linksMap = /* @__PURE__ */ new Map();
103
+ LINK_TAG_REGEX.lastIndex = 0;
104
+ for (;;) {
105
+ const linkMatch = LINK_TAG_REGEX.exec(content);
106
+ if (linkMatch === null) break;
107
+ const entry = extractLinkEntry(linkMatch[1], linkMatch[2]);
108
+ if (!entry) continue;
109
+ const { href, label, isFromAlt } = entry;
110
+ const existing = linksMap.get(href);
111
+ if (!existing || existing.isFromAlt && !isFromAlt) linksMap.set(href, {
112
+ label,
113
+ isFromAlt
114
+ });
115
+ }
116
+ return Array.from(linksMap.entries()).map(([href, { label }]) => `- ${label}: ${href}`).join("\n");
117
117
  }
118
-
119
118
  // src/index.ts
120
- var HTML_URL = "https://felix-arntz.me/";
121
- var WEBSITE_DOMAIN = "felix-arntz.me";
122
- var bootLines = [
123
- "*************** FELIXARNTZ-CLI(R) V2000 ***************",
124
- "",
125
- "",
126
- "",
127
- "WP-ADMIN/INDEX.PHP 200 OK",
128
- "AI SDK PROVIDERS INITIALIZED",
129
- "LCP UNDER 100MS ACHIEVED",
130
- "VECTOR EMBEDDINGS ONLINE",
131
- "GUTENBERG BLOCKS PARSED",
132
- "EXECUTION MODE: AGENTIC"
119
+ const HTML_URL = "https://felix-arntz.me/";
120
+ const WEBSITE_DOMAIN = "felix-arntz.me";
121
+ const bootLines = [
122
+ "*************** FELIXARNTZ-CLI(R) V2000 ***************",
123
+ "",
124
+ "",
125
+ "",
126
+ "WP-ADMIN/INDEX.PHP 200 OK",
127
+ "AI SDK PROVIDERS INITIALIZED",
128
+ "LCP UNDER 100MS ACHIEVED",
129
+ "VECTOR EMBEDDINGS ONLINE",
130
+ "GUTENBERG BLOCKS PARSED",
131
+ "EXECUTION MODE: AGENTIC"
133
132
  ];
134
- var fetchAndParseContent = async () => {
135
- const removeCategoryLinks = (text) => text.split("\n").filter((line) => !line.includes("/category/")).join("\n");
136
- const response = await fetch(HTML_URL);
137
- const html = await response.text();
138
- const introText = parseHtml(html, "felixarntz-intro");
139
- const socialLinksText = parseHtmlLinks(html, "felixarntz-social");
140
- const projectsText = parseHtmlLinks(html, "felixarntz-projects");
141
- const latestPostsText = removeCategoryLinks(
142
- parseHtmlLinks(html, "felixarntz-latest-posts")
143
- );
144
- const parts = [introText];
145
- if (socialLinksText) {
146
- parts.push(`Connect with me on socials:
147
-
148
- ${socialLinksText}`);
149
- parts.push(`Or visit my website @ ${WEBSITE_DOMAIN}`);
150
- } else {
151
- parts.push(`Visit my website @ ${WEBSITE_DOMAIN}`);
152
- }
153
- if (projectsText) {
154
- parts.push(
155
- `Some of the projects I have contributed to:
156
-
157
- ${projectsText}`
158
- );
159
- }
160
- if (latestPostsText) {
161
- parts.push(`My latest blog posts:
162
-
163
- ${latestPostsText}`);
164
- }
165
- return parts.join("\n\n");
133
+ const fetchAndParseContent = async () => {
134
+ const removeCategoryLinks = (text) => text.split("\n").filter((line) => !line.includes("/category/")).join("\n");
135
+ const html = await (await fetch(HTML_URL)).text();
136
+ const introText = parseHtml(html, "felixarntz-intro");
137
+ const socialLinksText = parseHtmlLinks(html, "felixarntz-social");
138
+ const projectsText = parseHtmlLinks(html, "felixarntz-projects");
139
+ const latestPostsText = removeCategoryLinks(parseHtmlLinks(html, "felixarntz-latest-posts"));
140
+ const parts = [introText];
141
+ if (socialLinksText) {
142
+ parts.push(`Connect with me on socials:\n\n${socialLinksText}`);
143
+ parts.push(`Or visit my website @ ${WEBSITE_DOMAIN}`);
144
+ } else parts.push(`Visit my website @ ${WEBSITE_DOMAIN}`);
145
+ if (projectsText) parts.push(`Some of the projects I have contributed to:\n\n${projectsText}`);
146
+ if (latestPostsText) parts.push(`My latest blog posts:\n\n${latestPostsText}`);
147
+ return parts.join("\n\n");
166
148
  };
167
- var formatContentLines = (content) => {
168
- const lines = content.split("\n").map((line) => line.trim());
169
- const formattedLines = [];
170
- for (const line of lines) {
171
- if (line.startsWith("## ")) {
172
- formattedLines.push(`\u2501\u2501\u2501 ${line.slice(3).toUpperCase()} \u2501\u2501\u2501`);
173
- } else if (line.startsWith("- ")) {
174
- formattedLines.push(` \u2022 ${line.slice(2)}`);
175
- } else {
176
- formattedLines.push(line);
177
- }
178
- }
179
- return formattedLines;
149
+ const formatContentLines = (content) => {
150
+ const lines = content.split("\n").map((line) => line.trim());
151
+ const formattedLines = [];
152
+ for (const line of lines) if (line.startsWith("## ")) formattedLines.push(`━━━ ${line.slice(3).toUpperCase()} ━━━`);
153
+ else if (line.startsWith("- ")) formattedLines.push(` • ${line.slice(2)}`);
154
+ else formattedLines.push(line);
155
+ return formattedLines;
180
156
  };
181
- var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
182
- var printCharacter = async (char) => {
183
- process.stdout.write(char);
184
- await sleep(10);
157
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
158
+ const printCharacter = async (char) => {
159
+ process.stdout.write(char);
160
+ await sleep(10);
185
161
  };
186
- var printLine = async (line) => {
187
- for (const char of line) {
188
- await printCharacter(char);
189
- }
190
- process.stdout.write("\n");
162
+ const printLine = async (line) => {
163
+ for (const char of line) await printCharacter(char);
164
+ process.stdout.write("\n");
191
165
  };
192
- var clearScreen = () => {
193
- process.stdout.write("\x1B[2J\x1B[H");
166
+ const clearScreen = () => {
167
+ process.stdout.write("\x1B[2J\x1B[H");
194
168
  };
195
- var redrawLines = (visibleLines) => {
196
- clearScreen();
197
- for (const line of visibleLines) {
198
- process.stdout.write(`${line}
199
- `);
200
- }
169
+ const redrawLines = (visibleLines) => {
170
+ clearScreen();
171
+ for (const line of visibleLines) process.stdout.write(`${line}\n`);
201
172
  };
202
- var fadeUp = async (renderedLines) => {
203
- const currentLines = [...renderedLines];
204
- while (currentLines.length > 0) {
205
- await sleep(100);
206
- currentLines.shift();
207
- redrawLines(currentLines);
208
- }
173
+ const fadeUp = async (renderedLines) => {
174
+ const currentLines = [...renderedLines];
175
+ while (currentLines.length > 0) {
176
+ await sleep(100);
177
+ currentLines.shift();
178
+ redrawLines(currentLines);
179
+ }
209
180
  };
210
- var main = async () => {
211
- const contentPromise = fetchAndParseContent();
212
- for (const line of bootLines) {
213
- await printLine(line);
214
- }
215
- const [content] = await Promise.all([contentPromise, sleep(2e3)]);
216
- await fadeUp(bootLines);
217
- const formattedLines = formatContentLines(content);
218
- for (const line of formattedLines) {
219
- await printLine(line);
220
- }
181
+ const main = async () => {
182
+ const contentPromise = fetchAndParseContent();
183
+ for (const line of bootLines) await printLine(line);
184
+ const [content] = await Promise.all([contentPromise, sleep(2e3)]);
185
+ await fadeUp(bootLines);
186
+ const formattedLines = formatContentLines(content);
187
+ for (const line of formattedLines) await printLine(line);
221
188
  };
222
189
  main().catch((error) => {
223
- console.error("Error:", error);
224
- process.exit(1);
190
+ process.stderr.write(`Error: ${error instanceof Error ? error.message : String(error)}\n`);
191
+ process.exit(1);
225
192
  });
226
- //# sourceMappingURL=index.js.map
193
+ export {};
package/package.json CHANGED
@@ -1,20 +1,18 @@
1
1
  {
2
2
  "name": "felixarntz",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Meet me in my personal CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "felixarntz": "dist/index.js"
9
9
  },
10
- "main": "dist/index.cjs",
11
- "module": "dist/index.js",
12
- "types": "dist/index.d.ts",
10
+ "main": "dist/index.js",
13
11
  "files": [
14
12
  "dist/**/*"
15
13
  ],
16
14
  "engines": {
17
- "node": ">=22.12.0"
15
+ "node": "^22.18.0 || ^24.11.0 || >=26.0.0"
18
16
  },
19
17
  "homepage": "https://github.com/felixarntz/packages/blob/main/packages/felixarntz/README.md",
20
18
  "repository": {
@@ -26,20 +24,16 @@
26
24
  "url": "https://github.com/felixarntz/packages/issues"
27
25
  },
28
26
  "devDependencies": {
29
- "tsup": "^8.5.1",
30
- "typescript": "^6.0.3",
31
- "vitest": "^3.2.4"
27
+ "tsdown": "^0.23.0",
28
+ "typescript": "^7.0.0",
29
+ "vitest": "^5.0.0"
32
30
  },
33
31
  "publishConfig": {
34
- "access": "public"
32
+ "access": "public",
33
+ "provenance": true
35
34
  },
36
35
  "scripts": {
37
- "build": "tsup",
38
- "lint": "eslint .",
39
- "lint:fix": "eslint . --fix",
40
- "lint:ci": "eslint . --max-warnings 0",
41
- "format": "prettier --check .",
42
- "format:fix": "prettier --write .",
36
+ "build": "tsdown",
43
37
  "test": "vitest run",
44
38
  "test:ci": "vitest run --coverage",
45
39
  "typecheck": "tsc --noEmit"
package/dist/index.cjs DELETED
@@ -1,227 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
-
4
- // src/util/parse-html.ts
5
- function parseHtml(html, id) {
6
- const idRegex = new RegExp(
7
- `<([a-zA-Z0-9]+)\\s+[^>]*id\\s*=\\s*["']${id}["'][^>]*>`,
8
- "i"
9
- );
10
- const match = html.match(idRegex);
11
- if (!match) {
12
- return "";
13
- }
14
- const tagName = match[1];
15
- const startIndex = match.index + match[0].length;
16
- let depth = 1;
17
- const tagRegex = new RegExp(`</?${tagName}\\b[^>]*>`, "gi");
18
- tagRegex.lastIndex = startIndex;
19
- let endIndex = -1;
20
- let tagMatch;
21
- while ((tagMatch = tagRegex.exec(html)) !== null) {
22
- if (tagMatch[0].startsWith("</")) {
23
- depth--;
24
- } else if (!tagMatch[0].endsWith("/>")) {
25
- depth++;
26
- }
27
- if (depth === 0) {
28
- endIndex = tagMatch.index;
29
- break;
30
- }
31
- }
32
- if (endIndex === -1) {
33
- return "";
34
- }
35
- let content = html.substring(startIndex, endIndex);
36
- const BR_PLACEHOLDER = "___BR___";
37
- const P_SEP_PLACEHOLDER = "___P_SEP___";
38
- content = content.replace(/<br\s*\/?>/gi, BR_PLACEHOLDER);
39
- content = content.replace(/<\/?p(\s+[^>]*)?>/gi, P_SEP_PLACEHOLDER);
40
- content = content.replace(/<[^>]+>/g, "");
41
- content = content.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#8217;/g, "'").replace(/&#039;/g, "'");
42
- content = content.replace(/\s+/g, " ");
43
- content = content.replace(new RegExp(BR_PLACEHOLDER, "g"), "\n");
44
- const parts = content.split(P_SEP_PLACEHOLDER);
45
- const paragraphs = parts.map((p) => p.trim()).filter((p) => p.length > 0);
46
- return paragraphs.join("\n\n");
47
- }
48
-
49
- // src/util/parse-html-links.ts
50
- function parseHtmlLinks(html, id) {
51
- const idRegex = new RegExp(
52
- `<([a-zA-Z0-9]+)\\s+[^>]*id\\s*=\\s*["']${id}["'][^>]*>`,
53
- "i"
54
- );
55
- const match = html.match(idRegex);
56
- if (!match) {
57
- return "";
58
- }
59
- const tagName = match[1];
60
- const startIndex = match.index + match[0].length;
61
- let depth = 1;
62
- const tagRegex = new RegExp(`</?${tagName}\\b[^>]*>`, "gi");
63
- tagRegex.lastIndex = startIndex;
64
- let endIndex = -1;
65
- let tagMatch;
66
- while ((tagMatch = tagRegex.exec(html)) !== null) {
67
- if (tagMatch[0].startsWith("</")) {
68
- depth--;
69
- } else if (!tagMatch[0].endsWith("/>")) {
70
- depth++;
71
- }
72
- if (depth === 0) {
73
- endIndex = tagMatch.index;
74
- break;
75
- }
76
- }
77
- if (endIndex === -1) {
78
- return "";
79
- }
80
- const content = html.substring(startIndex, endIndex);
81
- const linksMap = /* @__PURE__ */ new Map();
82
- const linkRegex = /<a\b([^>]*)>([\s\S]*?)<\/a>/gi;
83
- let linkMatch;
84
- while ((linkMatch = linkRegex.exec(content)) !== null) {
85
- const attributes = linkMatch[1];
86
- const innerContent = linkMatch[2];
87
- const hrefMatch = attributes.match(/href\s*=\s*(["'])(.*?)\1/i);
88
- if (!hrefMatch) {
89
- continue;
90
- }
91
- const href = hrefMatch[2].trim();
92
- if (!/^https?:\/\//i.test(href)) {
93
- continue;
94
- }
95
- let label = innerContent.replace(/<[^>]+>/g, "");
96
- let isFromAlt = false;
97
- if (!label.trim()) {
98
- const imgMatch = innerContent.match(
99
- /<img\b[^>]*alt\s*=\s*(["'])(.*?)\1/i
100
- );
101
- if (imgMatch) {
102
- label = imgMatch[2];
103
- isFromAlt = true;
104
- }
105
- }
106
- label = label.replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#8217;/g, "'").replace(/&#039;/g, "'");
107
- label = label.replace(/\s+/g, " ").trim();
108
- if (!linksMap.has(href)) {
109
- linksMap.set(href, { label, isFromAlt });
110
- } else {
111
- const existing = linksMap.get(href);
112
- if (existing.isFromAlt && !isFromAlt) {
113
- linksMap.set(href, { label, isFromAlt });
114
- }
115
- }
116
- }
117
- return Array.from(linksMap.entries()).map(([href, { label }]) => `- ${label}: ${href}`).join("\n");
118
- }
119
-
120
- // src/index.ts
121
- var HTML_URL = "https://felix-arntz.me/";
122
- var WEBSITE_DOMAIN = "felix-arntz.me";
123
- var bootLines = [
124
- "*************** FELIXARNTZ-CLI(R) V2000 ***************",
125
- "",
126
- "",
127
- "",
128
- "WP-ADMIN/INDEX.PHP 200 OK",
129
- "AI SDK PROVIDERS INITIALIZED",
130
- "LCP UNDER 100MS ACHIEVED",
131
- "VECTOR EMBEDDINGS ONLINE",
132
- "GUTENBERG BLOCKS PARSED",
133
- "EXECUTION MODE: AGENTIC"
134
- ];
135
- var fetchAndParseContent = async () => {
136
- const removeCategoryLinks = (text) => text.split("\n").filter((line) => !line.includes("/category/")).join("\n");
137
- const response = await fetch(HTML_URL);
138
- const html = await response.text();
139
- const introText = parseHtml(html, "felixarntz-intro");
140
- const socialLinksText = parseHtmlLinks(html, "felixarntz-social");
141
- const projectsText = parseHtmlLinks(html, "felixarntz-projects");
142
- const latestPostsText = removeCategoryLinks(
143
- parseHtmlLinks(html, "felixarntz-latest-posts")
144
- );
145
- const parts = [introText];
146
- if (socialLinksText) {
147
- parts.push(`Connect with me on socials:
148
-
149
- ${socialLinksText}`);
150
- parts.push(`Or visit my website @ ${WEBSITE_DOMAIN}`);
151
- } else {
152
- parts.push(`Visit my website @ ${WEBSITE_DOMAIN}`);
153
- }
154
- if (projectsText) {
155
- parts.push(
156
- `Some of the projects I have contributed to:
157
-
158
- ${projectsText}`
159
- );
160
- }
161
- if (latestPostsText) {
162
- parts.push(`My latest blog posts:
163
-
164
- ${latestPostsText}`);
165
- }
166
- return parts.join("\n\n");
167
- };
168
- var formatContentLines = (content) => {
169
- const lines = content.split("\n").map((line) => line.trim());
170
- const formattedLines = [];
171
- for (const line of lines) {
172
- if (line.startsWith("## ")) {
173
- formattedLines.push(`\u2501\u2501\u2501 ${line.slice(3).toUpperCase()} \u2501\u2501\u2501`);
174
- } else if (line.startsWith("- ")) {
175
- formattedLines.push(` \u2022 ${line.slice(2)}`);
176
- } else {
177
- formattedLines.push(line);
178
- }
179
- }
180
- return formattedLines;
181
- };
182
- var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
183
- var printCharacter = async (char) => {
184
- process.stdout.write(char);
185
- await sleep(10);
186
- };
187
- var printLine = async (line) => {
188
- for (const char of line) {
189
- await printCharacter(char);
190
- }
191
- process.stdout.write("\n");
192
- };
193
- var clearScreen = () => {
194
- process.stdout.write("\x1B[2J\x1B[H");
195
- };
196
- var redrawLines = (visibleLines) => {
197
- clearScreen();
198
- for (const line of visibleLines) {
199
- process.stdout.write(`${line}
200
- `);
201
- }
202
- };
203
- var fadeUp = async (renderedLines) => {
204
- const currentLines = [...renderedLines];
205
- while (currentLines.length > 0) {
206
- await sleep(100);
207
- currentLines.shift();
208
- redrawLines(currentLines);
209
- }
210
- };
211
- var main = async () => {
212
- const contentPromise = fetchAndParseContent();
213
- for (const line of bootLines) {
214
- await printLine(line);
215
- }
216
- const [content] = await Promise.all([contentPromise, sleep(2e3)]);
217
- await fadeUp(bootLines);
218
- const formattedLines = formatContentLines(content);
219
- for (const line of formattedLines) {
220
- await printLine(line);
221
- }
222
- };
223
- main().catch((error) => {
224
- console.error("Error:", error);
225
- process.exit(1);
226
- });
227
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/util/parse-html.ts","../src/util/parse-html-links.ts","../src/index.ts"],"sourcesContent":["/**\n * Extracts the content of the node with the given ID from an HTML string.\n *\n * @param html - The HTML string to parse.\n * @param id - The ID of the element to extract.\n * @returns The extracted text content.\n */\nexport function parseHtml(html: string, id: string): string {\n const idRegex = new RegExp(\n `<([a-zA-Z0-9]+)\\\\s+[^>]*id\\\\s*=\\\\s*[\"']${id}[\"'][^>]*>`,\n 'i',\n );\n const match = html.match(idRegex);\n\n if (!match) {\n return '';\n }\n\n const tagName = match[1];\n const startIndex = match.index! + match[0].length;\n let depth = 1;\n\n // We need to find the closing tag matching this specific opening tag.\n // We scan forward from startIndex.\n const tagRegex = new RegExp(`</?${tagName}\\\\b[^>]*>`, 'gi');\n tagRegex.lastIndex = startIndex;\n\n let endIndex = -1;\n let tagMatch;\n\n while ((tagMatch = tagRegex.exec(html)) !== null) {\n if (tagMatch[0].startsWith('</')) {\n depth--;\n } else if (!tagMatch[0].endsWith('/>')) {\n // Assume non-void if it's the same tag name as the container which has an ID (so likely a container)\n depth++;\n }\n\n if (depth === 0) {\n endIndex = tagMatch.index;\n break;\n }\n }\n\n if (endIndex === -1) {\n return '';\n }\n\n let content = html.substring(startIndex, endIndex);\n\n // Placeholders\n const BR_PLACEHOLDER = '___BR___';\n const P_SEP_PLACEHOLDER = '___P_SEP___';\n\n // Replace <br> variants\n content = content.replace(/<br\\s*\\/?>/gi, BR_PLACEHOLDER);\n\n // Replace <p> and </p> with separator\n content = content.replace(/<\\/?p(\\s+[^>]*)?>/gi, P_SEP_PLACEHOLDER);\n\n // Strip all other tags\n content = content.replace(/<[^>]+>/g, '');\n\n // Decode entities\n content = content\n .replace(/&nbsp;/g, ' ')\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&#8217;/g, \"'\")\n .replace(/&#039;/g, \"'\");\n\n // Collapse whitespace\n content = content.replace(/\\s+/g, ' ');\n\n // Restore placeholders\n content = content.replace(new RegExp(BR_PLACEHOLDER, 'g'), '\\n');\n\n // Split by P separator\n const parts = content.split(P_SEP_PLACEHOLDER);\n\n const paragraphs = parts.map((p) => p.trim()).filter((p) => p.length > 0);\n\n return paragraphs.join('\\n\\n');\n}\n","/**\n * Extracts links from the node with the given ID in an HTML string.\n *\n * @param html - The HTML string to parse.\n * @param id - The ID of the element to extract links from.\n * @returns A markdown list of links.\n */\nexport function parseHtmlLinks(html: string, id: string): string {\n const idRegex = new RegExp(\n `<([a-zA-Z0-9]+)\\\\s+[^>]*id\\\\s*=\\\\s*[\"']${id}[\"'][^>]*>`,\n 'i',\n );\n const match = html.match(idRegex);\n\n if (!match) {\n return '';\n }\n\n const tagName = match[1];\n const startIndex = match.index! + match[0].length;\n let depth = 1;\n\n // We need to find the closing tag matching this specific opening tag.\n // We scan forward from startIndex.\n const tagRegex = new RegExp(`</?${tagName}\\\\b[^>]*>`, 'gi');\n tagRegex.lastIndex = startIndex;\n\n let endIndex = -1;\n let tagMatch;\n\n while ((tagMatch = tagRegex.exec(html)) !== null) {\n if (tagMatch[0].startsWith('</')) {\n depth--;\n } else if (!tagMatch[0].endsWith('/>')) {\n // Assume non-void if it's the same tag name as the container which has an ID (so likely a container)\n depth++;\n }\n\n if (depth === 0) {\n endIndex = tagMatch.index;\n break;\n }\n }\n\n if (endIndex === -1) {\n return '';\n }\n\n const content = html.substring(startIndex, endIndex);\n const linksMap = new Map<string, { label: string; isFromAlt: boolean }>();\n\n // Regex to find <a> tags\n // We capture the opening tag attributes and the inner content\n const linkRegex = /<a\\b([^>]*)>([\\s\\S]*?)<\\/a>/gi;\n let linkMatch;\n\n while ((linkMatch = linkRegex.exec(content)) !== null) {\n const attributes = linkMatch[1];\n const innerContent = linkMatch[2];\n\n // Extract href\n const hrefMatch = attributes.match(/href\\s*=\\s*([\"'])(.*?)\\1/i);\n if (!hrefMatch) {\n continue;\n }\n\n const href = hrefMatch[2].trim();\n\n // Check if it is an actual URL (http/https)\n if (!/^https?:\\/\\//i.test(href)) {\n continue;\n }\n\n // Strip tags from inner content to get label\n let label = innerContent.replace(/<[^>]+>/g, '');\n let isFromAlt = false;\n\n if (!label.trim()) {\n const imgMatch = innerContent.match(\n /<img\\b[^>]*alt\\s*=\\s*([\"'])(.*?)\\1/i,\n );\n if (imgMatch) {\n label = imgMatch[2];\n isFromAlt = true;\n }\n }\n\n // Decode entities in label\n label = label\n .replace(/&nbsp;/g, ' ')\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&#8217;/g, \"'\")\n .replace(/&#039;/g, \"'\");\n\n // Collapse whitespace in label\n label = label.replace(/\\s+/g, ' ').trim();\n\n if (!linksMap.has(href)) {\n linksMap.set(href, { label, isFromAlt });\n } else {\n const existing = linksMap.get(href)!;\n if (existing.isFromAlt && !isFromAlt) {\n linksMap.set(href, { label, isFromAlt });\n }\n }\n }\n\n return Array.from(linksMap.entries())\n .map(([href, { label }]) => `- ${label}: ${href}`)\n .join('\\n');\n}\n","import { parseHtml } from './util/parse-html';\nimport { parseHtmlLinks } from './util/parse-html-links';\n\nconst HTML_URL = 'https://felix-arntz.me/';\nconst WEBSITE_DOMAIN = 'felix-arntz.me';\n\nconst bootLines = [\n '*************** FELIXARNTZ-CLI(R) V2000 ***************',\n '',\n '',\n '',\n 'WP-ADMIN/INDEX.PHP 200 OK',\n 'AI SDK PROVIDERS INITIALIZED',\n 'LCP UNDER 100MS ACHIEVED',\n 'VECTOR EMBEDDINGS ONLINE',\n 'GUTENBERG BLOCKS PARSED',\n 'EXECUTION MODE: AGENTIC',\n];\n\nconst fetchAndParseContent = async (): Promise<string> => {\n const removeCategoryLinks = (text: string): string =>\n text\n .split('\\n')\n .filter((line) => !line.includes('/category/'))\n .join('\\n');\n\n const response = await fetch(HTML_URL);\n const html = await response.text();\n\n const introText = parseHtml(html, 'felixarntz-intro');\n const socialLinksText = parseHtmlLinks(html, 'felixarntz-social');\n const projectsText = parseHtmlLinks(html, 'felixarntz-projects');\n const latestPostsText = removeCategoryLinks(\n parseHtmlLinks(html, 'felixarntz-latest-posts'),\n );\n\n const parts: string[] = [introText];\n if (socialLinksText) {\n parts.push(`Connect with me on socials:\\n\\n${socialLinksText}`);\n parts.push(`Or visit my website @ ${WEBSITE_DOMAIN}`);\n } else {\n parts.push(`Visit my website @ ${WEBSITE_DOMAIN}`);\n }\n if (projectsText) {\n parts.push(\n `Some of the projects I have contributed to:\\n\\n${projectsText}`,\n );\n }\n if (latestPostsText) {\n parts.push(`My latest blog posts:\\n\\n${latestPostsText}`);\n }\n return parts.join('\\n\\n');\n};\n\nconst formatContentLines = (content: string): string[] => {\n const lines = content.split('\\n').map((line) => line.trim());\n\n const formattedLines: string[] = [];\n\n for (const line of lines) {\n if (line.startsWith('## ')) {\n formattedLines.push(`━━━ ${line.slice(3).toUpperCase()} ━━━`);\n } else if (line.startsWith('- ')) {\n formattedLines.push(` • ${line.slice(2)}`);\n } else {\n formattedLines.push(line);\n }\n }\n\n return formattedLines;\n};\n\nconst sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nconst printCharacter = async (char: string): Promise<void> => {\n process.stdout.write(char);\n await sleep(10);\n};\n\nconst printLine = async (line: string): Promise<void> => {\n for (const char of line) {\n await printCharacter(char);\n }\n process.stdout.write('\\n');\n};\n\nconst clearScreen = (): void => {\n process.stdout.write('\\x1b[2J\\x1b[H');\n};\n\nconst redrawLines = (visibleLines: string[]): void => {\n clearScreen();\n for (const line of visibleLines) {\n process.stdout.write(`${line}\\n`);\n }\n};\n\nconst fadeUp = async (renderedLines: string[]): Promise<void> => {\n const currentLines = [...renderedLines];\n\n while (currentLines.length > 0) {\n await sleep(100);\n currentLines.shift();\n redrawLines(currentLines);\n }\n};\n\nconst main = async (): Promise<void> => {\n const contentPromise = fetchAndParseContent();\n\n for (const line of bootLines) {\n await printLine(line);\n }\n\n const [content] = await Promise.all([contentPromise, sleep(2000)]);\n\n await fadeUp(bootLines);\n\n const formattedLines = formatContentLines(content);\n\n for (const line of formattedLines) {\n await printLine(line);\n }\n};\n\nmain().catch((error) => {\n console.error('Error:', error);\n process.exit(1);\n});\n"],"mappings":"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","names":[]}
package/dist/index.d.cts DELETED
@@ -1,2 +0,0 @@
1
-
2
- export { }
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
-
2
- export { }
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/util/parse-html.ts","../src/util/parse-html-links.ts","../src/index.ts"],"sourcesContent":["/**\n * Extracts the content of the node with the given ID from an HTML string.\n *\n * @param html - The HTML string to parse.\n * @param id - The ID of the element to extract.\n * @returns The extracted text content.\n */\nexport function parseHtml(html: string, id: string): string {\n const idRegex = new RegExp(\n `<([a-zA-Z0-9]+)\\\\s+[^>]*id\\\\s*=\\\\s*[\"']${id}[\"'][^>]*>`,\n 'i',\n );\n const match = html.match(idRegex);\n\n if (!match) {\n return '';\n }\n\n const tagName = match[1];\n const startIndex = match.index! + match[0].length;\n let depth = 1;\n\n // We need to find the closing tag matching this specific opening tag.\n // We scan forward from startIndex.\n const tagRegex = new RegExp(`</?${tagName}\\\\b[^>]*>`, 'gi');\n tagRegex.lastIndex = startIndex;\n\n let endIndex = -1;\n let tagMatch;\n\n while ((tagMatch = tagRegex.exec(html)) !== null) {\n if (tagMatch[0].startsWith('</')) {\n depth--;\n } else if (!tagMatch[0].endsWith('/>')) {\n // Assume non-void if it's the same tag name as the container which has an ID (so likely a container)\n depth++;\n }\n\n if (depth === 0) {\n endIndex = tagMatch.index;\n break;\n }\n }\n\n if (endIndex === -1) {\n return '';\n }\n\n let content = html.substring(startIndex, endIndex);\n\n // Placeholders\n const BR_PLACEHOLDER = '___BR___';\n const P_SEP_PLACEHOLDER = '___P_SEP___';\n\n // Replace <br> variants\n content = content.replace(/<br\\s*\\/?>/gi, BR_PLACEHOLDER);\n\n // Replace <p> and </p> with separator\n content = content.replace(/<\\/?p(\\s+[^>]*)?>/gi, P_SEP_PLACEHOLDER);\n\n // Strip all other tags\n content = content.replace(/<[^>]+>/g, '');\n\n // Decode entities\n content = content\n .replace(/&nbsp;/g, ' ')\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&#8217;/g, \"'\")\n .replace(/&#039;/g, \"'\");\n\n // Collapse whitespace\n content = content.replace(/\\s+/g, ' ');\n\n // Restore placeholders\n content = content.replace(new RegExp(BR_PLACEHOLDER, 'g'), '\\n');\n\n // Split by P separator\n const parts = content.split(P_SEP_PLACEHOLDER);\n\n const paragraphs = parts.map((p) => p.trim()).filter((p) => p.length > 0);\n\n return paragraphs.join('\\n\\n');\n}\n","/**\n * Extracts links from the node with the given ID in an HTML string.\n *\n * @param html - The HTML string to parse.\n * @param id - The ID of the element to extract links from.\n * @returns A markdown list of links.\n */\nexport function parseHtmlLinks(html: string, id: string): string {\n const idRegex = new RegExp(\n `<([a-zA-Z0-9]+)\\\\s+[^>]*id\\\\s*=\\\\s*[\"']${id}[\"'][^>]*>`,\n 'i',\n );\n const match = html.match(idRegex);\n\n if (!match) {\n return '';\n }\n\n const tagName = match[1];\n const startIndex = match.index! + match[0].length;\n let depth = 1;\n\n // We need to find the closing tag matching this specific opening tag.\n // We scan forward from startIndex.\n const tagRegex = new RegExp(`</?${tagName}\\\\b[^>]*>`, 'gi');\n tagRegex.lastIndex = startIndex;\n\n let endIndex = -1;\n let tagMatch;\n\n while ((tagMatch = tagRegex.exec(html)) !== null) {\n if (tagMatch[0].startsWith('</')) {\n depth--;\n } else if (!tagMatch[0].endsWith('/>')) {\n // Assume non-void if it's the same tag name as the container which has an ID (so likely a container)\n depth++;\n }\n\n if (depth === 0) {\n endIndex = tagMatch.index;\n break;\n }\n }\n\n if (endIndex === -1) {\n return '';\n }\n\n const content = html.substring(startIndex, endIndex);\n const linksMap = new Map<string, { label: string; isFromAlt: boolean }>();\n\n // Regex to find <a> tags\n // We capture the opening tag attributes and the inner content\n const linkRegex = /<a\\b([^>]*)>([\\s\\S]*?)<\\/a>/gi;\n let linkMatch;\n\n while ((linkMatch = linkRegex.exec(content)) !== null) {\n const attributes = linkMatch[1];\n const innerContent = linkMatch[2];\n\n // Extract href\n const hrefMatch = attributes.match(/href\\s*=\\s*([\"'])(.*?)\\1/i);\n if (!hrefMatch) {\n continue;\n }\n\n const href = hrefMatch[2].trim();\n\n // Check if it is an actual URL (http/https)\n if (!/^https?:\\/\\//i.test(href)) {\n continue;\n }\n\n // Strip tags from inner content to get label\n let label = innerContent.replace(/<[^>]+>/g, '');\n let isFromAlt = false;\n\n if (!label.trim()) {\n const imgMatch = innerContent.match(\n /<img\\b[^>]*alt\\s*=\\s*([\"'])(.*?)\\1/i,\n );\n if (imgMatch) {\n label = imgMatch[2];\n isFromAlt = true;\n }\n }\n\n // Decode entities in label\n label = label\n .replace(/&nbsp;/g, ' ')\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&#8217;/g, \"'\")\n .replace(/&#039;/g, \"'\");\n\n // Collapse whitespace in label\n label = label.replace(/\\s+/g, ' ').trim();\n\n if (!linksMap.has(href)) {\n linksMap.set(href, { label, isFromAlt });\n } else {\n const existing = linksMap.get(href)!;\n if (existing.isFromAlt && !isFromAlt) {\n linksMap.set(href, { label, isFromAlt });\n }\n }\n }\n\n return Array.from(linksMap.entries())\n .map(([href, { label }]) => `- ${label}: ${href}`)\n .join('\\n');\n}\n","import { parseHtml } from './util/parse-html';\nimport { parseHtmlLinks } from './util/parse-html-links';\n\nconst HTML_URL = 'https://felix-arntz.me/';\nconst WEBSITE_DOMAIN = 'felix-arntz.me';\n\nconst bootLines = [\n '*************** FELIXARNTZ-CLI(R) V2000 ***************',\n '',\n '',\n '',\n 'WP-ADMIN/INDEX.PHP 200 OK',\n 'AI SDK PROVIDERS INITIALIZED',\n 'LCP UNDER 100MS ACHIEVED',\n 'VECTOR EMBEDDINGS ONLINE',\n 'GUTENBERG BLOCKS PARSED',\n 'EXECUTION MODE: AGENTIC',\n];\n\nconst fetchAndParseContent = async (): Promise<string> => {\n const removeCategoryLinks = (text: string): string =>\n text\n .split('\\n')\n .filter((line) => !line.includes('/category/'))\n .join('\\n');\n\n const response = await fetch(HTML_URL);\n const html = await response.text();\n\n const introText = parseHtml(html, 'felixarntz-intro');\n const socialLinksText = parseHtmlLinks(html, 'felixarntz-social');\n const projectsText = parseHtmlLinks(html, 'felixarntz-projects');\n const latestPostsText = removeCategoryLinks(\n parseHtmlLinks(html, 'felixarntz-latest-posts'),\n );\n\n const parts: string[] = [introText];\n if (socialLinksText) {\n parts.push(`Connect with me on socials:\\n\\n${socialLinksText}`);\n parts.push(`Or visit my website @ ${WEBSITE_DOMAIN}`);\n } else {\n parts.push(`Visit my website @ ${WEBSITE_DOMAIN}`);\n }\n if (projectsText) {\n parts.push(\n `Some of the projects I have contributed to:\\n\\n${projectsText}`,\n );\n }\n if (latestPostsText) {\n parts.push(`My latest blog posts:\\n\\n${latestPostsText}`);\n }\n return parts.join('\\n\\n');\n};\n\nconst formatContentLines = (content: string): string[] => {\n const lines = content.split('\\n').map((line) => line.trim());\n\n const formattedLines: string[] = [];\n\n for (const line of lines) {\n if (line.startsWith('## ')) {\n formattedLines.push(`━━━ ${line.slice(3).toUpperCase()} ━━━`);\n } else if (line.startsWith('- ')) {\n formattedLines.push(` • ${line.slice(2)}`);\n } else {\n formattedLines.push(line);\n }\n }\n\n return formattedLines;\n};\n\nconst sleep = (ms: number): Promise<void> =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nconst printCharacter = async (char: string): Promise<void> => {\n process.stdout.write(char);\n await sleep(10);\n};\n\nconst printLine = async (line: string): Promise<void> => {\n for (const char of line) {\n await printCharacter(char);\n }\n process.stdout.write('\\n');\n};\n\nconst clearScreen = (): void => {\n process.stdout.write('\\x1b[2J\\x1b[H');\n};\n\nconst redrawLines = (visibleLines: string[]): void => {\n clearScreen();\n for (const line of visibleLines) {\n process.stdout.write(`${line}\\n`);\n }\n};\n\nconst fadeUp = async (renderedLines: string[]): Promise<void> => {\n const currentLines = [...renderedLines];\n\n while (currentLines.length > 0) {\n await sleep(100);\n currentLines.shift();\n redrawLines(currentLines);\n }\n};\n\nconst main = async (): Promise<void> => {\n const contentPromise = fetchAndParseContent();\n\n for (const line of bootLines) {\n await printLine(line);\n }\n\n const [content] = await Promise.all([contentPromise, sleep(2000)]);\n\n await fadeUp(bootLines);\n\n const formattedLines = formatContentLines(content);\n\n for (const line of formattedLines) {\n await printLine(line);\n }\n};\n\nmain().catch((error) => {\n console.error('Error:', error);\n process.exit(1);\n});\n"],"mappings":";;;AAOO,SAAS,UAAU,MAAc,IAAoB;AAC1D,QAAM,UAAU,IAAI;AAAA,IAClB,0CAA0C,EAAE;AAAA,IAC5C;AAAA,EACF;AACA,QAAM,QAAQ,KAAK,MAAM,OAAO;AAEhC,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,MAAM,CAAC;AACvB,QAAM,aAAa,MAAM,QAAS,MAAM,CAAC,EAAE;AAC3C,MAAI,QAAQ;AAIZ,QAAM,WAAW,IAAI,OAAO,MAAM,OAAO,aAAa,IAAI;AAC1D,WAAS,YAAY;AAErB,MAAI,WAAW;AACf,MAAI;AAEJ,UAAQ,WAAW,SAAS,KAAK,IAAI,OAAO,MAAM;AAChD,QAAI,SAAS,CAAC,EAAE,WAAW,IAAI,GAAG;AAChC;AAAA,IACF,WAAW,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,GAAG;AAEtC;AAAA,IACF;AAEA,QAAI,UAAU,GAAG;AACf,iBAAW,SAAS;AACpB;AAAA,IACF;AAAA,EACF;AAEA,MAAI,aAAa,IAAI;AACnB,WAAO;AAAA,EACT;AAEA,MAAI,UAAU,KAAK,UAAU,YAAY,QAAQ;AAGjD,QAAM,iBAAiB;AACvB,QAAM,oBAAoB;AAG1B,YAAU,QAAQ,QAAQ,gBAAgB,cAAc;AAGxD,YAAU,QAAQ,QAAQ,uBAAuB,iBAAiB;AAGlE,YAAU,QAAQ,QAAQ,YAAY,EAAE;AAGxC,YAAU,QACP,QAAQ,WAAW,GAAG,EACtB,QAAQ,UAAU,GAAG,EACrB,QAAQ,SAAS,GAAG,EACpB,QAAQ,SAAS,GAAG,EACpB,QAAQ,WAAW,GAAG,EACtB,QAAQ,YAAY,GAAG,EACvB,QAAQ,WAAW,GAAG;AAGzB,YAAU,QAAQ,QAAQ,QAAQ,GAAG;AAGrC,YAAU,QAAQ,QAAQ,IAAI,OAAO,gBAAgB,GAAG,GAAG,IAAI;AAG/D,QAAM,QAAQ,QAAQ,MAAM,iBAAiB;AAE7C,QAAM,aAAa,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AAExE,SAAO,WAAW,KAAK,MAAM;AAC/B;;;AC9EO,SAAS,eAAe,MAAc,IAAoB;AAC/D,QAAM,UAAU,IAAI;AAAA,IAClB,0CAA0C,EAAE;AAAA,IAC5C;AAAA,EACF;AACA,QAAM,QAAQ,KAAK,MAAM,OAAO;AAEhC,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,MAAM,CAAC;AACvB,QAAM,aAAa,MAAM,QAAS,MAAM,CAAC,EAAE;AAC3C,MAAI,QAAQ;AAIZ,QAAM,WAAW,IAAI,OAAO,MAAM,OAAO,aAAa,IAAI;AAC1D,WAAS,YAAY;AAErB,MAAI,WAAW;AACf,MAAI;AAEJ,UAAQ,WAAW,SAAS,KAAK,IAAI,OAAO,MAAM;AAChD,QAAI,SAAS,CAAC,EAAE,WAAW,IAAI,GAAG;AAChC;AAAA,IACF,WAAW,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,GAAG;AAEtC;AAAA,IACF;AAEA,QAAI,UAAU,GAAG;AACf,iBAAW,SAAS;AACpB;AAAA,IACF;AAAA,EACF;AAEA,MAAI,aAAa,IAAI;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,KAAK,UAAU,YAAY,QAAQ;AACnD,QAAM,WAAW,oBAAI,IAAmD;AAIxE,QAAM,YAAY;AAClB,MAAI;AAEJ,UAAQ,YAAY,UAAU,KAAK,OAAO,OAAO,MAAM;AACrD,UAAM,aAAa,UAAU,CAAC;AAC9B,UAAM,eAAe,UAAU,CAAC;AAGhC,UAAM,YAAY,WAAW,MAAM,2BAA2B;AAC9D,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AAEA,UAAM,OAAO,UAAU,CAAC,EAAE,KAAK;AAG/B,QAAI,CAAC,gBAAgB,KAAK,IAAI,GAAG;AAC/B;AAAA,IACF;AAGA,QAAI,QAAQ,aAAa,QAAQ,YAAY,EAAE;AAC/C,QAAI,YAAY;AAEhB,QAAI,CAAC,MAAM,KAAK,GAAG;AACjB,YAAM,WAAW,aAAa;AAAA,QAC5B;AAAA,MACF;AACA,UAAI,UAAU;AACZ,gBAAQ,SAAS,CAAC;AAClB,oBAAY;AAAA,MACd;AAAA,IACF;AAGA,YAAQ,MACL,QAAQ,WAAW,GAAG,EACtB,QAAQ,UAAU,GAAG,EACrB,QAAQ,SAAS,GAAG,EACpB,QAAQ,SAAS,GAAG,EACpB,QAAQ,WAAW,GAAG,EACtB,QAAQ,YAAY,GAAG,EACvB,QAAQ,WAAW,GAAG;AAGzB,YAAQ,MAAM,QAAQ,QAAQ,GAAG,EAAE,KAAK;AAExC,QAAI,CAAC,SAAS,IAAI,IAAI,GAAG;AACvB,eAAS,IAAI,MAAM,EAAE,OAAO,UAAU,CAAC;AAAA,IACzC,OAAO;AACL,YAAM,WAAW,SAAS,IAAI,IAAI;AAClC,UAAI,SAAS,aAAa,CAAC,WAAW;AACpC,iBAAS,IAAI,MAAM,EAAE,OAAO,UAAU,CAAC;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,SAAS,QAAQ,CAAC,EACjC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,KAAK,KAAK,IAAI,EAAE,EAChD,KAAK,IAAI;AACd;;;AC9GA,IAAM,WAAW;AACjB,IAAM,iBAAiB;AAEvB,IAAM,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,uBAAuB,YAA6B;AACxD,QAAM,sBAAsB,CAAC,SAC3B,KACG,MAAM,IAAI,EACV,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,YAAY,CAAC,EAC7C,KAAK,IAAI;AAEd,QAAM,WAAW,MAAM,MAAM,QAAQ;AACrC,QAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,QAAM,YAAY,UAAU,MAAM,kBAAkB;AACpD,QAAM,kBAAkB,eAAe,MAAM,mBAAmB;AAChE,QAAM,eAAe,eAAe,MAAM,qBAAqB;AAC/D,QAAM,kBAAkB;AAAA,IACtB,eAAe,MAAM,yBAAyB;AAAA,EAChD;AAEA,QAAM,QAAkB,CAAC,SAAS;AAClC,MAAI,iBAAiB;AACnB,UAAM,KAAK;AAAA;AAAA,EAAkC,eAAe,EAAE;AAC9D,UAAM,KAAK,yBAAyB,cAAc,EAAE;AAAA,EACtD,OAAO;AACL,UAAM,KAAK,sBAAsB,cAAc,EAAE;AAAA,EACnD;AACA,MAAI,cAAc;AAChB,UAAM;AAAA,MACJ;AAAA;AAAA,EAAkD,YAAY;AAAA,IAChE;AAAA,EACF;AACA,MAAI,iBAAiB;AACnB,UAAM,KAAK;AAAA;AAAA,EAA4B,eAAe,EAAE;AAAA,EAC1D;AACA,SAAO,MAAM,KAAK,MAAM;AAC1B;AAEA,IAAM,qBAAqB,CAAC,YAA8B;AACxD,QAAM,QAAQ,QAAQ,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;AAE3D,QAAM,iBAA2B,CAAC;AAElC,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,KAAK,GAAG;AAC1B,qBAAe,KAAK,sBAAO,KAAK,MAAM,CAAC,EAAE,YAAY,CAAC,qBAAM;AAAA,IAC9D,WAAW,KAAK,WAAW,IAAI,GAAG;AAChC,qBAAe,KAAK,YAAO,KAAK,MAAM,CAAC,CAAC,EAAE;AAAA,IAC5C,OAAO;AACL,qBAAe,KAAK,IAAI;AAAA,IAC1B;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAM,QAAQ,CAAC,OACb,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,EAAE,CAAC;AAElD,IAAM,iBAAiB,OAAO,SAAgC;AAC5D,UAAQ,OAAO,MAAM,IAAI;AACzB,QAAM,MAAM,EAAE;AAChB;AAEA,IAAM,YAAY,OAAO,SAAgC;AACvD,aAAW,QAAQ,MAAM;AACvB,UAAM,eAAe,IAAI;AAAA,EAC3B;AACA,UAAQ,OAAO,MAAM,IAAI;AAC3B;AAEA,IAAM,cAAc,MAAY;AAC9B,UAAQ,OAAO,MAAM,eAAe;AACtC;AAEA,IAAM,cAAc,CAAC,iBAAiC;AACpD,cAAY;AACZ,aAAW,QAAQ,cAAc;AAC/B,YAAQ,OAAO,MAAM,GAAG,IAAI;AAAA,CAAI;AAAA,EAClC;AACF;AAEA,IAAM,SAAS,OAAO,kBAA2C;AAC/D,QAAM,eAAe,CAAC,GAAG,aAAa;AAEtC,SAAO,aAAa,SAAS,GAAG;AAC9B,UAAM,MAAM,GAAG;AACf,iBAAa,MAAM;AACnB,gBAAY,YAAY;AAAA,EAC1B;AACF;AAEA,IAAM,OAAO,YAA2B;AACtC,QAAM,iBAAiB,qBAAqB;AAE5C,aAAW,QAAQ,WAAW;AAC5B,UAAM,UAAU,IAAI;AAAA,EACtB;AAEA,QAAM,CAAC,OAAO,IAAI,MAAM,QAAQ,IAAI,CAAC,gBAAgB,MAAM,GAAI,CAAC,CAAC;AAEjE,QAAM,OAAO,SAAS;AAEtB,QAAM,iBAAiB,mBAAmB,OAAO;AAEjD,aAAW,QAAQ,gBAAgB;AACjC,UAAM,UAAU,IAAI;AAAA,EACtB;AACF;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,UAAQ,MAAM,UAAU,KAAK;AAC7B,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/util/parse-html.ts","../src/util/parse-html-links.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@3.2.4/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/index-8b61d5bc.d.ts","../../../node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.2.4/node_modules/@vitest/runner/dist/tasks.d-cksck4of.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.2.4/node_modules/@vitest/runner/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/error.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.2.4/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/optional-types.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/environment.d.cl3nlxbe.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@24.10.9/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/@types+estree@1.0.8/node_modules/@types/estree/index.d.ts","../../../node_modules/.pnpm/rollup@4.56.0/node_modules/rollup/dist/rollup.d.ts","../../../node_modules/.pnpm/rollup@4.56.0/node_modules/rollup/dist/parseast.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/esbuild@0.27.2/node_modules/esbuild/lib/main.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/internal/terseroptions.d.ts","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/previous-map.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/input.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/css-syntax-error.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/declaration.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/root.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/warning.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/lazy-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/no-work-result.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/processor.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/result.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/document.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/node.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/comment.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/container.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/at-rule.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/list.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/postcss.d.ts","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/postcss.d.mts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/internal/csspreprocessoroptions.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/internal/lightningcssoptions.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/importglob.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/types/metadata.d.ts","../../../node_modules/.pnpm/vite@7.3.1_@types+node@25.0.10/node_modules/vite/dist/node/index.d.ts","../../../node_modules/.pnpm/@vitest+mocker@3.2.4_vite@7.3.1_@types+node@24.10.9_/node_modules/@vitest/mocker/dist/registry.d-d765pazg.d.ts","../../../node_modules/.pnpm/@vitest+mocker@3.2.4_vite@7.3.1_@types+node@24.10.9_/node_modules/@vitest/mocker/dist/types.d-d_arzrdy.d.ts","../../../node_modules/.pnpm/@vitest+mocker@3.2.4_vite@7.3.1_@types+node@24.10.9_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@3.2.4/node_modules/@vitest/utils/dist/source-map.d.ts","../../../node_modules/.pnpm/vite-node@3.2.4_@types+node@25.0.10/node_modules/vite-node/dist/trace-mapping.d-dlvdeqop.d.ts","../../../node_modules/.pnpm/vite-node@3.2.4_@types+node@25.0.10/node_modules/vite-node/dist/index.d-dgmxd2u7.d.ts","../../../node_modules/.pnpm/vite-node@3.2.4_@types+node@25.0.10/node_modules/vite-node/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/environment.d-dhdq1csl.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/rawsnapshot.d-lfsmjfud.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/config.d.d2roskhv.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/worker.d.1gmbbd7g.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@3.2.4/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/benchmark.d.bwvbvtda.d.ts","../../../node_modules/.pnpm/vite-node@3.2.4_@types+node@25.0.10/node_modules/vite-node/dist/client.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/coverage.d.s9rmnxie.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@3.2.4/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/reporters.d.bflkqcl6.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/worker.d.ckwwzbsj.d.ts","../../../node_modules/.pnpm/@vitest+spy@3.2.4/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@3.2.4/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/global.d.mamajcmj.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/vite.d.cmlllifp.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/mocker.d.be_2ls6u.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/chunks/suite.d.fvehnv49.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/dist/index.d.ts","../src/util/parse-html-links.test.ts","../src/util/parse-html.test.ts","../../../node_modules/.pnpm/vitest@3.2.4_@types+node@25.0.10/node_modules/vitest/globals.d.ts"],"fileIdsList":[[107,161,178,179,260,261],[107,161,178,179],[107,158,159,161,178,179],[107,160,161,178,179],[161,178,179],[107,161,166,178,179,196],[107,161,162,167,172,178,179,181,193,204],[107,161,162,163,172,178,179,181],[107,161,164,178,179,205],[107,161,165,166,173,178,179,182],[107,161,166,178,179,193,201],[107,161,167,169,172,178,179,181],[107,160,161,168,178,179],[107,161,169,170,178,179],[107,161,171,172,178,179],[107,160,161,172,178,179],[107,161,172,173,174,178,179,193,204],[107,161,172,173,174,178,179,188,193,196],[107,153,161,169,172,175,178,179,181,193,204],[107,161,172,173,175,176,178,179,181,193,201,204],[107,161,175,177,178,179,193,201,204],[105,106,107,108,109,110,111,112,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210],[107,161,172,178,179],[107,161,178,179,180,204],[107,161,169,172,178,179,181,193],[107,161,178,179,182],[107,161,178,179,183],[107,160,161,178,179,184],[107,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210],[107,161,178,179,186],[107,161,178,179,187],[107,161,172,178,179,188,189],[107,161,178,179,188,190,205,207],[107,161,173,178,179],[107,161,172,178,179,193,194,196],[107,161,178,179,195,196],[107,161,178,179,193,194],[107,161,178,179,196],[107,161,178,179,197],[107,158,161,178,179,193,198],[107,161,172,178,179,199,200],[107,161,178,179,199,200],[107,161,166,178,179,181,193,201],[107,161,178,179,202],[107,161,178,179,181,203],[107,161,175,178,179,187,204],[107,161,166,178,179,205],[107,161,178,179,193,206],[107,161,178,179,180,207],[107,161,178,179,208],[107,161,166,178,179],[107,153,161,178,179],[107,161,178,179,209],[107,153,161,172,174,178,179,184,193,196,204,206,207,209],[107,161,178,179,193,210],[95,96,99,107,161,178,179,271],[107,161,178,179,247,248],[96,97,99,100,101,107,161,178,179],[96,107,161,178,179],[96,97,99,107,161,178,179],[96,97,107,161,178,179],[107,161,178,179,254],[91,107,161,178,179,254,255],[91,107,161,178,179,254],[91,98,107,161,178,179],[92,107,161,178,179],[91,92,93,95,107,161,178,179],[91,107,161,178,179],[107,161,178,179,277,278],[107,161,178,179,277,278,279,280],[107,161,178,179,277,279],[107,161,178,179,277],[107,161,178,179,237],[107,161,178,179,235,237],[107,161,178,179,226,234,235,236,238,240],[107,161,178,179,224],[107,161,178,179,227,232,237,240],[107,161,178,179,223,240],[107,161,178,179,227,228,231,232,233,240],[107,161,178,179,227,228,229,231,232,240],[107,161,178,179,224,225,226,227,228,232,233,234,236,237,238,240],[107,161,178,179,240],[107,161,178,179,222,224,225,226,227,228,229,231,232,233,234,235,236,237,238,239],[107,161,178,179,222,240],[107,161,178,179,227,229,230,232,233,240],[107,161,178,179,231,240],[107,161,178,179,232,233,237,240],[107,161,178,179,225,235],[107,161,178,179,216,245,246],[107,161,178,179,215,216],[94,107,161,178,179],[107,119,122,125,126,161,178,179,204],[107,122,161,178,179,193,204],[107,122,126,161,178,179,204],[107,161,178,179,193],[107,116,161,178,179],[107,120,161,178,179],[107,118,119,122,161,178,179,204],[107,161,178,179,181,201],[107,161,178,179,211],[107,116,161,178,179,211],[107,118,122,161,178,179,181,204],[107,113,114,115,117,121,161,172,178,179,193,204],[107,122,130,138,161,178,179],[107,114,120,161,178,179],[107,122,147,148,161,178,179],[107,114,117,122,161,178,179,196,204,211],[107,122,161,178,179],[107,118,122,161,178,179,204],[107,113,161,178,179],[107,116,117,118,120,121,122,123,124,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,148,149,150,151,152,161,178,179],[107,122,140,143,161,169,178,179],[107,122,130,131,132,161,178,179],[107,120,122,131,133,161,178,179],[107,121,161,178,179],[107,114,116,122,161,178,179],[107,122,126,131,133,161,178,179],[107,126,161,178,179],[107,120,122,125,161,178,179,204],[107,114,118,122,130,161,178,179],[107,122,140,161,178,179],[107,133,161,178,179],[107,116,122,147,161,178,179,196,209,211],[107,161,178,179,251,252],[107,161,178,179,251],[107,161,178,179,212],[107,161,172,173,175,176,177,178,179,181,193,201,204,210,211,212,213,214,216,217,219,220,221,241,242,243,244,245,246],[107,161,178,179,212,213,214,218],[107,161,178,179,214],[107,161,178,179,216,246],[102,107,161,178,179,263,264,273],[91,99,102,107,161,178,179,256,257,273],[107,161,178,179,266],[103,107,161,178,179],[91,102,104,107,161,178,179,256,265,272,273],[107,161,178,179,249],[91,96,99,102,104,107,161,164,173,178,179,193,246,249,250,253,256,258,259,262,265,267,268,273,274],[102,107,161,178,179,263,264,265,273],[107,161,178,179,246,269,274],[102,104,107,161,178,179,253,256,258,273],[107,161,178,179,209,259],[91,96,99,102,103,104,107,161,164,173,178,179,193,209,246,249,250,253,256,257,258,259,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,281],[107,161,178,179,282],[88,89,107,161,178,179],[89,107,161,178,179,282],[88,107,161,178,179,282]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},"b2da8f5052c3397a1a4f5346e4e0301ed10eb09beeb81bd1414eec64ade73296","cc06957fe3d7e69317534cdc65cfffc9036a0d9bf0c6a72d8fc957ad3e428e34","e003722bb5b34f78dc3354ddf5a262c231f0720144125908ebd09ce8042f64d1",{"version":"5c54a34e3d91727f7ae840bfe4d5d1c9a2f93c54cb7b6063d06ee4a6c3322656","impliedFormat":99},{"version":"db4da53b03596668cf6cc9484834e5de3833b9e7e64620cf08399fe069cd398d","impliedFormat":99},{"version":"ac7c28f153820c10850457994db1462d8c8e462f253b828ad942a979f726f2f9","impliedFormat":99},{"version":"f9b028d3c3891dd817e24d53102132b8f696269309605e6ed4f0db2c113bbd82","impliedFormat":99},{"version":"fb7c8d90e52e2884509166f96f3d591020c7b7977ab473b746954b0c8d100960","impliedFormat":99},{"version":"0bff51d6ed0c9093f6955b9d8258ce152ddb273359d50a897d8baabcb34de2c4","impliedFormat":99},{"version":"45cec9a1ba6549060552eead8959d47226048e0b71c7d0702ae58b7e16a28912","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"13918e2b81c4288695f9b1f3dcc2468caf0f848d5c1f3dc00071c619d34ff63a","impliedFormat":99},{"version":"6907b09850f86610e7a528348c15484c1e1c09a18a9c1e98861399dfe4b18b46","impliedFormat":99},{"version":"12deea8eaa7a4fc1a2908e67da99831e5c5a6b46ad4f4f948fd4759314ea2b80","impliedFormat":99},{"version":"f0a8b376568a18f9a4976ecb0855187672b16b96c4df1c183a7e52dc1b5d98e8","impliedFormat":99},{"version":"8124828a11be7db984fcdab052fd4ff756b18edcfa8d71118b55388176210923","impliedFormat":99},{"version":"092944a8c05f9b96579161e88c6f211d5304a76bd2c47f8d4c30053269146bc8","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b21e13ed07d0df176ae31d6b7f01f7b17d66dbeb489c0d31d00de2ca14883da","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"9d8f9e63e29a3396285620908e7f14d874d066caea747dc4b2c378f0599166b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f929f0b6b3421a2d34344b0f421f45aeb2c84ad365ebf29d04312023b3accc58","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc8c6f5322961b56d9906601b20798725df60baeab45ec014fba9f795d5596fd","impliedFormat":1},{"version":"0904660ae854e6d41f6ff25356db1d654436c6305b0f0aa89d1532df0253486e","impliedFormat":1},{"version":"148c73ec11318850f571172ceae3e55ce479d850fe18ec8eae0abd99d9f6c319","impliedFormat":1},{"version":"230bdc111d7578276e4a3bb9d075d85c78c6b68f428c3a9935e2eaa10f4ae1f5","impliedFormat":1},{"version":"e8aabbee5e7b9101b03bb4222607d57f38859b8115a8050a4eb91b4ee43a3a73","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"c0bb1b65757c72bbf8ddf7eaa532223bacf58041ff16c883e76f45506596e925","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"145dcf25fd4967c610c53d93d7bc4dce8fbb1b6dd7935362472d4ae49363c7ba","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"04bf1aa481d1adfb16d93d76e44ce71c51c8ef68039d849926551199489637f6","impliedFormat":1},{"version":"9043daec15206650fa119bad6b8d70136021ea7d52673a71f79a87a42ee38d44","affectsGlobalScope":true,"impliedFormat":1},{"version":"d00e86e2e74089bf416b4c5cc433d88eb2e09dcef5e3c5b79ca04a36d8d8d6f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"65faec1b4bd63564aeec33eab9cacfaefd84ce2400f03903a71a1841fbce195f","impliedFormat":1},{"version":"b33b74b97952d9bf4fbd2951dcfbb5136656ddb310ce1c84518aaa77dbca9992","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b306cd4282bbb54d4a6bb23cfb7a271160983dfc38c67b5a132504cfcc34896","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"450172a56b944c2d83f45cc11c9a388ea967cd301a21202aa0a23c34c7506a18","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"a1a3cbade20430dcb7f00fa23c2f020e827d5620c0d44213db1665c53231f1fc","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"69e0a41d620fb678a899c65e073413b452f4db321b858fe422ad93fd686cd49a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3585d6891e9ea18e07d0755a6d90d71331558ba5dc5561933553209f886db106","affectsGlobalScope":true,"impliedFormat":1},{"version":"86be71cbb0593468644932a6eb96d527cfa600cecfc0b698af5f52e51804451d","impliedFormat":1},{"version":"84dd6b0fd2505135692935599d6606f50a421389e8d4535194bcded307ee5cf2","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"db19ea066fdc5f97df3f769e582ae3000380ab7942e266654bdb1a4650d19eaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a034894bf28c220a331c7a0229d33564803abe2ac1b9a5feee91b6b9b6e88ea","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"4e741b9c88e80c9e4cedf07b5a698e8e3a3bd73cf649f664d6dd3f868c05c2f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f582b0fcbf1eea9b318ab92fb89ea9ab2ebb84f9b60af89328a91155e1afce72","impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"333caa2bfff7f06017f114de738050dd99a765c7eb16571c6d25a38c0d5365dc","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1251d53755b03cde02466064260bb88fd83c30006a46395b7d9167340bc59b73","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"4cdf27e29feae6c7826cdd5c91751cc35559125e8304f9e7aed8faef97dcf572","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"960bd764c62ac43edc24eaa2af958a4b4f1fa5d27df5237e176d0143b36a39c6","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4af494f7a14b226bbe732e9c130d8811f8c7025911d7c58dd97121a85519715","impliedFormat":1},{"version":"47416e41b1af81e53e8c3cc5bf909d47ff632a7b6eddfe7ff43d187b4dcca047","impliedFormat":99},{"version":"b34b5f6b506abb206b1ea73c6a332b9ee9c8c98be0f6d17cdbda9430ecc1efab","impliedFormat":99},{"version":"75d4c746c3d16af0df61e7b0afe9606475a23335d9f34fcc525d388c21e9058b","impliedFormat":99},{"version":"fa959bf357232201c32566f45d97e70538c75a093c940af594865d12f31d4912","impliedFormat":99},{"version":"d2c52abd76259fc39a30dfae70a2e5ce77fd23144457a7ff1b64b03de6e3aec7","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"f73e2335e568014e279927321770da6fe26facd4ac96cdc22a56687f1ecbb58e","impliedFormat":99},{"version":"317878f156f976d487e21fd1d58ad0461ee0a09185d5b0a43eedf2a56eb7e4ea","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"d6ee22aba183d5fc0c7b8617f77ee82ecadc2c14359cc51271c135e23f6ed51f","impliedFormat":99},{"version":"49747416f08b3ba50500a215e7a55d75268b84e31e896a40313c8053e8dec908","impliedFormat":99},{"version":"81e634f1c5e1ca309e7e3dc69e2732eea932ef07b8b34517d452e5a3e9a36fa3","impliedFormat":99},{"version":"34f39f75f2b5aa9c84a9f8157abbf8322e6831430e402badeaf58dd284f9b9a6","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"891694d3694abd66f0b8872997b85fd8e52bc51632ce0f8128c96962b443189f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"971a2c327ff166c770c5fb35699575ba2d13bba1f6d2757309c9be4b30036c8e","impliedFormat":99},{"version":"4f45e8effab83434a78d17123b01124259fbd1e335732135c213955d85222234","impliedFormat":99},{"version":"7bd51996fb7717941cbe094b05adc0d80b9503b350a77b789bbb0fc786f28053","impliedFormat":99},{"version":"b62006bbc815fe8190c7aee262aad6bff993e3f9ade70d7057dfceab6de79d2f","impliedFormat":99},{"version":"13497c0d73306e27f70634c424cd2f3b472187164f36140b504b3756b0ff476d","impliedFormat":99},{"version":"bf7a2d0f6d9e72d59044079d61000c38da50328ccdff28c47528a1a139c610ec","impliedFormat":99},{"version":"04471dc55f802c29791cc75edda8c4dd2a121f71c2401059da61eff83099e8ab","impliedFormat":99},{"version":"120a80aa556732f684db3ed61aeff1d6671e1655bd6cba0aa88b22b88ac9a6b1","affectsGlobalScope":true,"impliedFormat":99},{"version":"e58c0b5226aff07b63be6ac6e1bec9d55bc3d2bda3b11b9b68cccea8c24ae839","affectsGlobalScope":true,"impliedFormat":99},{"version":"a23a08b626aa4d4a1924957bd8c4d38a7ffc032e21407bbd2c97413e1d8c3dbd","impliedFormat":99},{"version":"5a88655bf852c8cc007d6bc874ab61d1d63fba97063020458177173c454e9b4a","impliedFormat":99},{"version":"7e4dfae2da12ec71ffd9f55f4641a6e05610ce0d6784838659490e259e4eb13c","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"13573a613314e40482386fe9c7934f9d86f3e06f19b840466c75391fb833b99b","impliedFormat":99},"23242a946fe2b47c16235e1a2b604ba3fd917cf3c0726d0561cd0b8b2e7128af","cf57322c65cc3615736081fcb33ea5ad2815d87d84d53d7ea10b893071cb3cf8",{"version":"ed09d42b14a604190e8c9fc972d18ea47d5c03c6c4a0003c9620dca915a1973d","affectsGlobalScope":true,"impliedFormat":99}],"root":[[88,90],283,284],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"esModuleInterop":true,"module":99,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noPropertyAccessFromIndexSignature":true,"noUnusedLocals":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[262,1],[260,2],[215,2],[158,3],[159,3],[160,4],[107,5],[161,6],[162,7],[163,8],[105,2],[164,9],[165,10],[166,11],[167,12],[168,13],[169,14],[170,14],[171,15],[172,16],[173,17],[174,18],[108,2],[106,2],[175,19],[176,20],[177,21],[211,22],[178,23],[179,2],[180,24],[181,25],[182,26],[183,27],[184,28],[185,29],[186,30],[187,31],[188,32],[189,32],[190,33],[191,2],[192,34],[193,35],[195,36],[194,37],[196,38],[197,39],[198,40],[199,41],[200,42],[201,43],[202,44],[203,45],[204,46],[205,47],[206,48],[207,49],[208,50],[109,2],[110,51],[111,2],[112,2],[154,52],[155,53],[156,2],[157,38],[209,54],[210,55],[272,56],[249,57],[247,2],[248,2],[91,2],[102,58],[97,59],[100,60],[263,61],[254,2],[257,62],[256,63],[268,63],[255,64],[271,2],[99,65],[101,65],[93,66],[96,67],[250,66],[98,68],[92,2],[261,2],[220,2],[279,69],[281,70],[280,71],[278,72],[277,2],[238,73],[236,74],[237,75],[225,76],[226,74],[233,77],[224,78],[229,79],[239,2],[230,80],[235,81],[241,82],[240,83],[223,84],[231,85],[232,86],[227,87],[234,73],[228,88],[217,89],[216,90],[222,2],[264,2],[94,2],[95,91],[86,2],[87,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[24,2],[25,2],[4,2],[26,2],[30,2],[27,2],[28,2],[29,2],[31,2],[32,2],[33,2],[5,2],[34,2],[35,2],[36,2],[37,2],[6,2],[41,2],[38,2],[39,2],[40,2],[42,2],[7,2],[43,2],[48,2],[49,2],[44,2],[45,2],[46,2],[47,2],[8,2],[53,2],[50,2],[51,2],[52,2],[54,2],[9,2],[55,2],[56,2],[57,2],[59,2],[58,2],[60,2],[61,2],[10,2],[62,2],[63,2],[64,2],[11,2],[65,2],[66,2],[67,2],[68,2],[69,2],[70,2],[12,2],[71,2],[72,2],[73,2],[74,2],[75,2],[1,2],[76,2],[77,2],[13,2],[78,2],[79,2],[80,2],[81,2],[82,2],[83,2],[84,2],[85,2],[130,92],[142,93],[128,94],[143,95],[152,96],[119,97],[120,98],[118,99],[151,100],[146,101],[150,102],[122,103],[139,104],[121,105],[149,106],[116,107],[117,101],[123,108],[124,2],[129,109],[127,108],[114,110],[153,111],[144,112],[133,113],[132,108],[134,114],[137,115],[131,116],[135,117],[147,100],[125,118],[126,119],[138,120],[115,95],[141,121],[140,108],[136,122],[145,2],[113,2],[148,123],[266,124],[252,125],[253,124],[251,2],[213,126],[246,127],[219,128],[214,126],[212,2],[218,129],[244,2],[242,2],[243,2],[221,2],[245,130],[265,131],[258,132],[267,133],[104,134],[273,135],[275,136],[269,137],[276,138],[274,139],[259,140],[270,141],[282,142],[285,143],[103,2],[90,144],[283,145],[89,2],[284,146],[88,2]],"affectedFilesPendingEmit":[[90,19],[283,19],[89,19],[284,19],[88,19]],"emitSignatures":[88,89,90,283,284],"version":"6.0.3"}