zeroed-some/bashamole / 1dac56e

Browse files

init frontend

Authored by espadonne
SHA
1dac56efb3e93f4281d6164f5cb527bc91c13253
Parents
9c38f5f
Tree
ac75d5a

22 changed files

StatusFile+-
A frontend/.gitignore 43 0
A frontend/README.md 36 0
A frontend/eslint.config.mjs 16 0
A frontend/next.config.ts 7 0
A frontend/package-lock.json 6986 0
A frontend/package.json 30 0
A frontend/postcss.config.mjs 5 0
A frontend/public/file.svg 1 0
A frontend/public/globe.svg 1 0
A frontend/public/mole.svg 11 0
A frontend/public/next.svg 1 0
A frontend/public/player.svg 5 0
A frontend/public/vercel.svg 1 0
A frontend/public/window.svg 1 0
A frontend/src/app/favicon.ico bin
A frontend/src/app/globals.css 48 0
A frontend/src/app/layout.tsx 23 0
A frontend/src/app/page.tsx 6 0
A frontend/src/components/Game.tsx 336 0
A frontend/src/components/TreeVisualizer.tsx 229 0
A frontend/src/lib/api.ts 83 0
A frontend/tsconfig.json 27 0
frontend/.gitignoreadded
@@ -0,0 +1,43 @@
1
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+# dependencies
4
+/node_modules
5
+/.pnp
6
+.pnp.*
7
+.yarn/*
8
+!.yarn/patches
9
+!.yarn/plugins
10
+!.yarn/releases
11
+!.yarn/versions
12
+
13
+# testing
14
+/coverage
15
+
16
+# next.js
17
+/.next/
18
+/out/
19
+
20
+# production
21
+/build
22
+
23
+# misc
24
+.DS_Store
25
+*.pem
26
+
27
+# debug
28
+npm-debug.log*
29
+yarn-debug.log*
30
+yarn-error.log*
31
+.pnpm-debug.log*
32
+
33
+# env files (can opt-in for committing if needed)
34
+.env*
35
+
36
+# vercel
37
+.vercel
38
+
39
+# typescript
40
+*.tsbuildinfo
41
+next-env.d.ts
42
+
43
+**/*/__pycache__/*
frontend/README.mdadded
@@ -0,0 +1,36 @@
1
+This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
2
+
3
+## Getting Started
4
+
5
+First, run the development server:
6
+
7
+```bash
8
+npm run dev
9
+# or
10
+yarn dev
11
+# or
12
+pnpm dev
13
+# or
14
+bun dev
15
+```
16
+
17
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18
+
19
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
20
+
21
+This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
22
+
23
+## Learn More
24
+
25
+To learn more about Next.js, take a look at the following resources:
26
+
27
+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28
+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29
+
30
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
31
+
32
+## Deploy on Vercel
33
+
34
+The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35
+
36
+Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
frontend/eslint.config.mjsadded
@@ -0,0 +1,16 @@
1
+import { dirname } from "path";
2
+import { fileURLToPath } from "url";
3
+import { FlatCompat } from "@eslint/eslintrc";
4
+
5
+const __filename = fileURLToPath(import.meta.url);
6
+const __dirname = dirname(__filename);
7
+
8
+const compat = new FlatCompat({
9
+  baseDirectory: __dirname,
10
+});
11
+
12
+const eslintConfig = [
13
+  ...compat.extends("next/core-web-vitals", "next/typescript"),
14
+];
15
+
16
+export default eslintConfig;
frontend/next.config.tsadded
@@ -0,0 +1,7 @@
1
+import type { NextConfig } from "next";
2
+
3
+const nextConfig: NextConfig = {
4
+  /* config options here */
5
+};
6
+
7
+export default nextConfig;
frontend/package-lock.jsonadded
6986 lines changed — click to load
@@ -0,0 +1,6986 @@
1
+{
2
+  "name": "frontend",
3
+  "version": "0.1.0",
4
+  "lockfileVersion": 3,
5
+  "requires": true,
6
+  "packages": {
7
+    "": {
8
+      "name": "frontend",
9
+      "version": "0.1.0",
10
+      "dependencies": {
11
+        "@types/d3": "^7.4.3",
12
+        "axios": "^1.10.0",
13
+        "d3": "^7.9.0",
14
+        "next": "15.3.3",
15
+        "react": "^19.0.0",
16
+        "react-dom": "^19.0.0"
17
+      },
18
+      "devDependencies": {
19
+        "@eslint/eslintrc": "^3",
20
+        "@tailwindcss/postcss": "^4",
21
+        "@types/node": "^20",
22
+        "@types/react": "^19",
23
+        "@types/react-dom": "^19",
24
+        "eslint": "^9",
25
+        "eslint-config-next": "15.3.3",
26
+        "tailwindcss": "^4",
27
+        "typescript": "^5"
28
+      }
29
+    },
30
+    "node_modules/@alloc/quick-lru": {
31
+      "version": "5.2.0",
32
+      "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
33
+      "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
34
+      "dev": true,
35
+      "license": "MIT",
36
+      "engines": {
37
+        "node": ">=10"
38
+      },
39
+      "funding": {
40
+        "url": "https://github.com/sponsors/sindresorhus"
41
+      }
42
+    },
43
+    "node_modules/@ampproject/remapping": {
44
+      "version": "2.3.0",
45
+      "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
46
+      "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
47
+      "dev": true,
48
+      "license": "Apache-2.0",
49
+      "dependencies": {
50
+        "@jridgewell/gen-mapping": "^0.3.5",
51
+        "@jridgewell/trace-mapping": "^0.3.24"
52
+      },
53
+      "engines": {
54
+        "node": ">=6.0.0"
55
+      }
56
+    },
57
+    "node_modules/@emnapi/core": {
58
+      "version": "1.4.3",
59
+      "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz",
60
+      "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==",
61
+      "dev": true,
62
+      "license": "MIT",
63
+      "optional": true,
64
+      "dependencies": {
65
+        "@emnapi/wasi-threads": "1.0.2",
66
+        "tslib": "^2.4.0"
67
+      }
68
+    },
69
+    "node_modules/@emnapi/runtime": {
70
+      "version": "1.4.3",
71
+      "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
72
+      "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
73
+      "license": "MIT",
74
+      "optional": true,
75
+      "dependencies": {
76
+        "tslib": "^2.4.0"
77
+      }
78
+    },
79
+    "node_modules/@emnapi/wasi-threads": {
80
+      "version": "1.0.2",
81
+      "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz",
82
+      "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==",
83
+      "dev": true,
84
+      "license": "MIT",
85
+      "optional": true,
86
+      "dependencies": {
87
+        "tslib": "^2.4.0"
88
+      }
89
+    },
90
+    "node_modules/@eslint-community/eslint-utils": {
91
+      "version": "4.7.0",
92
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
93
+      "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
94
+      "dev": true,
95
+      "license": "MIT",
96
+      "dependencies": {
97
+        "eslint-visitor-keys": "^3.4.3"
98
+      },
99
+      "engines": {
100
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
101
+      },
102
+      "funding": {
103
+        "url": "https://opencollective.com/eslint"
104
+      },
105
+      "peerDependencies": {
106
+        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
107
+      }
108
+    },
109
+    "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
110
+      "version": "3.4.3",
111
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
112
+      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
113
+      "dev": true,
114
+      "license": "Apache-2.0",
115
+      "engines": {
116
+        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
117
+      },
118
+      "funding": {
119
+        "url": "https://opencollective.com/eslint"
120
+      }
121
+    },
122
+    "node_modules/@eslint-community/regexpp": {
123
+      "version": "4.12.1",
124
+      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
125
+      "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
126
+      "dev": true,
127
+      "license": "MIT",
128
+      "engines": {
129
+        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
130
+      }
131
+    },
132
+    "node_modules/@eslint/config-array": {
133
+      "version": "0.20.1",
134
+      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz",
135
+      "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==",
136
+      "dev": true,
137
+      "license": "Apache-2.0",
138
+      "dependencies": {
139
+        "@eslint/object-schema": "^2.1.6",
140
+        "debug": "^4.3.1",
141
+        "minimatch": "^3.1.2"
142
+      },
143
+      "engines": {
144
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
145
+      }
146
+    },
147
+    "node_modules/@eslint/config-helpers": {
148
+      "version": "0.2.3",
149
+      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz",
150
+      "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==",
151
+      "dev": true,
152
+      "license": "Apache-2.0",
153
+      "engines": {
154
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
155
+      }
156
+    },
157
+    "node_modules/@eslint/core": {
158
+      "version": "0.14.0",
159
+      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz",
160
+      "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==",
161
+      "dev": true,
162
+      "license": "Apache-2.0",
163
+      "dependencies": {
164
+        "@types/json-schema": "^7.0.15"
165
+      },
166
+      "engines": {
167
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
168
+      }
169
+    },
170
+    "node_modules/@eslint/eslintrc": {
171
+      "version": "3.3.1",
172
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
173
+      "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
174
+      "dev": true,
175
+      "license": "MIT",
176
+      "dependencies": {
177
+        "ajv": "^6.12.4",
178
+        "debug": "^4.3.2",
179
+        "espree": "^10.0.1",
180
+        "globals": "^14.0.0",
181
+        "ignore": "^5.2.0",
182
+        "import-fresh": "^3.2.1",
183
+        "js-yaml": "^4.1.0",
184
+        "minimatch": "^3.1.2",
185
+        "strip-json-comments": "^3.1.1"
186
+      },
187
+      "engines": {
188
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
189
+      },
190
+      "funding": {
191
+        "url": "https://opencollective.com/eslint"
192
+      }
193
+    },
194
+    "node_modules/@eslint/js": {
195
+      "version": "9.29.0",
196
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
197
+      "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
198
+      "dev": true,
199
+      "license": "MIT",
200
+      "engines": {
201
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
202
+      },
203
+      "funding": {
204
+        "url": "https://eslint.org/donate"
205
+      }
206
+    },
207
+    "node_modules/@eslint/object-schema": {
208
+      "version": "2.1.6",
209
+      "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
210
+      "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
211
+      "dev": true,
212
+      "license": "Apache-2.0",
213
+      "engines": {
214
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
215
+      }
216
+    },
217
+    "node_modules/@eslint/plugin-kit": {
218
+      "version": "0.3.2",
219
+      "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz",
220
+      "integrity": "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==",
221
+      "dev": true,
222
+      "license": "Apache-2.0",
223
+      "dependencies": {
224
+        "@eslint/core": "^0.15.0",
225
+        "levn": "^0.4.1"
226
+      },
227
+      "engines": {
228
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
229
+      }
230
+    },
231
+    "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": {
232
+      "version": "0.15.0",
233
+      "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.0.tgz",
234
+      "integrity": "sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==",
235
+      "dev": true,
236
+      "license": "Apache-2.0",
237
+      "dependencies": {
238
+        "@types/json-schema": "^7.0.15"
239
+      },
240
+      "engines": {
241
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
242
+      }
243
+    },
244
+    "node_modules/@humanfs/core": {
245
+      "version": "0.19.1",
246
+      "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
247
+      "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
248
+      "dev": true,
249
+      "license": "Apache-2.0",
250
+      "engines": {
251
+        "node": ">=18.18.0"
252
+      }
253
+    },
254
+    "node_modules/@humanfs/node": {
255
+      "version": "0.16.6",
256
+      "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
257
+      "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
258
+      "dev": true,
259
+      "license": "Apache-2.0",
260
+      "dependencies": {
261
+        "@humanfs/core": "^0.19.1",
262
+        "@humanwhocodes/retry": "^0.3.0"
263
+      },
264
+      "engines": {
265
+        "node": ">=18.18.0"
266
+      }
267
+    },
268
+    "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
269
+      "version": "0.3.1",
270
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
271
+      "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
272
+      "dev": true,
273
+      "license": "Apache-2.0",
274
+      "engines": {
275
+        "node": ">=18.18"
276
+      },
277
+      "funding": {
278
+        "type": "github",
279
+        "url": "https://github.com/sponsors/nzakas"
280
+      }
281
+    },
282
+    "node_modules/@humanwhocodes/module-importer": {
283
+      "version": "1.0.1",
284
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
285
+      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
286
+      "dev": true,
287
+      "license": "Apache-2.0",
288
+      "engines": {
289
+        "node": ">=12.22"
290
+      },
291
+      "funding": {
292
+        "type": "github",
293
+        "url": "https://github.com/sponsors/nzakas"
294
+      }
295
+    },
296
+    "node_modules/@humanwhocodes/retry": {
297
+      "version": "0.4.3",
298
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
299
+      "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
300
+      "dev": true,
301
+      "license": "Apache-2.0",
302
+      "engines": {
303
+        "node": ">=18.18"
304
+      },
305
+      "funding": {
306
+        "type": "github",
307
+        "url": "https://github.com/sponsors/nzakas"
308
+      }
309
+    },
310
+    "node_modules/@img/sharp-darwin-arm64": {
311
+      "version": "0.34.2",
312
+      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz",
313
+      "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==",
314
+      "cpu": [
315
+        "arm64"
316
+      ],
317
+      "license": "Apache-2.0",
318
+      "optional": true,
319
+      "os": [
320
+        "darwin"
321
+      ],
322
+      "engines": {
323
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
324
+      },
325
+      "funding": {
326
+        "url": "https://opencollective.com/libvips"
327
+      },
328
+      "optionalDependencies": {
329
+        "@img/sharp-libvips-darwin-arm64": "1.1.0"
330
+      }
331
+    },
332
+    "node_modules/@img/sharp-darwin-x64": {
333
+      "version": "0.34.2",
334
+      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz",
335
+      "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==",
336
+      "cpu": [
337
+        "x64"
338
+      ],
339
+      "license": "Apache-2.0",
340
+      "optional": true,
341
+      "os": [
342
+        "darwin"
343
+      ],
344
+      "engines": {
345
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
346
+      },
347
+      "funding": {
348
+        "url": "https://opencollective.com/libvips"
349
+      },
350
+      "optionalDependencies": {
351
+        "@img/sharp-libvips-darwin-x64": "1.1.0"
352
+      }
353
+    },
354
+    "node_modules/@img/sharp-libvips-darwin-arm64": {
355
+      "version": "1.1.0",
356
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz",
357
+      "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==",
358
+      "cpu": [
359
+        "arm64"
360
+      ],
361
+      "license": "LGPL-3.0-or-later",
362
+      "optional": true,
363
+      "os": [
364
+        "darwin"
365
+      ],
366
+      "funding": {
367
+        "url": "https://opencollective.com/libvips"
368
+      }
369
+    },
370
+    "node_modules/@img/sharp-libvips-darwin-x64": {
371
+      "version": "1.1.0",
372
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz",
373
+      "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==",
374
+      "cpu": [
375
+        "x64"
376
+      ],
377
+      "license": "LGPL-3.0-or-later",
378
+      "optional": true,
379
+      "os": [
380
+        "darwin"
381
+      ],
382
+      "funding": {
383
+        "url": "https://opencollective.com/libvips"
384
+      }
385
+    },
386
+    "node_modules/@img/sharp-libvips-linux-arm": {
387
+      "version": "1.1.0",
388
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz",
389
+      "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==",
390
+      "cpu": [
391
+        "arm"
392
+      ],
393
+      "license": "LGPL-3.0-or-later",
394
+      "optional": true,
395
+      "os": [
396
+        "linux"
397
+      ],
398
+      "funding": {
399
+        "url": "https://opencollective.com/libvips"
400
+      }
401
+    },
402
+    "node_modules/@img/sharp-libvips-linux-arm64": {
403
+      "version": "1.1.0",
404
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz",
405
+      "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==",
406
+      "cpu": [
407
+        "arm64"
408
+      ],
409
+      "license": "LGPL-3.0-or-later",
410
+      "optional": true,
411
+      "os": [
412
+        "linux"
413
+      ],
414
+      "funding": {
415
+        "url": "https://opencollective.com/libvips"
416
+      }
417
+    },
418
+    "node_modules/@img/sharp-libvips-linux-ppc64": {
419
+      "version": "1.1.0",
420
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz",
421
+      "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==",
422
+      "cpu": [
423
+        "ppc64"
424
+      ],
425
+      "license": "LGPL-3.0-or-later",
426
+      "optional": true,
427
+      "os": [
428
+        "linux"
429
+      ],
430
+      "funding": {
431
+        "url": "https://opencollective.com/libvips"
432
+      }
433
+    },
434
+    "node_modules/@img/sharp-libvips-linux-s390x": {
435
+      "version": "1.1.0",
436
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz",
437
+      "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==",
438
+      "cpu": [
439
+        "s390x"
440
+      ],
441
+      "license": "LGPL-3.0-or-later",
442
+      "optional": true,
443
+      "os": [
444
+        "linux"
445
+      ],
446
+      "funding": {
447
+        "url": "https://opencollective.com/libvips"
448
+      }
449
+    },
450
+    "node_modules/@img/sharp-libvips-linux-x64": {
451
+      "version": "1.1.0",
452
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz",
453
+      "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==",
454
+      "cpu": [
455
+        "x64"
456
+      ],
457
+      "license": "LGPL-3.0-or-later",
458
+      "optional": true,
459
+      "os": [
460
+        "linux"
461
+      ],
462
+      "funding": {
463
+        "url": "https://opencollective.com/libvips"
464
+      }
465
+    },
466
+    "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
467
+      "version": "1.1.0",
468
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz",
469
+      "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==",
470
+      "cpu": [
471
+        "arm64"
472
+      ],
473
+      "license": "LGPL-3.0-or-later",
474
+      "optional": true,
475
+      "os": [
476
+        "linux"
477
+      ],
478
+      "funding": {
479
+        "url": "https://opencollective.com/libvips"
480
+      }
481
+    },
482
+    "node_modules/@img/sharp-libvips-linuxmusl-x64": {
483
+      "version": "1.1.0",
484
+      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz",
485
+      "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==",
486
+      "cpu": [
487
+        "x64"
488
+      ],
489
+      "license": "LGPL-3.0-or-later",
490
+      "optional": true,
491
+      "os": [
492
+        "linux"
493
+      ],
494
+      "funding": {
495
+        "url": "https://opencollective.com/libvips"
496
+      }
497
+    },
498
+    "node_modules/@img/sharp-linux-arm": {
499
+      "version": "0.34.2",
500
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz",
501
+      "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==",
502
+      "cpu": [
503
+        "arm"
504
+      ],
505
+      "license": "Apache-2.0",
506
+      "optional": true,
507
+      "os": [
508
+        "linux"
509
+      ],
510
+      "engines": {
511
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
512
+      },
513
+      "funding": {
514
+        "url": "https://opencollective.com/libvips"
515
+      },
516
+      "optionalDependencies": {
517
+        "@img/sharp-libvips-linux-arm": "1.1.0"
518
+      }
519
+    },
520
+    "node_modules/@img/sharp-linux-arm64": {
521
+      "version": "0.34.2",
522
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz",
523
+      "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==",
524
+      "cpu": [
525
+        "arm64"
526
+      ],
527
+      "license": "Apache-2.0",
528
+      "optional": true,
529
+      "os": [
530
+        "linux"
531
+      ],
532
+      "engines": {
533
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
534
+      },
535
+      "funding": {
536
+        "url": "https://opencollective.com/libvips"
537
+      },
538
+      "optionalDependencies": {
539
+        "@img/sharp-libvips-linux-arm64": "1.1.0"
540
+      }
541
+    },
542
+    "node_modules/@img/sharp-linux-s390x": {
543
+      "version": "0.34.2",
544
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz",
545
+      "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==",
546
+      "cpu": [
547
+        "s390x"
548
+      ],
549
+      "license": "Apache-2.0",
550
+      "optional": true,
551
+      "os": [
552
+        "linux"
553
+      ],
554
+      "engines": {
555
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
556
+      },
557
+      "funding": {
558
+        "url": "https://opencollective.com/libvips"
559
+      },
560
+      "optionalDependencies": {
561
+        "@img/sharp-libvips-linux-s390x": "1.1.0"
562
+      }
563
+    },
564
+    "node_modules/@img/sharp-linux-x64": {
565
+      "version": "0.34.2",
566
+      "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz",
567
+      "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==",
568
+      "cpu": [
569
+        "x64"
570
+      ],
571
+      "license": "Apache-2.0",
572
+      "optional": true,
573
+      "os": [
574
+        "linux"
575
+      ],
576
+      "engines": {
577
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
578
+      },
579
+      "funding": {
580
+        "url": "https://opencollective.com/libvips"
581
+      },
582
+      "optionalDependencies": {
583
+        "@img/sharp-libvips-linux-x64": "1.1.0"
584
+      }
585
+    },
586
+    "node_modules/@img/sharp-linuxmusl-arm64": {
587
+      "version": "0.34.2",
588
+      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz",
589
+      "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==",
590
+      "cpu": [
591
+        "arm64"
592
+      ],
593
+      "license": "Apache-2.0",
594
+      "optional": true,
595
+      "os": [
596
+        "linux"
597
+      ],
598
+      "engines": {
599
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
600
+      },
601
+      "funding": {
602
+        "url": "https://opencollective.com/libvips"
603
+      },
604
+      "optionalDependencies": {
605
+        "@img/sharp-libvips-linuxmusl-arm64": "1.1.0"
606
+      }
607
+    },
608
+    "node_modules/@img/sharp-linuxmusl-x64": {
609
+      "version": "0.34.2",
610
+      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz",
611
+      "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==",
612
+      "cpu": [
613
+        "x64"
614
+      ],
615
+      "license": "Apache-2.0",
616
+      "optional": true,
617
+      "os": [
618
+        "linux"
619
+      ],
620
+      "engines": {
621
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
622
+      },
623
+      "funding": {
624
+        "url": "https://opencollective.com/libvips"
625
+      },
626
+      "optionalDependencies": {
627
+        "@img/sharp-libvips-linuxmusl-x64": "1.1.0"
628
+      }
629
+    },
630
+    "node_modules/@img/sharp-wasm32": {
631
+      "version": "0.34.2",
632
+      "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz",
633
+      "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==",
634
+      "cpu": [
635
+        "wasm32"
636
+      ],
637
+      "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
638
+      "optional": true,
639
+      "dependencies": {
640
+        "@emnapi/runtime": "^1.4.3"
641
+      },
642
+      "engines": {
643
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
644
+      },
645
+      "funding": {
646
+        "url": "https://opencollective.com/libvips"
647
+      }
648
+    },
649
+    "node_modules/@img/sharp-win32-arm64": {
650
+      "version": "0.34.2",
651
+      "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz",
652
+      "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==",
653
+      "cpu": [
654
+        "arm64"
655
+      ],
656
+      "license": "Apache-2.0 AND LGPL-3.0-or-later",
657
+      "optional": true,
658
+      "os": [
659
+        "win32"
660
+      ],
661
+      "engines": {
662
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
663
+      },
664
+      "funding": {
665
+        "url": "https://opencollective.com/libvips"
666
+      }
667
+    },
668
+    "node_modules/@img/sharp-win32-ia32": {
669
+      "version": "0.34.2",
670
+      "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz",
671
+      "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==",
672
+      "cpu": [
673
+        "ia32"
674
+      ],
675
+      "license": "Apache-2.0 AND LGPL-3.0-or-later",
676
+      "optional": true,
677
+      "os": [
678
+        "win32"
679
+      ],
680
+      "engines": {
681
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
682
+      },
683
+      "funding": {
684
+        "url": "https://opencollective.com/libvips"
685
+      }
686
+    },
687
+    "node_modules/@img/sharp-win32-x64": {
688
+      "version": "0.34.2",
689
+      "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz",
690
+      "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==",
691
+      "cpu": [
692
+        "x64"
693
+      ],
694
+      "license": "Apache-2.0 AND LGPL-3.0-or-later",
695
+      "optional": true,
696
+      "os": [
697
+        "win32"
698
+      ],
699
+      "engines": {
700
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
701
+      },
702
+      "funding": {
703
+        "url": "https://opencollective.com/libvips"
704
+      }
705
+    },
706
+    "node_modules/@isaacs/fs-minipass": {
707
+      "version": "4.0.1",
708
+      "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
709
+      "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
710
+      "dev": true,
711
+      "license": "ISC",
712
+      "dependencies": {
713
+        "minipass": "^7.0.4"
714
+      },
715
+      "engines": {
716
+        "node": ">=18.0.0"
717
+      }
718
+    },
719
+    "node_modules/@jridgewell/gen-mapping": {
720
+      "version": "0.3.8",
721
+      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
722
+      "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
723
+      "dev": true,
724
+      "license": "MIT",
725
+      "dependencies": {
726
+        "@jridgewell/set-array": "^1.2.1",
727
+        "@jridgewell/sourcemap-codec": "^1.4.10",
728
+        "@jridgewell/trace-mapping": "^0.3.24"
729
+      },
730
+      "engines": {
731
+        "node": ">=6.0.0"
732
+      }
733
+    },
734
+    "node_modules/@jridgewell/resolve-uri": {
735
+      "version": "3.1.2",
736
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
737
+      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
738
+      "dev": true,
739
+      "license": "MIT",
740
+      "engines": {
741
+        "node": ">=6.0.0"
742
+      }
743
+    },
744
+    "node_modules/@jridgewell/set-array": {
745
+      "version": "1.2.1",
746
+      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
747
+      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
748
+      "dev": true,
749
+      "license": "MIT",
750
+      "engines": {
751
+        "node": ">=6.0.0"
752
+      }
753
+    },
754
+    "node_modules/@jridgewell/sourcemap-codec": {
755
+      "version": "1.5.0",
756
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
757
+      "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
758
+      "dev": true,
759
+      "license": "MIT"
760
+    },
761
+    "node_modules/@jridgewell/trace-mapping": {
762
+      "version": "0.3.25",
763
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
764
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
765
+      "dev": true,
766
+      "license": "MIT",
767
+      "dependencies": {
768
+        "@jridgewell/resolve-uri": "^3.1.0",
769
+        "@jridgewell/sourcemap-codec": "^1.4.14"
770
+      }
771
+    },
772
+    "node_modules/@napi-rs/wasm-runtime": {
773
+      "version": "0.2.11",
774
+      "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz",
775
+      "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==",
776
+      "dev": true,
777
+      "license": "MIT",
778
+      "optional": true,
779
+      "dependencies": {
780
+        "@emnapi/core": "^1.4.3",
781
+        "@emnapi/runtime": "^1.4.3",
782
+        "@tybys/wasm-util": "^0.9.0"
783
+      }
784
+    },
785
+    "node_modules/@next/env": {
786
+      "version": "15.3.3",
787
+      "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.3.tgz",
788
+      "integrity": "sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==",
789
+      "license": "MIT"
790
+    },
791
+    "node_modules/@next/eslint-plugin-next": {
792
+      "version": "15.3.3",
793
+      "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.3.3.tgz",
794
+      "integrity": "sha512-VKZJEiEdpKkfBmcokGjHu0vGDG+8CehGs90tBEy/IDoDDKGngeyIStt2MmE5FYNyU9BhgR7tybNWTAJY/30u+Q==",
795
+      "dev": true,
796
+      "license": "MIT",
797
+      "dependencies": {
798
+        "fast-glob": "3.3.1"
799
+      }
800
+    },
801
+    "node_modules/@next/swc-darwin-arm64": {
802
+      "version": "15.3.3",
803
+      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.3.tgz",
804
+      "integrity": "sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==",
805
+      "cpu": [
806
+        "arm64"
807
+      ],
808
+      "license": "MIT",
809
+      "optional": true,
810
+      "os": [
811
+        "darwin"
812
+      ],
813
+      "engines": {
814
+        "node": ">= 10"
815
+      }
816
+    },
817
+    "node_modules/@next/swc-darwin-x64": {
818
+      "version": "15.3.3",
819
+      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.3.tgz",
820
+      "integrity": "sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==",
821
+      "cpu": [
822
+        "x64"
823
+      ],
824
+      "license": "MIT",
825
+      "optional": true,
826
+      "os": [
827
+        "darwin"
828
+      ],
829
+      "engines": {
830
+        "node": ">= 10"
831
+      }
832
+    },
833
+    "node_modules/@next/swc-linux-arm64-gnu": {
834
+      "version": "15.3.3",
835
+      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.3.tgz",
836
+      "integrity": "sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==",
837
+      "cpu": [
838
+        "arm64"
839
+      ],
840
+      "license": "MIT",
841
+      "optional": true,
842
+      "os": [
843
+        "linux"
844
+      ],
845
+      "engines": {
846
+        "node": ">= 10"
847
+      }
848
+    },
849
+    "node_modules/@next/swc-linux-arm64-musl": {
850
+      "version": "15.3.3",
851
+      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.3.tgz",
852
+      "integrity": "sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==",
853
+      "cpu": [
854
+        "arm64"
855
+      ],
856
+      "license": "MIT",
857
+      "optional": true,
858
+      "os": [
859
+        "linux"
860
+      ],
861
+      "engines": {
862
+        "node": ">= 10"
863
+      }
864
+    },
865
+    "node_modules/@next/swc-linux-x64-gnu": {
866
+      "version": "15.3.3",
867
+      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.3.tgz",
868
+      "integrity": "sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==",
869
+      "cpu": [
870
+        "x64"
871
+      ],
872
+      "license": "MIT",
873
+      "optional": true,
874
+      "os": [
875
+        "linux"
876
+      ],
877
+      "engines": {
878
+        "node": ">= 10"
879
+      }
880
+    },
881
+    "node_modules/@next/swc-linux-x64-musl": {
882
+      "version": "15.3.3",
883
+      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.3.tgz",
884
+      "integrity": "sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==",
885
+      "cpu": [
886
+        "x64"
887
+      ],
888
+      "license": "MIT",
889
+      "optional": true,
890
+      "os": [
891
+        "linux"
892
+      ],
893
+      "engines": {
894
+        "node": ">= 10"
895
+      }
896
+    },
897
+    "node_modules/@next/swc-win32-arm64-msvc": {
898
+      "version": "15.3.3",
899
+      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.3.tgz",
900
+      "integrity": "sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==",
901
+      "cpu": [
902
+        "arm64"
903
+      ],
904
+      "license": "MIT",
905
+      "optional": true,
906
+      "os": [
907
+        "win32"
908
+      ],
909
+      "engines": {
910
+        "node": ">= 10"
911
+      }
912
+    },
913
+    "node_modules/@next/swc-win32-x64-msvc": {
914
+      "version": "15.3.3",
915
+      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.3.tgz",
916
+      "integrity": "sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==",
917
+      "cpu": [
918
+        "x64"
919
+      ],
920
+      "license": "MIT",
921
+      "optional": true,
922
+      "os": [
923
+        "win32"
924
+      ],
925
+      "engines": {
926
+        "node": ">= 10"
927
+      }
928
+    },
929
+    "node_modules/@nodelib/fs.scandir": {
930
+      "version": "2.1.5",
931
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
932
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
933
+      "dev": true,
934
+      "license": "MIT",
935
+      "dependencies": {
936
+        "@nodelib/fs.stat": "2.0.5",
937
+        "run-parallel": "^1.1.9"
938
+      },
939
+      "engines": {
940
+        "node": ">= 8"
941
+      }
942
+    },
943
+    "node_modules/@nodelib/fs.stat": {
944
+      "version": "2.0.5",
945
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
946
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
947
+      "dev": true,
948
+      "license": "MIT",
949
+      "engines": {
950
+        "node": ">= 8"
951
+      }
952
+    },
953
+    "node_modules/@nodelib/fs.walk": {
954
+      "version": "1.2.8",
955
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
956
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
957
+      "dev": true,
958
+      "license": "MIT",
959
+      "dependencies": {
960
+        "@nodelib/fs.scandir": "2.1.5",
961
+        "fastq": "^1.6.0"
962
+      },
963
+      "engines": {
964
+        "node": ">= 8"
965
+      }
966
+    },
967
+    "node_modules/@nolyfill/is-core-module": {
968
+      "version": "1.0.39",
969
+      "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz",
970
+      "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==",
971
+      "dev": true,
972
+      "license": "MIT",
973
+      "engines": {
974
+        "node": ">=12.4.0"
975
+      }
976
+    },
977
+    "node_modules/@rtsao/scc": {
978
+      "version": "1.1.0",
979
+      "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
980
+      "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
981
+      "dev": true,
982
+      "license": "MIT"
983
+    },
984
+    "node_modules/@rushstack/eslint-patch": {
985
+      "version": "1.11.0",
986
+      "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz",
987
+      "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==",
988
+      "dev": true,
989
+      "license": "MIT"
990
+    },
991
+    "node_modules/@swc/counter": {
992
+      "version": "0.1.3",
993
+      "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
994
+      "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
995
+      "license": "Apache-2.0"
996
+    },
997
+    "node_modules/@swc/helpers": {
998
+      "version": "0.5.15",
999
+      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
1000
+      "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
1001
+      "license": "Apache-2.0",
1002
+      "dependencies": {
1003
+        "tslib": "^2.8.0"
1004
+      }
1005
+    },
1006
+    "node_modules/@tailwindcss/node": {
1007
+      "version": "4.1.10",
1008
+      "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.10.tgz",
1009
+      "integrity": "sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==",
1010
+      "dev": true,
1011
+      "license": "MIT",
1012
+      "dependencies": {
1013
+        "@ampproject/remapping": "^2.3.0",
1014
+        "enhanced-resolve": "^5.18.1",
1015
+        "jiti": "^2.4.2",
1016
+        "lightningcss": "1.30.1",
1017
+        "magic-string": "^0.30.17",
1018
+        "source-map-js": "^1.2.1",
1019
+        "tailwindcss": "4.1.10"
1020
+      }
1021
+    },
1022
+    "node_modules/@tailwindcss/oxide": {
1023
+      "version": "4.1.10",
1024
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.10.tgz",
1025
+      "integrity": "sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==",
1026
+      "dev": true,
1027
+      "hasInstallScript": true,
1028
+      "license": "MIT",
1029
+      "dependencies": {
1030
+        "detect-libc": "^2.0.4",
1031
+        "tar": "^7.4.3"
1032
+      },
1033
+      "engines": {
1034
+        "node": ">= 10"
1035
+      },
1036
+      "optionalDependencies": {
1037
+        "@tailwindcss/oxide-android-arm64": "4.1.10",
1038
+        "@tailwindcss/oxide-darwin-arm64": "4.1.10",
1039
+        "@tailwindcss/oxide-darwin-x64": "4.1.10",
1040
+        "@tailwindcss/oxide-freebsd-x64": "4.1.10",
1041
+        "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.10",
1042
+        "@tailwindcss/oxide-linux-arm64-gnu": "4.1.10",
1043
+        "@tailwindcss/oxide-linux-arm64-musl": "4.1.10",
1044
+        "@tailwindcss/oxide-linux-x64-gnu": "4.1.10",
1045
+        "@tailwindcss/oxide-linux-x64-musl": "4.1.10",
1046
+        "@tailwindcss/oxide-wasm32-wasi": "4.1.10",
1047
+        "@tailwindcss/oxide-win32-arm64-msvc": "4.1.10",
1048
+        "@tailwindcss/oxide-win32-x64-msvc": "4.1.10"
1049
+      }
1050
+    },
1051
+    "node_modules/@tailwindcss/oxide-android-arm64": {
1052
+      "version": "4.1.10",
1053
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.10.tgz",
1054
+      "integrity": "sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==",
1055
+      "cpu": [
1056
+        "arm64"
1057
+      ],
1058
+      "dev": true,
1059
+      "license": "MIT",
1060
+      "optional": true,
1061
+      "os": [
1062
+        "android"
1063
+      ],
1064
+      "engines": {
1065
+        "node": ">= 10"
1066
+      }
1067
+    },
1068
+    "node_modules/@tailwindcss/oxide-darwin-arm64": {
1069
+      "version": "4.1.10",
1070
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.10.tgz",
1071
+      "integrity": "sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==",
1072
+      "cpu": [
1073
+        "arm64"
1074
+      ],
1075
+      "dev": true,
1076
+      "license": "MIT",
1077
+      "optional": true,
1078
+      "os": [
1079
+        "darwin"
1080
+      ],
1081
+      "engines": {
1082
+        "node": ">= 10"
1083
+      }
1084
+    },
1085
+    "node_modules/@tailwindcss/oxide-darwin-x64": {
1086
+      "version": "4.1.10",
1087
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.10.tgz",
1088
+      "integrity": "sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==",
1089
+      "cpu": [
1090
+        "x64"
1091
+      ],
1092
+      "dev": true,
1093
+      "license": "MIT",
1094
+      "optional": true,
1095
+      "os": [
1096
+        "darwin"
1097
+      ],
1098
+      "engines": {
1099
+        "node": ">= 10"
1100
+      }
1101
+    },
1102
+    "node_modules/@tailwindcss/oxide-freebsd-x64": {
1103
+      "version": "4.1.10",
1104
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.10.tgz",
1105
+      "integrity": "sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==",
1106
+      "cpu": [
1107
+        "x64"
1108
+      ],
1109
+      "dev": true,
1110
+      "license": "MIT",
1111
+      "optional": true,
1112
+      "os": [
1113
+        "freebsd"
1114
+      ],
1115
+      "engines": {
1116
+        "node": ">= 10"
1117
+      }
1118
+    },
1119
+    "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
1120
+      "version": "4.1.10",
1121
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.10.tgz",
1122
+      "integrity": "sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==",
1123
+      "cpu": [
1124
+        "arm"
1125
+      ],
1126
+      "dev": true,
1127
+      "license": "MIT",
1128
+      "optional": true,
1129
+      "os": [
1130
+        "linux"
1131
+      ],
1132
+      "engines": {
1133
+        "node": ">= 10"
1134
+      }
1135
+    },
1136
+    "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
1137
+      "version": "4.1.10",
1138
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.10.tgz",
1139
+      "integrity": "sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==",
1140
+      "cpu": [
1141
+        "arm64"
1142
+      ],
1143
+      "dev": true,
1144
+      "license": "MIT",
1145
+      "optional": true,
1146
+      "os": [
1147
+        "linux"
1148
+      ],
1149
+      "engines": {
1150
+        "node": ">= 10"
1151
+      }
1152
+    },
1153
+    "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
1154
+      "version": "4.1.10",
1155
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.10.tgz",
1156
+      "integrity": "sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==",
1157
+      "cpu": [
1158
+        "arm64"
1159
+      ],
1160
+      "dev": true,
1161
+      "license": "MIT",
1162
+      "optional": true,
1163
+      "os": [
1164
+        "linux"
1165
+      ],
1166
+      "engines": {
1167
+        "node": ">= 10"
1168
+      }
1169
+    },
1170
+    "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
1171
+      "version": "4.1.10",
1172
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.10.tgz",
1173
+      "integrity": "sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==",
1174
+      "cpu": [
1175
+        "x64"
1176
+      ],
1177
+      "dev": true,
1178
+      "license": "MIT",
1179
+      "optional": true,
1180
+      "os": [
1181
+        "linux"
1182
+      ],
1183
+      "engines": {
1184
+        "node": ">= 10"
1185
+      }
1186
+    },
1187
+    "node_modules/@tailwindcss/oxide-linux-x64-musl": {
1188
+      "version": "4.1.10",
1189
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.10.tgz",
1190
+      "integrity": "sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==",
1191
+      "cpu": [
1192
+        "x64"
1193
+      ],
1194
+      "dev": true,
1195
+      "license": "MIT",
1196
+      "optional": true,
1197
+      "os": [
1198
+        "linux"
1199
+      ],
1200
+      "engines": {
1201
+        "node": ">= 10"
1202
+      }
1203
+    },
1204
+    "node_modules/@tailwindcss/oxide-wasm32-wasi": {
1205
+      "version": "4.1.10",
1206
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.10.tgz",
1207
+      "integrity": "sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==",
1208
+      "bundleDependencies": [
1209
+        "@napi-rs/wasm-runtime",
1210
+        "@emnapi/core",
1211
+        "@emnapi/runtime",
1212
+        "@tybys/wasm-util",
1213
+        "@emnapi/wasi-threads",
1214
+        "tslib"
1215
+      ],
1216
+      "cpu": [
1217
+        "wasm32"
1218
+      ],
1219
+      "dev": true,
1220
+      "license": "MIT",
1221
+      "optional": true,
1222
+      "dependencies": {
1223
+        "@emnapi/core": "^1.4.3",
1224
+        "@emnapi/runtime": "^1.4.3",
1225
+        "@emnapi/wasi-threads": "^1.0.2",
1226
+        "@napi-rs/wasm-runtime": "^0.2.10",
1227
+        "@tybys/wasm-util": "^0.9.0",
1228
+        "tslib": "^2.8.0"
1229
+      },
1230
+      "engines": {
1231
+        "node": ">=14.0.0"
1232
+      }
1233
+    },
1234
+    "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
1235
+      "version": "4.1.10",
1236
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.10.tgz",
1237
+      "integrity": "sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==",
1238
+      "cpu": [
1239
+        "arm64"
1240
+      ],
1241
+      "dev": true,
1242
+      "license": "MIT",
1243
+      "optional": true,
1244
+      "os": [
1245
+        "win32"
1246
+      ],
1247
+      "engines": {
1248
+        "node": ">= 10"
1249
+      }
1250
+    },
1251
+    "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
1252
+      "version": "4.1.10",
1253
+      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.10.tgz",
1254
+      "integrity": "sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==",
1255
+      "cpu": [
1256
+        "x64"
1257
+      ],
1258
+      "dev": true,
1259
+      "license": "MIT",
1260
+      "optional": true,
1261
+      "os": [
1262
+        "win32"
1263
+      ],
1264
+      "engines": {
1265
+        "node": ">= 10"
1266
+      }
1267
+    },
1268
+    "node_modules/@tailwindcss/postcss": {
1269
+      "version": "4.1.10",
1270
+      "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.10.tgz",
1271
+      "integrity": "sha512-B+7r7ABZbkXJwpvt2VMnS6ujcDoR2OOcFaqrLIo1xbcdxje4Vf+VgJdBzNNbrAjBj/rLZ66/tlQ1knIGNLKOBQ==",
1272
+      "dev": true,
1273
+      "license": "MIT",
1274
+      "dependencies": {
1275
+        "@alloc/quick-lru": "^5.2.0",
1276
+        "@tailwindcss/node": "4.1.10",
1277
+        "@tailwindcss/oxide": "4.1.10",
1278
+        "postcss": "^8.4.41",
1279
+        "tailwindcss": "4.1.10"
1280
+      }
1281
+    },
1282
+    "node_modules/@tybys/wasm-util": {
1283
+      "version": "0.9.0",
1284
+      "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
1285
+      "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
1286
+      "dev": true,
1287
+      "license": "MIT",
1288
+      "optional": true,
1289
+      "dependencies": {
1290
+        "tslib": "^2.4.0"
1291
+      }
1292
+    },
1293
+    "node_modules/@types/d3": {
1294
+      "version": "7.4.3",
1295
+      "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
1296
+      "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
1297
+      "license": "MIT",
1298
+      "dependencies": {
1299
+        "@types/d3-array": "*",
1300
+        "@types/d3-axis": "*",
1301
+        "@types/d3-brush": "*",
1302
+        "@types/d3-chord": "*",
1303
+        "@types/d3-color": "*",
1304
+        "@types/d3-contour": "*",
1305
+        "@types/d3-delaunay": "*",
1306
+        "@types/d3-dispatch": "*",
1307
+        "@types/d3-drag": "*",
1308
+        "@types/d3-dsv": "*",
1309
+        "@types/d3-ease": "*",
1310
+        "@types/d3-fetch": "*",
1311
+        "@types/d3-force": "*",
1312
+        "@types/d3-format": "*",
1313
+        "@types/d3-geo": "*",
1314
+        "@types/d3-hierarchy": "*",
1315
+        "@types/d3-interpolate": "*",
1316
+        "@types/d3-path": "*",
1317
+        "@types/d3-polygon": "*",
1318
+        "@types/d3-quadtree": "*",
1319
+        "@types/d3-random": "*",
1320
+        "@types/d3-scale": "*",
1321
+        "@types/d3-scale-chromatic": "*",
1322
+        "@types/d3-selection": "*",
1323
+        "@types/d3-shape": "*",
1324
+        "@types/d3-time": "*",
1325
+        "@types/d3-time-format": "*",
1326
+        "@types/d3-timer": "*",
1327
+        "@types/d3-transition": "*",
1328
+        "@types/d3-zoom": "*"
1329
+      }
1330
+    },
1331
+    "node_modules/@types/d3-array": {
1332
+      "version": "3.2.1",
1333
+      "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
1334
+      "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
1335
+      "license": "MIT"
1336
+    },
1337
+    "node_modules/@types/d3-axis": {
1338
+      "version": "3.0.6",
1339
+      "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
1340
+      "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
1341
+      "license": "MIT",
1342
+      "dependencies": {
1343
+        "@types/d3-selection": "*"
1344
+      }
1345
+    },
1346
+    "node_modules/@types/d3-brush": {
1347
+      "version": "3.0.6",
1348
+      "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
1349
+      "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
1350
+      "license": "MIT",
1351
+      "dependencies": {
1352
+        "@types/d3-selection": "*"
1353
+      }
1354
+    },
1355
+    "node_modules/@types/d3-chord": {
1356
+      "version": "3.0.6",
1357
+      "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
1358
+      "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",
1359
+      "license": "MIT"
1360
+    },
1361
+    "node_modules/@types/d3-color": {
1362
+      "version": "3.1.3",
1363
+      "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
1364
+      "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
1365
+      "license": "MIT"
1366
+    },
1367
+    "node_modules/@types/d3-contour": {
1368
+      "version": "3.0.6",
1369
+      "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
1370
+      "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
1371
+      "license": "MIT",
1372
+      "dependencies": {
1373
+        "@types/d3-array": "*",
1374
+        "@types/geojson": "*"
1375
+      }
1376
+    },
1377
+    "node_modules/@types/d3-delaunay": {
1378
+      "version": "6.0.4",
1379
+      "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
1380
+      "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
1381
+      "license": "MIT"
1382
+    },
1383
+    "node_modules/@types/d3-dispatch": {
1384
+      "version": "3.0.6",
1385
+      "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
1386
+      "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==",
1387
+      "license": "MIT"
1388
+    },
1389
+    "node_modules/@types/d3-drag": {
1390
+      "version": "3.0.7",
1391
+      "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
1392
+      "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
1393
+      "license": "MIT",
1394
+      "dependencies": {
1395
+        "@types/d3-selection": "*"
1396
+      }
1397
+    },
1398
+    "node_modules/@types/d3-dsv": {
1399
+      "version": "3.0.7",
1400
+      "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
1401
+      "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
1402
+      "license": "MIT"
1403
+    },
1404
+    "node_modules/@types/d3-ease": {
1405
+      "version": "3.0.2",
1406
+      "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
1407
+      "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
1408
+      "license": "MIT"
1409
+    },
1410
+    "node_modules/@types/d3-fetch": {
1411
+      "version": "3.0.7",
1412
+      "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
1413
+      "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
1414
+      "license": "MIT",
1415
+      "dependencies": {
1416
+        "@types/d3-dsv": "*"
1417
+      }
1418
+    },
1419
+    "node_modules/@types/d3-force": {
1420
+      "version": "3.0.10",
1421
+      "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
1422
+      "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
1423
+      "license": "MIT"
1424
+    },
1425
+    "node_modules/@types/d3-format": {
1426
+      "version": "3.0.4",
1427
+      "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
1428
+      "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
1429
+      "license": "MIT"
1430
+    },
1431
+    "node_modules/@types/d3-geo": {
1432
+      "version": "3.1.0",
1433
+      "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
1434
+      "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
1435
+      "license": "MIT",
1436
+      "dependencies": {
1437
+        "@types/geojson": "*"
1438
+      }
1439
+    },
1440
+    "node_modules/@types/d3-hierarchy": {
1441
+      "version": "3.1.7",
1442
+      "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
1443
+      "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
1444
+      "license": "MIT"
1445
+    },
1446
+    "node_modules/@types/d3-interpolate": {
1447
+      "version": "3.0.4",
1448
+      "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
1449
+      "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
1450
+      "license": "MIT",
1451
+      "dependencies": {
1452
+        "@types/d3-color": "*"
1453
+      }
1454
+    },
1455
+    "node_modules/@types/d3-path": {
1456
+      "version": "3.1.1",
1457
+      "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
1458
+      "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
1459
+      "license": "MIT"
1460
+    },
1461
+    "node_modules/@types/d3-polygon": {
1462
+      "version": "3.0.2",
1463
+      "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
1464
+      "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",
1465
+      "license": "MIT"
1466
+    },
1467
+    "node_modules/@types/d3-quadtree": {
1468
+      "version": "3.0.6",
1469
+      "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
1470
+      "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
1471
+      "license": "MIT"
1472
+    },
1473
+    "node_modules/@types/d3-random": {
1474
+      "version": "3.0.3",
1475
+      "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
1476
+      "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
1477
+      "license": "MIT"
1478
+    },
1479
+    "node_modules/@types/d3-scale": {
1480
+      "version": "4.0.9",
1481
+      "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
1482
+      "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
1483
+      "license": "MIT",
1484
+      "dependencies": {
1485
+        "@types/d3-time": "*"
1486
+      }
1487
+    },
1488
+    "node_modules/@types/d3-scale-chromatic": {
1489
+      "version": "3.1.0",
1490
+      "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
1491
+      "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
1492
+      "license": "MIT"
1493
+    },
1494
+    "node_modules/@types/d3-selection": {
1495
+      "version": "3.0.11",
1496
+      "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
1497
+      "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
1498
+      "license": "MIT"
1499
+    },
1500
+    "node_modules/@types/d3-shape": {
1501
+      "version": "3.1.7",
1502
+      "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
1503
+      "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
1504
+      "license": "MIT",
1505
+      "dependencies": {
1506
+        "@types/d3-path": "*"
1507
+      }
1508
+    },
1509
+    "node_modules/@types/d3-time": {
1510
+      "version": "3.0.4",
1511
+      "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
1512
+      "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
1513
+      "license": "MIT"
1514
+    },
1515
+    "node_modules/@types/d3-time-format": {
1516
+      "version": "4.0.3",
1517
+      "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
1518
+      "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",
1519
+      "license": "MIT"
1520
+    },
1521
+    "node_modules/@types/d3-timer": {
1522
+      "version": "3.0.2",
1523
+      "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
1524
+      "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
1525
+      "license": "MIT"
1526
+    },
1527
+    "node_modules/@types/d3-transition": {
1528
+      "version": "3.0.9",
1529
+      "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
1530
+      "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",
1531
+      "license": "MIT",
1532
+      "dependencies": {
1533
+        "@types/d3-selection": "*"
1534
+      }
1535
+    },
1536
+    "node_modules/@types/d3-zoom": {
1537
+      "version": "3.0.8",
1538
+      "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
1539
+      "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
1540
+      "license": "MIT",
1541
+      "dependencies": {
1542
+        "@types/d3-interpolate": "*",
1543
+        "@types/d3-selection": "*"
1544
+      }
1545
+    },
1546
+    "node_modules/@types/estree": {
1547
+      "version": "1.0.8",
1548
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1549
+      "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1550
+      "dev": true,
1551
+      "license": "MIT"
1552
+    },
1553
+    "node_modules/@types/geojson": {
1554
+      "version": "7946.0.16",
1555
+      "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
1556
+      "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
1557
+      "license": "MIT"
1558
+    },
1559
+    "node_modules/@types/json-schema": {
1560
+      "version": "7.0.15",
1561
+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
1562
+      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
1563
+      "dev": true,
1564
+      "license": "MIT"
1565
+    },
1566
+    "node_modules/@types/json5": {
1567
+      "version": "0.0.29",
1568
+      "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
1569
+      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
1570
+      "dev": true,
1571
+      "license": "MIT"
1572
+    },
1573
+    "node_modules/@types/node": {
1574
+      "version": "20.19.0",
1575
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.0.tgz",
1576
+      "integrity": "sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==",
1577
+      "dev": true,
1578
+      "license": "MIT",
1579
+      "dependencies": {
1580
+        "undici-types": "~6.21.0"
1581
+      }
1582
+    },
1583
+    "node_modules/@types/react": {
1584
+      "version": "19.1.8",
1585
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz",
1586
+      "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==",
1587
+      "dev": true,
1588
+      "license": "MIT",
1589
+      "dependencies": {
1590
+        "csstype": "^3.0.2"
1591
+      }
1592
+    },
1593
+    "node_modules/@types/react-dom": {
1594
+      "version": "19.1.6",
1595
+      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz",
1596
+      "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==",
1597
+      "dev": true,
1598
+      "license": "MIT",
1599
+      "peerDependencies": {
1600
+        "@types/react": "^19.0.0"
1601
+      }
1602
+    },
1603
+    "node_modules/@typescript-eslint/eslint-plugin": {
1604
+      "version": "8.34.0",
1605
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz",
1606
+      "integrity": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==",
1607
+      "dev": true,
1608
+      "license": "MIT",
1609
+      "dependencies": {
1610
+        "@eslint-community/regexpp": "^4.10.0",
1611
+        "@typescript-eslint/scope-manager": "8.34.0",
1612
+        "@typescript-eslint/type-utils": "8.34.0",
1613
+        "@typescript-eslint/utils": "8.34.0",
1614
+        "@typescript-eslint/visitor-keys": "8.34.0",
1615
+        "graphemer": "^1.4.0",
1616
+        "ignore": "^7.0.0",
1617
+        "natural-compare": "^1.4.0",
1618
+        "ts-api-utils": "^2.1.0"
1619
+      },
1620
+      "engines": {
1621
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1622
+      },
1623
+      "funding": {
1624
+        "type": "opencollective",
1625
+        "url": "https://opencollective.com/typescript-eslint"
1626
+      },
1627
+      "peerDependencies": {
1628
+        "@typescript-eslint/parser": "^8.34.0",
1629
+        "eslint": "^8.57.0 || ^9.0.0",
1630
+        "typescript": ">=4.8.4 <5.9.0"
1631
+      }
1632
+    },
1633
+    "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
1634
+      "version": "7.0.5",
1635
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
1636
+      "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
1637
+      "dev": true,
1638
+      "license": "MIT",
1639
+      "engines": {
1640
+        "node": ">= 4"
1641
+      }
1642
+    },
1643
+    "node_modules/@typescript-eslint/parser": {
1644
+      "version": "8.34.0",
1645
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.0.tgz",
1646
+      "integrity": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==",
1647
+      "dev": true,
1648
+      "license": "MIT",
1649
+      "dependencies": {
1650
+        "@typescript-eslint/scope-manager": "8.34.0",
1651
+        "@typescript-eslint/types": "8.34.0",
1652
+        "@typescript-eslint/typescript-estree": "8.34.0",
1653
+        "@typescript-eslint/visitor-keys": "8.34.0",
1654
+        "debug": "^4.3.4"
1655
+      },
1656
+      "engines": {
1657
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1658
+      },
1659
+      "funding": {
1660
+        "type": "opencollective",
1661
+        "url": "https://opencollective.com/typescript-eslint"
1662
+      },
1663
+      "peerDependencies": {
1664
+        "eslint": "^8.57.0 || ^9.0.0",
1665
+        "typescript": ">=4.8.4 <5.9.0"
1666
+      }
1667
+    },
1668
+    "node_modules/@typescript-eslint/project-service": {
1669
+      "version": "8.34.0",
1670
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
1671
+      "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
1672
+      "dev": true,
1673
+      "license": "MIT",
1674
+      "dependencies": {
1675
+        "@typescript-eslint/tsconfig-utils": "^8.34.0",
1676
+        "@typescript-eslint/types": "^8.34.0",
1677
+        "debug": "^4.3.4"
1678
+      },
1679
+      "engines": {
1680
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1681
+      },
1682
+      "funding": {
1683
+        "type": "opencollective",
1684
+        "url": "https://opencollective.com/typescript-eslint"
1685
+      },
1686
+      "peerDependencies": {
1687
+        "typescript": ">=4.8.4 <5.9.0"
1688
+      }
1689
+    },
1690
+    "node_modules/@typescript-eslint/scope-manager": {
1691
+      "version": "8.34.0",
1692
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
1693
+      "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
1694
+      "dev": true,
1695
+      "license": "MIT",
1696
+      "dependencies": {
1697
+        "@typescript-eslint/types": "8.34.0",
1698
+        "@typescript-eslint/visitor-keys": "8.34.0"
1699
+      },
1700
+      "engines": {
1701
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1702
+      },
1703
+      "funding": {
1704
+        "type": "opencollective",
1705
+        "url": "https://opencollective.com/typescript-eslint"
1706
+      }
1707
+    },
1708
+    "node_modules/@typescript-eslint/tsconfig-utils": {
1709
+      "version": "8.34.0",
1710
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
1711
+      "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
1712
+      "dev": true,
1713
+      "license": "MIT",
1714
+      "engines": {
1715
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1716
+      },
1717
+      "funding": {
1718
+        "type": "opencollective",
1719
+        "url": "https://opencollective.com/typescript-eslint"
1720
+      },
1721
+      "peerDependencies": {
1722
+        "typescript": ">=4.8.4 <5.9.0"
1723
+      }
1724
+    },
1725
+    "node_modules/@typescript-eslint/type-utils": {
1726
+      "version": "8.34.0",
1727
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz",
1728
+      "integrity": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==",
1729
+      "dev": true,
1730
+      "license": "MIT",
1731
+      "dependencies": {
1732
+        "@typescript-eslint/typescript-estree": "8.34.0",
1733
+        "@typescript-eslint/utils": "8.34.0",
1734
+        "debug": "^4.3.4",
1735
+        "ts-api-utils": "^2.1.0"
1736
+      },
1737
+      "engines": {
1738
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1739
+      },
1740
+      "funding": {
1741
+        "type": "opencollective",
1742
+        "url": "https://opencollective.com/typescript-eslint"
1743
+      },
1744
+      "peerDependencies": {
1745
+        "eslint": "^8.57.0 || ^9.0.0",
1746
+        "typescript": ">=4.8.4 <5.9.0"
1747
+      }
1748
+    },
1749
+    "node_modules/@typescript-eslint/types": {
1750
+      "version": "8.34.0",
1751
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
1752
+      "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
1753
+      "dev": true,
1754
+      "license": "MIT",
1755
+      "engines": {
1756
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1757
+      },
1758
+      "funding": {
1759
+        "type": "opencollective",
1760
+        "url": "https://opencollective.com/typescript-eslint"
1761
+      }
1762
+    },
1763
+    "node_modules/@typescript-eslint/typescript-estree": {
1764
+      "version": "8.34.0",
1765
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
1766
+      "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
1767
+      "dev": true,
1768
+      "license": "MIT",
1769
+      "dependencies": {
1770
+        "@typescript-eslint/project-service": "8.34.0",
1771
+        "@typescript-eslint/tsconfig-utils": "8.34.0",
1772
+        "@typescript-eslint/types": "8.34.0",
1773
+        "@typescript-eslint/visitor-keys": "8.34.0",
1774
+        "debug": "^4.3.4",
1775
+        "fast-glob": "^3.3.2",
1776
+        "is-glob": "^4.0.3",
1777
+        "minimatch": "^9.0.4",
1778
+        "semver": "^7.6.0",
1779
+        "ts-api-utils": "^2.1.0"
1780
+      },
1781
+      "engines": {
1782
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1783
+      },
1784
+      "funding": {
1785
+        "type": "opencollective",
1786
+        "url": "https://opencollective.com/typescript-eslint"
1787
+      },
1788
+      "peerDependencies": {
1789
+        "typescript": ">=4.8.4 <5.9.0"
1790
+      }
1791
+    },
1792
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
1793
+      "version": "2.0.2",
1794
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
1795
+      "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
1796
+      "dev": true,
1797
+      "license": "MIT",
1798
+      "dependencies": {
1799
+        "balanced-match": "^1.0.0"
1800
+      }
1801
+    },
1802
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": {
1803
+      "version": "3.3.3",
1804
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
1805
+      "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
1806
+      "dev": true,
1807
+      "license": "MIT",
1808
+      "dependencies": {
1809
+        "@nodelib/fs.stat": "^2.0.2",
1810
+        "@nodelib/fs.walk": "^1.2.3",
1811
+        "glob-parent": "^5.1.2",
1812
+        "merge2": "^1.3.0",
1813
+        "micromatch": "^4.0.8"
1814
+      },
1815
+      "engines": {
1816
+        "node": ">=8.6.0"
1817
+      }
1818
+    },
1819
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": {
1820
+      "version": "5.1.2",
1821
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1822
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1823
+      "dev": true,
1824
+      "license": "ISC",
1825
+      "dependencies": {
1826
+        "is-glob": "^4.0.1"
1827
+      },
1828
+      "engines": {
1829
+        "node": ">= 6"
1830
+      }
1831
+    },
1832
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
1833
+      "version": "9.0.5",
1834
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1835
+      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1836
+      "dev": true,
1837
+      "license": "ISC",
1838
+      "dependencies": {
1839
+        "brace-expansion": "^2.0.1"
1840
+      },
1841
+      "engines": {
1842
+        "node": ">=16 || 14 >=14.17"
1843
+      },
1844
+      "funding": {
1845
+        "url": "https://github.com/sponsors/isaacs"
1846
+      }
1847
+    },
1848
+    "node_modules/@typescript-eslint/utils": {
1849
+      "version": "8.34.0",
1850
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
1851
+      "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
1852
+      "dev": true,
1853
+      "license": "MIT",
1854
+      "dependencies": {
1855
+        "@eslint-community/eslint-utils": "^4.7.0",
1856
+        "@typescript-eslint/scope-manager": "8.34.0",
1857
+        "@typescript-eslint/types": "8.34.0",
1858
+        "@typescript-eslint/typescript-estree": "8.34.0"
1859
+      },
1860
+      "engines": {
1861
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1862
+      },
1863
+      "funding": {
1864
+        "type": "opencollective",
1865
+        "url": "https://opencollective.com/typescript-eslint"
1866
+      },
1867
+      "peerDependencies": {
1868
+        "eslint": "^8.57.0 || ^9.0.0",
1869
+        "typescript": ">=4.8.4 <5.9.0"
1870
+      }
1871
+    },
1872
+    "node_modules/@typescript-eslint/visitor-keys": {
1873
+      "version": "8.34.0",
1874
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
1875
+      "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
1876
+      "dev": true,
1877
+      "license": "MIT",
1878
+      "dependencies": {
1879
+        "@typescript-eslint/types": "8.34.0",
1880
+        "eslint-visitor-keys": "^4.2.0"
1881
+      },
1882
+      "engines": {
1883
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1884
+      },
1885
+      "funding": {
1886
+        "type": "opencollective",
1887
+        "url": "https://opencollective.com/typescript-eslint"
1888
+      }
1889
+    },
1890
+    "node_modules/@unrs/resolver-binding-android-arm-eabi": {
1891
+      "version": "1.9.0",
1892
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.0.tgz",
1893
+      "integrity": "sha512-h1T2c2Di49ekF2TE8ZCoJkb+jwETKUIPDJ/nO3tJBKlLFPu+fyd93f0rGP/BvArKx2k2HlRM4kqkNarj3dvZlg==",
1894
+      "cpu": [
1895
+        "arm"
1896
+      ],
1897
+      "dev": true,
1898
+      "license": "MIT",
1899
+      "optional": true,
1900
+      "os": [
1901
+        "android"
1902
+      ]
1903
+    },
1904
+    "node_modules/@unrs/resolver-binding-android-arm64": {
1905
+      "version": "1.9.0",
1906
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.0.tgz",
1907
+      "integrity": "sha512-sG1NHtgXtX8owEkJ11yn34vt0Xqzi3k9TJ8zppDmyG8GZV4kVWw44FHwKwHeEFl07uKPeC4ZoyuQaGh5ruJYPA==",
1908
+      "cpu": [
1909
+        "arm64"
1910
+      ],
1911
+      "dev": true,
1912
+      "license": "MIT",
1913
+      "optional": true,
1914
+      "os": [
1915
+        "android"
1916
+      ]
1917
+    },
1918
+    "node_modules/@unrs/resolver-binding-darwin-arm64": {
1919
+      "version": "1.9.0",
1920
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.0.tgz",
1921
+      "integrity": "sha512-nJ9z47kfFnCxN1z/oYZS7HSNsFh43y2asePzTEZpEvK7kGyuShSl3RRXnm/1QaqFL+iP+BjMwuB+DYUymOkA5A==",
1922
+      "cpu": [
1923
+        "arm64"
1924
+      ],
1925
+      "dev": true,
1926
+      "license": "MIT",
1927
+      "optional": true,
1928
+      "os": [
1929
+        "darwin"
1930
+      ]
1931
+    },
1932
+    "node_modules/@unrs/resolver-binding-darwin-x64": {
1933
+      "version": "1.9.0",
1934
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.0.tgz",
1935
+      "integrity": "sha512-TK+UA1TTa0qS53rjWn7cVlEKVGz2B6JYe0C++TdQjvWYIyx83ruwh0wd4LRxYBM5HeuAzXcylA9BH2trARXJTw==",
1936
+      "cpu": [
1937
+        "x64"
1938
+      ],
1939
+      "dev": true,
1940
+      "license": "MIT",
1941
+      "optional": true,
1942
+      "os": [
1943
+        "darwin"
1944
+      ]
1945
+    },
1946
+    "node_modules/@unrs/resolver-binding-freebsd-x64": {
1947
+      "version": "1.9.0",
1948
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.0.tgz",
1949
+      "integrity": "sha512-6uZwzMRFcD7CcCd0vz3Hp+9qIL2jseE/bx3ZjaLwn8t714nYGwiE84WpaMCYjU+IQET8Vu/+BNAGtYD7BG/0yA==",
1950
+      "cpu": [
1951
+        "x64"
1952
+      ],
1953
+      "dev": true,
1954
+      "license": "MIT",
1955
+      "optional": true,
1956
+      "os": [
1957
+        "freebsd"
1958
+      ]
1959
+    },
1960
+    "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
1961
+      "version": "1.9.0",
1962
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.0.tgz",
1963
+      "integrity": "sha512-bPUBksQfrgcfv2+mm+AZinaKq8LCFvt5PThYqRotqSuuZK1TVKkhbVMS/jvSRfYl7jr3AoZLYbDkItxgqMKRkg==",
1964
+      "cpu": [
1965
+        "arm"
1966
+      ],
1967
+      "dev": true,
1968
+      "license": "MIT",
1969
+      "optional": true,
1970
+      "os": [
1971
+        "linux"
1972
+      ]
1973
+    },
1974
+    "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
1975
+      "version": "1.9.0",
1976
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.0.tgz",
1977
+      "integrity": "sha512-uT6E7UBIrTdCsFQ+y0tQd3g5oudmrS/hds5pbU3h4s2t/1vsGWbbSKhBSCD9mcqaqkBwoqlECpUrRJCmldl8PA==",
1978
+      "cpu": [
1979
+        "arm"
1980
+      ],
1981
+      "dev": true,
1982
+      "license": "MIT",
1983
+      "optional": true,
1984
+      "os": [
1985
+        "linux"
1986
+      ]
1987
+    },
1988
+    "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
1989
+      "version": "1.9.0",
1990
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.0.tgz",
1991
+      "integrity": "sha512-vdqBh911wc5awE2bX2zx3eflbyv8U9xbE/jVKAm425eRoOVv/VseGZsqi3A3SykckSpF4wSROkbQPvbQFn8EsA==",
1992
+      "cpu": [
1993
+        "arm64"
1994
+      ],
1995
+      "dev": true,
1996
+      "license": "MIT",
1997
+      "optional": true,
1998
+      "os": [
1999
+        "linux"
2000
+      ]
2001
+    },
2002
+    "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
2003
+      "version": "1.9.0",
2004
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.0.tgz",
2005
+      "integrity": "sha512-/8JFZ/SnuDr1lLEVsxsuVwrsGquTvT51RZGvyDB/dOK3oYK2UqeXzgeyq6Otp8FZXQcEYqJwxb9v+gtdXn03eQ==",
2006
+      "cpu": [
2007
+        "arm64"
2008
+      ],
2009
+      "dev": true,
2010
+      "license": "MIT",
2011
+      "optional": true,
2012
+      "os": [
2013
+        "linux"
2014
+      ]
2015
+    },
2016
+    "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
2017
+      "version": "1.9.0",
2018
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.0.tgz",
2019
+      "integrity": "sha512-FkJjybtrl+rajTw4loI3L6YqSOpeZfDls4SstL/5lsP2bka9TiHUjgMBjygeZEis1oC8LfJTS8FSgpKPaQx2tQ==",
2020
+      "cpu": [
2021
+        "ppc64"
2022
+      ],
2023
+      "dev": true,
2024
+      "license": "MIT",
2025
+      "optional": true,
2026
+      "os": [
2027
+        "linux"
2028
+      ]
2029
+    },
2030
+    "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
2031
+      "version": "1.9.0",
2032
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.0.tgz",
2033
+      "integrity": "sha512-w/NZfHNeDusbqSZ8r/hp8iL4S39h4+vQMc9/vvzuIKMWKppyUGKm3IST0Qv0aOZ1rzIbl9SrDeIqK86ZpUK37w==",
2034
+      "cpu": [
2035
+        "riscv64"
2036
+      ],
2037
+      "dev": true,
2038
+      "license": "MIT",
2039
+      "optional": true,
2040
+      "os": [
2041
+        "linux"
2042
+      ]
2043
+    },
2044
+    "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
2045
+      "version": "1.9.0",
2046
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.0.tgz",
2047
+      "integrity": "sha512-bEPBosut8/8KQbUixPry8zg/fOzVOWyvwzOfz0C0Rw6dp+wIBseyiHKjkcSyZKv/98edrbMknBaMNJfA/UEdqw==",
2048
+      "cpu": [
2049
+        "riscv64"
2050
+      ],
2051
+      "dev": true,
2052
+      "license": "MIT",
2053
+      "optional": true,
2054
+      "os": [
2055
+        "linux"
2056
+      ]
2057
+    },
2058
+    "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
2059
+      "version": "1.9.0",
2060
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.0.tgz",
2061
+      "integrity": "sha512-LDtMT7moE3gK753gG4pc31AAqGUC86j3AplaFusc717EUGF9ZFJ356sdQzzZzkBk1XzMdxFyZ4f/i35NKM/lFA==",
2062
+      "cpu": [
2063
+        "s390x"
2064
+      ],
2065
+      "dev": true,
2066
+      "license": "MIT",
2067
+      "optional": true,
2068
+      "os": [
2069
+        "linux"
2070
+      ]
2071
+    },
2072
+    "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
2073
+      "version": "1.9.0",
2074
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.0.tgz",
2075
+      "integrity": "sha512-WmFd5KINHIXj8o1mPaT8QRjA9HgSXhN1gl9Da4IZihARihEnOylu4co7i/yeaIpcfsI6sYs33cNZKyHYDh0lrA==",
2076
+      "cpu": [
2077
+        "x64"
2078
+      ],
2079
+      "dev": true,
2080
+      "license": "MIT",
2081
+      "optional": true,
2082
+      "os": [
2083
+        "linux"
2084
+      ]
2085
+    },
2086
+    "node_modules/@unrs/resolver-binding-linux-x64-musl": {
2087
+      "version": "1.9.0",
2088
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.0.tgz",
2089
+      "integrity": "sha512-CYuXbANW+WgzVRIl8/QvZmDaZxrqvOldOwlbUjIM4pQ46FJ0W5cinJ/Ghwa/Ng1ZPMJMk1VFdsD/XwmCGIXBWg==",
2090
+      "cpu": [
2091
+        "x64"
2092
+      ],
2093
+      "dev": true,
2094
+      "license": "MIT",
2095
+      "optional": true,
2096
+      "os": [
2097
+        "linux"
2098
+      ]
2099
+    },
2100
+    "node_modules/@unrs/resolver-binding-wasm32-wasi": {
2101
+      "version": "1.9.0",
2102
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.0.tgz",
2103
+      "integrity": "sha512-6Rp2WH0OoitMYR57Z6VE8Y6corX8C6QEMWLgOV6qXiJIeZ1F9WGXY/yQ8yDC4iTraotyLOeJ2Asea0urWj2fKQ==",
2104
+      "cpu": [
2105
+        "wasm32"
2106
+      ],
2107
+      "dev": true,
2108
+      "license": "MIT",
2109
+      "optional": true,
2110
+      "dependencies": {
2111
+        "@napi-rs/wasm-runtime": "^0.2.11"
2112
+      },
2113
+      "engines": {
2114
+        "node": ">=14.0.0"
2115
+      }
2116
+    },
2117
+    "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
2118
+      "version": "1.9.0",
2119
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.0.tgz",
2120
+      "integrity": "sha512-rknkrTRuvujprrbPmGeHi8wYWxmNVlBoNW8+4XF2hXUnASOjmuC9FNF1tGbDiRQWn264q9U/oGtixyO3BT8adQ==",
2121
+      "cpu": [
2122
+        "arm64"
2123
+      ],
2124
+      "dev": true,
2125
+      "license": "MIT",
2126
+      "optional": true,
2127
+      "os": [
2128
+        "win32"
2129
+      ]
2130
+    },
2131
+    "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
2132
+      "version": "1.9.0",
2133
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.0.tgz",
2134
+      "integrity": "sha512-Ceymm+iBl+bgAICtgiHyMLz6hjxmLJKqBim8tDzpX61wpZOx2bPK6Gjuor7I2RiUynVjvvkoRIkrPyMwzBzF3A==",
2135
+      "cpu": [
2136
+        "ia32"
2137
+      ],
2138
+      "dev": true,
2139
+      "license": "MIT",
2140
+      "optional": true,
2141
+      "os": [
2142
+        "win32"
2143
+      ]
2144
+    },
2145
+    "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
2146
+      "version": "1.9.0",
2147
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.0.tgz",
2148
+      "integrity": "sha512-k59o9ZyeyS0hAlcaKFezYSH2agQeRFEB7KoQLXl3Nb3rgkqT1NY9Vwy+SqODiLmYnEjxWJVRE/yq2jFVqdIxZw==",
2149
+      "cpu": [
2150
+        "x64"
2151
+      ],
2152
+      "dev": true,
2153
+      "license": "MIT",
2154
+      "optional": true,
2155
+      "os": [
2156
+        "win32"
2157
+      ]
2158
+    },
2159
+    "node_modules/acorn": {
2160
+      "version": "8.15.0",
2161
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
2162
+      "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
2163
+      "dev": true,
2164
+      "license": "MIT",
2165
+      "bin": {
2166
+        "acorn": "bin/acorn"
2167
+      },
2168
+      "engines": {
2169
+        "node": ">=0.4.0"
2170
+      }
2171
+    },
2172
+    "node_modules/acorn-jsx": {
2173
+      "version": "5.3.2",
2174
+      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
2175
+      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
2176
+      "dev": true,
2177
+      "license": "MIT",
2178
+      "peerDependencies": {
2179
+        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
2180
+      }
2181
+    },
2182
+    "node_modules/ajv": {
2183
+      "version": "6.12.6",
2184
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
2185
+      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
2186
+      "dev": true,
2187
+      "license": "MIT",
2188
+      "dependencies": {
2189
+        "fast-deep-equal": "^3.1.1",
2190
+        "fast-json-stable-stringify": "^2.0.0",
2191
+        "json-schema-traverse": "^0.4.1",
2192
+        "uri-js": "^4.2.2"
2193
+      },
2194
+      "funding": {
2195
+        "type": "github",
2196
+        "url": "https://github.com/sponsors/epoberezkin"
2197
+      }
2198
+    },
2199
+    "node_modules/ansi-styles": {
2200
+      "version": "4.3.0",
2201
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2202
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2203
+      "dev": true,
2204
+      "license": "MIT",
2205
+      "dependencies": {
2206
+        "color-convert": "^2.0.1"
2207
+      },
2208
+      "engines": {
2209
+        "node": ">=8"
2210
+      },
2211
+      "funding": {
2212
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2213
+      }
2214
+    },
2215
+    "node_modules/argparse": {
2216
+      "version": "2.0.1",
2217
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
2218
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
2219
+      "dev": true,
2220
+      "license": "Python-2.0"
2221
+    },
2222
+    "node_modules/aria-query": {
2223
+      "version": "5.3.2",
2224
+      "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
2225
+      "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
2226
+      "dev": true,
2227
+      "license": "Apache-2.0",
2228
+      "engines": {
2229
+        "node": ">= 0.4"
2230
+      }
2231
+    },
2232
+    "node_modules/array-buffer-byte-length": {
2233
+      "version": "1.0.2",
2234
+      "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
2235
+      "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
2236
+      "dev": true,
2237
+      "license": "MIT",
2238
+      "dependencies": {
2239
+        "call-bound": "^1.0.3",
2240
+        "is-array-buffer": "^3.0.5"
2241
+      },
2242
+      "engines": {
2243
+        "node": ">= 0.4"
2244
+      },
2245
+      "funding": {
2246
+        "url": "https://github.com/sponsors/ljharb"
2247
+      }
2248
+    },
2249
+    "node_modules/array-includes": {
2250
+      "version": "3.1.9",
2251
+      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
2252
+      "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
2253
+      "dev": true,
2254
+      "license": "MIT",
2255
+      "dependencies": {
2256
+        "call-bind": "^1.0.8",
2257
+        "call-bound": "^1.0.4",
2258
+        "define-properties": "^1.2.1",
2259
+        "es-abstract": "^1.24.0",
2260
+        "es-object-atoms": "^1.1.1",
2261
+        "get-intrinsic": "^1.3.0",
2262
+        "is-string": "^1.1.1",
2263
+        "math-intrinsics": "^1.1.0"
2264
+      },
2265
+      "engines": {
2266
+        "node": ">= 0.4"
2267
+      },
2268
+      "funding": {
2269
+        "url": "https://github.com/sponsors/ljharb"
2270
+      }
2271
+    },
2272
+    "node_modules/array.prototype.findlast": {
2273
+      "version": "1.2.5",
2274
+      "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
2275
+      "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
2276
+      "dev": true,
2277
+      "license": "MIT",
2278
+      "dependencies": {
2279
+        "call-bind": "^1.0.7",
2280
+        "define-properties": "^1.2.1",
2281
+        "es-abstract": "^1.23.2",
2282
+        "es-errors": "^1.3.0",
2283
+        "es-object-atoms": "^1.0.0",
2284
+        "es-shim-unscopables": "^1.0.2"
2285
+      },
2286
+      "engines": {
2287
+        "node": ">= 0.4"
2288
+      },
2289
+      "funding": {
2290
+        "url": "https://github.com/sponsors/ljharb"
2291
+      }
2292
+    },
2293
+    "node_modules/array.prototype.findlastindex": {
2294
+      "version": "1.2.6",
2295
+      "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
2296
+      "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
2297
+      "dev": true,
2298
+      "license": "MIT",
2299
+      "dependencies": {
2300
+        "call-bind": "^1.0.8",
2301
+        "call-bound": "^1.0.4",
2302
+        "define-properties": "^1.2.1",
2303
+        "es-abstract": "^1.23.9",
2304
+        "es-errors": "^1.3.0",
2305
+        "es-object-atoms": "^1.1.1",
2306
+        "es-shim-unscopables": "^1.1.0"
2307
+      },
2308
+      "engines": {
2309
+        "node": ">= 0.4"
2310
+      },
2311
+      "funding": {
2312
+        "url": "https://github.com/sponsors/ljharb"
2313
+      }
2314
+    },
2315
+    "node_modules/array.prototype.flat": {
2316
+      "version": "1.3.3",
2317
+      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
2318
+      "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
2319
+      "dev": true,
2320
+      "license": "MIT",
2321
+      "dependencies": {
2322
+        "call-bind": "^1.0.8",
2323
+        "define-properties": "^1.2.1",
2324
+        "es-abstract": "^1.23.5",
2325
+        "es-shim-unscopables": "^1.0.2"
2326
+      },
2327
+      "engines": {
2328
+        "node": ">= 0.4"
2329
+      },
2330
+      "funding": {
2331
+        "url": "https://github.com/sponsors/ljharb"
2332
+      }
2333
+    },
2334
+    "node_modules/array.prototype.flatmap": {
2335
+      "version": "1.3.3",
2336
+      "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
2337
+      "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
2338
+      "dev": true,
2339
+      "license": "MIT",
2340
+      "dependencies": {
2341
+        "call-bind": "^1.0.8",
2342
+        "define-properties": "^1.2.1",
2343
+        "es-abstract": "^1.23.5",
2344
+        "es-shim-unscopables": "^1.0.2"
2345
+      },
2346
+      "engines": {
2347
+        "node": ">= 0.4"
2348
+      },
2349
+      "funding": {
2350
+        "url": "https://github.com/sponsors/ljharb"
2351
+      }
2352
+    },
2353
+    "node_modules/array.prototype.tosorted": {
2354
+      "version": "1.1.4",
2355
+      "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
2356
+      "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
2357
+      "dev": true,
2358
+      "license": "MIT",
2359
+      "dependencies": {
2360
+        "call-bind": "^1.0.7",
2361
+        "define-properties": "^1.2.1",
2362
+        "es-abstract": "^1.23.3",
2363
+        "es-errors": "^1.3.0",
2364
+        "es-shim-unscopables": "^1.0.2"
2365
+      },
2366
+      "engines": {
2367
+        "node": ">= 0.4"
2368
+      }
2369
+    },
2370
+    "node_modules/arraybuffer.prototype.slice": {
2371
+      "version": "1.0.4",
2372
+      "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
2373
+      "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
2374
+      "dev": true,
2375
+      "license": "MIT",
2376
+      "dependencies": {
2377
+        "array-buffer-byte-length": "^1.0.1",
2378
+        "call-bind": "^1.0.8",
2379
+        "define-properties": "^1.2.1",
2380
+        "es-abstract": "^1.23.5",
2381
+        "es-errors": "^1.3.0",
2382
+        "get-intrinsic": "^1.2.6",
2383
+        "is-array-buffer": "^3.0.4"
2384
+      },
2385
+      "engines": {
2386
+        "node": ">= 0.4"
2387
+      },
2388
+      "funding": {
2389
+        "url": "https://github.com/sponsors/ljharb"
2390
+      }
2391
+    },
2392
+    "node_modules/ast-types-flow": {
2393
+      "version": "0.0.8",
2394
+      "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
2395
+      "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
2396
+      "dev": true,
2397
+      "license": "MIT"
2398
+    },
2399
+    "node_modules/async-function": {
2400
+      "version": "1.0.0",
2401
+      "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
2402
+      "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
2403
+      "dev": true,
2404
+      "license": "MIT",
2405
+      "engines": {
2406
+        "node": ">= 0.4"
2407
+      }
2408
+    },
2409
+    "node_modules/asynckit": {
2410
+      "version": "0.4.0",
2411
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
2412
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
2413
+      "license": "MIT"
2414
+    },
2415
+    "node_modules/available-typed-arrays": {
2416
+      "version": "1.0.7",
2417
+      "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
2418
+      "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
2419
+      "dev": true,
2420
+      "license": "MIT",
2421
+      "dependencies": {
2422
+        "possible-typed-array-names": "^1.0.0"
2423
+      },
2424
+      "engines": {
2425
+        "node": ">= 0.4"
2426
+      },
2427
+      "funding": {
2428
+        "url": "https://github.com/sponsors/ljharb"
2429
+      }
2430
+    },
2431
+    "node_modules/axe-core": {
2432
+      "version": "4.10.3",
2433
+      "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz",
2434
+      "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==",
2435
+      "dev": true,
2436
+      "license": "MPL-2.0",
2437
+      "engines": {
2438
+        "node": ">=4"
2439
+      }
2440
+    },
2441
+    "node_modules/axios": {
2442
+      "version": "1.10.0",
2443
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz",
2444
+      "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==",
2445
+      "license": "MIT",
2446
+      "dependencies": {
2447
+        "follow-redirects": "^1.15.6",
2448
+        "form-data": "^4.0.0",
2449
+        "proxy-from-env": "^1.1.0"
2450
+      }
2451
+    },
2452
+    "node_modules/axobject-query": {
2453
+      "version": "4.1.0",
2454
+      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
2455
+      "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
2456
+      "dev": true,
2457
+      "license": "Apache-2.0",
2458
+      "engines": {
2459
+        "node": ">= 0.4"
2460
+      }
2461
+    },
2462
+    "node_modules/balanced-match": {
2463
+      "version": "1.0.2",
2464
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2465
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2466
+      "dev": true,
2467
+      "license": "MIT"
2468
+    },
2469
+    "node_modules/brace-expansion": {
2470
+      "version": "1.1.12",
2471
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
2472
+      "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
2473
+      "dev": true,
2474
+      "license": "MIT",
2475
+      "dependencies": {
2476
+        "balanced-match": "^1.0.0",
2477
+        "concat-map": "0.0.1"
2478
+      }
2479
+    },
2480
+    "node_modules/braces": {
2481
+      "version": "3.0.3",
2482
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
2483
+      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
2484
+      "dev": true,
2485
+      "license": "MIT",
2486
+      "dependencies": {
2487
+        "fill-range": "^7.1.1"
2488
+      },
2489
+      "engines": {
2490
+        "node": ">=8"
2491
+      }
2492
+    },
2493
+    "node_modules/busboy": {
2494
+      "version": "1.6.0",
2495
+      "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
2496
+      "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
2497
+      "dependencies": {
2498
+        "streamsearch": "^1.1.0"
2499
+      },
2500
+      "engines": {
2501
+        "node": ">=10.16.0"
2502
+      }
2503
+    },
2504
+    "node_modules/call-bind": {
2505
+      "version": "1.0.8",
2506
+      "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
2507
+      "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
2508
+      "dev": true,
2509
+      "license": "MIT",
2510
+      "dependencies": {
2511
+        "call-bind-apply-helpers": "^1.0.0",
2512
+        "es-define-property": "^1.0.0",
2513
+        "get-intrinsic": "^1.2.4",
2514
+        "set-function-length": "^1.2.2"
2515
+      },
2516
+      "engines": {
2517
+        "node": ">= 0.4"
2518
+      },
2519
+      "funding": {
2520
+        "url": "https://github.com/sponsors/ljharb"
2521
+      }
2522
+    },
2523
+    "node_modules/call-bind-apply-helpers": {
2524
+      "version": "1.0.2",
2525
+      "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
2526
+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
2527
+      "license": "MIT",
2528
+      "dependencies": {
2529
+        "es-errors": "^1.3.0",
2530
+        "function-bind": "^1.1.2"
2531
+      },
2532
+      "engines": {
2533
+        "node": ">= 0.4"
2534
+      }
2535
+    },
2536
+    "node_modules/call-bound": {
2537
+      "version": "1.0.4",
2538
+      "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
2539
+      "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
2540
+      "dev": true,
2541
+      "license": "MIT",
2542
+      "dependencies": {
2543
+        "call-bind-apply-helpers": "^1.0.2",
2544
+        "get-intrinsic": "^1.3.0"
2545
+      },
2546
+      "engines": {
2547
+        "node": ">= 0.4"
2548
+      },
2549
+      "funding": {
2550
+        "url": "https://github.com/sponsors/ljharb"
2551
+      }
2552
+    },
2553
+    "node_modules/callsites": {
2554
+      "version": "3.1.0",
2555
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
2556
+      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
2557
+      "dev": true,
2558
+      "license": "MIT",
2559
+      "engines": {
2560
+        "node": ">=6"
2561
+      }
2562
+    },
2563
+    "node_modules/caniuse-lite": {
2564
+      "version": "1.0.30001723",
2565
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001723.tgz",
2566
+      "integrity": "sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==",
2567
+      "funding": [
2568
+        {
2569
+          "type": "opencollective",
2570
+          "url": "https://opencollective.com/browserslist"
2571
+        },
2572
+        {
2573
+          "type": "tidelift",
2574
+          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
2575
+        },
2576
+        {
2577
+          "type": "github",
2578
+          "url": "https://github.com/sponsors/ai"
2579
+        }
2580
+      ],
2581
+      "license": "CC-BY-4.0"
2582
+    },
2583
+    "node_modules/chalk": {
2584
+      "version": "4.1.2",
2585
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2586
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2587
+      "dev": true,
2588
+      "license": "MIT",
2589
+      "dependencies": {
2590
+        "ansi-styles": "^4.1.0",
2591
+        "supports-color": "^7.1.0"
2592
+      },
2593
+      "engines": {
2594
+        "node": ">=10"
2595
+      },
2596
+      "funding": {
2597
+        "url": "https://github.com/chalk/chalk?sponsor=1"
2598
+      }
2599
+    },
2600
+    "node_modules/chownr": {
2601
+      "version": "3.0.0",
2602
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
2603
+      "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
2604
+      "dev": true,
2605
+      "license": "BlueOak-1.0.0",
2606
+      "engines": {
2607
+        "node": ">=18"
2608
+      }
2609
+    },
2610
+    "node_modules/client-only": {
2611
+      "version": "0.0.1",
2612
+      "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
2613
+      "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
2614
+      "license": "MIT"
2615
+    },
2616
+    "node_modules/color": {
2617
+      "version": "4.2.3",
2618
+      "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
2619
+      "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
2620
+      "license": "MIT",
2621
+      "optional": true,
2622
+      "dependencies": {
2623
+        "color-convert": "^2.0.1",
2624
+        "color-string": "^1.9.0"
2625
+      },
2626
+      "engines": {
2627
+        "node": ">=12.5.0"
2628
+      }
2629
+    },
2630
+    "node_modules/color-convert": {
2631
+      "version": "2.0.1",
2632
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2633
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2634
+      "devOptional": true,
2635
+      "license": "MIT",
2636
+      "dependencies": {
2637
+        "color-name": "~1.1.4"
2638
+      },
2639
+      "engines": {
2640
+        "node": ">=7.0.0"
2641
+      }
2642
+    },
2643
+    "node_modules/color-name": {
2644
+      "version": "1.1.4",
2645
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2646
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2647
+      "devOptional": true,
2648
+      "license": "MIT"
2649
+    },
2650
+    "node_modules/color-string": {
2651
+      "version": "1.9.1",
2652
+      "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
2653
+      "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
2654
+      "license": "MIT",
2655
+      "optional": true,
2656
+      "dependencies": {
2657
+        "color-name": "^1.0.0",
2658
+        "simple-swizzle": "^0.2.2"
2659
+      }
2660
+    },
2661
+    "node_modules/combined-stream": {
2662
+      "version": "1.0.8",
2663
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2664
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2665
+      "license": "MIT",
2666
+      "dependencies": {
2667
+        "delayed-stream": "~1.0.0"
2668
+      },
2669
+      "engines": {
2670
+        "node": ">= 0.8"
2671
+      }
2672
+    },
2673
+    "node_modules/commander": {
2674
+      "version": "7.2.0",
2675
+      "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
2676
+      "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
2677
+      "license": "MIT",
2678
+      "engines": {
2679
+        "node": ">= 10"
2680
+      }
2681
+    },
2682
+    "node_modules/concat-map": {
2683
+      "version": "0.0.1",
2684
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2685
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
2686
+      "dev": true,
2687
+      "license": "MIT"
2688
+    },
2689
+    "node_modules/cross-spawn": {
2690
+      "version": "7.0.6",
2691
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
2692
+      "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
2693
+      "dev": true,
2694
+      "license": "MIT",
2695
+      "dependencies": {
2696
+        "path-key": "^3.1.0",
2697
+        "shebang-command": "^2.0.0",
2698
+        "which": "^2.0.1"
2699
+      },
2700
+      "engines": {
2701
+        "node": ">= 8"
2702
+      }
2703
+    },
2704
+    "node_modules/csstype": {
2705
+      "version": "3.1.3",
2706
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
2707
+      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
2708
+      "dev": true,
2709
+      "license": "MIT"
2710
+    },
2711
+    "node_modules/d3": {
2712
+      "version": "7.9.0",
2713
+      "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
2714
+      "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
2715
+      "license": "ISC",
2716
+      "dependencies": {
2717
+        "d3-array": "3",
2718
+        "d3-axis": "3",
2719
+        "d3-brush": "3",
2720
+        "d3-chord": "3",
2721
+        "d3-color": "3",
2722
+        "d3-contour": "4",
2723
+        "d3-delaunay": "6",
2724
+        "d3-dispatch": "3",
2725
+        "d3-drag": "3",
2726
+        "d3-dsv": "3",
2727
+        "d3-ease": "3",
2728
+        "d3-fetch": "3",
2729
+        "d3-force": "3",
2730
+        "d3-format": "3",
2731
+        "d3-geo": "3",
2732
+        "d3-hierarchy": "3",
2733
+        "d3-interpolate": "3",
2734
+        "d3-path": "3",
2735
+        "d3-polygon": "3",
2736
+        "d3-quadtree": "3",
2737
+        "d3-random": "3",
2738
+        "d3-scale": "4",
2739
+        "d3-scale-chromatic": "3",
2740
+        "d3-selection": "3",
2741
+        "d3-shape": "3",
2742
+        "d3-time": "3",
2743
+        "d3-time-format": "4",
2744
+        "d3-timer": "3",
2745
+        "d3-transition": "3",
2746
+        "d3-zoom": "3"
2747
+      },
2748
+      "engines": {
2749
+        "node": ">=12"
2750
+      }
2751
+    },
2752
+    "node_modules/d3-array": {
2753
+      "version": "3.2.4",
2754
+      "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
2755
+      "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
2756
+      "license": "ISC",
2757
+      "dependencies": {
2758
+        "internmap": "1 - 2"
2759
+      },
2760
+      "engines": {
2761
+        "node": ">=12"
2762
+      }
2763
+    },
2764
+    "node_modules/d3-axis": {
2765
+      "version": "3.0.0",
2766
+      "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
2767
+      "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
2768
+      "license": "ISC",
2769
+      "engines": {
2770
+        "node": ">=12"
2771
+      }
2772
+    },
2773
+    "node_modules/d3-brush": {
2774
+      "version": "3.0.0",
2775
+      "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
2776
+      "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
2777
+      "license": "ISC",
2778
+      "dependencies": {
2779
+        "d3-dispatch": "1 - 3",
2780
+        "d3-drag": "2 - 3",
2781
+        "d3-interpolate": "1 - 3",
2782
+        "d3-selection": "3",
2783
+        "d3-transition": "3"
2784
+      },
2785
+      "engines": {
2786
+        "node": ">=12"
2787
+      }
2788
+    },
2789
+    "node_modules/d3-chord": {
2790
+      "version": "3.0.1",
2791
+      "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
2792
+      "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
2793
+      "license": "ISC",
2794
+      "dependencies": {
2795
+        "d3-path": "1 - 3"
2796
+      },
2797
+      "engines": {
2798
+        "node": ">=12"
2799
+      }
2800
+    },
2801
+    "node_modules/d3-color": {
2802
+      "version": "3.1.0",
2803
+      "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
2804
+      "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
2805
+      "license": "ISC",
2806
+      "engines": {
2807
+        "node": ">=12"
2808
+      }
2809
+    },
2810
+    "node_modules/d3-contour": {
2811
+      "version": "4.0.2",
2812
+      "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
2813
+      "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
2814
+      "license": "ISC",
2815
+      "dependencies": {
2816
+        "d3-array": "^3.2.0"
2817
+      },
2818
+      "engines": {
2819
+        "node": ">=12"
2820
+      }
2821
+    },
2822
+    "node_modules/d3-delaunay": {
2823
+      "version": "6.0.4",
2824
+      "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
2825
+      "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
2826
+      "license": "ISC",
2827
+      "dependencies": {
2828
+        "delaunator": "5"
2829
+      },
2830
+      "engines": {
2831
+        "node": ">=12"
2832
+      }
2833
+    },
2834
+    "node_modules/d3-dispatch": {
2835
+      "version": "3.0.1",
2836
+      "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
2837
+      "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
2838
+      "license": "ISC",
2839
+      "engines": {
2840
+        "node": ">=12"
2841
+      }
2842
+    },
2843
+    "node_modules/d3-drag": {
2844
+      "version": "3.0.0",
2845
+      "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
2846
+      "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
2847
+      "license": "ISC",
2848
+      "dependencies": {
2849
+        "d3-dispatch": "1 - 3",
2850
+        "d3-selection": "3"
2851
+      },
2852
+      "engines": {
2853
+        "node": ">=12"
2854
+      }
2855
+    },
2856
+    "node_modules/d3-dsv": {
2857
+      "version": "3.0.1",
2858
+      "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
2859
+      "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
2860
+      "license": "ISC",
2861
+      "dependencies": {
2862
+        "commander": "7",
2863
+        "iconv-lite": "0.6",
2864
+        "rw": "1"
2865
+      },
2866
+      "bin": {
2867
+        "csv2json": "bin/dsv2json.js",
2868
+        "csv2tsv": "bin/dsv2dsv.js",
2869
+        "dsv2dsv": "bin/dsv2dsv.js",
2870
+        "dsv2json": "bin/dsv2json.js",
2871
+        "json2csv": "bin/json2dsv.js",
2872
+        "json2dsv": "bin/json2dsv.js",
2873
+        "json2tsv": "bin/json2dsv.js",
2874
+        "tsv2csv": "bin/dsv2dsv.js",
2875
+        "tsv2json": "bin/dsv2json.js"
2876
+      },
2877
+      "engines": {
2878
+        "node": ">=12"
2879
+      }
2880
+    },
2881
+    "node_modules/d3-ease": {
2882
+      "version": "3.0.1",
2883
+      "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
2884
+      "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
2885
+      "license": "BSD-3-Clause",
2886
+      "engines": {
2887
+        "node": ">=12"
2888
+      }
2889
+    },
2890
+    "node_modules/d3-fetch": {
2891
+      "version": "3.0.1",
2892
+      "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
2893
+      "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
2894
+      "license": "ISC",
2895
+      "dependencies": {
2896
+        "d3-dsv": "1 - 3"
2897
+      },
2898
+      "engines": {
2899
+        "node": ">=12"
2900
+      }
2901
+    },
2902
+    "node_modules/d3-force": {
2903
+      "version": "3.0.0",
2904
+      "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
2905
+      "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
2906
+      "license": "ISC",
2907
+      "dependencies": {
2908
+        "d3-dispatch": "1 - 3",
2909
+        "d3-quadtree": "1 - 3",
2910
+        "d3-timer": "1 - 3"
2911
+      },
2912
+      "engines": {
2913
+        "node": ">=12"
2914
+      }
2915
+    },
2916
+    "node_modules/d3-format": {
2917
+      "version": "3.1.0",
2918
+      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
2919
+      "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
2920
+      "license": "ISC",
2921
+      "engines": {
2922
+        "node": ">=12"
2923
+      }
2924
+    },
2925
+    "node_modules/d3-geo": {
2926
+      "version": "3.1.1",
2927
+      "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
2928
+      "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
2929
+      "license": "ISC",
2930
+      "dependencies": {
2931
+        "d3-array": "2.5.0 - 3"
2932
+      },
2933
+      "engines": {
2934
+        "node": ">=12"
2935
+      }
2936
+    },
2937
+    "node_modules/d3-hierarchy": {
2938
+      "version": "3.1.2",
2939
+      "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
2940
+      "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
2941
+      "license": "ISC",
2942
+      "engines": {
2943
+        "node": ">=12"
2944
+      }
2945
+    },
2946
+    "node_modules/d3-interpolate": {
2947
+      "version": "3.0.1",
2948
+      "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
2949
+      "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
2950
+      "license": "ISC",
2951
+      "dependencies": {
2952
+        "d3-color": "1 - 3"
2953
+      },
2954
+      "engines": {
2955
+        "node": ">=12"
2956
+      }
2957
+    },
2958
+    "node_modules/d3-path": {
2959
+      "version": "3.1.0",
2960
+      "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
2961
+      "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
2962
+      "license": "ISC",
2963
+      "engines": {
2964
+        "node": ">=12"
2965
+      }
2966
+    },
2967
+    "node_modules/d3-polygon": {
2968
+      "version": "3.0.1",
2969
+      "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
2970
+      "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
2971
+      "license": "ISC",
2972
+      "engines": {
2973
+        "node": ">=12"
2974
+      }
2975
+    },
2976
+    "node_modules/d3-quadtree": {
2977
+      "version": "3.0.1",
2978
+      "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
2979
+      "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
2980
+      "license": "ISC",
2981
+      "engines": {
2982
+        "node": ">=12"
2983
+      }
2984
+    },
2985
+    "node_modules/d3-random": {
2986
+      "version": "3.0.1",
2987
+      "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
2988
+      "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
2989
+      "license": "ISC",
2990
+      "engines": {
2991
+        "node": ">=12"
2992
+      }
2993
+    },
2994
+    "node_modules/d3-scale": {
2995
+      "version": "4.0.2",
2996
+      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
2997
+      "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
2998
+      "license": "ISC",
2999
+      "dependencies": {
3000
+        "d3-array": "2.10.0 - 3",
3001
+        "d3-format": "1 - 3",
3002
+        "d3-interpolate": "1.2.0 - 3",
3003
+        "d3-time": "2.1.1 - 3",
3004
+        "d3-time-format": "2 - 4"
3005
+      },
3006
+      "engines": {
3007
+        "node": ">=12"
3008
+      }
3009
+    },
3010
+    "node_modules/d3-scale-chromatic": {
3011
+      "version": "3.1.0",
3012
+      "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
3013
+      "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
3014
+      "license": "ISC",
3015
+      "dependencies": {
3016
+        "d3-color": "1 - 3",
3017
+        "d3-interpolate": "1 - 3"
3018
+      },
3019
+      "engines": {
3020
+        "node": ">=12"
3021
+      }
3022
+    },
3023
+    "node_modules/d3-selection": {
3024
+      "version": "3.0.0",
3025
+      "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
3026
+      "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
3027
+      "license": "ISC",
3028
+      "engines": {
3029
+        "node": ">=12"
3030
+      }
3031
+    },
3032
+    "node_modules/d3-shape": {
3033
+      "version": "3.2.0",
3034
+      "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
3035
+      "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
3036
+      "license": "ISC",
3037
+      "dependencies": {
3038
+        "d3-path": "^3.1.0"
3039
+      },
3040
+      "engines": {
3041
+        "node": ">=12"
3042
+      }
3043
+    },
3044
+    "node_modules/d3-time": {
3045
+      "version": "3.1.0",
3046
+      "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
3047
+      "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
3048
+      "license": "ISC",
3049
+      "dependencies": {
3050
+        "d3-array": "2 - 3"
3051
+      },
3052
+      "engines": {
3053
+        "node": ">=12"
3054
+      }
3055
+    },
3056
+    "node_modules/d3-time-format": {
3057
+      "version": "4.1.0",
3058
+      "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
3059
+      "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
3060
+      "license": "ISC",
3061
+      "dependencies": {
3062
+        "d3-time": "1 - 3"
3063
+      },
3064
+      "engines": {
3065
+        "node": ">=12"
3066
+      }
3067
+    },
3068
+    "node_modules/d3-timer": {
3069
+      "version": "3.0.1",
3070
+      "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
3071
+      "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
3072
+      "license": "ISC",
3073
+      "engines": {
3074
+        "node": ">=12"
3075
+      }
3076
+    },
3077
+    "node_modules/d3-transition": {
3078
+      "version": "3.0.1",
3079
+      "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
3080
+      "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
3081
+      "license": "ISC",
3082
+      "dependencies": {
3083
+        "d3-color": "1 - 3",
3084
+        "d3-dispatch": "1 - 3",
3085
+        "d3-ease": "1 - 3",
3086
+        "d3-interpolate": "1 - 3",
3087
+        "d3-timer": "1 - 3"
3088
+      },
3089
+      "engines": {
3090
+        "node": ">=12"
3091
+      },
3092
+      "peerDependencies": {
3093
+        "d3-selection": "2 - 3"
3094
+      }
3095
+    },
3096
+    "node_modules/d3-zoom": {
3097
+      "version": "3.0.0",
3098
+      "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
3099
+      "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
3100
+      "license": "ISC",
3101
+      "dependencies": {
3102
+        "d3-dispatch": "1 - 3",
3103
+        "d3-drag": "2 - 3",
3104
+        "d3-interpolate": "1 - 3",
3105
+        "d3-selection": "2 - 3",
3106
+        "d3-transition": "2 - 3"
3107
+      },
3108
+      "engines": {
3109
+        "node": ">=12"
3110
+      }
3111
+    },
3112
+    "node_modules/damerau-levenshtein": {
3113
+      "version": "1.0.8",
3114
+      "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
3115
+      "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
3116
+      "dev": true,
3117
+      "license": "BSD-2-Clause"
3118
+    },
3119
+    "node_modules/data-view-buffer": {
3120
+      "version": "1.0.2",
3121
+      "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
3122
+      "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
3123
+      "dev": true,
3124
+      "license": "MIT",
3125
+      "dependencies": {
3126
+        "call-bound": "^1.0.3",
3127
+        "es-errors": "^1.3.0",
3128
+        "is-data-view": "^1.0.2"
3129
+      },
3130
+      "engines": {
3131
+        "node": ">= 0.4"
3132
+      },
3133
+      "funding": {
3134
+        "url": "https://github.com/sponsors/ljharb"
3135
+      }
3136
+    },
3137
+    "node_modules/data-view-byte-length": {
3138
+      "version": "1.0.2",
3139
+      "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
3140
+      "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
3141
+      "dev": true,
3142
+      "license": "MIT",
3143
+      "dependencies": {
3144
+        "call-bound": "^1.0.3",
3145
+        "es-errors": "^1.3.0",
3146
+        "is-data-view": "^1.0.2"
3147
+      },
3148
+      "engines": {
3149
+        "node": ">= 0.4"
3150
+      },
3151
+      "funding": {
3152
+        "url": "https://github.com/sponsors/inspect-js"
3153
+      }
3154
+    },
3155
+    "node_modules/data-view-byte-offset": {
3156
+      "version": "1.0.1",
3157
+      "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
3158
+      "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
3159
+      "dev": true,
3160
+      "license": "MIT",
3161
+      "dependencies": {
3162
+        "call-bound": "^1.0.2",
3163
+        "es-errors": "^1.3.0",
3164
+        "is-data-view": "^1.0.1"
3165
+      },
3166
+      "engines": {
3167
+        "node": ">= 0.4"
3168
+      },
3169
+      "funding": {
3170
+        "url": "https://github.com/sponsors/ljharb"
3171
+      }
3172
+    },
3173
+    "node_modules/debug": {
3174
+      "version": "4.4.1",
3175
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
3176
+      "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
3177
+      "dev": true,
3178
+      "license": "MIT",
3179
+      "dependencies": {
3180
+        "ms": "^2.1.3"
3181
+      },
3182
+      "engines": {
3183
+        "node": ">=6.0"
3184
+      },
3185
+      "peerDependenciesMeta": {
3186
+        "supports-color": {
3187
+          "optional": true
3188
+        }
3189
+      }
3190
+    },
3191
+    "node_modules/deep-is": {
3192
+      "version": "0.1.4",
3193
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
3194
+      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
3195
+      "dev": true,
3196
+      "license": "MIT"
3197
+    },
3198
+    "node_modules/define-data-property": {
3199
+      "version": "1.1.4",
3200
+      "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
3201
+      "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
3202
+      "dev": true,
3203
+      "license": "MIT",
3204
+      "dependencies": {
3205
+        "es-define-property": "^1.0.0",
3206
+        "es-errors": "^1.3.0",
3207
+        "gopd": "^1.0.1"
3208
+      },
3209
+      "engines": {
3210
+        "node": ">= 0.4"
3211
+      },
3212
+      "funding": {
3213
+        "url": "https://github.com/sponsors/ljharb"
3214
+      }
3215
+    },
3216
+    "node_modules/define-properties": {
3217
+      "version": "1.2.1",
3218
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
3219
+      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
3220
+      "dev": true,
3221
+      "license": "MIT",
3222
+      "dependencies": {
3223
+        "define-data-property": "^1.0.1",
3224
+        "has-property-descriptors": "^1.0.0",
3225
+        "object-keys": "^1.1.1"
3226
+      },
3227
+      "engines": {
3228
+        "node": ">= 0.4"
3229
+      },
3230
+      "funding": {
3231
+        "url": "https://github.com/sponsors/ljharb"
3232
+      }
3233
+    },
3234
+    "node_modules/delaunator": {
3235
+      "version": "5.0.1",
3236
+      "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
3237
+      "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
3238
+      "license": "ISC",
3239
+      "dependencies": {
3240
+        "robust-predicates": "^3.0.2"
3241
+      }
3242
+    },
3243
+    "node_modules/delayed-stream": {
3244
+      "version": "1.0.0",
3245
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3246
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
3247
+      "license": "MIT",
3248
+      "engines": {
3249
+        "node": ">=0.4.0"
3250
+      }
3251
+    },
3252
+    "node_modules/detect-libc": {
3253
+      "version": "2.0.4",
3254
+      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
3255
+      "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
3256
+      "devOptional": true,
3257
+      "license": "Apache-2.0",
3258
+      "engines": {
3259
+        "node": ">=8"
3260
+      }
3261
+    },
3262
+    "node_modules/doctrine": {
3263
+      "version": "2.1.0",
3264
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
3265
+      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
3266
+      "dev": true,
3267
+      "license": "Apache-2.0",
3268
+      "dependencies": {
3269
+        "esutils": "^2.0.2"
3270
+      },
3271
+      "engines": {
3272
+        "node": ">=0.10.0"
3273
+      }
3274
+    },
3275
+    "node_modules/dunder-proto": {
3276
+      "version": "1.0.1",
3277
+      "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
3278
+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
3279
+      "license": "MIT",
3280
+      "dependencies": {
3281
+        "call-bind-apply-helpers": "^1.0.1",
3282
+        "es-errors": "^1.3.0",
3283
+        "gopd": "^1.2.0"
3284
+      },
3285
+      "engines": {
3286
+        "node": ">= 0.4"
3287
+      }
3288
+    },
3289
+    "node_modules/emoji-regex": {
3290
+      "version": "9.2.2",
3291
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
3292
+      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
3293
+      "dev": true,
3294
+      "license": "MIT"
3295
+    },
3296
+    "node_modules/enhanced-resolve": {
3297
+      "version": "5.18.1",
3298
+      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
3299
+      "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
3300
+      "dev": true,
3301
+      "license": "MIT",
3302
+      "dependencies": {
3303
+        "graceful-fs": "^4.2.4",
3304
+        "tapable": "^2.2.0"
3305
+      },
3306
+      "engines": {
3307
+        "node": ">=10.13.0"
3308
+      }
3309
+    },
3310
+    "node_modules/es-abstract": {
3311
+      "version": "1.24.0",
3312
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
3313
+      "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
3314
+      "dev": true,
3315
+      "license": "MIT",
3316
+      "dependencies": {
3317
+        "array-buffer-byte-length": "^1.0.2",
3318
+        "arraybuffer.prototype.slice": "^1.0.4",
3319
+        "available-typed-arrays": "^1.0.7",
3320
+        "call-bind": "^1.0.8",
3321
+        "call-bound": "^1.0.4",
3322
+        "data-view-buffer": "^1.0.2",
3323
+        "data-view-byte-length": "^1.0.2",
3324
+        "data-view-byte-offset": "^1.0.1",
3325
+        "es-define-property": "^1.0.1",
3326
+        "es-errors": "^1.3.0",
3327
+        "es-object-atoms": "^1.1.1",
3328
+        "es-set-tostringtag": "^2.1.0",
3329
+        "es-to-primitive": "^1.3.0",
3330
+        "function.prototype.name": "^1.1.8",
3331
+        "get-intrinsic": "^1.3.0",
3332
+        "get-proto": "^1.0.1",
3333
+        "get-symbol-description": "^1.1.0",
3334
+        "globalthis": "^1.0.4",
3335
+        "gopd": "^1.2.0",
3336
+        "has-property-descriptors": "^1.0.2",
3337
+        "has-proto": "^1.2.0",
3338
+        "has-symbols": "^1.1.0",
3339
+        "hasown": "^2.0.2",
3340
+        "internal-slot": "^1.1.0",
3341
+        "is-array-buffer": "^3.0.5",
3342
+        "is-callable": "^1.2.7",
3343
+        "is-data-view": "^1.0.2",
3344
+        "is-negative-zero": "^2.0.3",
3345
+        "is-regex": "^1.2.1",
3346
+        "is-set": "^2.0.3",
3347
+        "is-shared-array-buffer": "^1.0.4",
3348
+        "is-string": "^1.1.1",
3349
+        "is-typed-array": "^1.1.15",
3350
+        "is-weakref": "^1.1.1",
3351
+        "math-intrinsics": "^1.1.0",
3352
+        "object-inspect": "^1.13.4",
3353
+        "object-keys": "^1.1.1",
3354
+        "object.assign": "^4.1.7",
3355
+        "own-keys": "^1.0.1",
3356
+        "regexp.prototype.flags": "^1.5.4",
3357
+        "safe-array-concat": "^1.1.3",
3358
+        "safe-push-apply": "^1.0.0",
3359
+        "safe-regex-test": "^1.1.0",
3360
+        "set-proto": "^1.0.0",
3361
+        "stop-iteration-iterator": "^1.1.0",
3362
+        "string.prototype.trim": "^1.2.10",
3363
+        "string.prototype.trimend": "^1.0.9",
3364
+        "string.prototype.trimstart": "^1.0.8",
3365
+        "typed-array-buffer": "^1.0.3",
3366
+        "typed-array-byte-length": "^1.0.3",
3367
+        "typed-array-byte-offset": "^1.0.4",
3368
+        "typed-array-length": "^1.0.7",
3369
+        "unbox-primitive": "^1.1.0",
3370
+        "which-typed-array": "^1.1.19"
3371
+      },
3372
+      "engines": {
3373
+        "node": ">= 0.4"
3374
+      },
3375
+      "funding": {
3376
+        "url": "https://github.com/sponsors/ljharb"
3377
+      }
3378
+    },
3379
+    "node_modules/es-define-property": {
3380
+      "version": "1.0.1",
3381
+      "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
3382
+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
3383
+      "license": "MIT",
3384
+      "engines": {
3385
+        "node": ">= 0.4"
3386
+      }
3387
+    },
3388
+    "node_modules/es-errors": {
3389
+      "version": "1.3.0",
3390
+      "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
3391
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
3392
+      "license": "MIT",
3393
+      "engines": {
3394
+        "node": ">= 0.4"
3395
+      }
3396
+    },
3397
+    "node_modules/es-iterator-helpers": {
3398
+      "version": "1.2.1",
3399
+      "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
3400
+      "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
3401
+      "dev": true,
3402
+      "license": "MIT",
3403
+      "dependencies": {
3404
+        "call-bind": "^1.0.8",
3405
+        "call-bound": "^1.0.3",
3406
+        "define-properties": "^1.2.1",
3407
+        "es-abstract": "^1.23.6",
3408
+        "es-errors": "^1.3.0",
3409
+        "es-set-tostringtag": "^2.0.3",
3410
+        "function-bind": "^1.1.2",
3411
+        "get-intrinsic": "^1.2.6",
3412
+        "globalthis": "^1.0.4",
3413
+        "gopd": "^1.2.0",
3414
+        "has-property-descriptors": "^1.0.2",
3415
+        "has-proto": "^1.2.0",
3416
+        "has-symbols": "^1.1.0",
3417
+        "internal-slot": "^1.1.0",
3418
+        "iterator.prototype": "^1.1.4",
3419
+        "safe-array-concat": "^1.1.3"
3420
+      },
3421
+      "engines": {
3422
+        "node": ">= 0.4"
3423
+      }
3424
+    },
3425
+    "node_modules/es-object-atoms": {
3426
+      "version": "1.1.1",
3427
+      "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
3428
+      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
3429
+      "license": "MIT",
3430
+      "dependencies": {
3431
+        "es-errors": "^1.3.0"
3432
+      },
3433
+      "engines": {
3434
+        "node": ">= 0.4"
3435
+      }
3436
+    },
3437
+    "node_modules/es-set-tostringtag": {
3438
+      "version": "2.1.0",
3439
+      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
3440
+      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
3441
+      "license": "MIT",
3442
+      "dependencies": {
3443
+        "es-errors": "^1.3.0",
3444
+        "get-intrinsic": "^1.2.6",
3445
+        "has-tostringtag": "^1.0.2",
3446
+        "hasown": "^2.0.2"
3447
+      },
3448
+      "engines": {
3449
+        "node": ">= 0.4"
3450
+      }
3451
+    },
3452
+    "node_modules/es-shim-unscopables": {
3453
+      "version": "1.1.0",
3454
+      "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
3455
+      "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
3456
+      "dev": true,
3457
+      "license": "MIT",
3458
+      "dependencies": {
3459
+        "hasown": "^2.0.2"
3460
+      },
3461
+      "engines": {
3462
+        "node": ">= 0.4"
3463
+      }
3464
+    },
3465
+    "node_modules/es-to-primitive": {
3466
+      "version": "1.3.0",
3467
+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
3468
+      "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
3469
+      "dev": true,
3470
+      "license": "MIT",
3471
+      "dependencies": {
3472
+        "is-callable": "^1.2.7",
3473
+        "is-date-object": "^1.0.5",
3474
+        "is-symbol": "^1.0.4"
3475
+      },
3476
+      "engines": {
3477
+        "node": ">= 0.4"
3478
+      },
3479
+      "funding": {
3480
+        "url": "https://github.com/sponsors/ljharb"
3481
+      }
3482
+    },
3483
+    "node_modules/escape-string-regexp": {
3484
+      "version": "4.0.0",
3485
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
3486
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
3487
+      "dev": true,
3488
+      "license": "MIT",
3489
+      "engines": {
3490
+        "node": ">=10"
3491
+      },
3492
+      "funding": {
3493
+        "url": "https://github.com/sponsors/sindresorhus"
3494
+      }
3495
+    },
3496
+    "node_modules/eslint": {
3497
+      "version": "9.29.0",
3498
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz",
3499
+      "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==",
3500
+      "dev": true,
3501
+      "license": "MIT",
3502
+      "dependencies": {
3503
+        "@eslint-community/eslint-utils": "^4.2.0",
3504
+        "@eslint-community/regexpp": "^4.12.1",
3505
+        "@eslint/config-array": "^0.20.1",
3506
+        "@eslint/config-helpers": "^0.2.1",
3507
+        "@eslint/core": "^0.14.0",
3508
+        "@eslint/eslintrc": "^3.3.1",
3509
+        "@eslint/js": "9.29.0",
3510
+        "@eslint/plugin-kit": "^0.3.1",
3511
+        "@humanfs/node": "^0.16.6",
3512
+        "@humanwhocodes/module-importer": "^1.0.1",
3513
+        "@humanwhocodes/retry": "^0.4.2",
3514
+        "@types/estree": "^1.0.6",
3515
+        "@types/json-schema": "^7.0.15",
3516
+        "ajv": "^6.12.4",
3517
+        "chalk": "^4.0.0",
3518
+        "cross-spawn": "^7.0.6",
3519
+        "debug": "^4.3.2",
3520
+        "escape-string-regexp": "^4.0.0",
3521
+        "eslint-scope": "^8.4.0",
3522
+        "eslint-visitor-keys": "^4.2.1",
3523
+        "espree": "^10.4.0",
3524
+        "esquery": "^1.5.0",
3525
+        "esutils": "^2.0.2",
3526
+        "fast-deep-equal": "^3.1.3",
3527
+        "file-entry-cache": "^8.0.0",
3528
+        "find-up": "^5.0.0",
3529
+        "glob-parent": "^6.0.2",
3530
+        "ignore": "^5.2.0",
3531
+        "imurmurhash": "^0.1.4",
3532
+        "is-glob": "^4.0.0",
3533
+        "json-stable-stringify-without-jsonify": "^1.0.1",
3534
+        "lodash.merge": "^4.6.2",
3535
+        "minimatch": "^3.1.2",
3536
+        "natural-compare": "^1.4.0",
3537
+        "optionator": "^0.9.3"
3538
+      },
3539
+      "bin": {
3540
+        "eslint": "bin/eslint.js"
3541
+      },
3542
+      "engines": {
3543
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
3544
+      },
3545
+      "funding": {
3546
+        "url": "https://eslint.org/donate"
3547
+      },
3548
+      "peerDependencies": {
3549
+        "jiti": "*"
3550
+      },
3551
+      "peerDependenciesMeta": {
3552
+        "jiti": {
3553
+          "optional": true
3554
+        }
3555
+      }
3556
+    },
3557
+    "node_modules/eslint-config-next": {
3558
+      "version": "15.3.3",
3559
+      "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.3.3.tgz",
3560
+      "integrity": "sha512-QJLv/Ouk2vZnxL4b67njJwTLjTf7uZRltI0LL4GERYR4qMF5z08+gxkfODAeaK7TiC6o+cER91bDaEnwrTWV6Q==",
3561
+      "dev": true,
3562
+      "license": "MIT",
3563
+      "dependencies": {
3564
+        "@next/eslint-plugin-next": "15.3.3",
3565
+        "@rushstack/eslint-patch": "^1.10.3",
3566
+        "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
3567
+        "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
3568
+        "eslint-import-resolver-node": "^0.3.6",
3569
+        "eslint-import-resolver-typescript": "^3.5.2",
3570
+        "eslint-plugin-import": "^2.31.0",
3571
+        "eslint-plugin-jsx-a11y": "^6.10.0",
3572
+        "eslint-plugin-react": "^7.37.0",
3573
+        "eslint-plugin-react-hooks": "^5.0.0"
3574
+      },
3575
+      "peerDependencies": {
3576
+        "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0",
3577
+        "typescript": ">=3.3.1"
3578
+      },
3579
+      "peerDependenciesMeta": {
3580
+        "typescript": {
3581
+          "optional": true
3582
+        }
3583
+      }
3584
+    },
3585
+    "node_modules/eslint-import-resolver-node": {
3586
+      "version": "0.3.9",
3587
+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
3588
+      "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
3589
+      "dev": true,
3590
+      "license": "MIT",
3591
+      "dependencies": {
3592
+        "debug": "^3.2.7",
3593
+        "is-core-module": "^2.13.0",
3594
+        "resolve": "^1.22.4"
3595
+      }
3596
+    },
3597
+    "node_modules/eslint-import-resolver-node/node_modules/debug": {
3598
+      "version": "3.2.7",
3599
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
3600
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
3601
+      "dev": true,
3602
+      "license": "MIT",
3603
+      "dependencies": {
3604
+        "ms": "^2.1.1"
3605
+      }
3606
+    },
3607
+    "node_modules/eslint-import-resolver-typescript": {
3608
+      "version": "3.10.1",
3609
+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz",
3610
+      "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==",
3611
+      "dev": true,
3612
+      "license": "ISC",
3613
+      "dependencies": {
3614
+        "@nolyfill/is-core-module": "1.0.39",
3615
+        "debug": "^4.4.0",
3616
+        "get-tsconfig": "^4.10.0",
3617
+        "is-bun-module": "^2.0.0",
3618
+        "stable-hash": "^0.0.5",
3619
+        "tinyglobby": "^0.2.13",
3620
+        "unrs-resolver": "^1.6.2"
3621
+      },
3622
+      "engines": {
3623
+        "node": "^14.18.0 || >=16.0.0"
3624
+      },
3625
+      "funding": {
3626
+        "url": "https://opencollective.com/eslint-import-resolver-typescript"
3627
+      },
3628
+      "peerDependencies": {
3629
+        "eslint": "*",
3630
+        "eslint-plugin-import": "*",
3631
+        "eslint-plugin-import-x": "*"
3632
+      },
3633
+      "peerDependenciesMeta": {
3634
+        "eslint-plugin-import": {
3635
+          "optional": true
3636
+        },
3637
+        "eslint-plugin-import-x": {
3638
+          "optional": true
3639
+        }
3640
+      }
3641
+    },
3642
+    "node_modules/eslint-module-utils": {
3643
+      "version": "2.12.0",
3644
+      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
3645
+      "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
3646
+      "dev": true,
3647
+      "license": "MIT",
3648
+      "dependencies": {
3649
+        "debug": "^3.2.7"
3650
+      },
3651
+      "engines": {
3652
+        "node": ">=4"
3653
+      },
3654
+      "peerDependenciesMeta": {
3655
+        "eslint": {
3656
+          "optional": true
3657
+        }
3658
+      }
3659
+    },
3660
+    "node_modules/eslint-module-utils/node_modules/debug": {
3661
+      "version": "3.2.7",
3662
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
3663
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
3664
+      "dev": true,
3665
+      "license": "MIT",
3666
+      "dependencies": {
3667
+        "ms": "^2.1.1"
3668
+      }
3669
+    },
3670
+    "node_modules/eslint-plugin-import": {
3671
+      "version": "2.31.0",
3672
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
3673
+      "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
3674
+      "dev": true,
3675
+      "license": "MIT",
3676
+      "dependencies": {
3677
+        "@rtsao/scc": "^1.1.0",
3678
+        "array-includes": "^3.1.8",
3679
+        "array.prototype.findlastindex": "^1.2.5",
3680
+        "array.prototype.flat": "^1.3.2",
3681
+        "array.prototype.flatmap": "^1.3.2",
3682
+        "debug": "^3.2.7",
3683
+        "doctrine": "^2.1.0",
3684
+        "eslint-import-resolver-node": "^0.3.9",
3685
+        "eslint-module-utils": "^2.12.0",
3686
+        "hasown": "^2.0.2",
3687
+        "is-core-module": "^2.15.1",
3688
+        "is-glob": "^4.0.3",
3689
+        "minimatch": "^3.1.2",
3690
+        "object.fromentries": "^2.0.8",
3691
+        "object.groupby": "^1.0.3",
3692
+        "object.values": "^1.2.0",
3693
+        "semver": "^6.3.1",
3694
+        "string.prototype.trimend": "^1.0.8",
3695
+        "tsconfig-paths": "^3.15.0"
3696
+      },
3697
+      "engines": {
3698
+        "node": ">=4"
3699
+      },
3700
+      "peerDependencies": {
3701
+        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
3702
+      }
3703
+    },
3704
+    "node_modules/eslint-plugin-import/node_modules/debug": {
3705
+      "version": "3.2.7",
3706
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
3707
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
3708
+      "dev": true,
3709
+      "license": "MIT",
3710
+      "dependencies": {
3711
+        "ms": "^2.1.1"
3712
+      }
3713
+    },
3714
+    "node_modules/eslint-plugin-import/node_modules/semver": {
3715
+      "version": "6.3.1",
3716
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
3717
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
3718
+      "dev": true,
3719
+      "license": "ISC",
3720
+      "bin": {
3721
+        "semver": "bin/semver.js"
3722
+      }
3723
+    },
3724
+    "node_modules/eslint-plugin-jsx-a11y": {
3725
+      "version": "6.10.2",
3726
+      "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
3727
+      "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
3728
+      "dev": true,
3729
+      "license": "MIT",
3730
+      "dependencies": {
3731
+        "aria-query": "^5.3.2",
3732
+        "array-includes": "^3.1.8",
3733
+        "array.prototype.flatmap": "^1.3.2",
3734
+        "ast-types-flow": "^0.0.8",
3735
+        "axe-core": "^4.10.0",
3736
+        "axobject-query": "^4.1.0",
3737
+        "damerau-levenshtein": "^1.0.8",
3738
+        "emoji-regex": "^9.2.2",
3739
+        "hasown": "^2.0.2",
3740
+        "jsx-ast-utils": "^3.3.5",
3741
+        "language-tags": "^1.0.9",
3742
+        "minimatch": "^3.1.2",
3743
+        "object.fromentries": "^2.0.8",
3744
+        "safe-regex-test": "^1.0.3",
3745
+        "string.prototype.includes": "^2.0.1"
3746
+      },
3747
+      "engines": {
3748
+        "node": ">=4.0"
3749
+      },
3750
+      "peerDependencies": {
3751
+        "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
3752
+      }
3753
+    },
3754
+    "node_modules/eslint-plugin-react": {
3755
+      "version": "7.37.5",
3756
+      "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
3757
+      "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
3758
+      "dev": true,
3759
+      "license": "MIT",
3760
+      "dependencies": {
3761
+        "array-includes": "^3.1.8",
3762
+        "array.prototype.findlast": "^1.2.5",
3763
+        "array.prototype.flatmap": "^1.3.3",
3764
+        "array.prototype.tosorted": "^1.1.4",
3765
+        "doctrine": "^2.1.0",
3766
+        "es-iterator-helpers": "^1.2.1",
3767
+        "estraverse": "^5.3.0",
3768
+        "hasown": "^2.0.2",
3769
+        "jsx-ast-utils": "^2.4.1 || ^3.0.0",
3770
+        "minimatch": "^3.1.2",
3771
+        "object.entries": "^1.1.9",
3772
+        "object.fromentries": "^2.0.8",
3773
+        "object.values": "^1.2.1",
3774
+        "prop-types": "^15.8.1",
3775
+        "resolve": "^2.0.0-next.5",
3776
+        "semver": "^6.3.1",
3777
+        "string.prototype.matchall": "^4.0.12",
3778
+        "string.prototype.repeat": "^1.0.0"
3779
+      },
3780
+      "engines": {
3781
+        "node": ">=4"
3782
+      },
3783
+      "peerDependencies": {
3784
+        "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
3785
+      }
3786
+    },
3787
+    "node_modules/eslint-plugin-react-hooks": {
3788
+      "version": "5.2.0",
3789
+      "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
3790
+      "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
3791
+      "dev": true,
3792
+      "license": "MIT",
3793
+      "engines": {
3794
+        "node": ">=10"
3795
+      },
3796
+      "peerDependencies": {
3797
+        "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
3798
+      }
3799
+    },
3800
+    "node_modules/eslint-plugin-react/node_modules/resolve": {
3801
+      "version": "2.0.0-next.5",
3802
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
3803
+      "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
3804
+      "dev": true,
3805
+      "license": "MIT",
3806
+      "dependencies": {
3807
+        "is-core-module": "^2.13.0",
3808
+        "path-parse": "^1.0.7",
3809
+        "supports-preserve-symlinks-flag": "^1.0.0"
3810
+      },
3811
+      "bin": {
3812
+        "resolve": "bin/resolve"
3813
+      },
3814
+      "funding": {
3815
+        "url": "https://github.com/sponsors/ljharb"
3816
+      }
3817
+    },
3818
+    "node_modules/eslint-plugin-react/node_modules/semver": {
3819
+      "version": "6.3.1",
3820
+      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
3821
+      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
3822
+      "dev": true,
3823
+      "license": "ISC",
3824
+      "bin": {
3825
+        "semver": "bin/semver.js"
3826
+      }
3827
+    },
3828
+    "node_modules/eslint-scope": {
3829
+      "version": "8.4.0",
3830
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
3831
+      "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
3832
+      "dev": true,
3833
+      "license": "BSD-2-Clause",
3834
+      "dependencies": {
3835
+        "esrecurse": "^4.3.0",
3836
+        "estraverse": "^5.2.0"
3837
+      },
3838
+      "engines": {
3839
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
3840
+      },
3841
+      "funding": {
3842
+        "url": "https://opencollective.com/eslint"
3843
+      }
3844
+    },
3845
+    "node_modules/eslint-visitor-keys": {
3846
+      "version": "4.2.1",
3847
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
3848
+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
3849
+      "dev": true,
3850
+      "license": "Apache-2.0",
3851
+      "engines": {
3852
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
3853
+      },
3854
+      "funding": {
3855
+        "url": "https://opencollective.com/eslint"
3856
+      }
3857
+    },
3858
+    "node_modules/espree": {
3859
+      "version": "10.4.0",
3860
+      "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
3861
+      "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
3862
+      "dev": true,
3863
+      "license": "BSD-2-Clause",
3864
+      "dependencies": {
3865
+        "acorn": "^8.15.0",
3866
+        "acorn-jsx": "^5.3.2",
3867
+        "eslint-visitor-keys": "^4.2.1"
3868
+      },
3869
+      "engines": {
3870
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
3871
+      },
3872
+      "funding": {
3873
+        "url": "https://opencollective.com/eslint"
3874
+      }
3875
+    },
3876
+    "node_modules/esquery": {
3877
+      "version": "1.6.0",
3878
+      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
3879
+      "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
3880
+      "dev": true,
3881
+      "license": "BSD-3-Clause",
3882
+      "dependencies": {
3883
+        "estraverse": "^5.1.0"
3884
+      },
3885
+      "engines": {
3886
+        "node": ">=0.10"
3887
+      }
3888
+    },
3889
+    "node_modules/esrecurse": {
3890
+      "version": "4.3.0",
3891
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
3892
+      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
3893
+      "dev": true,
3894
+      "license": "BSD-2-Clause",
3895
+      "dependencies": {
3896
+        "estraverse": "^5.2.0"
3897
+      },
3898
+      "engines": {
3899
+        "node": ">=4.0"
3900
+      }
3901
+    },
3902
+    "node_modules/estraverse": {
3903
+      "version": "5.3.0",
3904
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
3905
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
3906
+      "dev": true,
3907
+      "license": "BSD-2-Clause",
3908
+      "engines": {
3909
+        "node": ">=4.0"
3910
+      }
3911
+    },
3912
+    "node_modules/esutils": {
3913
+      "version": "2.0.3",
3914
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
3915
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
3916
+      "dev": true,
3917
+      "license": "BSD-2-Clause",
3918
+      "engines": {
3919
+        "node": ">=0.10.0"
3920
+      }
3921
+    },
3922
+    "node_modules/fast-deep-equal": {
3923
+      "version": "3.1.3",
3924
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
3925
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
3926
+      "dev": true,
3927
+      "license": "MIT"
3928
+    },
3929
+    "node_modules/fast-glob": {
3930
+      "version": "3.3.1",
3931
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
3932
+      "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
3933
+      "dev": true,
3934
+      "license": "MIT",
3935
+      "dependencies": {
3936
+        "@nodelib/fs.stat": "^2.0.2",
3937
+        "@nodelib/fs.walk": "^1.2.3",
3938
+        "glob-parent": "^5.1.2",
3939
+        "merge2": "^1.3.0",
3940
+        "micromatch": "^4.0.4"
3941
+      },
3942
+      "engines": {
3943
+        "node": ">=8.6.0"
3944
+      }
3945
+    },
3946
+    "node_modules/fast-glob/node_modules/glob-parent": {
3947
+      "version": "5.1.2",
3948
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
3949
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
3950
+      "dev": true,
3951
+      "license": "ISC",
3952
+      "dependencies": {
3953
+        "is-glob": "^4.0.1"
3954
+      },
3955
+      "engines": {
3956
+        "node": ">= 6"
3957
+      }
3958
+    },
3959
+    "node_modules/fast-json-stable-stringify": {
3960
+      "version": "2.1.0",
3961
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
3962
+      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
3963
+      "dev": true,
3964
+      "license": "MIT"
3965
+    },
3966
+    "node_modules/fast-levenshtein": {
3967
+      "version": "2.0.6",
3968
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
3969
+      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
3970
+      "dev": true,
3971
+      "license": "MIT"
3972
+    },
3973
+    "node_modules/fastq": {
3974
+      "version": "1.19.1",
3975
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
3976
+      "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
3977
+      "dev": true,
3978
+      "license": "ISC",
3979
+      "dependencies": {
3980
+        "reusify": "^1.0.4"
3981
+      }
3982
+    },
3983
+    "node_modules/file-entry-cache": {
3984
+      "version": "8.0.0",
3985
+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
3986
+      "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
3987
+      "dev": true,
3988
+      "license": "MIT",
3989
+      "dependencies": {
3990
+        "flat-cache": "^4.0.0"
3991
+      },
3992
+      "engines": {
3993
+        "node": ">=16.0.0"
3994
+      }
3995
+    },
3996
+    "node_modules/fill-range": {
3997
+      "version": "7.1.1",
3998
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
3999
+      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
4000
+      "dev": true,
4001
+      "license": "MIT",
4002
+      "dependencies": {
4003
+        "to-regex-range": "^5.0.1"
4004
+      },
4005
+      "engines": {
4006
+        "node": ">=8"
4007
+      }
4008
+    },
4009
+    "node_modules/find-up": {
4010
+      "version": "5.0.0",
4011
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
4012
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
4013
+      "dev": true,
4014
+      "license": "MIT",
4015
+      "dependencies": {
4016
+        "locate-path": "^6.0.0",
4017
+        "path-exists": "^4.0.0"
4018
+      },
4019
+      "engines": {
4020
+        "node": ">=10"
4021
+      },
4022
+      "funding": {
4023
+        "url": "https://github.com/sponsors/sindresorhus"
4024
+      }
4025
+    },
4026
+    "node_modules/flat-cache": {
4027
+      "version": "4.0.1",
4028
+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
4029
+      "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
4030
+      "dev": true,
4031
+      "license": "MIT",
4032
+      "dependencies": {
4033
+        "flatted": "^3.2.9",
4034
+        "keyv": "^4.5.4"
4035
+      },
4036
+      "engines": {
4037
+        "node": ">=16"
4038
+      }
4039
+    },
4040
+    "node_modules/flatted": {
4041
+      "version": "3.3.3",
4042
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
4043
+      "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
4044
+      "dev": true,
4045
+      "license": "ISC"
4046
+    },
4047
+    "node_modules/follow-redirects": {
4048
+      "version": "1.15.9",
4049
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
4050
+      "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
4051
+      "funding": [
4052
+        {
4053
+          "type": "individual",
4054
+          "url": "https://github.com/sponsors/RubenVerborgh"
4055
+        }
4056
+      ],
4057
+      "license": "MIT",
4058
+      "engines": {
4059
+        "node": ">=4.0"
4060
+      },
4061
+      "peerDependenciesMeta": {
4062
+        "debug": {
4063
+          "optional": true
4064
+        }
4065
+      }
4066
+    },
4067
+    "node_modules/for-each": {
4068
+      "version": "0.3.5",
4069
+      "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
4070
+      "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
4071
+      "dev": true,
4072
+      "license": "MIT",
4073
+      "dependencies": {
4074
+        "is-callable": "^1.2.7"
4075
+      },
4076
+      "engines": {
4077
+        "node": ">= 0.4"
4078
+      },
4079
+      "funding": {
4080
+        "url": "https://github.com/sponsors/ljharb"
4081
+      }
4082
+    },
4083
+    "node_modules/form-data": {
4084
+      "version": "4.0.3",
4085
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
4086
+      "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
4087
+      "license": "MIT",
4088
+      "dependencies": {
4089
+        "asynckit": "^0.4.0",
4090
+        "combined-stream": "^1.0.8",
4091
+        "es-set-tostringtag": "^2.1.0",
4092
+        "hasown": "^2.0.2",
4093
+        "mime-types": "^2.1.12"
4094
+      },
4095
+      "engines": {
4096
+        "node": ">= 6"
4097
+      }
4098
+    },
4099
+    "node_modules/function-bind": {
4100
+      "version": "1.1.2",
4101
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
4102
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
4103
+      "license": "MIT",
4104
+      "funding": {
4105
+        "url": "https://github.com/sponsors/ljharb"
4106
+      }
4107
+    },
4108
+    "node_modules/function.prototype.name": {
4109
+      "version": "1.1.8",
4110
+      "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
4111
+      "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
4112
+      "dev": true,
4113
+      "license": "MIT",
4114
+      "dependencies": {
4115
+        "call-bind": "^1.0.8",
4116
+        "call-bound": "^1.0.3",
4117
+        "define-properties": "^1.2.1",
4118
+        "functions-have-names": "^1.2.3",
4119
+        "hasown": "^2.0.2",
4120
+        "is-callable": "^1.2.7"
4121
+      },
4122
+      "engines": {
4123
+        "node": ">= 0.4"
4124
+      },
4125
+      "funding": {
4126
+        "url": "https://github.com/sponsors/ljharb"
4127
+      }
4128
+    },
4129
+    "node_modules/functions-have-names": {
4130
+      "version": "1.2.3",
4131
+      "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
4132
+      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
4133
+      "dev": true,
4134
+      "license": "MIT",
4135
+      "funding": {
4136
+        "url": "https://github.com/sponsors/ljharb"
4137
+      }
4138
+    },
4139
+    "node_modules/get-intrinsic": {
4140
+      "version": "1.3.0",
4141
+      "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
4142
+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
4143
+      "license": "MIT",
4144
+      "dependencies": {
4145
+        "call-bind-apply-helpers": "^1.0.2",
4146
+        "es-define-property": "^1.0.1",
4147
+        "es-errors": "^1.3.0",
4148
+        "es-object-atoms": "^1.1.1",
4149
+        "function-bind": "^1.1.2",
4150
+        "get-proto": "^1.0.1",
4151
+        "gopd": "^1.2.0",
4152
+        "has-symbols": "^1.1.0",
4153
+        "hasown": "^2.0.2",
4154
+        "math-intrinsics": "^1.1.0"
4155
+      },
4156
+      "engines": {
4157
+        "node": ">= 0.4"
4158
+      },
4159
+      "funding": {
4160
+        "url": "https://github.com/sponsors/ljharb"
4161
+      }
4162
+    },
4163
+    "node_modules/get-proto": {
4164
+      "version": "1.0.1",
4165
+      "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
4166
+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
4167
+      "license": "MIT",
4168
+      "dependencies": {
4169
+        "dunder-proto": "^1.0.1",
4170
+        "es-object-atoms": "^1.0.0"
4171
+      },
4172
+      "engines": {
4173
+        "node": ">= 0.4"
4174
+      }
4175
+    },
4176
+    "node_modules/get-symbol-description": {
4177
+      "version": "1.1.0",
4178
+      "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
4179
+      "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
4180
+      "dev": true,
4181
+      "license": "MIT",
4182
+      "dependencies": {
4183
+        "call-bound": "^1.0.3",
4184
+        "es-errors": "^1.3.0",
4185
+        "get-intrinsic": "^1.2.6"
4186
+      },
4187
+      "engines": {
4188
+        "node": ">= 0.4"
4189
+      },
4190
+      "funding": {
4191
+        "url": "https://github.com/sponsors/ljharb"
4192
+      }
4193
+    },
4194
+    "node_modules/get-tsconfig": {
4195
+      "version": "4.10.1",
4196
+      "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
4197
+      "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
4198
+      "dev": true,
4199
+      "license": "MIT",
4200
+      "dependencies": {
4201
+        "resolve-pkg-maps": "^1.0.0"
4202
+      },
4203
+      "funding": {
4204
+        "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
4205
+      }
4206
+    },
4207
+    "node_modules/glob-parent": {
4208
+      "version": "6.0.2",
4209
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
4210
+      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
4211
+      "dev": true,
4212
+      "license": "ISC",
4213
+      "dependencies": {
4214
+        "is-glob": "^4.0.3"
4215
+      },
4216
+      "engines": {
4217
+        "node": ">=10.13.0"
4218
+      }
4219
+    },
4220
+    "node_modules/globals": {
4221
+      "version": "14.0.0",
4222
+      "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
4223
+      "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
4224
+      "dev": true,
4225
+      "license": "MIT",
4226
+      "engines": {
4227
+        "node": ">=18"
4228
+      },
4229
+      "funding": {
4230
+        "url": "https://github.com/sponsors/sindresorhus"
4231
+      }
4232
+    },
4233
+    "node_modules/globalthis": {
4234
+      "version": "1.0.4",
4235
+      "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
4236
+      "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
4237
+      "dev": true,
4238
+      "license": "MIT",
4239
+      "dependencies": {
4240
+        "define-properties": "^1.2.1",
4241
+        "gopd": "^1.0.1"
4242
+      },
4243
+      "engines": {
4244
+        "node": ">= 0.4"
4245
+      },
4246
+      "funding": {
4247
+        "url": "https://github.com/sponsors/ljharb"
4248
+      }
4249
+    },
4250
+    "node_modules/gopd": {
4251
+      "version": "1.2.0",
4252
+      "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
4253
+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
4254
+      "license": "MIT",
4255
+      "engines": {
4256
+        "node": ">= 0.4"
4257
+      },
4258
+      "funding": {
4259
+        "url": "https://github.com/sponsors/ljharb"
4260
+      }
4261
+    },
4262
+    "node_modules/graceful-fs": {
4263
+      "version": "4.2.11",
4264
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
4265
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
4266
+      "dev": true,
4267
+      "license": "ISC"
4268
+    },
4269
+    "node_modules/graphemer": {
4270
+      "version": "1.4.0",
4271
+      "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
4272
+      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
4273
+      "dev": true,
4274
+      "license": "MIT"
4275
+    },
4276
+    "node_modules/has-bigints": {
4277
+      "version": "1.1.0",
4278
+      "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
4279
+      "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
4280
+      "dev": true,
4281
+      "license": "MIT",
4282
+      "engines": {
4283
+        "node": ">= 0.4"
4284
+      },
4285
+      "funding": {
4286
+        "url": "https://github.com/sponsors/ljharb"
4287
+      }
4288
+    },
4289
+    "node_modules/has-flag": {
4290
+      "version": "4.0.0",
4291
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
4292
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
4293
+      "dev": true,
4294
+      "license": "MIT",
4295
+      "engines": {
4296
+        "node": ">=8"
4297
+      }
4298
+    },
4299
+    "node_modules/has-property-descriptors": {
4300
+      "version": "1.0.2",
4301
+      "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
4302
+      "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
4303
+      "dev": true,
4304
+      "license": "MIT",
4305
+      "dependencies": {
4306
+        "es-define-property": "^1.0.0"
4307
+      },
4308
+      "funding": {
4309
+        "url": "https://github.com/sponsors/ljharb"
4310
+      }
4311
+    },
4312
+    "node_modules/has-proto": {
4313
+      "version": "1.2.0",
4314
+      "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
4315
+      "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
4316
+      "dev": true,
4317
+      "license": "MIT",
4318
+      "dependencies": {
4319
+        "dunder-proto": "^1.0.0"
4320
+      },
4321
+      "engines": {
4322
+        "node": ">= 0.4"
4323
+      },
4324
+      "funding": {
4325
+        "url": "https://github.com/sponsors/ljharb"
4326
+      }
4327
+    },
4328
+    "node_modules/has-symbols": {
4329
+      "version": "1.1.0",
4330
+      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
4331
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
4332
+      "license": "MIT",
4333
+      "engines": {
4334
+        "node": ">= 0.4"
4335
+      },
4336
+      "funding": {
4337
+        "url": "https://github.com/sponsors/ljharb"
4338
+      }
4339
+    },
4340
+    "node_modules/has-tostringtag": {
4341
+      "version": "1.0.2",
4342
+      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
4343
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
4344
+      "license": "MIT",
4345
+      "dependencies": {
4346
+        "has-symbols": "^1.0.3"
4347
+      },
4348
+      "engines": {
4349
+        "node": ">= 0.4"
4350
+      },
4351
+      "funding": {
4352
+        "url": "https://github.com/sponsors/ljharb"
4353
+      }
4354
+    },
4355
+    "node_modules/hasown": {
4356
+      "version": "2.0.2",
4357
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
4358
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
4359
+      "license": "MIT",
4360
+      "dependencies": {
4361
+        "function-bind": "^1.1.2"
4362
+      },
4363
+      "engines": {
4364
+        "node": ">= 0.4"
4365
+      }
4366
+    },
4367
+    "node_modules/iconv-lite": {
4368
+      "version": "0.6.3",
4369
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
4370
+      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
4371
+      "license": "MIT",
4372
+      "dependencies": {
4373
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
4374
+      },
4375
+      "engines": {
4376
+        "node": ">=0.10.0"
4377
+      }
4378
+    },
4379
+    "node_modules/ignore": {
4380
+      "version": "5.3.2",
4381
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
4382
+      "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
4383
+      "dev": true,
4384
+      "license": "MIT",
4385
+      "engines": {
4386
+        "node": ">= 4"
4387
+      }
4388
+    },
4389
+    "node_modules/import-fresh": {
4390
+      "version": "3.3.1",
4391
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
4392
+      "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
4393
+      "dev": true,
4394
+      "license": "MIT",
4395
+      "dependencies": {
4396
+        "parent-module": "^1.0.0",
4397
+        "resolve-from": "^4.0.0"
4398
+      },
4399
+      "engines": {
4400
+        "node": ">=6"
4401
+      },
4402
+      "funding": {
4403
+        "url": "https://github.com/sponsors/sindresorhus"
4404
+      }
4405
+    },
4406
+    "node_modules/imurmurhash": {
4407
+      "version": "0.1.4",
4408
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
4409
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
4410
+      "dev": true,
4411
+      "license": "MIT",
4412
+      "engines": {
4413
+        "node": ">=0.8.19"
4414
+      }
4415
+    },
4416
+    "node_modules/internal-slot": {
4417
+      "version": "1.1.0",
4418
+      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
4419
+      "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
4420
+      "dev": true,
4421
+      "license": "MIT",
4422
+      "dependencies": {
4423
+        "es-errors": "^1.3.0",
4424
+        "hasown": "^2.0.2",
4425
+        "side-channel": "^1.1.0"
4426
+      },
4427
+      "engines": {
4428
+        "node": ">= 0.4"
4429
+      }
4430
+    },
4431
+    "node_modules/internmap": {
4432
+      "version": "2.0.3",
4433
+      "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
4434
+      "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
4435
+      "license": "ISC",
4436
+      "engines": {
4437
+        "node": ">=12"
4438
+      }
4439
+    },
4440
+    "node_modules/is-array-buffer": {
4441
+      "version": "3.0.5",
4442
+      "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
4443
+      "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
4444
+      "dev": true,
4445
+      "license": "MIT",
4446
+      "dependencies": {
4447
+        "call-bind": "^1.0.8",
4448
+        "call-bound": "^1.0.3",
4449
+        "get-intrinsic": "^1.2.6"
4450
+      },
4451
+      "engines": {
4452
+        "node": ">= 0.4"
4453
+      },
4454
+      "funding": {
4455
+        "url": "https://github.com/sponsors/ljharb"
4456
+      }
4457
+    },
4458
+    "node_modules/is-arrayish": {
4459
+      "version": "0.3.2",
4460
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
4461
+      "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
4462
+      "license": "MIT",
4463
+      "optional": true
4464
+    },
4465
+    "node_modules/is-async-function": {
4466
+      "version": "2.1.1",
4467
+      "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
4468
+      "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
4469
+      "dev": true,
4470
+      "license": "MIT",
4471
+      "dependencies": {
4472
+        "async-function": "^1.0.0",
4473
+        "call-bound": "^1.0.3",
4474
+        "get-proto": "^1.0.1",
4475
+        "has-tostringtag": "^1.0.2",
4476
+        "safe-regex-test": "^1.1.0"
4477
+      },
4478
+      "engines": {
4479
+        "node": ">= 0.4"
4480
+      },
4481
+      "funding": {
4482
+        "url": "https://github.com/sponsors/ljharb"
4483
+      }
4484
+    },
4485
+    "node_modules/is-bigint": {
4486
+      "version": "1.1.0",
4487
+      "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
4488
+      "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
4489
+      "dev": true,
4490
+      "license": "MIT",
4491
+      "dependencies": {
4492
+        "has-bigints": "^1.0.2"
4493
+      },
4494
+      "engines": {
4495
+        "node": ">= 0.4"
4496
+      },
4497
+      "funding": {
4498
+        "url": "https://github.com/sponsors/ljharb"
4499
+      }
4500
+    },
4501
+    "node_modules/is-boolean-object": {
4502
+      "version": "1.2.2",
4503
+      "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
4504
+      "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
4505
+      "dev": true,
4506
+      "license": "MIT",
4507
+      "dependencies": {
4508
+        "call-bound": "^1.0.3",
4509
+        "has-tostringtag": "^1.0.2"
4510
+      },
4511
+      "engines": {
4512
+        "node": ">= 0.4"
4513
+      },
4514
+      "funding": {
4515
+        "url": "https://github.com/sponsors/ljharb"
4516
+      }
4517
+    },
4518
+    "node_modules/is-bun-module": {
4519
+      "version": "2.0.0",
4520
+      "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz",
4521
+      "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==",
4522
+      "dev": true,
4523
+      "license": "MIT",
4524
+      "dependencies": {
4525
+        "semver": "^7.7.1"
4526
+      }
4527
+    },
4528
+    "node_modules/is-callable": {
4529
+      "version": "1.2.7",
4530
+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
4531
+      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
4532
+      "dev": true,
4533
+      "license": "MIT",
4534
+      "engines": {
4535
+        "node": ">= 0.4"
4536
+      },
4537
+      "funding": {
4538
+        "url": "https://github.com/sponsors/ljharb"
4539
+      }
4540
+    },
4541
+    "node_modules/is-core-module": {
4542
+      "version": "2.16.1",
4543
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
4544
+      "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
4545
+      "dev": true,
4546
+      "license": "MIT",
4547
+      "dependencies": {
4548
+        "hasown": "^2.0.2"
4549
+      },
4550
+      "engines": {
4551
+        "node": ">= 0.4"
4552
+      },
4553
+      "funding": {
4554
+        "url": "https://github.com/sponsors/ljharb"
4555
+      }
4556
+    },
4557
+    "node_modules/is-data-view": {
4558
+      "version": "1.0.2",
4559
+      "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
4560
+      "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
4561
+      "dev": true,
4562
+      "license": "MIT",
4563
+      "dependencies": {
4564
+        "call-bound": "^1.0.2",
4565
+        "get-intrinsic": "^1.2.6",
4566
+        "is-typed-array": "^1.1.13"
4567
+      },
4568
+      "engines": {
4569
+        "node": ">= 0.4"
4570
+      },
4571
+      "funding": {
4572
+        "url": "https://github.com/sponsors/ljharb"
4573
+      }
4574
+    },
4575
+    "node_modules/is-date-object": {
4576
+      "version": "1.1.0",
4577
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
4578
+      "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
4579
+      "dev": true,
4580
+      "license": "MIT",
4581
+      "dependencies": {
4582
+        "call-bound": "^1.0.2",
4583
+        "has-tostringtag": "^1.0.2"
4584
+      },
4585
+      "engines": {
4586
+        "node": ">= 0.4"
4587
+      },
4588
+      "funding": {
4589
+        "url": "https://github.com/sponsors/ljharb"
4590
+      }
4591
+    },
4592
+    "node_modules/is-extglob": {
4593
+      "version": "2.1.1",
4594
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
4595
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
4596
+      "dev": true,
4597
+      "license": "MIT",
4598
+      "engines": {
4599
+        "node": ">=0.10.0"
4600
+      }
4601
+    },
4602
+    "node_modules/is-finalizationregistry": {
4603
+      "version": "1.1.1",
4604
+      "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
4605
+      "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
4606
+      "dev": true,
4607
+      "license": "MIT",
4608
+      "dependencies": {
4609
+        "call-bound": "^1.0.3"
4610
+      },
4611
+      "engines": {
4612
+        "node": ">= 0.4"
4613
+      },
4614
+      "funding": {
4615
+        "url": "https://github.com/sponsors/ljharb"
4616
+      }
4617
+    },
4618
+    "node_modules/is-generator-function": {
4619
+      "version": "1.1.0",
4620
+      "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
4621
+      "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
4622
+      "dev": true,
4623
+      "license": "MIT",
4624
+      "dependencies": {
4625
+        "call-bound": "^1.0.3",
4626
+        "get-proto": "^1.0.0",
4627
+        "has-tostringtag": "^1.0.2",
4628
+        "safe-regex-test": "^1.1.0"
4629
+      },
4630
+      "engines": {
4631
+        "node": ">= 0.4"
4632
+      },
4633
+      "funding": {
4634
+        "url": "https://github.com/sponsors/ljharb"
4635
+      }
4636
+    },
4637
+    "node_modules/is-glob": {
4638
+      "version": "4.0.3",
4639
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
4640
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
4641
+      "dev": true,
4642
+      "license": "MIT",
4643
+      "dependencies": {
4644
+        "is-extglob": "^2.1.1"
4645
+      },
4646
+      "engines": {
4647
+        "node": ">=0.10.0"
4648
+      }
4649
+    },
4650
+    "node_modules/is-map": {
4651
+      "version": "2.0.3",
4652
+      "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
4653
+      "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
4654
+      "dev": true,
4655
+      "license": "MIT",
4656
+      "engines": {
4657
+        "node": ">= 0.4"
4658
+      },
4659
+      "funding": {
4660
+        "url": "https://github.com/sponsors/ljharb"
4661
+      }
4662
+    },
4663
+    "node_modules/is-negative-zero": {
4664
+      "version": "2.0.3",
4665
+      "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
4666
+      "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
4667
+      "dev": true,
4668
+      "license": "MIT",
4669
+      "engines": {
4670
+        "node": ">= 0.4"
4671
+      },
4672
+      "funding": {
4673
+        "url": "https://github.com/sponsors/ljharb"
4674
+      }
4675
+    },
4676
+    "node_modules/is-number": {
4677
+      "version": "7.0.0",
4678
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
4679
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
4680
+      "dev": true,
4681
+      "license": "MIT",
4682
+      "engines": {
4683
+        "node": ">=0.12.0"
4684
+      }
4685
+    },
4686
+    "node_modules/is-number-object": {
4687
+      "version": "1.1.1",
4688
+      "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
4689
+      "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
4690
+      "dev": true,
4691
+      "license": "MIT",
4692
+      "dependencies": {
4693
+        "call-bound": "^1.0.3",
4694
+        "has-tostringtag": "^1.0.2"
4695
+      },
4696
+      "engines": {
4697
+        "node": ">= 0.4"
4698
+      },
4699
+      "funding": {
4700
+        "url": "https://github.com/sponsors/ljharb"
4701
+      }
4702
+    },
4703
+    "node_modules/is-regex": {
4704
+      "version": "1.2.1",
4705
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
4706
+      "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
4707
+      "dev": true,
4708
+      "license": "MIT",
4709
+      "dependencies": {
4710
+        "call-bound": "^1.0.2",
4711
+        "gopd": "^1.2.0",
4712
+        "has-tostringtag": "^1.0.2",
4713
+        "hasown": "^2.0.2"
4714
+      },
4715
+      "engines": {
4716
+        "node": ">= 0.4"
4717
+      },
4718
+      "funding": {
4719
+        "url": "https://github.com/sponsors/ljharb"
4720
+      }
4721
+    },
4722
+    "node_modules/is-set": {
4723
+      "version": "2.0.3",
4724
+      "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
4725
+      "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
4726
+      "dev": true,
4727
+      "license": "MIT",
4728
+      "engines": {
4729
+        "node": ">= 0.4"
4730
+      },
4731
+      "funding": {
4732
+        "url": "https://github.com/sponsors/ljharb"
4733
+      }
4734
+    },
4735
+    "node_modules/is-shared-array-buffer": {
4736
+      "version": "1.0.4",
4737
+      "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
4738
+      "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
4739
+      "dev": true,
4740
+      "license": "MIT",
4741
+      "dependencies": {
4742
+        "call-bound": "^1.0.3"
4743
+      },
4744
+      "engines": {
4745
+        "node": ">= 0.4"
4746
+      },
4747
+      "funding": {
4748
+        "url": "https://github.com/sponsors/ljharb"
4749
+      }
4750
+    },
4751
+    "node_modules/is-string": {
4752
+      "version": "1.1.1",
4753
+      "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
4754
+      "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
4755
+      "dev": true,
4756
+      "license": "MIT",
4757
+      "dependencies": {
4758
+        "call-bound": "^1.0.3",
4759
+        "has-tostringtag": "^1.0.2"
4760
+      },
4761
+      "engines": {
4762
+        "node": ">= 0.4"
4763
+      },
4764
+      "funding": {
4765
+        "url": "https://github.com/sponsors/ljharb"
4766
+      }
4767
+    },
4768
+    "node_modules/is-symbol": {
4769
+      "version": "1.1.1",
4770
+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
4771
+      "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
4772
+      "dev": true,
4773
+      "license": "MIT",
4774
+      "dependencies": {
4775
+        "call-bound": "^1.0.2",
4776
+        "has-symbols": "^1.1.0",
4777
+        "safe-regex-test": "^1.1.0"
4778
+      },
4779
+      "engines": {
4780
+        "node": ">= 0.4"
4781
+      },
4782
+      "funding": {
4783
+        "url": "https://github.com/sponsors/ljharb"
4784
+      }
4785
+    },
4786
+    "node_modules/is-typed-array": {
4787
+      "version": "1.1.15",
4788
+      "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
4789
+      "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
4790
+      "dev": true,
4791
+      "license": "MIT",
4792
+      "dependencies": {
4793
+        "which-typed-array": "^1.1.16"
4794
+      },
4795
+      "engines": {
4796
+        "node": ">= 0.4"
4797
+      },
4798
+      "funding": {
4799
+        "url": "https://github.com/sponsors/ljharb"
4800
+      }
4801
+    },
4802
+    "node_modules/is-weakmap": {
4803
+      "version": "2.0.2",
4804
+      "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
4805
+      "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
4806
+      "dev": true,
4807
+      "license": "MIT",
4808
+      "engines": {
4809
+        "node": ">= 0.4"
4810
+      },
4811
+      "funding": {
4812
+        "url": "https://github.com/sponsors/ljharb"
4813
+      }
4814
+    },
4815
+    "node_modules/is-weakref": {
4816
+      "version": "1.1.1",
4817
+      "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
4818
+      "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
4819
+      "dev": true,
4820
+      "license": "MIT",
4821
+      "dependencies": {
4822
+        "call-bound": "^1.0.3"
4823
+      },
4824
+      "engines": {
4825
+        "node": ">= 0.4"
4826
+      },
4827
+      "funding": {
4828
+        "url": "https://github.com/sponsors/ljharb"
4829
+      }
4830
+    },
4831
+    "node_modules/is-weakset": {
4832
+      "version": "2.0.4",
4833
+      "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
4834
+      "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
4835
+      "dev": true,
4836
+      "license": "MIT",
4837
+      "dependencies": {
4838
+        "call-bound": "^1.0.3",
4839
+        "get-intrinsic": "^1.2.6"
4840
+      },
4841
+      "engines": {
4842
+        "node": ">= 0.4"
4843
+      },
4844
+      "funding": {
4845
+        "url": "https://github.com/sponsors/ljharb"
4846
+      }
4847
+    },
4848
+    "node_modules/isarray": {
4849
+      "version": "2.0.5",
4850
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
4851
+      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
4852
+      "dev": true,
4853
+      "license": "MIT"
4854
+    },
4855
+    "node_modules/isexe": {
4856
+      "version": "2.0.0",
4857
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4858
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
4859
+      "dev": true,
4860
+      "license": "ISC"
4861
+    },
4862
+    "node_modules/iterator.prototype": {
4863
+      "version": "1.1.5",
4864
+      "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
4865
+      "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
4866
+      "dev": true,
4867
+      "license": "MIT",
4868
+      "dependencies": {
4869
+        "define-data-property": "^1.1.4",
4870
+        "es-object-atoms": "^1.0.0",
4871
+        "get-intrinsic": "^1.2.6",
4872
+        "get-proto": "^1.0.0",
4873
+        "has-symbols": "^1.1.0",
4874
+        "set-function-name": "^2.0.2"
4875
+      },
4876
+      "engines": {
4877
+        "node": ">= 0.4"
4878
+      }
4879
+    },
4880
+    "node_modules/jiti": {
4881
+      "version": "2.4.2",
4882
+      "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
4883
+      "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
4884
+      "dev": true,
4885
+      "license": "MIT",
4886
+      "bin": {
4887
+        "jiti": "lib/jiti-cli.mjs"
4888
+      }
4889
+    },
4890
+    "node_modules/js-tokens": {
4891
+      "version": "4.0.0",
4892
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
4893
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
4894
+      "dev": true,
4895
+      "license": "MIT"
4896
+    },
4897
+    "node_modules/js-yaml": {
4898
+      "version": "4.1.0",
4899
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
4900
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
4901
+      "dev": true,
4902
+      "license": "MIT",
4903
+      "dependencies": {
4904
+        "argparse": "^2.0.1"
4905
+      },
4906
+      "bin": {
4907
+        "js-yaml": "bin/js-yaml.js"
4908
+      }
4909
+    },
4910
+    "node_modules/json-buffer": {
4911
+      "version": "3.0.1",
4912
+      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
4913
+      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
4914
+      "dev": true,
4915
+      "license": "MIT"
4916
+    },
4917
+    "node_modules/json-schema-traverse": {
4918
+      "version": "0.4.1",
4919
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
4920
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
4921
+      "dev": true,
4922
+      "license": "MIT"
4923
+    },
4924
+    "node_modules/json-stable-stringify-without-jsonify": {
4925
+      "version": "1.0.1",
4926
+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
4927
+      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
4928
+      "dev": true,
4929
+      "license": "MIT"
4930
+    },
4931
+    "node_modules/json5": {
4932
+      "version": "1.0.2",
4933
+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
4934
+      "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
4935
+      "dev": true,
4936
+      "license": "MIT",
4937
+      "dependencies": {
4938
+        "minimist": "^1.2.0"
4939
+      },
4940
+      "bin": {
4941
+        "json5": "lib/cli.js"
4942
+      }
4943
+    },
4944
+    "node_modules/jsx-ast-utils": {
4945
+      "version": "3.3.5",
4946
+      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
4947
+      "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
4948
+      "dev": true,
4949
+      "license": "MIT",
4950
+      "dependencies": {
4951
+        "array-includes": "^3.1.6",
4952
+        "array.prototype.flat": "^1.3.1",
4953
+        "object.assign": "^4.1.4",
4954
+        "object.values": "^1.1.6"
4955
+      },
4956
+      "engines": {
4957
+        "node": ">=4.0"
4958
+      }
4959
+    },
4960
+    "node_modules/keyv": {
4961
+      "version": "4.5.4",
4962
+      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
4963
+      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
4964
+      "dev": true,
4965
+      "license": "MIT",
4966
+      "dependencies": {
4967
+        "json-buffer": "3.0.1"
4968
+      }
4969
+    },
4970
+    "node_modules/language-subtag-registry": {
4971
+      "version": "0.3.23",
4972
+      "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
4973
+      "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
4974
+      "dev": true,
4975
+      "license": "CC0-1.0"
4976
+    },
4977
+    "node_modules/language-tags": {
4978
+      "version": "1.0.9",
4979
+      "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
4980
+      "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
4981
+      "dev": true,
4982
+      "license": "MIT",
4983
+      "dependencies": {
4984
+        "language-subtag-registry": "^0.3.20"
4985
+      },
4986
+      "engines": {
4987
+        "node": ">=0.10"
4988
+      }
4989
+    },
4990
+    "node_modules/levn": {
4991
+      "version": "0.4.1",
4992
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
4993
+      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
4994
+      "dev": true,
4995
+      "license": "MIT",
4996
+      "dependencies": {
4997
+        "prelude-ls": "^1.2.1",
4998
+        "type-check": "~0.4.0"
4999
+      },
5000
+      "engines": {
5001
+        "node": ">= 0.8.0"
5002
+      }
5003
+    },
5004
+    "node_modules/lightningcss": {
5005
+      "version": "1.30.1",
5006
+      "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz",
5007
+      "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==",
5008
+      "dev": true,
5009
+      "license": "MPL-2.0",
5010
+      "dependencies": {
5011
+        "detect-libc": "^2.0.3"
5012
+      },
5013
+      "engines": {
5014
+        "node": ">= 12.0.0"
5015
+      },
5016
+      "funding": {
5017
+        "type": "opencollective",
5018
+        "url": "https://opencollective.com/parcel"
5019
+      },
5020
+      "optionalDependencies": {
5021
+        "lightningcss-darwin-arm64": "1.30.1",
5022
+        "lightningcss-darwin-x64": "1.30.1",
5023
+        "lightningcss-freebsd-x64": "1.30.1",
5024
+        "lightningcss-linux-arm-gnueabihf": "1.30.1",
5025
+        "lightningcss-linux-arm64-gnu": "1.30.1",
5026
+        "lightningcss-linux-arm64-musl": "1.30.1",
5027
+        "lightningcss-linux-x64-gnu": "1.30.1",
5028
+        "lightningcss-linux-x64-musl": "1.30.1",
5029
+        "lightningcss-win32-arm64-msvc": "1.30.1",
5030
+        "lightningcss-win32-x64-msvc": "1.30.1"
5031
+      }
5032
+    },
5033
+    "node_modules/lightningcss-darwin-arm64": {
5034
+      "version": "1.30.1",
5035
+      "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz",
5036
+      "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==",
5037
+      "cpu": [
5038
+        "arm64"
5039
+      ],
5040
+      "dev": true,
5041
+      "license": "MPL-2.0",
5042
+      "optional": true,
5043
+      "os": [
5044
+        "darwin"
5045
+      ],
5046
+      "engines": {
5047
+        "node": ">= 12.0.0"
5048
+      },
5049
+      "funding": {
5050
+        "type": "opencollective",
5051
+        "url": "https://opencollective.com/parcel"
5052
+      }
5053
+    },
5054
+    "node_modules/lightningcss-darwin-x64": {
5055
+      "version": "1.30.1",
5056
+      "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz",
5057
+      "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==",
5058
+      "cpu": [
5059
+        "x64"
5060
+      ],
5061
+      "dev": true,
5062
+      "license": "MPL-2.0",
5063
+      "optional": true,
5064
+      "os": [
5065
+        "darwin"
5066
+      ],
5067
+      "engines": {
5068
+        "node": ">= 12.0.0"
5069
+      },
5070
+      "funding": {
5071
+        "type": "opencollective",
5072
+        "url": "https://opencollective.com/parcel"
5073
+      }
5074
+    },
5075
+    "node_modules/lightningcss-freebsd-x64": {
5076
+      "version": "1.30.1",
5077
+      "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz",
5078
+      "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==",
5079
+      "cpu": [
5080
+        "x64"
5081
+      ],
5082
+      "dev": true,
5083
+      "license": "MPL-2.0",
5084
+      "optional": true,
5085
+      "os": [
5086
+        "freebsd"
5087
+      ],
5088
+      "engines": {
5089
+        "node": ">= 12.0.0"
5090
+      },
5091
+      "funding": {
5092
+        "type": "opencollective",
5093
+        "url": "https://opencollective.com/parcel"
5094
+      }
5095
+    },
5096
+    "node_modules/lightningcss-linux-arm-gnueabihf": {
5097
+      "version": "1.30.1",
5098
+      "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz",
5099
+      "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==",
5100
+      "cpu": [
5101
+        "arm"
5102
+      ],
5103
+      "dev": true,
5104
+      "license": "MPL-2.0",
5105
+      "optional": true,
5106
+      "os": [
5107
+        "linux"
5108
+      ],
5109
+      "engines": {
5110
+        "node": ">= 12.0.0"
5111
+      },
5112
+      "funding": {
5113
+        "type": "opencollective",
5114
+        "url": "https://opencollective.com/parcel"
5115
+      }
5116
+    },
5117
+    "node_modules/lightningcss-linux-arm64-gnu": {
5118
+      "version": "1.30.1",
5119
+      "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz",
5120
+      "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==",
5121
+      "cpu": [
5122
+        "arm64"
5123
+      ],
5124
+      "dev": true,
5125
+      "license": "MPL-2.0",
5126
+      "optional": true,
5127
+      "os": [
5128
+        "linux"
5129
+      ],
5130
+      "engines": {
5131
+        "node": ">= 12.0.0"
5132
+      },
5133
+      "funding": {
5134
+        "type": "opencollective",
5135
+        "url": "https://opencollective.com/parcel"
5136
+      }
5137
+    },
5138
+    "node_modules/lightningcss-linux-arm64-musl": {
5139
+      "version": "1.30.1",
5140
+      "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz",
5141
+      "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==",
5142
+      "cpu": [
5143
+        "arm64"
5144
+      ],
5145
+      "dev": true,
5146
+      "license": "MPL-2.0",
5147
+      "optional": true,
5148
+      "os": [
5149
+        "linux"
5150
+      ],
5151
+      "engines": {
5152
+        "node": ">= 12.0.0"
5153
+      },
5154
+      "funding": {
5155
+        "type": "opencollective",
5156
+        "url": "https://opencollective.com/parcel"
5157
+      }
5158
+    },
5159
+    "node_modules/lightningcss-linux-x64-gnu": {
5160
+      "version": "1.30.1",
5161
+      "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz",
5162
+      "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==",
5163
+      "cpu": [
5164
+        "x64"
5165
+      ],
5166
+      "dev": true,
5167
+      "license": "MPL-2.0",
5168
+      "optional": true,
5169
+      "os": [
5170
+        "linux"
5171
+      ],
5172
+      "engines": {
5173
+        "node": ">= 12.0.0"
5174
+      },
5175
+      "funding": {
5176
+        "type": "opencollective",
5177
+        "url": "https://opencollective.com/parcel"
5178
+      }
5179
+    },
5180
+    "node_modules/lightningcss-linux-x64-musl": {
5181
+      "version": "1.30.1",
5182
+      "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz",
5183
+      "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==",
5184
+      "cpu": [
5185
+        "x64"
5186
+      ],
5187
+      "dev": true,
5188
+      "license": "MPL-2.0",
5189
+      "optional": true,
5190
+      "os": [
5191
+        "linux"
5192
+      ],
5193
+      "engines": {
5194
+        "node": ">= 12.0.0"
5195
+      },
5196
+      "funding": {
5197
+        "type": "opencollective",
5198
+        "url": "https://opencollective.com/parcel"
5199
+      }
5200
+    },
5201
+    "node_modules/lightningcss-win32-arm64-msvc": {
5202
+      "version": "1.30.1",
5203
+      "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz",
5204
+      "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==",
5205
+      "cpu": [
5206
+        "arm64"
5207
+      ],
5208
+      "dev": true,
5209
+      "license": "MPL-2.0",
5210
+      "optional": true,
5211
+      "os": [
5212
+        "win32"
5213
+      ],
5214
+      "engines": {
5215
+        "node": ">= 12.0.0"
5216
+      },
5217
+      "funding": {
5218
+        "type": "opencollective",
5219
+        "url": "https://opencollective.com/parcel"
5220
+      }
5221
+    },
5222
+    "node_modules/lightningcss-win32-x64-msvc": {
5223
+      "version": "1.30.1",
5224
+      "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz",
5225
+      "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==",
5226
+      "cpu": [
5227
+        "x64"
5228
+      ],
5229
+      "dev": true,
5230
+      "license": "MPL-2.0",
5231
+      "optional": true,
5232
+      "os": [
5233
+        "win32"
5234
+      ],
5235
+      "engines": {
5236
+        "node": ">= 12.0.0"
5237
+      },
5238
+      "funding": {
5239
+        "type": "opencollective",
5240
+        "url": "https://opencollective.com/parcel"
5241
+      }
5242
+    },
5243
+    "node_modules/locate-path": {
5244
+      "version": "6.0.0",
5245
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
5246
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
5247
+      "dev": true,
5248
+      "license": "MIT",
5249
+      "dependencies": {
5250
+        "p-locate": "^5.0.0"
5251
+      },
5252
+      "engines": {
5253
+        "node": ">=10"
5254
+      },
5255
+      "funding": {
5256
+        "url": "https://github.com/sponsors/sindresorhus"
5257
+      }
5258
+    },
5259
+    "node_modules/lodash.merge": {
5260
+      "version": "4.6.2",
5261
+      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
5262
+      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
5263
+      "dev": true,
5264
+      "license": "MIT"
5265
+    },
5266
+    "node_modules/loose-envify": {
5267
+      "version": "1.4.0",
5268
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
5269
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
5270
+      "dev": true,
5271
+      "license": "MIT",
5272
+      "dependencies": {
5273
+        "js-tokens": "^3.0.0 || ^4.0.0"
5274
+      },
5275
+      "bin": {
5276
+        "loose-envify": "cli.js"
5277
+      }
5278
+    },
5279
+    "node_modules/magic-string": {
5280
+      "version": "0.30.17",
5281
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
5282
+      "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
5283
+      "dev": true,
5284
+      "license": "MIT",
5285
+      "dependencies": {
5286
+        "@jridgewell/sourcemap-codec": "^1.5.0"
5287
+      }
5288
+    },
5289
+    "node_modules/math-intrinsics": {
5290
+      "version": "1.1.0",
5291
+      "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
5292
+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
5293
+      "license": "MIT",
5294
+      "engines": {
5295
+        "node": ">= 0.4"
5296
+      }
5297
+    },
5298
+    "node_modules/merge2": {
5299
+      "version": "1.4.1",
5300
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
5301
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
5302
+      "dev": true,
5303
+      "license": "MIT",
5304
+      "engines": {
5305
+        "node": ">= 8"
5306
+      }
5307
+    },
5308
+    "node_modules/micromatch": {
5309
+      "version": "4.0.8",
5310
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
5311
+      "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
5312
+      "dev": true,
5313
+      "license": "MIT",
5314
+      "dependencies": {
5315
+        "braces": "^3.0.3",
5316
+        "picomatch": "^2.3.1"
5317
+      },
5318
+      "engines": {
5319
+        "node": ">=8.6"
5320
+      }
5321
+    },
5322
+    "node_modules/mime-db": {
5323
+      "version": "1.52.0",
5324
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
5325
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
5326
+      "license": "MIT",
5327
+      "engines": {
5328
+        "node": ">= 0.6"
5329
+      }
5330
+    },
5331
+    "node_modules/mime-types": {
5332
+      "version": "2.1.35",
5333
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
5334
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
5335
+      "license": "MIT",
5336
+      "dependencies": {
5337
+        "mime-db": "1.52.0"
5338
+      },
5339
+      "engines": {
5340
+        "node": ">= 0.6"
5341
+      }
5342
+    },
5343
+    "node_modules/minimatch": {
5344
+      "version": "3.1.2",
5345
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
5346
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
5347
+      "dev": true,
5348
+      "license": "ISC",
5349
+      "dependencies": {
5350
+        "brace-expansion": "^1.1.7"
5351
+      },
5352
+      "engines": {
5353
+        "node": "*"
5354
+      }
5355
+    },
5356
+    "node_modules/minimist": {
5357
+      "version": "1.2.8",
5358
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
5359
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
5360
+      "dev": true,
5361
+      "license": "MIT",
5362
+      "funding": {
5363
+        "url": "https://github.com/sponsors/ljharb"
5364
+      }
5365
+    },
5366
+    "node_modules/minipass": {
5367
+      "version": "7.1.2",
5368
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
5369
+      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
5370
+      "dev": true,
5371
+      "license": "ISC",
5372
+      "engines": {
5373
+        "node": ">=16 || 14 >=14.17"
5374
+      }
5375
+    },
5376
+    "node_modules/minizlib": {
5377
+      "version": "3.0.2",
5378
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz",
5379
+      "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==",
5380
+      "dev": true,
5381
+      "license": "MIT",
5382
+      "dependencies": {
5383
+        "minipass": "^7.1.2"
5384
+      },
5385
+      "engines": {
5386
+        "node": ">= 18"
5387
+      }
5388
+    },
5389
+    "node_modules/mkdirp": {
5390
+      "version": "3.0.1",
5391
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
5392
+      "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
5393
+      "dev": true,
5394
+      "license": "MIT",
5395
+      "bin": {
5396
+        "mkdirp": "dist/cjs/src/bin.js"
5397
+      },
5398
+      "engines": {
5399
+        "node": ">=10"
5400
+      },
5401
+      "funding": {
5402
+        "url": "https://github.com/sponsors/isaacs"
5403
+      }
5404
+    },
5405
+    "node_modules/ms": {
5406
+      "version": "2.1.3",
5407
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
5408
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
5409
+      "dev": true,
5410
+      "license": "MIT"
5411
+    },
5412
+    "node_modules/nanoid": {
5413
+      "version": "3.3.11",
5414
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
5415
+      "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
5416
+      "funding": [
5417
+        {
5418
+          "type": "github",
5419
+          "url": "https://github.com/sponsors/ai"
5420
+        }
5421
+      ],
5422
+      "license": "MIT",
5423
+      "bin": {
5424
+        "nanoid": "bin/nanoid.cjs"
5425
+      },
5426
+      "engines": {
5427
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
5428
+      }
5429
+    },
5430
+    "node_modules/napi-postinstall": {
5431
+      "version": "0.2.4",
5432
+      "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz",
5433
+      "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==",
5434
+      "dev": true,
5435
+      "license": "MIT",
5436
+      "bin": {
5437
+        "napi-postinstall": "lib/cli.js"
5438
+      },
5439
+      "engines": {
5440
+        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
5441
+      },
5442
+      "funding": {
5443
+        "url": "https://opencollective.com/napi-postinstall"
5444
+      }
5445
+    },
5446
+    "node_modules/natural-compare": {
5447
+      "version": "1.4.0",
5448
+      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
5449
+      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
5450
+      "dev": true,
5451
+      "license": "MIT"
5452
+    },
5453
+    "node_modules/next": {
5454
+      "version": "15.3.3",
5455
+      "resolved": "https://registry.npmjs.org/next/-/next-15.3.3.tgz",
5456
+      "integrity": "sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==",
5457
+      "license": "MIT",
5458
+      "dependencies": {
5459
+        "@next/env": "15.3.3",
5460
+        "@swc/counter": "0.1.3",
5461
+        "@swc/helpers": "0.5.15",
5462
+        "busboy": "1.6.0",
5463
+        "caniuse-lite": "^1.0.30001579",
5464
+        "postcss": "8.4.31",
5465
+        "styled-jsx": "5.1.6"
5466
+      },
5467
+      "bin": {
5468
+        "next": "dist/bin/next"
5469
+      },
5470
+      "engines": {
5471
+        "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
5472
+      },
5473
+      "optionalDependencies": {
5474
+        "@next/swc-darwin-arm64": "15.3.3",
5475
+        "@next/swc-darwin-x64": "15.3.3",
5476
+        "@next/swc-linux-arm64-gnu": "15.3.3",
5477
+        "@next/swc-linux-arm64-musl": "15.3.3",
5478
+        "@next/swc-linux-x64-gnu": "15.3.3",
5479
+        "@next/swc-linux-x64-musl": "15.3.3",
5480
+        "@next/swc-win32-arm64-msvc": "15.3.3",
5481
+        "@next/swc-win32-x64-msvc": "15.3.3",
5482
+        "sharp": "^0.34.1"
5483
+      },
5484
+      "peerDependencies": {
5485
+        "@opentelemetry/api": "^1.1.0",
5486
+        "@playwright/test": "^1.41.2",
5487
+        "babel-plugin-react-compiler": "*",
5488
+        "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
5489
+        "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
5490
+        "sass": "^1.3.0"
5491
+      },
5492
+      "peerDependenciesMeta": {
5493
+        "@opentelemetry/api": {
5494
+          "optional": true
5495
+        },
5496
+        "@playwright/test": {
5497
+          "optional": true
5498
+        },
5499
+        "babel-plugin-react-compiler": {
5500
+          "optional": true
5501
+        },
5502
+        "sass": {
5503
+          "optional": true
5504
+        }
5505
+      }
5506
+    },
5507
+    "node_modules/next/node_modules/postcss": {
5508
+      "version": "8.4.31",
5509
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
5510
+      "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
5511
+      "funding": [
5512
+        {
5513
+          "type": "opencollective",
5514
+          "url": "https://opencollective.com/postcss/"
5515
+        },
5516
+        {
5517
+          "type": "tidelift",
5518
+          "url": "https://tidelift.com/funding/github/npm/postcss"
5519
+        },
5520
+        {
5521
+          "type": "github",
5522
+          "url": "https://github.com/sponsors/ai"
5523
+        }
5524
+      ],
5525
+      "license": "MIT",
5526
+      "dependencies": {
5527
+        "nanoid": "^3.3.6",
5528
+        "picocolors": "^1.0.0",
5529
+        "source-map-js": "^1.0.2"
5530
+      },
5531
+      "engines": {
5532
+        "node": "^10 || ^12 || >=14"
5533
+      }
5534
+    },
5535
+    "node_modules/object-assign": {
5536
+      "version": "4.1.1",
5537
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
5538
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
5539
+      "dev": true,
5540
+      "license": "MIT",
5541
+      "engines": {
5542
+        "node": ">=0.10.0"
5543
+      }
5544
+    },
5545
+    "node_modules/object-inspect": {
5546
+      "version": "1.13.4",
5547
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
5548
+      "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
5549
+      "dev": true,
5550
+      "license": "MIT",
5551
+      "engines": {
5552
+        "node": ">= 0.4"
5553
+      },
5554
+      "funding": {
5555
+        "url": "https://github.com/sponsors/ljharb"
5556
+      }
5557
+    },
5558
+    "node_modules/object-keys": {
5559
+      "version": "1.1.1",
5560
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
5561
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
5562
+      "dev": true,
5563
+      "license": "MIT",
5564
+      "engines": {
5565
+        "node": ">= 0.4"
5566
+      }
5567
+    },
5568
+    "node_modules/object.assign": {
5569
+      "version": "4.1.7",
5570
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
5571
+      "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
5572
+      "dev": true,
5573
+      "license": "MIT",
5574
+      "dependencies": {
5575
+        "call-bind": "^1.0.8",
5576
+        "call-bound": "^1.0.3",
5577
+        "define-properties": "^1.2.1",
5578
+        "es-object-atoms": "^1.0.0",
5579
+        "has-symbols": "^1.1.0",
5580
+        "object-keys": "^1.1.1"
5581
+      },
5582
+      "engines": {
5583
+        "node": ">= 0.4"
5584
+      },
5585
+      "funding": {
5586
+        "url": "https://github.com/sponsors/ljharb"
5587
+      }
5588
+    },
5589
+    "node_modules/object.entries": {
5590
+      "version": "1.1.9",
5591
+      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
5592
+      "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
5593
+      "dev": true,
5594
+      "license": "MIT",
5595
+      "dependencies": {
5596
+        "call-bind": "^1.0.8",
5597
+        "call-bound": "^1.0.4",
5598
+        "define-properties": "^1.2.1",
5599
+        "es-object-atoms": "^1.1.1"
5600
+      },
5601
+      "engines": {
5602
+        "node": ">= 0.4"
5603
+      }
5604
+    },
5605
+    "node_modules/object.fromentries": {
5606
+      "version": "2.0.8",
5607
+      "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
5608
+      "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
5609
+      "dev": true,
5610
+      "license": "MIT",
5611
+      "dependencies": {
5612
+        "call-bind": "^1.0.7",
5613
+        "define-properties": "^1.2.1",
5614
+        "es-abstract": "^1.23.2",
5615
+        "es-object-atoms": "^1.0.0"
5616
+      },
5617
+      "engines": {
5618
+        "node": ">= 0.4"
5619
+      },
5620
+      "funding": {
5621
+        "url": "https://github.com/sponsors/ljharb"
5622
+      }
5623
+    },
5624
+    "node_modules/object.groupby": {
5625
+      "version": "1.0.3",
5626
+      "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
5627
+      "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
5628
+      "dev": true,
5629
+      "license": "MIT",
5630
+      "dependencies": {
5631
+        "call-bind": "^1.0.7",
5632
+        "define-properties": "^1.2.1",
5633
+        "es-abstract": "^1.23.2"
5634
+      },
5635
+      "engines": {
5636
+        "node": ">= 0.4"
5637
+      }
5638
+    },
5639
+    "node_modules/object.values": {
5640
+      "version": "1.2.1",
5641
+      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
5642
+      "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
5643
+      "dev": true,
5644
+      "license": "MIT",
5645
+      "dependencies": {
5646
+        "call-bind": "^1.0.8",
5647
+        "call-bound": "^1.0.3",
5648
+        "define-properties": "^1.2.1",
5649
+        "es-object-atoms": "^1.0.0"
5650
+      },
5651
+      "engines": {
5652
+        "node": ">= 0.4"
5653
+      },
5654
+      "funding": {
5655
+        "url": "https://github.com/sponsors/ljharb"
5656
+      }
5657
+    },
5658
+    "node_modules/optionator": {
5659
+      "version": "0.9.4",
5660
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
5661
+      "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
5662
+      "dev": true,
5663
+      "license": "MIT",
5664
+      "dependencies": {
5665
+        "deep-is": "^0.1.3",
5666
+        "fast-levenshtein": "^2.0.6",
5667
+        "levn": "^0.4.1",
5668
+        "prelude-ls": "^1.2.1",
5669
+        "type-check": "^0.4.0",
5670
+        "word-wrap": "^1.2.5"
5671
+      },
5672
+      "engines": {
5673
+        "node": ">= 0.8.0"
5674
+      }
5675
+    },
5676
+    "node_modules/own-keys": {
5677
+      "version": "1.0.1",
5678
+      "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
5679
+      "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
5680
+      "dev": true,
5681
+      "license": "MIT",
5682
+      "dependencies": {
5683
+        "get-intrinsic": "^1.2.6",
5684
+        "object-keys": "^1.1.1",
5685
+        "safe-push-apply": "^1.0.0"
5686
+      },
5687
+      "engines": {
5688
+        "node": ">= 0.4"
5689
+      },
5690
+      "funding": {
5691
+        "url": "https://github.com/sponsors/ljharb"
5692
+      }
5693
+    },
5694
+    "node_modules/p-limit": {
5695
+      "version": "3.1.0",
5696
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
5697
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
5698
+      "dev": true,
5699
+      "license": "MIT",
5700
+      "dependencies": {
5701
+        "yocto-queue": "^0.1.0"
5702
+      },
5703
+      "engines": {
5704
+        "node": ">=10"
5705
+      },
5706
+      "funding": {
5707
+        "url": "https://github.com/sponsors/sindresorhus"
5708
+      }
5709
+    },
5710
+    "node_modules/p-locate": {
5711
+      "version": "5.0.0",
5712
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
5713
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
5714
+      "dev": true,
5715
+      "license": "MIT",
5716
+      "dependencies": {
5717
+        "p-limit": "^3.0.2"
5718
+      },
5719
+      "engines": {
5720
+        "node": ">=10"
5721
+      },
5722
+      "funding": {
5723
+        "url": "https://github.com/sponsors/sindresorhus"
5724
+      }
5725
+    },
5726
+    "node_modules/parent-module": {
5727
+      "version": "1.0.1",
5728
+      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
5729
+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
5730
+      "dev": true,
5731
+      "license": "MIT",
5732
+      "dependencies": {
5733
+        "callsites": "^3.0.0"
5734
+      },
5735
+      "engines": {
5736
+        "node": ">=6"
5737
+      }
5738
+    },
5739
+    "node_modules/path-exists": {
5740
+      "version": "4.0.0",
5741
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
5742
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
5743
+      "dev": true,
5744
+      "license": "MIT",
5745
+      "engines": {
5746
+        "node": ">=8"
5747
+      }
5748
+    },
5749
+    "node_modules/path-key": {
5750
+      "version": "3.1.1",
5751
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
5752
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
5753
+      "dev": true,
5754
+      "license": "MIT",
5755
+      "engines": {
5756
+        "node": ">=8"
5757
+      }
5758
+    },
5759
+    "node_modules/path-parse": {
5760
+      "version": "1.0.7",
5761
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
5762
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
5763
+      "dev": true,
5764
+      "license": "MIT"
5765
+    },
5766
+    "node_modules/picocolors": {
5767
+      "version": "1.1.1",
5768
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
5769
+      "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
5770
+      "license": "ISC"
5771
+    },
5772
+    "node_modules/picomatch": {
5773
+      "version": "2.3.1",
5774
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
5775
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
5776
+      "dev": true,
5777
+      "license": "MIT",
5778
+      "engines": {
5779
+        "node": ">=8.6"
5780
+      },
5781
+      "funding": {
5782
+        "url": "https://github.com/sponsors/jonschlinkert"
5783
+      }
5784
+    },
5785
+    "node_modules/possible-typed-array-names": {
5786
+      "version": "1.1.0",
5787
+      "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
5788
+      "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
5789
+      "dev": true,
5790
+      "license": "MIT",
5791
+      "engines": {
5792
+        "node": ">= 0.4"
5793
+      }
5794
+    },
5795
+    "node_modules/postcss": {
5796
+      "version": "8.5.5",
5797
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.5.tgz",
5798
+      "integrity": "sha512-d/jtm+rdNT8tpXuHY5MMtcbJFBkhXE6593XVR9UoGCH8jSFGci7jGvMGH5RYd5PBJW+00NZQt6gf7CbagJCrhg==",
5799
+      "dev": true,
5800
+      "funding": [
5801
+        {
5802
+          "type": "opencollective",
5803
+          "url": "https://opencollective.com/postcss/"
5804
+        },
5805
+        {
5806
+          "type": "tidelift",
5807
+          "url": "https://tidelift.com/funding/github/npm/postcss"
5808
+        },
5809
+        {
5810
+          "type": "github",
5811
+          "url": "https://github.com/sponsors/ai"
5812
+        }
5813
+      ],
5814
+      "license": "MIT",
5815
+      "dependencies": {
5816
+        "nanoid": "^3.3.11",
5817
+        "picocolors": "^1.1.1",
5818
+        "source-map-js": "^1.2.1"
5819
+      },
5820
+      "engines": {
5821
+        "node": "^10 || ^12 || >=14"
5822
+      }
5823
+    },
5824
+    "node_modules/prelude-ls": {
5825
+      "version": "1.2.1",
5826
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
5827
+      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
5828
+      "dev": true,
5829
+      "license": "MIT",
5830
+      "engines": {
5831
+        "node": ">= 0.8.0"
5832
+      }
5833
+    },
5834
+    "node_modules/prop-types": {
5835
+      "version": "15.8.1",
5836
+      "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
5837
+      "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
5838
+      "dev": true,
5839
+      "license": "MIT",
5840
+      "dependencies": {
5841
+        "loose-envify": "^1.4.0",
5842
+        "object-assign": "^4.1.1",
5843
+        "react-is": "^16.13.1"
5844
+      }
5845
+    },
5846
+    "node_modules/proxy-from-env": {
5847
+      "version": "1.1.0",
5848
+      "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
5849
+      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
5850
+      "license": "MIT"
5851
+    },
5852
+    "node_modules/punycode": {
5853
+      "version": "2.3.1",
5854
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
5855
+      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
5856
+      "dev": true,
5857
+      "license": "MIT",
5858
+      "engines": {
5859
+        "node": ">=6"
5860
+      }
5861
+    },
5862
+    "node_modules/queue-microtask": {
5863
+      "version": "1.2.3",
5864
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
5865
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
5866
+      "dev": true,
5867
+      "funding": [
5868
+        {
5869
+          "type": "github",
5870
+          "url": "https://github.com/sponsors/feross"
5871
+        },
5872
+        {
5873
+          "type": "patreon",
5874
+          "url": "https://www.patreon.com/feross"
5875
+        },
5876
+        {
5877
+          "type": "consulting",
5878
+          "url": "https://feross.org/support"
5879
+        }
5880
+      ],
5881
+      "license": "MIT"
5882
+    },
5883
+    "node_modules/react": {
5884
+      "version": "19.1.0",
5885
+      "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
5886
+      "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
5887
+      "license": "MIT",
5888
+      "engines": {
5889
+        "node": ">=0.10.0"
5890
+      }
5891
+    },
5892
+    "node_modules/react-dom": {
5893
+      "version": "19.1.0",
5894
+      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
5895
+      "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
5896
+      "license": "MIT",
5897
+      "dependencies": {
5898
+        "scheduler": "^0.26.0"
5899
+      },
5900
+      "peerDependencies": {
5901
+        "react": "^19.1.0"
5902
+      }
5903
+    },
5904
+    "node_modules/react-is": {
5905
+      "version": "16.13.1",
5906
+      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
5907
+      "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
5908
+      "dev": true,
5909
+      "license": "MIT"
5910
+    },
5911
+    "node_modules/reflect.getprototypeof": {
5912
+      "version": "1.0.10",
5913
+      "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
5914
+      "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
5915
+      "dev": true,
5916
+      "license": "MIT",
5917
+      "dependencies": {
5918
+        "call-bind": "^1.0.8",
5919
+        "define-properties": "^1.2.1",
5920
+        "es-abstract": "^1.23.9",
5921
+        "es-errors": "^1.3.0",
5922
+        "es-object-atoms": "^1.0.0",
5923
+        "get-intrinsic": "^1.2.7",
5924
+        "get-proto": "^1.0.1",
5925
+        "which-builtin-type": "^1.2.1"
5926
+      },
5927
+      "engines": {
5928
+        "node": ">= 0.4"
5929
+      },
5930
+      "funding": {
5931
+        "url": "https://github.com/sponsors/ljharb"
5932
+      }
5933
+    },
5934
+    "node_modules/regexp.prototype.flags": {
5935
+      "version": "1.5.4",
5936
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
5937
+      "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
5938
+      "dev": true,
5939
+      "license": "MIT",
5940
+      "dependencies": {
5941
+        "call-bind": "^1.0.8",
5942
+        "define-properties": "^1.2.1",
5943
+        "es-errors": "^1.3.0",
5944
+        "get-proto": "^1.0.1",
5945
+        "gopd": "^1.2.0",
5946
+        "set-function-name": "^2.0.2"
5947
+      },
5948
+      "engines": {
5949
+        "node": ">= 0.4"
5950
+      },
5951
+      "funding": {
5952
+        "url": "https://github.com/sponsors/ljharb"
5953
+      }
5954
+    },
5955
+    "node_modules/resolve": {
5956
+      "version": "1.22.10",
5957
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
5958
+      "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
5959
+      "dev": true,
5960
+      "license": "MIT",
5961
+      "dependencies": {
5962
+        "is-core-module": "^2.16.0",
5963
+        "path-parse": "^1.0.7",
5964
+        "supports-preserve-symlinks-flag": "^1.0.0"
5965
+      },
5966
+      "bin": {
5967
+        "resolve": "bin/resolve"
5968
+      },
5969
+      "engines": {
5970
+        "node": ">= 0.4"
5971
+      },
5972
+      "funding": {
5973
+        "url": "https://github.com/sponsors/ljharb"
5974
+      }
5975
+    },
5976
+    "node_modules/resolve-from": {
5977
+      "version": "4.0.0",
5978
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
5979
+      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
5980
+      "dev": true,
5981
+      "license": "MIT",
5982
+      "engines": {
5983
+        "node": ">=4"
5984
+      }
5985
+    },
5986
+    "node_modules/resolve-pkg-maps": {
5987
+      "version": "1.0.0",
5988
+      "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
5989
+      "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
5990
+      "dev": true,
5991
+      "license": "MIT",
5992
+      "funding": {
5993
+        "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
5994
+      }
5995
+    },
5996
+    "node_modules/reusify": {
5997
+      "version": "1.1.0",
5998
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
5999
+      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
6000
+      "dev": true,
6001
+      "license": "MIT",
6002
+      "engines": {
6003
+        "iojs": ">=1.0.0",
6004
+        "node": ">=0.10.0"
6005
+      }
6006
+    },
6007
+    "node_modules/robust-predicates": {
6008
+      "version": "3.0.2",
6009
+      "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
6010
+      "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
6011
+      "license": "Unlicense"
6012
+    },
6013
+    "node_modules/run-parallel": {
6014
+      "version": "1.2.0",
6015
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
6016
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
6017
+      "dev": true,
6018
+      "funding": [
6019
+        {
6020
+          "type": "github",
6021
+          "url": "https://github.com/sponsors/feross"
6022
+        },
6023
+        {
6024
+          "type": "patreon",
6025
+          "url": "https://www.patreon.com/feross"
6026
+        },
6027
+        {
6028
+          "type": "consulting",
6029
+          "url": "https://feross.org/support"
6030
+        }
6031
+      ],
6032
+      "license": "MIT",
6033
+      "dependencies": {
6034
+        "queue-microtask": "^1.2.2"
6035
+      }
6036
+    },
6037
+    "node_modules/rw": {
6038
+      "version": "1.3.3",
6039
+      "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
6040
+      "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
6041
+      "license": "BSD-3-Clause"
6042
+    },
6043
+    "node_modules/safe-array-concat": {
6044
+      "version": "1.1.3",
6045
+      "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
6046
+      "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
6047
+      "dev": true,
6048
+      "license": "MIT",
6049
+      "dependencies": {
6050
+        "call-bind": "^1.0.8",
6051
+        "call-bound": "^1.0.2",
6052
+        "get-intrinsic": "^1.2.6",
6053
+        "has-symbols": "^1.1.0",
6054
+        "isarray": "^2.0.5"
6055
+      },
6056
+      "engines": {
6057
+        "node": ">=0.4"
6058
+      },
6059
+      "funding": {
6060
+        "url": "https://github.com/sponsors/ljharb"
6061
+      }
6062
+    },
6063
+    "node_modules/safe-push-apply": {
6064
+      "version": "1.0.0",
6065
+      "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
6066
+      "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
6067
+      "dev": true,
6068
+      "license": "MIT",
6069
+      "dependencies": {
6070
+        "es-errors": "^1.3.0",
6071
+        "isarray": "^2.0.5"
6072
+      },
6073
+      "engines": {
6074
+        "node": ">= 0.4"
6075
+      },
6076
+      "funding": {
6077
+        "url": "https://github.com/sponsors/ljharb"
6078
+      }
6079
+    },
6080
+    "node_modules/safe-regex-test": {
6081
+      "version": "1.1.0",
6082
+      "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
6083
+      "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
6084
+      "dev": true,
6085
+      "license": "MIT",
6086
+      "dependencies": {
6087
+        "call-bound": "^1.0.2",
6088
+        "es-errors": "^1.3.0",
6089
+        "is-regex": "^1.2.1"
6090
+      },
6091
+      "engines": {
6092
+        "node": ">= 0.4"
6093
+      },
6094
+      "funding": {
6095
+        "url": "https://github.com/sponsors/ljharb"
6096
+      }
6097
+    },
6098
+    "node_modules/safer-buffer": {
6099
+      "version": "2.1.2",
6100
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
6101
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
6102
+      "license": "MIT"
6103
+    },
6104
+    "node_modules/scheduler": {
6105
+      "version": "0.26.0",
6106
+      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
6107
+      "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
6108
+      "license": "MIT"
6109
+    },
6110
+    "node_modules/semver": {
6111
+      "version": "7.7.2",
6112
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
6113
+      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
6114
+      "devOptional": true,
6115
+      "license": "ISC",
6116
+      "bin": {
6117
+        "semver": "bin/semver.js"
6118
+      },
6119
+      "engines": {
6120
+        "node": ">=10"
6121
+      }
6122
+    },
6123
+    "node_modules/set-function-length": {
6124
+      "version": "1.2.2",
6125
+      "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
6126
+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
6127
+      "dev": true,
6128
+      "license": "MIT",
6129
+      "dependencies": {
6130
+        "define-data-property": "^1.1.4",
6131
+        "es-errors": "^1.3.0",
6132
+        "function-bind": "^1.1.2",
6133
+        "get-intrinsic": "^1.2.4",
6134
+        "gopd": "^1.0.1",
6135
+        "has-property-descriptors": "^1.0.2"
6136
+      },
6137
+      "engines": {
6138
+        "node": ">= 0.4"
6139
+      }
6140
+    },
6141
+    "node_modules/set-function-name": {
6142
+      "version": "2.0.2",
6143
+      "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
6144
+      "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
6145
+      "dev": true,
6146
+      "license": "MIT",
6147
+      "dependencies": {
6148
+        "define-data-property": "^1.1.4",
6149
+        "es-errors": "^1.3.0",
6150
+        "functions-have-names": "^1.2.3",
6151
+        "has-property-descriptors": "^1.0.2"
6152
+      },
6153
+      "engines": {
6154
+        "node": ">= 0.4"
6155
+      }
6156
+    },
6157
+    "node_modules/set-proto": {
6158
+      "version": "1.0.0",
6159
+      "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
6160
+      "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
6161
+      "dev": true,
6162
+      "license": "MIT",
6163
+      "dependencies": {
6164
+        "dunder-proto": "^1.0.1",
6165
+        "es-errors": "^1.3.0",
6166
+        "es-object-atoms": "^1.0.0"
6167
+      },
6168
+      "engines": {
6169
+        "node": ">= 0.4"
6170
+      }
6171
+    },
6172
+    "node_modules/sharp": {
6173
+      "version": "0.34.2",
6174
+      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz",
6175
+      "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==",
6176
+      "hasInstallScript": true,
6177
+      "license": "Apache-2.0",
6178
+      "optional": true,
6179
+      "dependencies": {
6180
+        "color": "^4.2.3",
6181
+        "detect-libc": "^2.0.4",
6182
+        "semver": "^7.7.2"
6183
+      },
6184
+      "engines": {
6185
+        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
6186
+      },
6187
+      "funding": {
6188
+        "url": "https://opencollective.com/libvips"
6189
+      },
6190
+      "optionalDependencies": {
6191
+        "@img/sharp-darwin-arm64": "0.34.2",
6192
+        "@img/sharp-darwin-x64": "0.34.2",
6193
+        "@img/sharp-libvips-darwin-arm64": "1.1.0",
6194
+        "@img/sharp-libvips-darwin-x64": "1.1.0",
6195
+        "@img/sharp-libvips-linux-arm": "1.1.0",
6196
+        "@img/sharp-libvips-linux-arm64": "1.1.0",
6197
+        "@img/sharp-libvips-linux-ppc64": "1.1.0",
6198
+        "@img/sharp-libvips-linux-s390x": "1.1.0",
6199
+        "@img/sharp-libvips-linux-x64": "1.1.0",
6200
+        "@img/sharp-libvips-linuxmusl-arm64": "1.1.0",
6201
+        "@img/sharp-libvips-linuxmusl-x64": "1.1.0",
6202
+        "@img/sharp-linux-arm": "0.34.2",
6203
+        "@img/sharp-linux-arm64": "0.34.2",
6204
+        "@img/sharp-linux-s390x": "0.34.2",
6205
+        "@img/sharp-linux-x64": "0.34.2",
6206
+        "@img/sharp-linuxmusl-arm64": "0.34.2",
6207
+        "@img/sharp-linuxmusl-x64": "0.34.2",
6208
+        "@img/sharp-wasm32": "0.34.2",
6209
+        "@img/sharp-win32-arm64": "0.34.2",
6210
+        "@img/sharp-win32-ia32": "0.34.2",
6211
+        "@img/sharp-win32-x64": "0.34.2"
6212
+      }
6213
+    },
6214
+    "node_modules/shebang-command": {
6215
+      "version": "2.0.0",
6216
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
6217
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
6218
+      "dev": true,
6219
+      "license": "MIT",
6220
+      "dependencies": {
6221
+        "shebang-regex": "^3.0.0"
6222
+      },
6223
+      "engines": {
6224
+        "node": ">=8"
6225
+      }
6226
+    },
6227
+    "node_modules/shebang-regex": {
6228
+      "version": "3.0.0",
6229
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
6230
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
6231
+      "dev": true,
6232
+      "license": "MIT",
6233
+      "engines": {
6234
+        "node": ">=8"
6235
+      }
6236
+    },
6237
+    "node_modules/side-channel": {
6238
+      "version": "1.1.0",
6239
+      "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
6240
+      "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
6241
+      "dev": true,
6242
+      "license": "MIT",
6243
+      "dependencies": {
6244
+        "es-errors": "^1.3.0",
6245
+        "object-inspect": "^1.13.3",
6246
+        "side-channel-list": "^1.0.0",
6247
+        "side-channel-map": "^1.0.1",
6248
+        "side-channel-weakmap": "^1.0.2"
6249
+      },
6250
+      "engines": {
6251
+        "node": ">= 0.4"
6252
+      },
6253
+      "funding": {
6254
+        "url": "https://github.com/sponsors/ljharb"
6255
+      }
6256
+    },
6257
+    "node_modules/side-channel-list": {
6258
+      "version": "1.0.0",
6259
+      "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
6260
+      "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
6261
+      "dev": true,
6262
+      "license": "MIT",
6263
+      "dependencies": {
6264
+        "es-errors": "^1.3.0",
6265
+        "object-inspect": "^1.13.3"
6266
+      },
6267
+      "engines": {
6268
+        "node": ">= 0.4"
6269
+      },
6270
+      "funding": {
6271
+        "url": "https://github.com/sponsors/ljharb"
6272
+      }
6273
+    },
6274
+    "node_modules/side-channel-map": {
6275
+      "version": "1.0.1",
6276
+      "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
6277
+      "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
6278
+      "dev": true,
6279
+      "license": "MIT",
6280
+      "dependencies": {
6281
+        "call-bound": "^1.0.2",
6282
+        "es-errors": "^1.3.0",
6283
+        "get-intrinsic": "^1.2.5",
6284
+        "object-inspect": "^1.13.3"
6285
+      },
6286
+      "engines": {
6287
+        "node": ">= 0.4"
6288
+      },
6289
+      "funding": {
6290
+        "url": "https://github.com/sponsors/ljharb"
6291
+      }
6292
+    },
6293
+    "node_modules/side-channel-weakmap": {
6294
+      "version": "1.0.2",
6295
+      "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
6296
+      "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
6297
+      "dev": true,
6298
+      "license": "MIT",
6299
+      "dependencies": {
6300
+        "call-bound": "^1.0.2",
6301
+        "es-errors": "^1.3.0",
6302
+        "get-intrinsic": "^1.2.5",
6303
+        "object-inspect": "^1.13.3",
6304
+        "side-channel-map": "^1.0.1"
6305
+      },
6306
+      "engines": {
6307
+        "node": ">= 0.4"
6308
+      },
6309
+      "funding": {
6310
+        "url": "https://github.com/sponsors/ljharb"
6311
+      }
6312
+    },
6313
+    "node_modules/simple-swizzle": {
6314
+      "version": "0.2.2",
6315
+      "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
6316
+      "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
6317
+      "license": "MIT",
6318
+      "optional": true,
6319
+      "dependencies": {
6320
+        "is-arrayish": "^0.3.1"
6321
+      }
6322
+    },
6323
+    "node_modules/source-map-js": {
6324
+      "version": "1.2.1",
6325
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
6326
+      "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
6327
+      "license": "BSD-3-Clause",
6328
+      "engines": {
6329
+        "node": ">=0.10.0"
6330
+      }
6331
+    },
6332
+    "node_modules/stable-hash": {
6333
+      "version": "0.0.5",
6334
+      "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz",
6335
+      "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==",
6336
+      "dev": true,
6337
+      "license": "MIT"
6338
+    },
6339
+    "node_modules/stop-iteration-iterator": {
6340
+      "version": "1.1.0",
6341
+      "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
6342
+      "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
6343
+      "dev": true,
6344
+      "license": "MIT",
6345
+      "dependencies": {
6346
+        "es-errors": "^1.3.0",
6347
+        "internal-slot": "^1.1.0"
6348
+      },
6349
+      "engines": {
6350
+        "node": ">= 0.4"
6351
+      }
6352
+    },
6353
+    "node_modules/streamsearch": {
6354
+      "version": "1.1.0",
6355
+      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
6356
+      "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
6357
+      "engines": {
6358
+        "node": ">=10.0.0"
6359
+      }
6360
+    },
6361
+    "node_modules/string.prototype.includes": {
6362
+      "version": "2.0.1",
6363
+      "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
6364
+      "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
6365
+      "dev": true,
6366
+      "license": "MIT",
6367
+      "dependencies": {
6368
+        "call-bind": "^1.0.7",
6369
+        "define-properties": "^1.2.1",
6370
+        "es-abstract": "^1.23.3"
6371
+      },
6372
+      "engines": {
6373
+        "node": ">= 0.4"
6374
+      }
6375
+    },
6376
+    "node_modules/string.prototype.matchall": {
6377
+      "version": "4.0.12",
6378
+      "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
6379
+      "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
6380
+      "dev": true,
6381
+      "license": "MIT",
6382
+      "dependencies": {
6383
+        "call-bind": "^1.0.8",
6384
+        "call-bound": "^1.0.3",
6385
+        "define-properties": "^1.2.1",
6386
+        "es-abstract": "^1.23.6",
6387
+        "es-errors": "^1.3.0",
6388
+        "es-object-atoms": "^1.0.0",
6389
+        "get-intrinsic": "^1.2.6",
6390
+        "gopd": "^1.2.0",
6391
+        "has-symbols": "^1.1.0",
6392
+        "internal-slot": "^1.1.0",
6393
+        "regexp.prototype.flags": "^1.5.3",
6394
+        "set-function-name": "^2.0.2",
6395
+        "side-channel": "^1.1.0"
6396
+      },
6397
+      "engines": {
6398
+        "node": ">= 0.4"
6399
+      },
6400
+      "funding": {
6401
+        "url": "https://github.com/sponsors/ljharb"
6402
+      }
6403
+    },
6404
+    "node_modules/string.prototype.repeat": {
6405
+      "version": "1.0.0",
6406
+      "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
6407
+      "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
6408
+      "dev": true,
6409
+      "license": "MIT",
6410
+      "dependencies": {
6411
+        "define-properties": "^1.1.3",
6412
+        "es-abstract": "^1.17.5"
6413
+      }
6414
+    },
6415
+    "node_modules/string.prototype.trim": {
6416
+      "version": "1.2.10",
6417
+      "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
6418
+      "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
6419
+      "dev": true,
6420
+      "license": "MIT",
6421
+      "dependencies": {
6422
+        "call-bind": "^1.0.8",
6423
+        "call-bound": "^1.0.2",
6424
+        "define-data-property": "^1.1.4",
6425
+        "define-properties": "^1.2.1",
6426
+        "es-abstract": "^1.23.5",
6427
+        "es-object-atoms": "^1.0.0",
6428
+        "has-property-descriptors": "^1.0.2"
6429
+      },
6430
+      "engines": {
6431
+        "node": ">= 0.4"
6432
+      },
6433
+      "funding": {
6434
+        "url": "https://github.com/sponsors/ljharb"
6435
+      }
6436
+    },
6437
+    "node_modules/string.prototype.trimend": {
6438
+      "version": "1.0.9",
6439
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
6440
+      "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
6441
+      "dev": true,
6442
+      "license": "MIT",
6443
+      "dependencies": {
6444
+        "call-bind": "^1.0.8",
6445
+        "call-bound": "^1.0.2",
6446
+        "define-properties": "^1.2.1",
6447
+        "es-object-atoms": "^1.0.0"
6448
+      },
6449
+      "engines": {
6450
+        "node": ">= 0.4"
6451
+      },
6452
+      "funding": {
6453
+        "url": "https://github.com/sponsors/ljharb"
6454
+      }
6455
+    },
6456
+    "node_modules/string.prototype.trimstart": {
6457
+      "version": "1.0.8",
6458
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
6459
+      "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
6460
+      "dev": true,
6461
+      "license": "MIT",
6462
+      "dependencies": {
6463
+        "call-bind": "^1.0.7",
6464
+        "define-properties": "^1.2.1",
6465
+        "es-object-atoms": "^1.0.0"
6466
+      },
6467
+      "engines": {
6468
+        "node": ">= 0.4"
6469
+      },
6470
+      "funding": {
6471
+        "url": "https://github.com/sponsors/ljharb"
6472
+      }
6473
+    },
6474
+    "node_modules/strip-bom": {
6475
+      "version": "3.0.0",
6476
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
6477
+      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
6478
+      "dev": true,
6479
+      "license": "MIT",
6480
+      "engines": {
6481
+        "node": ">=4"
6482
+      }
6483
+    },
6484
+    "node_modules/strip-json-comments": {
6485
+      "version": "3.1.1",
6486
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
6487
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
6488
+      "dev": true,
6489
+      "license": "MIT",
6490
+      "engines": {
6491
+        "node": ">=8"
6492
+      },
6493
+      "funding": {
6494
+        "url": "https://github.com/sponsors/sindresorhus"
6495
+      }
6496
+    },
6497
+    "node_modules/styled-jsx": {
6498
+      "version": "5.1.6",
6499
+      "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
6500
+      "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
6501
+      "license": "MIT",
6502
+      "dependencies": {
6503
+        "client-only": "0.0.1"
6504
+      },
6505
+      "engines": {
6506
+        "node": ">= 12.0.0"
6507
+      },
6508
+      "peerDependencies": {
6509
+        "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
6510
+      },
6511
+      "peerDependenciesMeta": {
6512
+        "@babel/core": {
6513
+          "optional": true
6514
+        },
6515
+        "babel-plugin-macros": {
6516
+          "optional": true
6517
+        }
6518
+      }
6519
+    },
6520
+    "node_modules/supports-color": {
6521
+      "version": "7.2.0",
6522
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
6523
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
6524
+      "dev": true,
6525
+      "license": "MIT",
6526
+      "dependencies": {
6527
+        "has-flag": "^4.0.0"
6528
+      },
6529
+      "engines": {
6530
+        "node": ">=8"
6531
+      }
6532
+    },
6533
+    "node_modules/supports-preserve-symlinks-flag": {
6534
+      "version": "1.0.0",
6535
+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
6536
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
6537
+      "dev": true,
6538
+      "license": "MIT",
6539
+      "engines": {
6540
+        "node": ">= 0.4"
6541
+      },
6542
+      "funding": {
6543
+        "url": "https://github.com/sponsors/ljharb"
6544
+      }
6545
+    },
6546
+    "node_modules/tailwindcss": {
6547
+      "version": "4.1.10",
6548
+      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.10.tgz",
6549
+      "integrity": "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==",
6550
+      "dev": true,
6551
+      "license": "MIT"
6552
+    },
6553
+    "node_modules/tapable": {
6554
+      "version": "2.2.2",
6555
+      "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz",
6556
+      "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==",
6557
+      "dev": true,
6558
+      "license": "MIT",
6559
+      "engines": {
6560
+        "node": ">=6"
6561
+      }
6562
+    },
6563
+    "node_modules/tar": {
6564
+      "version": "7.4.3",
6565
+      "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
6566
+      "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
6567
+      "dev": true,
6568
+      "license": "ISC",
6569
+      "dependencies": {
6570
+        "@isaacs/fs-minipass": "^4.0.0",
6571
+        "chownr": "^3.0.0",
6572
+        "minipass": "^7.1.2",
6573
+        "minizlib": "^3.0.1",
6574
+        "mkdirp": "^3.0.1",
6575
+        "yallist": "^5.0.0"
6576
+      },
6577
+      "engines": {
6578
+        "node": ">=18"
6579
+      }
6580
+    },
6581
+    "node_modules/tinyglobby": {
6582
+      "version": "0.2.14",
6583
+      "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
6584
+      "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
6585
+      "dev": true,
6586
+      "license": "MIT",
6587
+      "dependencies": {
6588
+        "fdir": "^6.4.4",
6589
+        "picomatch": "^4.0.2"
6590
+      },
6591
+      "engines": {
6592
+        "node": ">=12.0.0"
6593
+      },
6594
+      "funding": {
6595
+        "url": "https://github.com/sponsors/SuperchupuDev"
6596
+      }
6597
+    },
6598
+    "node_modules/tinyglobby/node_modules/fdir": {
6599
+      "version": "6.4.6",
6600
+      "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
6601
+      "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
6602
+      "dev": true,
6603
+      "license": "MIT",
6604
+      "peerDependencies": {
6605
+        "picomatch": "^3 || ^4"
6606
+      },
6607
+      "peerDependenciesMeta": {
6608
+        "picomatch": {
6609
+          "optional": true
6610
+        }
6611
+      }
6612
+    },
6613
+    "node_modules/tinyglobby/node_modules/picomatch": {
6614
+      "version": "4.0.2",
6615
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
6616
+      "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
6617
+      "dev": true,
6618
+      "license": "MIT",
6619
+      "engines": {
6620
+        "node": ">=12"
6621
+      },
6622
+      "funding": {
6623
+        "url": "https://github.com/sponsors/jonschlinkert"
6624
+      }
6625
+    },
6626
+    "node_modules/to-regex-range": {
6627
+      "version": "5.0.1",
6628
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
6629
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
6630
+      "dev": true,
6631
+      "license": "MIT",
6632
+      "dependencies": {
6633
+        "is-number": "^7.0.0"
6634
+      },
6635
+      "engines": {
6636
+        "node": ">=8.0"
6637
+      }
6638
+    },
6639
+    "node_modules/ts-api-utils": {
6640
+      "version": "2.1.0",
6641
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
6642
+      "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
6643
+      "dev": true,
6644
+      "license": "MIT",
6645
+      "engines": {
6646
+        "node": ">=18.12"
6647
+      },
6648
+      "peerDependencies": {
6649
+        "typescript": ">=4.8.4"
6650
+      }
6651
+    },
6652
+    "node_modules/tsconfig-paths": {
6653
+      "version": "3.15.0",
6654
+      "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
6655
+      "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
6656
+      "dev": true,
6657
+      "license": "MIT",
6658
+      "dependencies": {
6659
+        "@types/json5": "^0.0.29",
6660
+        "json5": "^1.0.2",
6661
+        "minimist": "^1.2.6",
6662
+        "strip-bom": "^3.0.0"
6663
+      }
6664
+    },
6665
+    "node_modules/tslib": {
6666
+      "version": "2.8.1",
6667
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
6668
+      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
6669
+      "license": "0BSD"
6670
+    },
6671
+    "node_modules/type-check": {
6672
+      "version": "0.4.0",
6673
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
6674
+      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
6675
+      "dev": true,
6676
+      "license": "MIT",
6677
+      "dependencies": {
6678
+        "prelude-ls": "^1.2.1"
6679
+      },
6680
+      "engines": {
6681
+        "node": ">= 0.8.0"
6682
+      }
6683
+    },
6684
+    "node_modules/typed-array-buffer": {
6685
+      "version": "1.0.3",
6686
+      "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
6687
+      "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
6688
+      "dev": true,
6689
+      "license": "MIT",
6690
+      "dependencies": {
6691
+        "call-bound": "^1.0.3",
6692
+        "es-errors": "^1.3.0",
6693
+        "is-typed-array": "^1.1.14"
6694
+      },
6695
+      "engines": {
6696
+        "node": ">= 0.4"
6697
+      }
6698
+    },
6699
+    "node_modules/typed-array-byte-length": {
6700
+      "version": "1.0.3",
6701
+      "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
6702
+      "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
6703
+      "dev": true,
6704
+      "license": "MIT",
6705
+      "dependencies": {
6706
+        "call-bind": "^1.0.8",
6707
+        "for-each": "^0.3.3",
6708
+        "gopd": "^1.2.0",
6709
+        "has-proto": "^1.2.0",
6710
+        "is-typed-array": "^1.1.14"
6711
+      },
6712
+      "engines": {
6713
+        "node": ">= 0.4"
6714
+      },
6715
+      "funding": {
6716
+        "url": "https://github.com/sponsors/ljharb"
6717
+      }
6718
+    },
6719
+    "node_modules/typed-array-byte-offset": {
6720
+      "version": "1.0.4",
6721
+      "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
6722
+      "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
6723
+      "dev": true,
6724
+      "license": "MIT",
6725
+      "dependencies": {
6726
+        "available-typed-arrays": "^1.0.7",
6727
+        "call-bind": "^1.0.8",
6728
+        "for-each": "^0.3.3",
6729
+        "gopd": "^1.2.0",
6730
+        "has-proto": "^1.2.0",
6731
+        "is-typed-array": "^1.1.15",
6732
+        "reflect.getprototypeof": "^1.0.9"
6733
+      },
6734
+      "engines": {
6735
+        "node": ">= 0.4"
6736
+      },
6737
+      "funding": {
6738
+        "url": "https://github.com/sponsors/ljharb"
6739
+      }
6740
+    },
6741
+    "node_modules/typed-array-length": {
6742
+      "version": "1.0.7",
6743
+      "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
6744
+      "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
6745
+      "dev": true,
6746
+      "license": "MIT",
6747
+      "dependencies": {
6748
+        "call-bind": "^1.0.7",
6749
+        "for-each": "^0.3.3",
6750
+        "gopd": "^1.0.1",
6751
+        "is-typed-array": "^1.1.13",
6752
+        "possible-typed-array-names": "^1.0.0",
6753
+        "reflect.getprototypeof": "^1.0.6"
6754
+      },
6755
+      "engines": {
6756
+        "node": ">= 0.4"
6757
+      },
6758
+      "funding": {
6759
+        "url": "https://github.com/sponsors/ljharb"
6760
+      }
6761
+    },
6762
+    "node_modules/typescript": {
6763
+      "version": "5.8.3",
6764
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
6765
+      "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
6766
+      "dev": true,
6767
+      "license": "Apache-2.0",
6768
+      "bin": {
6769
+        "tsc": "bin/tsc",
6770
+        "tsserver": "bin/tsserver"
6771
+      },
6772
+      "engines": {
6773
+        "node": ">=14.17"
6774
+      }
6775
+    },
6776
+    "node_modules/unbox-primitive": {
6777
+      "version": "1.1.0",
6778
+      "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
6779
+      "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
6780
+      "dev": true,
6781
+      "license": "MIT",
6782
+      "dependencies": {
6783
+        "call-bound": "^1.0.3",
6784
+        "has-bigints": "^1.0.2",
6785
+        "has-symbols": "^1.1.0",
6786
+        "which-boxed-primitive": "^1.1.1"
6787
+      },
6788
+      "engines": {
6789
+        "node": ">= 0.4"
6790
+      },
6791
+      "funding": {
6792
+        "url": "https://github.com/sponsors/ljharb"
6793
+      }
6794
+    },
6795
+    "node_modules/undici-types": {
6796
+      "version": "6.21.0",
6797
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
6798
+      "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
6799
+      "dev": true,
6800
+      "license": "MIT"
6801
+    },
6802
+    "node_modules/unrs-resolver": {
6803
+      "version": "1.9.0",
6804
+      "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.0.tgz",
6805
+      "integrity": "sha512-wqaRu4UnzBD2ABTC1kLfBjAqIDZ5YUTr/MLGa7By47JV1bJDSW7jq/ZSLigB7enLe7ubNaJhtnBXgrc/50cEhg==",
6806
+      "dev": true,
6807
+      "hasInstallScript": true,
6808
+      "license": "MIT",
6809
+      "dependencies": {
6810
+        "napi-postinstall": "^0.2.2"
6811
+      },
6812
+      "funding": {
6813
+        "url": "https://opencollective.com/unrs-resolver"
6814
+      },
6815
+      "optionalDependencies": {
6816
+        "@unrs/resolver-binding-android-arm-eabi": "1.9.0",
6817
+        "@unrs/resolver-binding-android-arm64": "1.9.0",
6818
+        "@unrs/resolver-binding-darwin-arm64": "1.9.0",
6819
+        "@unrs/resolver-binding-darwin-x64": "1.9.0",
6820
+        "@unrs/resolver-binding-freebsd-x64": "1.9.0",
6821
+        "@unrs/resolver-binding-linux-arm-gnueabihf": "1.9.0",
6822
+        "@unrs/resolver-binding-linux-arm-musleabihf": "1.9.0",
6823
+        "@unrs/resolver-binding-linux-arm64-gnu": "1.9.0",
6824
+        "@unrs/resolver-binding-linux-arm64-musl": "1.9.0",
6825
+        "@unrs/resolver-binding-linux-ppc64-gnu": "1.9.0",
6826
+        "@unrs/resolver-binding-linux-riscv64-gnu": "1.9.0",
6827
+        "@unrs/resolver-binding-linux-riscv64-musl": "1.9.0",
6828
+        "@unrs/resolver-binding-linux-s390x-gnu": "1.9.0",
6829
+        "@unrs/resolver-binding-linux-x64-gnu": "1.9.0",
6830
+        "@unrs/resolver-binding-linux-x64-musl": "1.9.0",
6831
+        "@unrs/resolver-binding-wasm32-wasi": "1.9.0",
6832
+        "@unrs/resolver-binding-win32-arm64-msvc": "1.9.0",
6833
+        "@unrs/resolver-binding-win32-ia32-msvc": "1.9.0",
6834
+        "@unrs/resolver-binding-win32-x64-msvc": "1.9.0"
6835
+      }
6836
+    },
6837
+    "node_modules/uri-js": {
6838
+      "version": "4.4.1",
6839
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
6840
+      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
6841
+      "dev": true,
6842
+      "license": "BSD-2-Clause",
6843
+      "dependencies": {
6844
+        "punycode": "^2.1.0"
6845
+      }
6846
+    },
6847
+    "node_modules/which": {
6848
+      "version": "2.0.2",
6849
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
6850
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
6851
+      "dev": true,
6852
+      "license": "ISC",
6853
+      "dependencies": {
6854
+        "isexe": "^2.0.0"
6855
+      },
6856
+      "bin": {
6857
+        "node-which": "bin/node-which"
6858
+      },
6859
+      "engines": {
6860
+        "node": ">= 8"
6861
+      }
6862
+    },
6863
+    "node_modules/which-boxed-primitive": {
6864
+      "version": "1.1.1",
6865
+      "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
6866
+      "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
6867
+      "dev": true,
6868
+      "license": "MIT",
6869
+      "dependencies": {
6870
+        "is-bigint": "^1.1.0",
6871
+        "is-boolean-object": "^1.2.1",
6872
+        "is-number-object": "^1.1.1",
6873
+        "is-string": "^1.1.1",
6874
+        "is-symbol": "^1.1.1"
6875
+      },
6876
+      "engines": {
6877
+        "node": ">= 0.4"
6878
+      },
6879
+      "funding": {
6880
+        "url": "https://github.com/sponsors/ljharb"
6881
+      }
6882
+    },
6883
+    "node_modules/which-builtin-type": {
6884
+      "version": "1.2.1",
6885
+      "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
6886
+      "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
6887
+      "dev": true,
6888
+      "license": "MIT",
6889
+      "dependencies": {
6890
+        "call-bound": "^1.0.2",
6891
+        "function.prototype.name": "^1.1.6",
6892
+        "has-tostringtag": "^1.0.2",
6893
+        "is-async-function": "^2.0.0",
6894
+        "is-date-object": "^1.1.0",
6895
+        "is-finalizationregistry": "^1.1.0",
6896
+        "is-generator-function": "^1.0.10",
6897
+        "is-regex": "^1.2.1",
6898
+        "is-weakref": "^1.0.2",
6899
+        "isarray": "^2.0.5",
6900
+        "which-boxed-primitive": "^1.1.0",
6901
+        "which-collection": "^1.0.2",
6902
+        "which-typed-array": "^1.1.16"
6903
+      },
6904
+      "engines": {
6905
+        "node": ">= 0.4"
6906
+      },
6907
+      "funding": {
6908
+        "url": "https://github.com/sponsors/ljharb"
6909
+      }
6910
+    },
6911
+    "node_modules/which-collection": {
6912
+      "version": "1.0.2",
6913
+      "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
6914
+      "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
6915
+      "dev": true,
6916
+      "license": "MIT",
6917
+      "dependencies": {
6918
+        "is-map": "^2.0.3",
6919
+        "is-set": "^2.0.3",
6920
+        "is-weakmap": "^2.0.2",
6921
+        "is-weakset": "^2.0.3"
6922
+      },
6923
+      "engines": {
6924
+        "node": ">= 0.4"
6925
+      },
6926
+      "funding": {
6927
+        "url": "https://github.com/sponsors/ljharb"
6928
+      }
6929
+    },
6930
+    "node_modules/which-typed-array": {
6931
+      "version": "1.1.19",
6932
+      "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
6933
+      "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
6934
+      "dev": true,
6935
+      "license": "MIT",
6936
+      "dependencies": {
6937
+        "available-typed-arrays": "^1.0.7",
6938
+        "call-bind": "^1.0.8",
6939
+        "call-bound": "^1.0.4",
6940
+        "for-each": "^0.3.5",
6941
+        "get-proto": "^1.0.1",
6942
+        "gopd": "^1.2.0",
6943
+        "has-tostringtag": "^1.0.2"
6944
+      },
6945
+      "engines": {
6946
+        "node": ">= 0.4"
6947
+      },
6948
+      "funding": {
6949
+        "url": "https://github.com/sponsors/ljharb"
6950
+      }
6951
+    },
6952
+    "node_modules/word-wrap": {
6953
+      "version": "1.2.5",
6954
+      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
6955
+      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
6956
+      "dev": true,
6957
+      "license": "MIT",
6958
+      "engines": {
6959
+        "node": ">=0.10.0"
6960
+      }
6961
+    },
6962
+    "node_modules/yallist": {
6963
+      "version": "5.0.0",
6964
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
6965
+      "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
6966
+      "dev": true,
6967
+      "license": "BlueOak-1.0.0",
6968
+      "engines": {
6969
+        "node": ">=18"
6970
+      }
6971
+    },
6972
+    "node_modules/yocto-queue": {
6973
+      "version": "0.1.0",
6974
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
6975
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
6976
+      "dev": true,
6977
+      "license": "MIT",
6978
+      "engines": {
6979
+        "node": ">=10"
6980
+      },
6981
+      "funding": {
6982
+        "url": "https://github.com/sponsors/sindresorhus"
6983
+      }
6984
+    }
6985
+  }
6986
+}
frontend/package.jsonadded
@@ -0,0 +1,30 @@
1
+{
2
+  "name": "frontend",
3
+  "version": "0.1.0",
4
+  "private": true,
5
+  "scripts": {
6
+    "dev": "next dev",
7
+    "build": "next build",
8
+    "start": "next start",
9
+    "lint": "next lint"
10
+  },
11
+  "dependencies": {
12
+    "@types/d3": "^7.4.3",
13
+    "axios": "^1.10.0",
14
+    "d3": "^7.9.0",
15
+    "next": "15.3.3",
16
+    "react": "^19.0.0",
17
+    "react-dom": "^19.0.0"
18
+  },
19
+  "devDependencies": {
20
+    "@eslint/eslintrc": "^3",
21
+    "@tailwindcss/postcss": "^4",
22
+    "@types/node": "^20",
23
+    "@types/react": "^19",
24
+    "@types/react-dom": "^19",
25
+    "eslint": "^9",
26
+    "eslint-config-next": "15.3.3",
27
+    "tailwindcss": "^4",
28
+    "typescript": "^5"
29
+  }
30
+}
frontend/postcss.config.mjsadded
@@ -0,0 +1,5 @@
1
+const config = {
2
+  plugins: ["@tailwindcss/postcss"],
3
+};
4
+
5
+export default config;
frontend/public/file.svgadded
@@ -0,0 +1,1 @@
1
+<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
frontend/public/globe.svgadded
@@ -0,0 +1,1 @@
1
+<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
frontend/public/mole.svgadded
@@ -0,0 +1,11 @@
1
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+  <ellipse cx="12" cy="14" rx="6" ry="5" fill="#8B4513"/>
3
+  <circle cx="12" cy="13" r="4" fill="#D2691E"/>
4
+  <circle cx="10" cy="12" r="1" fill="#000000"/>
5
+  <circle cx="14" cy="12" r="1" fill="#000000"/>
6
+  <ellipse cx="12" cy="15" rx="1.5" ry="1" fill="#FFB6C1"/>
7
+  <path d="M6 13C6 13 5 12 4 12" stroke="#000000" stroke-width="0.5" stroke-linecap="round"/>
8
+  <path d="M18 13C18 13 19 12 20 12" stroke="#000000" stroke-width="0.5" stroke-linecap="round"/>
9
+  <circle cx="8" cy="17" r="2" fill="#8B4513"/>
10
+  <circle cx="16" cy="17" r="2" fill="#8B4513"/>
11
+</svg>
frontend/public/next.svgadded
@@ -0,0 +1,1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
frontend/public/player.svgadded
@@ -0,0 +1,5 @@
1
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+  <circle cx="12" cy="8" r="3" fill="#3B82F6" stroke="#1E40AF" stroke-width="1.5"/>
3
+  <path d="M12 14C8 14 5 17 5 21H19C19 17 16 14 12 14Z" fill="#3B82F6" stroke="#1E40AF" stroke-width="1.5"/>
4
+  <rect x="11" y="11" width="2" height="3" fill="#1E40AF"/>
5
+</svg>
frontend/public/vercel.svgadded
@@ -0,0 +1,1 @@
1
+<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
frontend/public/window.svgadded
@@ -0,0 +1,1 @@
1
+<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
frontend/src/app/favicon.icoadded
Binary file changed.
frontend/src/app/globals.cssadded
@@ -0,0 +1,48 @@
1
+@import "tailwindcss";
2
+
3
+:root {
4
+  --background: #ffffff;
5
+  --foreground: #171717;
6
+}
7
+
8
+@theme inline {
9
+  --color-background: var(--background);
10
+  --color-foreground: var(--foreground);
11
+  --font-sans: var(--font-geist-sans);
12
+  --font-mono: var(--font-geist-mono);
13
+}
14
+
15
+@media (prefers-color-scheme: dark) {
16
+  :root {
17
+    --background: #0a0a0a;
18
+    --foreground: #ededed;
19
+  }
20
+}
21
+
22
+body {
23
+  background: var(--background);
24
+  color: var(--foreground);
25
+  font-family: Arial, Helvetica, sans-serif;
26
+}
27
+
28
+/* Custom scrollbar for terminal */
29
+.scrollbar-thin {
30
+  scrollbar-width: thin;
31
+}
32
+
33
+.scrollbar-thumb-gray-700::-webkit-scrollbar {
34
+  width: 8px;
35
+}
36
+
37
+.scrollbar-thumb-gray-700::-webkit-scrollbar-track {
38
+  background: #1f2937;
39
+}
40
+
41
+.scrollbar-thumb-gray-700::-webkit-scrollbar-thumb {
42
+  background-color: #374151;
43
+  border-radius: 4px;
44
+}
45
+
46
+.scrollbar-thumb-gray-700::-webkit-scrollbar-thumb:hover {
47
+  background-color: #4b5563;
48
+}
frontend/src/app/layout.tsxadded
@@ -0,0 +1,23 @@
1
+// src/app/layout.tsx
2
+import type { Metadata } from "next";
3
+import { Inter } from "next/font/google";
4
+import "./globals.css";
5
+
6
+const inter = Inter({ subsets: ["latin"] });
7
+
8
+export const metadata: Metadata = {
9
+  title: "Bashamole",
10
+  description: "A game to practice Unix navigation by hunting moles in the filesystem",
11
+};
12
+
13
+export default function RootLayout({
14
+  children,
15
+}: Readonly<{
16
+  children: React.ReactNode;
17
+}>) {
18
+  return (
19
+    <html lang="en" className="h-full">
20
+      <body className={`${inter.className} h-full`}>{children}</body>
21
+    </html>
22
+  );
23
+}
frontend/src/app/page.tsxadded
@@ -0,0 +1,6 @@
1
+// src/app/page.tsx
2
+import Game from '@/components/Game';
3
+
4
+export default function Home() {
5
+  return <Game />;
6
+}
frontend/src/components/Game.tsxadded
@@ -0,0 +1,336 @@
1
+'use client';
2
+
3
+// src/components/Game.tsx
4
+import React, { useState, useEffect, useRef } from 'react';
5
+import TreeVisualizer from './TreeVisualizer';
6
+import { gameApi, FileSystemTree } from '@/lib/api';
7
+
8
+interface CommandHistoryEntry {
9
+  command: string;
10
+  output: string;
11
+  success: boolean;
12
+}
13
+
14
+const Game: React.FC = () => {
15
+  const [gameState, setGameState] = useState<{
16
+    tree: FileSystemTree | null;
17
+    sessionId: number | null;
18
+    loading: boolean;
19
+    error: string | null;
20
+  }>({
21
+    tree: null,
22
+    sessionId: null,
23
+    loading: false,
24
+    error: null,
25
+  });
26
+
27
+  const [command, setCommand] = useState('');
28
+  const [commandHistory, setCommandHistory] = useState<CommandHistoryEntry[]>([]);
29
+  const [executing, setExecuting] = useState(false);
30
+  const [showHints, setShowHints] = useState(false);
31
+  const [hints, setHints] = useState<string[]>([]);
32
+  
33
+  const terminalRef = useRef<HTMLDivElement>(null);
34
+  const inputRef = useRef<HTMLInputElement>(null);
35
+
36
+  // Auto-scroll terminal to bottom
37
+  useEffect(() => {
38
+    if (terminalRef.current) {
39
+      terminalRef.current.scrollTop = terminalRef.current.scrollHeight;
40
+    }
41
+  }, [commandHistory]);
42
+
43
+  // Start a new game
44
+  const startNewGame = async () => {
45
+    try {
46
+      setGameState({ ...gameState, loading: true, error: null });
47
+      const response = await gameApi.createGame('Player1');
48
+      setGameState({
49
+        tree: response.tree,
50
+        sessionId: response.session_id,
51
+        loading: false,
52
+        error: null,
53
+      });
54
+      setCommandHistory([{
55
+        command: '🎮 Game started!',
56
+        output: response.mole_hint + '\nType "help" for available commands.',
57
+        success: true,
58
+      }]);
59
+      setHints([]);
60
+      setShowHints(false);
61
+    } catch (error) {
62
+      setGameState({
63
+        ...gameState,
64
+        loading: false,
65
+        error: 'Failed to start game. Is the backend running on http://localhost:8000?',
66
+      });
67
+    }
68
+  };
69
+
70
+  // Get hints
71
+  const getHints = async () => {
72
+    if (!gameState.tree) return;
73
+    
74
+    try {
75
+      const response = await gameApi.getHint(gameState.tree.id);
76
+      setHints(response.hints);
77
+      setShowHints(true);
78
+    } catch (error) {
79
+      console.error('Failed to get hints', error);
80
+    }
81
+  };
82
+
83
+  // Execute a command
84
+  const executeCommand = async (cmd: string) => {
85
+    if (!gameState.tree || !cmd.trim() || executing) return;
86
+
87
+    setExecuting(true);
88
+    try {
89
+      const response = await gameApi.executeCommand(
90
+        gameState.tree.id,
91
+        cmd,
92
+        gameState.sessionId || undefined
93
+      );
94
+
95
+      // Update command history
96
+      setCommandHistory(prev => [...prev, {
97
+        command: cmd,
98
+        output: response.output,
99
+        success: response.success,
100
+      }]);
101
+
102
+      // Update player location if moved
103
+      if (response.current_path !== gameState.tree.player_location) {
104
+        setGameState(prev => ({
105
+          ...prev,
106
+          tree: prev.tree ? {
107
+            ...prev.tree,
108
+            player_location: response.current_path,
109
+          } : null,
110
+        }));
111
+      }
112
+
113
+      // Check if game won
114
+      if (response.game_won) {
115
+        setGameState(prev => ({
116
+          ...prev,
117
+          tree: prev.tree ? {
118
+            ...prev.tree,
119
+            is_completed: true,
120
+            // Update tree_data to show mole
121
+            tree_data: updateTreeDataToShowMole(prev.tree!.tree_data, prev.tree!.player_location),
122
+          } : null,
123
+        }));
124
+      }
125
+
126
+      setCommand('');
127
+    } catch (error) {
128
+      setCommandHistory(prev => [...prev, {
129
+        command: cmd,
130
+        output: 'Error: Failed to execute command. Check your connection.',
131
+        success: false,
132
+      }]);
133
+    } finally {
134
+      setExecuting(false);
135
+      inputRef.current?.focus();
136
+    }
137
+  };
138
+
139
+  // Update tree data to show mole when game is won
140
+  const updateTreeDataToShowMole = (treeData: any, molePath: string): any => {
141
+    if (treeData.path === molePath) {
142
+      return { ...treeData, has_mole: true };
143
+    }
144
+    if (treeData.children) {
145
+      return {
146
+        ...treeData,
147
+        children: treeData.children.map((child: any) => 
148
+          updateTreeDataToShowMole(child, molePath)
149
+        ),
150
+      };
151
+    }
152
+    return treeData;
153
+  };
154
+
155
+  // Handle form submission
156
+  const handleSubmit = (e: React.FormEvent) => {
157
+    e.preventDefault();
158
+    executeCommand(command);
159
+  };
160
+
161
+  // Handle node click in visualizer
162
+  const handleNodeClick = (path: string) => {
163
+    executeCommand(`cd ${path}`);
164
+  };
165
+
166
+  // Start game on mount
167
+  useEffect(() => {
168
+    startNewGame();
169
+  }, []);
170
+
171
+  if (gameState.loading) {
172
+    return (
173
+      <div className="flex items-center justify-center min-h-screen bg-gray-900 text-white">
174
+        <div className="text-center">
175
+          <div className="text-2xl mb-4">Loading Bashamole...</div>
176
+          <div className="animate-spin rounded-full h-12 w-12 border-b-2 border-white mx-auto"></div>
177
+        </div>
178
+      </div>
179
+    );
180
+  }
181
+
182
+  if (gameState.error) {
183
+    return (
184
+      <div className="flex items-center justify-center min-h-screen bg-gray-900 text-white">
185
+        <div className="text-center">
186
+          <div className="text-red-400 mb-4">{gameState.error}</div>
187
+          <button
188
+            onClick={startNewGame}
189
+            className="px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition"
190
+          >
191
+            Try Again
192
+          </button>
193
+        </div>
194
+      </div>
195
+    );
196
+  }
197
+
198
+  if (!gameState.tree) {
199
+    return (
200
+      <div className="flex items-center justify-center min-h-screen bg-gray-900 text-white">
201
+        <div className="text-center">
202
+          <h1 className="text-4xl font-bold mb-4">🐭 Bashamole</h1>
203
+          <p className="text-gray-400 mb-8">Hunt the mole in the Unix filesystem!</p>
204
+          <button
205
+            onClick={startNewGame}
206
+            className="px-8 py-4 bg-green-600 text-white rounded-lg hover:bg-green-700 text-xl transition transform hover:scale-105"
207
+          >
208
+            Start New Game
209
+          </button>
210
+        </div>
211
+      </div>
212
+    );
213
+  }
214
+
215
+  return (
216
+    <div className="min-h-screen bg-gray-900 text-white p-4">
217
+      <div className="max-w-7xl mx-auto">
218
+        {/* Header */}
219
+        <div className="bg-gray-800 rounded-lg shadow-xl p-6 mb-4">
220
+          <div className="flex justify-between items-center">
221
+            <div>
222
+              <h1 className="text-3xl font-bold mb-2">🐭 Bashamole</h1>
223
+              <p className="text-gray-400">
224
+                Current Location: <span className="font-mono text-blue-400">{gameState.tree.player_location}</span>
225
+              </p>
226
+            </div>
227
+            <div className="text-right">
228
+              {gameState.tree.is_completed ? (
229
+                <div className="text-green-400 font-bold text-xl animate-pulse">
230
+                  🎉 You found the mole!
231
+                </div>
232
+              ) : (
233
+                <div className="space-x-2">
234
+                  <button
235
+                    onClick={getHints}
236
+                    className="px-4 py-2 bg-yellow-600 text-white rounded hover:bg-yellow-700 transition"
237
+                  >
238
+                    Get Hint 💡
239
+                  </button>
240
+                  <button
241
+                    onClick={startNewGame}
242
+                    className="px-4 py-2 bg-gray-700 text-white rounded hover:bg-gray-600 transition"
243
+                  >
244
+                    New Game
245
+                  </button>
246
+                </div>
247
+              )}
248
+            </div>
249
+          </div>
250
+        </div>
251
+
252
+        {/* Hints */}
253
+        {showHints && hints.length > 0 && (
254
+          <div className="bg-yellow-900/30 border border-yellow-600 rounded-lg p-4 mb-4">
255
+            <h3 className="text-yellow-400 font-bold mb-2">💡 Hints:</h3>
256
+            {hints.map((hint, index) => (
257
+              <p key={index} className="text-yellow-200">{hint}</p>
258
+            ))}
259
+          </div>
260
+        )}
261
+
262
+        <div className="grid grid-cols-1 xl:grid-cols-2 gap-4">
263
+          {/* Tree Visualizer */}
264
+          <div className="bg-gray-800 rounded-lg shadow-xl p-4">
265
+            <h2 className="text-xl font-semibold mb-3 text-gray-300">Filesystem Tree</h2>
266
+            <div className="h-[600px] bg-gray-900 rounded-lg p-2">
267
+              <TreeVisualizer
268
+                treeData={gameState.tree.tree_data}
269
+                playerLocation={gameState.tree.player_location}
270
+                onNodeClick={handleNodeClick}
271
+              />
272
+            </div>
273
+            <p className="text-sm text-gray-500 mt-2">
274
+              Click nodes to navigate • Scroll to zoom • Drag to pan
275
+            </p>
276
+          </div>
277
+
278
+          {/* Terminal */}
279
+          <div className="bg-gray-800 rounded-lg shadow-xl p-4">
280
+            <h2 className="text-xl font-semibold mb-3 text-gray-300">Terminal</h2>
281
+            <div 
282
+              ref={terminalRef}
283
+              className="bg-black text-green-400 p-4 rounded font-mono text-sm h-[550px] overflow-y-auto scrollbar-thin scrollbar-thumb-gray-700"
284
+            >
285
+              {commandHistory.map((entry, index) => (
286
+                <div key={index} className="mb-3">
287
+                  <div className="text-gray-400">
288
+                    {entry.command.startsWith('🎮') ? (
289
+                      <span className="text-yellow-400">{entry.command}</span>
290
+                    ) : (
291
+                      <>$ {entry.command}</>
292
+                    )}
293
+                  </div>
294
+                  <div className={entry.success ? 'text-green-400' : 'text-red-400'}>
295
+                    {entry.output.split('\n').map((line, i) => (
296
+                      <div key={i} className="ml-2">{line}</div>
297
+                    ))}
298
+                  </div>
299
+                </div>
300
+              ))}
301
+            </div>
302
+            
303
+            <form onSubmit={handleSubmit} className="mt-4">
304
+              <div className="flex bg-gray-900 rounded overflow-hidden">
305
+                <span className="bg-gray-800 px-3 py-2 text-green-400 font-mono">$</span>
306
+                <input
307
+                  ref={inputRef}
308
+                  type="text"
309
+                  value={command}
310
+                  onChange={(e) => setCommand(e.target.value)}
311
+                  disabled={executing || gameState.tree.is_completed}
312
+                  className="flex-1 px-3 py-2 bg-gray-900 text-green-400 focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono placeholder-gray-600"
313
+                  placeholder="Enter command (cd, ls, pwd, help, killall moles)"
314
+                  autoFocus
315
+                />
316
+                <button
317
+                  type="submit"
318
+                  disabled={executing || gameState.tree.is_completed}
319
+                  className="px-6 py-2 bg-blue-600 text-white hover:bg-blue-700 disabled:bg-gray-700 disabled:text-gray-500 transition"
320
+                >
321
+                  {executing ? '...' : 'Run'}
322
+                </button>
323
+              </div>
324
+            </form>
325
+
326
+            <div className="mt-2 text-xs text-gray-600">
327
+              Pro tip: Type "help" to see all available commands
328
+            </div>
329
+          </div>
330
+        </div>
331
+      </div>
332
+    </div>
333
+  );
334
+};
335
+
336
+export default Game;
frontend/src/components/TreeVisualizer.tsxadded
@@ -0,0 +1,229 @@
1
+'use client';
2
+
3
+// src/components/TreeVisualizer.tsx
4
+import React, { useEffect, useRef } from 'react';
5
+import * as d3 from 'd3';
6
+import { TreeNode } from '@/lib/api';
7
+
8
+interface TreeVisualizerProps {
9
+  treeData: TreeNode;
10
+  playerLocation: string;
11
+  onNodeClick?: (path: string) => void;
12
+}
13
+
14
+const TreeVisualizer: React.FC<TreeVisualizerProps> = ({
15
+  treeData,
16
+  playerLocation,
17
+  onNodeClick,
18
+}) => {
19
+  const svgRef = useRef<SVGSVGElement>(null);
20
+
21
+  useEffect(() => {
22
+    if (!treeData || !svgRef.current) return;
23
+
24
+    // Clear previous render
25
+    d3.select(svgRef.current).selectAll('*').remove();
26
+
27
+    const width = 1200;
28
+    const height = 800;
29
+    const margin = { top: 40, right: 120, bottom: 40, left: 120 };
30
+
31
+    const svg = d3
32
+      .select(svgRef.current)
33
+      .attr('viewBox', `0 0 ${width} ${height}`)
34
+      .attr('width', '100%')
35
+      .attr('height', '100%');
36
+
37
+    const g = svg
38
+      .append('g')
39
+      .attr('transform', `translate(${margin.left},${margin.top})`);
40
+
41
+    // Create tree layout
42
+    const treeLayout = d3
43
+      .tree<TreeNode>()
44
+      .size([height - margin.top - margin.bottom, width - margin.left - margin.right])
45
+      .separation((a, b) => (a.parent === b.parent ? 1 : 1.5));
46
+
47
+    // Create hierarchy
48
+    const root = d3.hierarchy(treeData);
49
+    const treeNodes = treeLayout(root);
50
+
51
+    // Create gradient for links
52
+    const gradient = svg.append('defs')
53
+      .append('linearGradient')
54
+      .attr('id', 'link-gradient')
55
+      .attr('gradientUnits', 'userSpaceOnUse');
56
+    
57
+    gradient.append('stop')
58
+      .attr('offset', '0%')
59
+      .attr('stop-color', '#E5E7EB');
60
+    
61
+    gradient.append('stop')
62
+      .attr('offset', '100%')
63
+      .attr('stop-color', '#9CA3AF');
64
+
65
+    // Create links with curved paths
66
+    const link = g
67
+      .selectAll('.link')
68
+      .data(treeNodes.links())
69
+      .enter()
70
+      .append('path')
71
+      .attr('class', 'link')
72
+      .attr('d', d3.linkHorizontal<any, any>()
73
+        .x(d => d.y)
74
+        .y(d => d.x))
75
+      .style('fill', 'none')
76
+      .style('stroke', 'url(#link-gradient)')
77
+      .style('stroke-width', 2)
78
+      .style('opacity', 0.6);
79
+
80
+    // Create node groups
81
+    const node = g
82
+      .selectAll('.node')
83
+      .data(treeNodes.descendants())
84
+      .enter()
85
+      .append('g')
86
+      .attr('class', 'node')
87
+      .attr('transform', d => `translate(${d.y},${d.x})`);
88
+
89
+    // Add circles for nodes with better styling
90
+    node
91
+      .append('circle')
92
+      .attr('r', d => {
93
+        if (d.data.path === '/') return 12; // Root is larger
94
+        if (d.data.path === playerLocation) return 10;
95
+        return 8;
96
+      })
97
+      .style('fill', d => {
98
+        if (d.data.path === playerLocation) return '#3B82F6'; // Player location - blue
99
+        if (d.data.has_mole) return '#EF4444'; // Mole location - red (only shown after win)
100
+        if (d.data.is_fhs) return '#8B5CF6'; // FHS standard - purple
101
+        return '#10B981'; // Generated directories - green
102
+      })
103
+      .style('stroke', d => {
104
+        if (d.data.path === playerLocation) return '#1E40AF';
105
+        if (d.data.has_mole) return '#991B1B';
106
+        return '#ffffff';
107
+      })
108
+      .style('stroke-width', 2)
109
+      .style('cursor', 'pointer')
110
+      .style('filter', d => d.data.path === playerLocation ? 'drop-shadow(0 0 8px rgba(59, 130, 246, 0.5))' : 'none')
111
+      .on('mouseover', function(event, d) {
112
+        d3.select(this)
113
+          .transition()
114
+          .duration(200)
115
+          .attr('r', d.data.path === '/' ? 14 : 10);
116
+      })
117
+      .on('mouseout', function(event, d) {
118
+        d3.select(this)
119
+          .transition()
120
+          .duration(200)
121
+          .attr('r', d.data.path === '/' ? 12 : d.data.path === playerLocation ? 10 : 8);
122
+      })
123
+      .on('click', (event, d) => {
124
+        if (onNodeClick) {
125
+          onNodeClick(d.data.path);
126
+        }
127
+      });
128
+
129
+    // Add tooltips
130
+    node
131
+      .append('title')
132
+      .text(d => `${d.data.path}\n${d.data.description}\n${d.data.has_mole ? '🐭 Mole is here!' : ''}`);
133
+
134
+    // Add labels with better positioning
135
+    node
136
+      .append('text')
137
+      .attr('dy', '.35em')
138
+      .attr('x', d => d.children ? -13 : 13)
139
+      .style('text-anchor', d => d.children ? 'end' : 'start')
140
+      .style('font-size', '13px')
141
+      .style('font-weight', d => d.data.path === playerLocation ? '600' : '400')
142
+      .style('fill', d => d.data.path === playerLocation ? '#1E40AF' : '#374151')
143
+      .text(d => d.data.name || '/')
144
+      .style('pointer-events', 'none');
145
+
146
+    // Add player indicator emoji
147
+    const playerNode = treeNodes.descendants().find(d => d.data.path === playerLocation);
148
+    if (playerNode) {
149
+      node
150
+        .filter(d => d.data.path === playerLocation)
151
+        .append('text')
152
+        .attr('dy', -20)
153
+        .attr('text-anchor', 'middle')
154
+        .style('font-size', '20px')
155
+        .text('🧑‍💻');
156
+    }
157
+
158
+    // Add mole indicator if game is won
159
+    const moleNode = treeNodes.descendants().find(d => d.data.has_mole);
160
+    if (moleNode) {
161
+      node
162
+        .filter(d => d.data.has_mole)
163
+        .append('text')
164
+        .attr('dy', -20)
165
+        .attr('text-anchor', 'middle')
166
+        .style('font-size', '20px')
167
+        .text('🐭');
168
+    }
169
+
170
+    // Add zoom and pan behavior
171
+    const zoom = d3.zoom<SVGSVGElement, unknown>()
172
+      .scaleExtent([0.3, 3])
173
+      .on('zoom', (event) => {
174
+        g.attr('transform', event.transform);
175
+      });
176
+
177
+    svg.call(zoom);
178
+
179
+    // Center on player location initially
180
+    if (playerNode) {
181
+      const scale = 0.8;
182
+      const x = width / 2 - playerNode.y * scale;
183
+      const y = height / 2 - playerNode.x * scale;
184
+      
185
+      svg.call(
186
+        zoom.transform,
187
+        d3.zoomIdentity.translate(x, y).scale(scale)
188
+      );
189
+    }
190
+
191
+    // Add legend
192
+    const legend = svg.append('g')
193
+      .attr('transform', `translate(20, ${height - 100})`);
194
+
195
+    const legendItems = [
196
+      { color: '#3B82F6', label: 'You are here' },
197
+      { color: '#8B5CF6', label: 'System (FHS)' },
198
+      { color: '#10B981', label: 'User directories' },
199
+      { color: '#EF4444', label: 'Mole location', show: !!moleNode },
200
+    ];
201
+
202
+    legendItems.forEach((item, i) => {
203
+      if (item.show === false) return;
204
+      
205
+      const legendItem = legend.append('g')
206
+        .attr('transform', `translate(0, ${i * 25})`);
207
+      
208
+      legendItem.append('circle')
209
+        .attr('r', 6)
210
+        .style('fill', item.color);
211
+      
212
+      legendItem.append('text')
213
+        .attr('x', 15)
214
+        .attr('y', 5)
215
+        .style('font-size', '12px')
216
+        .style('fill', '#6B7280')
217
+        .text(item.label);
218
+    });
219
+
220
+  }, [treeData, playerLocation, onNodeClick]);
221
+
222
+  return (
223
+    <div className="w-full h-full bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg shadow-inner overflow-hidden">
224
+      <svg ref={svgRef} className="w-full h-full" />
225
+    </div>
226
+  );
227
+};
228
+
229
+export default TreeVisualizer;
frontend/src/lib/api.tsadded
@@ -0,0 +1,83 @@
1
+// src/lib/api.ts
2
+import axios from 'axios';
3
+
4
+const API_BASE_URL = 'http://localhost:8000/api';
5
+
6
+const api = axios.create({
7
+  baseURL: API_BASE_URL,
8
+  headers: {
9
+    'Content-Type': 'application/json',
10
+  },
11
+});
12
+
13
+export interface TreeNode {
14
+  name: string;
15
+  path: string;
16
+  is_fhs: boolean;
17
+  description: string;
18
+  has_mole: boolean;
19
+  children: TreeNode[];
20
+}
21
+
22
+export interface FileSystemTree {
23
+  id: number;
24
+  name: string;
25
+  created_at: string;
26
+  seed: number;
27
+  player_location: string;
28
+  is_completed: boolean;
29
+  completed_at: string | null;
30
+  tree_data: TreeNode;
31
+  total_directories: number;
32
+}
33
+
34
+export interface CommandResponse {
35
+  command: string;
36
+  success: boolean;
37
+  output: string;
38
+  current_path: string;
39
+  game_won?: boolean;
40
+}
41
+
42
+export interface GameCreationResponse {
43
+  tree: FileSystemTree;
44
+  session_id: number;
45
+  mole_hint: string;
46
+}
47
+
48
+export interface HintResponse {
49
+  hints: string[];
50
+}
51
+
52
+export const gameApi = {
53
+  createGame: async (playerName: string = 'Anonymous'): Promise<GameCreationResponse> => {
54
+    const response = await api.post('/trees/filesystem-trees/create_game/', {
55
+      player_name: playerName,
56
+      max_depth: 4,
57
+      dirs_per_level: 3,
58
+    });
59
+    return response.data;
60
+  },
61
+
62
+  executeCommand: async (
63
+    treeId: number,
64
+    command: string,
65
+    sessionId?: number
66
+  ): Promise<CommandResponse> => {
67
+    const response = await api.post(`/trees/filesystem-trees/${treeId}/execute_command/`, {
68
+      command,
69
+      session_id: sessionId,
70
+    });
71
+    return response.data;
72
+  },
73
+
74
+  getHint: async (treeId: number): Promise<HintResponse> => {
75
+    const response = await api.get(`/trees/filesystem-trees/${treeId}/hint/`);
76
+    return response.data;
77
+  },
78
+
79
+  getCurrentDirectory: async (treeId: number) => {
80
+    const response = await api.get(`/trees/filesystem-trees/${treeId}/current_directory/`);
81
+    return response.data;
82
+  },
83
+};
frontend/tsconfig.jsonadded
@@ -0,0 +1,27 @@
1
+{
2
+  "compilerOptions": {
3
+    "target": "ES2017",
4
+    "lib": ["dom", "dom.iterable", "esnext"],
5
+    "allowJs": true,
6
+    "skipLibCheck": true,
7
+    "strict": true,
8
+    "noEmit": true,
9
+    "esModuleInterop": true,
10
+    "module": "esnext",
11
+    "moduleResolution": "bundler",
12
+    "resolveJsonModule": true,
13
+    "isolatedModules": true,
14
+    "jsx": "preserve",
15
+    "incremental": true,
16
+    "plugins": [
17
+      {
18
+        "name": "next"
19
+      }
20
+    ],
21
+    "paths": {
22
+      "@/*": ["./src/*"]
23
+    }
24
+  },
25
+  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
26
+  "exclude": ["node_modules"]
27
+}