From caf9a172d6fa6a3d7d85abbd4fdb442137c8c755 Mon Sep 17 00:00:00 2001 From: ykiko Date: Fri, 28 Nov 2025 00:37:22 +0800 Subject: [PATCH] extension: migrate vscode to `editors/` (#316) --- .github/workflows/vscode.yml | 55 + .gitignore | 46 +- editors/vscode/.eslintrc.json | 30 + editors/vscode/.vscode-test.mjs | 5 + editors/vscode/.vscode/extensions.json | 5 + editors/vscode/.vscode/launch.json | 21 + editors/vscode/.vscode/settings.json | 13 + editors/vscode/.vscode/tasks.json | 40 + editors/vscode/.vscodeignore | 15 + editors/vscode/LICENSE | 201 + editors/vscode/README.md | 19 + editors/vscode/clice.png | Bin 0 -> 63194 bytes editors/vscode/package-lock.json | 5182 +++++++++++++++++++++ editors/vscode/package.json | 174 + editors/vscode/src/download.ts | 224 + editors/vscode/src/extension.ts | 93 + editors/vscode/src/feature/header.ts | 70 + editors/vscode/src/feature/highlight.ts | 66 + editors/vscode/src/setting.ts | 31 + editors/vscode/src/test/extension.test.ts | 15 + editors/vscode/tsconfig.json | 16 + editors/vscode/webpack.config.js | 48 + 22 files changed, 6348 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/vscode.yml create mode 100644 editors/vscode/.eslintrc.json create mode 100644 editors/vscode/.vscode-test.mjs create mode 100644 editors/vscode/.vscode/extensions.json create mode 100644 editors/vscode/.vscode/launch.json create mode 100644 editors/vscode/.vscode/settings.json create mode 100644 editors/vscode/.vscode/tasks.json create mode 100644 editors/vscode/.vscodeignore create mode 100644 editors/vscode/LICENSE create mode 100644 editors/vscode/README.md create mode 100644 editors/vscode/clice.png create mode 100644 editors/vscode/package-lock.json create mode 100644 editors/vscode/package.json create mode 100644 editors/vscode/src/download.ts create mode 100644 editors/vscode/src/extension.ts create mode 100644 editors/vscode/src/feature/header.ts create mode 100644 editors/vscode/src/feature/highlight.ts create mode 100644 editors/vscode/src/setting.ts create mode 100644 editors/vscode/src/test/extension.test.ts create mode 100644 editors/vscode/tsconfig.json create mode 100644 editors/vscode/webpack.config.js diff --git a/.github/workflows/vscode.yml b/.github/workflows/vscode.yml new file mode 100644 index 00000000..369b5417 --- /dev/null +++ b/.github/workflows/vscode.yml @@ -0,0 +1,55 @@ +name: CI/CD VS Code Extension + +on: + push: + tags: ["v*"] + branches: ["main"] + paths: ["editors/vscode/**"] + pull_request: + branches: ["main"] + paths: ["editors/vscode/**"] + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: write + + defaults: + run: + working-directory: editors/vscode + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Install dependencies + run: npm ci + + - name: Install vsce + run: npm install -g vsce + + - name: Publish and Package to Marketplace + env: + VSCE_PAT: ${{ secrets.VSCE_PAT }} + run: | + FLAG="${{ contains(github.ref_name, '-') && '--pre-release' || '' }}" + npm run package -- $FLAG + + if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then + npm run publish -- -p "$VSCE_PAT" $FLAG + fi + + - name: Upload .vsix to Release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + files: "editors/vscode/*.vsix" + tag_name: ${{ github.ref }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 0915c13c..30e0cfeb 100644 --- a/.gitignore +++ b/.gitignore @@ -16,10 +16,6 @@ *.dylib *.dll -# Fortran module files -*.mod -*.smod - # Compiled Static libraries *.lai *.la @@ -31,28 +27,36 @@ *.out *.app -# Evil things -.claude +# Fortran module files +*.mod +*.smod -# LSP & IDE -compile_commands.json -.vscode/ -.vs/ -.idea/ - -temp/ +# Build & Toolchain *build*/ +temp/ .cache/ -.clice/ -.llvm*/ .xmake/ -__pycache__/ -.pytest_cache/ -tests/unit/Local/ +.llvm*/ +.clice/ +compile_commands.json perf.data flamegraph.svg +# Nodejs & Web +*.vsix +dist/ +out/ +cache/ +node_modules/ +.vscode-test/ -**/node_modules -docs/.vitepress/dist -docs/.vitepress/cache +# Python & Testing +__pycache__/ +.pytest_cache/ +tests/unit/Local/ + +# IDEs & Editors +/.vscode/ +.vs/ +.idea/ +.claude diff --git a/editors/vscode/.eslintrc.json b/editors/vscode/.eslintrc.json new file mode 100644 index 00000000..c70bf00e --- /dev/null +++ b/editors/vscode/.eslintrc.json @@ -0,0 +1,30 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module" + }, + "plugins": [ + "@typescript-eslint" + ], + "rules": { + "@typescript-eslint/naming-convention": [ + "warn", + { + "selector": "import", + "format": [ "camelCase", "PascalCase" ] + } + ], + "@typescript-eslint/semi": "warn", + "curly": "warn", + "eqeqeq": "warn", + "no-throw-literal": "warn", + "semi": "off" + }, + "ignorePatterns": [ + "out", + "dist", + "**/*.d.ts" + ] +} diff --git a/editors/vscode/.vscode-test.mjs b/editors/vscode/.vscode-test.mjs new file mode 100644 index 00000000..b62ba25f --- /dev/null +++ b/editors/vscode/.vscode-test.mjs @@ -0,0 +1,5 @@ +import { defineConfig } from '@vscode/test-cli'; + +export default defineConfig({ + files: 'out/test/**/*.test.js', +}); diff --git a/editors/vscode/.vscode/extensions.json b/editors/vscode/.vscode/extensions.json new file mode 100644 index 00000000..dd01eb35 --- /dev/null +++ b/editors/vscode/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher", "ms-vscode.extension-test-runner"] +} diff --git a/editors/vscode/.vscode/launch.json b/editors/vscode/.vscode/launch.json new file mode 100644 index 00000000..c42edc04 --- /dev/null +++ b/editors/vscode/.vscode/launch.json @@ -0,0 +1,21 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Run Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ], + "outFiles": [ + "${workspaceFolder}/dist/**/*.js" + ], + "preLaunchTask": "${defaultBuildTask}" + } + ] +} diff --git a/editors/vscode/.vscode/settings.json b/editors/vscode/.vscode/settings.json new file mode 100644 index 00000000..16a5c022 --- /dev/null +++ b/editors/vscode/.vscode/settings.json @@ -0,0 +1,13 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.exclude": { + "out": false, // set this to true to hide the "out" folder with the compiled JS files + "dist": false // set this to true to hide the "dist" folder with the compiled JS files + }, + "search.exclude": { + "out": true, // set this to false to include "out" folder in search results + "dist": true // set this to false to include "dist" folder in search results + }, + // Turn off tsc task auto detection since we have the necessary tasks as npm scripts + "typescript.tsc.autoDetect": "off" +} diff --git a/editors/vscode/.vscode/tasks.json b/editors/vscode/.vscode/tasks.json new file mode 100644 index 00000000..c2ab68ae --- /dev/null +++ b/editors/vscode/.vscode/tasks.json @@ -0,0 +1,40 @@ +// See https://go.microsoft.com/fwlink/?LinkId=733558 +// for the documentation about the tasks.json format +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "watch", + "problemMatcher": "$ts-webpack-watch", + "isBackground": true, + "presentation": { + "reveal": "never", + "group": "watchers" + }, + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "type": "npm", + "script": "watch-tests", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "reveal": "never", + "group": "watchers" + }, + "group": "build" + }, + { + "label": "tasks: watch-tests", + "dependsOn": [ + "npm: watch", + "npm: watch-tests" + ], + "problemMatcher": [] + } + ] +} diff --git a/editors/vscode/.vscodeignore b/editors/vscode/.vscodeignore new file mode 100644 index 00000000..d0c53d8a --- /dev/null +++ b/editors/vscode/.vscodeignore @@ -0,0 +1,15 @@ +.github/ +.vscode/** +.vscode-test/** +out/** +node_modules/** +src/** +.gitignore +.yarnrc +webpack.config.js +vsc-extension-quickstart.md +**/tsconfig.json +**/.eslintrc.json +**/*.map +**/*.ts +**/.vscode-test.* diff --git a/editors/vscode/LICENSE b/editors/vscode/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/editors/vscode/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/editors/vscode/README.md b/editors/vscode/README.md new file mode 100644 index 00000000..7d4e738e --- /dev/null +++ b/editors/vscode/README.md @@ -0,0 +1,19 @@ +# vscode-clice + +This is the vscode extension for [clice](https://github.com/clice-project/clice). + +## develop + +- install dependencies + +```shell +git clone https://github.com/clice-io/clice.git +cd clice/editors/vscode +npm install +``` + +- package + +```shell +npm run package +``` diff --git a/editors/vscode/clice.png b/editors/vscode/clice.png new file mode 100644 index 0000000000000000000000000000000000000000..e575014ee0b640ceaa9f16ac5f54e0cf79deaef2 GIT binary patch literal 63194 zcmV)9K*hg_P)PyA07*naRCr#by$5tuRogavP0eJ|dqU_PLhnrk6+uK1E7-6ADgvT{ z#Dby-B8q~I-h1yPw2%ankem0`K~=mXgezvddkryKaNuRThB300aOS z=>HJ(Lp~NiV7KYQZ}7E zK#-l54*AUFwNU0*2MtPeWAMAn*)((nsM&bsS!B|jBE(1qfrMHNHtah2L1hRX@97s# zd5@0xWr7acDE_7LxsICkV^-FH-$03ia*m)D{ug_WSPFIR$k-%erjH53gvz63!V57V zJ!1s3F#ALdImA{5Gd*AHkb5Rw9YnmkC+UTQVEk}`Lm6i{W>uFvBu$Ff%e0^uY~s<% zzY@L30!WZ$z*7+j`1wkx><3UL7gtH*SWk#z(z3`FJi>*R%FOD-!|rRSjg%+F>5=`z zBwO$Xa|tb89CE$o$x2#Azlr*H%c4%B^#rr23r;no7_U4`MM_Cy5L!hdW_4a-5bS#S z{~?K6{*Wsc?J7xvN#Y#cifA7llAu(f#r8sIc(E4ZdmSCgNP`k3f3rsIhX5nWwGyL{ z+qpstLKR{>GDGTU!9XDpzd-p;l3Z+P(p}20+RY=|QkVA8K3lhK8cB0)c%wlFAt4Hv zymUuGU7(XR%Es|)6__TdQG!ogickn7-zO7@B9-`u3R8*qviAh7E!CD16bf22AyN3a z^pH-Ga5}CN)Gw~rNl76{1k6wnh2UPg9wDG8{a!a_v9BC7yX`*7yv`|W-^l)^kVFsNz3`@&;*;R)u z<5GlevTi)rkaA&RqE4!4BzHLCllNZ{&(aRo!M8zDUoUy}Odr+;3OjI}gir>^J`X3& zLOm{MKP8!Tt=ET=le(cOQ`LX28E9zOOlg$a074}S15i>c6#tT^>y5(@qnEf;kwM}z zg$?;g^|$Np4Y|q6hms1X3`=e{G2s~ypvcdZvIcAEUMjy+FoO_-T%*y^ip3SGR{2c7 zu+sAd(SzGUPpz6ZWW0cy+|aiypjd3gmWDJ?@uSrw{k z9Dv`C=;$ci)V~MnrKj>&hN8YY_ET0w8ucP+usWHbE>OmA)H^ZcwF)KBbb?1~1S{{8 z4F^4n2=iiz&;x$I#^VsmTfn?1y2X>AqE^~UtE7{R7jmy)=124K*Sc+}s&OJB!iton zc%&vLAuTl-4boH4zHJL+wQY^$gjht`BM=)M1#5(rqgI{T5}Ov%8x~5E=+;9fN*UXR zC1SQCsz$2ITcr$6D<3p;DeNC6xN4lWsBt*pto5MUQHu+?c{p zx7QD&$wHkwMuQ1{zn>cK2BR6x8>Zvu`LofqQ9ULH1?-^$Lf%7JK!%xvUaD#2h48FN z{xk)Gh44@YdGCVJZb%d&+lAy7znjOay!$_}wme-A;I&4tOd{;dNHSXfhxpH5JVoXQEl-`e@anG1|9khIVaQ zASOCWm~b*RYK=3Ev3=>5Yu63~ftMSDq}CB3~MYf)us^xByJ9qL|sf0*xenl^}hHFlA_iEJRM z1_(o=ijQ9zgpRwfgA=bo{_N{;j7LA0AP@bM8KC69zC$0zsq zM(auwF%Rkn)wtHQF^)ihYeF#xLF}41i16>r9u)5P77L@S0bfboTKRkdY}mRBf3Mqy zo%@fXyrvd4H4fA`YT@^JVX{Udx?WS*(;6Zwvne9tQvgEfMiY!?Gxh5mP2^wZ?K7B+ z@CO38`1kjyIC}(dPk9pKpLl>%xHMit6Cv$JIp!lv=irT&fk%+B&DS6h5Pl|Yyd>Bm zqGJ?UJ8I+-+bd=SlP@%IOC2P0|kBRUQkfxMzhWb_`2^zMTwQy2{fc)dQ#DC|Er9|FzDMpqZ)pd#lG%CnEd z=XJqX>wwu9K-cyy@x+7ophuT1q$VZ67Gcryu29M0I6AcD&*KP^qNTq|!6%&nkcFz| zReW1~J|D`;tB`l)Dt`I>U;Mo4FO*fe7(rWYFj^xJnUIRu#%&SZxD6r`)8Y5~n8PLz zfYC_a&EN~$LCG`1>C0#`;mCq%@K%@Mx9>j0jlDW^MO_C(5Hv(D33Z)hV_uh3R2N1A zw=|5$-=pIMtz4GIBGEY|dj^4Yz&h061SehdQc8l{Xr=;~Kb|Zy!ImK&5SB}Ij2Yz9 zHlXjY(KvZF4=J4oAhX|a?$I^CPj{PWbtAJixb&45(%|=_>dHmb7UiNkF9+2H=isiX zLW{8A0?GRvWRS_xQYlidQOn_UekiSIz~N)3uzuTK zY}s)Ddk!6k)9pn>YyzS(notO6PtJrry&+7t7!VDls8`7!K-a@yLo`MWZLYhSeK(Bfe!vG#dN}T^WPX03U%t zbXb!9qC7~9I|DWJs3hdf7x1{?sjfiT>3z6zU=!f?B0f4AEt_Ou%J|1{W8bbYn@n6| z=~5Ro(~$lU8bJqP7;@6WC9R|v+Cp8tv*+{i{^#Fd%buest*nCE?S?fz73tk?L3I5V zutr7$W-BLpb|3MF5pBp`&*rKG=Zq@MB3n(bq3glqVgBadP;_VuhTYs7pU->=v9Zy7 zHB~qsL=E!()uAYYb6a#mK)-I{SpwaVIZ;DhPQTF#3^_Z3t^{3foe-iBh`K@R7_Hz) z;m*@RKxGjW^(VX#;v1o&C^iA(jt~-*FP;LcWgHMj>yQb3@Wo=x`g{p&Y4y?K-pOne zgS;=?HOd5^1W7my(8QMrA6^<{ zh(~KBpwK8fMhUvlfF1je;I7fn!)Gv|@KG za|C5)4!~J>2{BPtj2JQyk3Db)I<{-6MnPpa7To}KV--FQQtets)Y@Qx%j3acYq#Rd z#VfGy$Z43Y5r}Qn8u6{WBep?H7|j++sAeON&+1iAweJct$J%W*!tygC)gbt zL|YP*XyX8KP6gc`er33qDSIvFddQMY)&kd}dOlu3F0Y^nBOZSdXD?hr z+b3oqA}&eM08AQ6Mz+B~oF7ygQe%+A1EY}<0Glph48Ouim#l?=3uHZrotD3C6^ajS!GIp^v24*?Sj<#y zN>WMU7L5>>W~zKHefLxBlH2!T zx`(cV>H(s5xu0WTzEFzlmtdIzMg%~j$kO}xntH2BaBJ;(!91j9&hju0^2 zPQus(GBKl9XgBHs6P`5*=#uF&G|Gsd{VnFld}JH)HvNh&S|{=Xkl zTXF@BGEy=3jY+uq#$H+?P_(MfEhga?5qP^&RD%1)zKrA9xvp|}NiaJhSXF{^TYwWa^>A^~PVObw36B@OhkD95@ssNq7D6E4!|{dF;rF=k{bw^U z^k$|_gP@1zQ^o{Ae)?c`5V}c9sgUCjszEMfBr}rP`(>L=Z!f9Bgfpa!L}UizH!@?N z5s}0ILN9WbQSiTHtxN7HMQ!OP$_Y+L9rpEgGE>M!(|suWx2W1Rptjb7+eePa;j{Uu zKk!~8w(h2^3Aw~X+@9P(B!n)oKdbEG!h;Zsk3b(VqmcV@3B)i8|1z;1_@)r%a90*n zW0AxU8l)xS%lH0=zTG=1%d9dEp95V69rO$MQBZglk32ga2Tz`dEioO9hdu^d0!u(s z@VoHfiG3mPMq}gfpcajNFexT%AO#_CZx!1c)tyI)%jd(DU4NnQ;CkH9tpgT)_!^QE z<0bMBA)RF5CblV5oaY+*%6$_`42OZdFlpBEvy>ref*g{2R2s7)j3f=MKp@2hAi)ET zDv=))%FU&lp~}M76=PHNmykAft(a~jIJbZG{V#a=-T6q&>V?c3M!;ybO1!7mDrj8H z0xVG@I6#S>G6y%18EjDV_C=6L6)Fb!Ts0`z{s&4=?nAxgSbY4}6x@6Rfh{36kPn>_ zE+>@Asv7+7olmiB%|@7GlF)F_gRrMJVqtnIT~EYTOeQmD3Nl`j>cO;`FrbCRq*{;0 zJ48{A7H%pLVKPj=AFk5N$XT@z5q>vjzWfv(x$k!FQobIk^#6EGD9x|=tPbXrQJCV9 z3sylT#rP+yJmG@~kw7RAi z?fc(@8iNfj@1G1yG?8AyCty$@fp7o_VrGA5yj*$Frx8$8$c6b0=@2$lBkCtu_Jc|Rew z`ykZocLx*S1V+eS9%>KrWIAFG5Wgq`OiDoL>bbKhK5-0wM>+g1Cn6J*5S^NVxW>(4 zjftZ^dFoH)+J`cT%R#*-&MOztuUmV3HtS_rEoS6g$j9!zhmc=b44c)8Hm#bWSGSHd zW&3pY1q>Vg9DJ~#(V&Ns(7F>3ViCyZgV*6eb-_hkJ#`eWsw$Y{(qM>;fiW@`Fj$b7 znS#Xn8KUH!!#n2A2!JL!C;V$D>^ zDKw3U9LtRYm{yWJck*o^{2oE2jIsa^3c3l+s!KDGg|q&54Q$fVx6TL-A-zMnpOgoN zlG=JWB%Y~*H%h=Q)QVhN_{gy*arK$AmvHZxDabFWL~9~V6Nz*b-ZC{pEgUb5m)UA7 zd>a7VPABq@=fEHEgG5FBt{Mc~PWYS^w2mM;H5JkI8X-C@6ChcXJgLlCl8>B~Um)Oe zVql-HC@HJJu~Rwl1z75Zu!~}&BGIdBd*qzEfO7>Uh-uaZ4F}%Mv<(1PMJdY8pGH+d z0X#kf%=UPgqT)%KrjqJlkB>!K^M){yY)-{n#b!gGkDC7^JhaRXB0owBNFV@DO*zi3 zS^!shAtpU`A6}m_E_m^;2~q0UFCj#)Ros6aq;wrr@qfOAF+do|qWHfL+F4Sw=6|j zzzcROFYX`_0G}VkhAh8)6=he7;rDu(0Znm*m!=m7oE7j_UWPR?66u}$AS$B)eJ*)c z@xk@Dy!8(TIgCamwd{nb`psd9il^`NRF$GU=P;^rv*{|BqLPqt(<4Z3+JxF5C1;M} z>WM=LM5V$Ml}vNAglU3lPKoOT5w(g-l)ct#ayjT4)G9`HG0Pqw zu8(-Gmyl+%w(~4vN!{3i$ji z@=D_a+-~u?;jOrWKy4Y~>NiAO{YJ>!v=UJ*dZR)2-e83soUw^vN`Ciwk+*dfO3oZX zT=!A1nW|B7_BaCeRG8v2DAW<*EH+vLB4eYGkeLE|EJ<@_1j)w0@VScWRRJ!b9d-Ru zMj|y5Y$uBkY((MSwJ--fm@#D>o)~o(%$k%3NjR|~gx>cs1REArT+i0lWl+lkHXJR< zjM z!e4O_K2I%TI}AmW9$lrp6Hdw`-JrS>m)89R7ouQ@h=aen80OU0FhoQ#_`-vAVwsZb zXCN*$k$R((&*|5tO;qehJ$tM!QBu?F@4~BP827?k*t+j1 zOc7CNeCsI0G-!>0(L}!|jv*27V(Y19kWz-^&_QFX2Y}k@8kAhR46n-ruh+{0W+J!V z4|vOR;m+L)TdP~qs9R@5MA^86R{IE56c!-wpYH%m6auDb*cx>PjLeu7`AMWA%NA`% za^rfiL|9cVC0v~E=OZ`j)og(W^2vB?RP2`mv26oNRb zYEW|iJeW1Vsy&E1|!T?3!>tqVULSJWK1+Ib7ZiKxpS%EOWnKLUY~4> z__#HNcL8{7Do~bv2&Kn&!FlyE(vsux{J4kk&^@;y%5GEfO(?+^YGH%$kY37$ly;#F z2?19$Hd=`LuK|lf8Y&tZmbHasTWETNDhr@;duZdMF2h$Hyyo7JOcY+^YgMW&<)z>C z_>M0Uy@Fp>R9uF)=FY>?Kh{%1Bksh+R$Y+R?H0gn;Q=yMMW#v*ktxYX!At@rGODsi z0Nz?R$_q3}m75|ksk6rjXIT+SkMBf9&SAK!$^pLz zU9wtY&g+xWu}yQzOfstn(|V}*OsGA(hIUXKDIu<-kGmf2qKDC;>=J!3mNcV~q(%y2 zJlqYcQ8(mjeHSPZnhybLgeDM}TFfV$M4^KbwuPd>*)O36syC2BVn*^Zr2tu(Ir-G- za^veIE3sh7@5nDKp|1$|yohhn1qrRYA~LxiOEx+SFr ztm$oGv_(^`WQmMKV!d=k#zn(mGSLXMlDtLWmKcv@1QVAgNy{Mfs=ROtCC7KcQFKv( z;Dq_i7BlW1G5{|~Szh#lajI1+y)RMtlt<&_o~#H6VSo*APiXa95YZRaQj* z^Hr50HqwOV=@Dp@XhB@05q7HyRx>NUAWqa;mmk&c0LmPGlsUX8s`Q|s#0{5H+G>Cy zG9E@-9E{dz811pJMkgRLF#)#N7|IkTvz6!f_yE5TK9>_7XAQj7<#3i=g}dwu97UH9 z@Oo)1qfxR2?dnG&HP(#d`A+Q4aZ8-4{snK;6^BX{&27hDgF8lb07#a%E{B9qL88&q6H@ z!ws51jl%T?!0q;+u(%9+4jjct^OxYnxm*|sUZN0)XpjI^B(&tvWTFySq*PE>qmT3( z@=*Oq&IRa^m4f>Qw?OYs^$-_nf!%6Agv9`pkvt~=zuOJJ#|=+aEj(T?Y8|z3R#l_c z;YO{;i;E?0>_6|o?wlGN%B_W;N=Z5ZsyPVr(Vjgfqw3Qq3`zPQ@v#IvZu&Qwx83B& zt)1d=XP0=iOo>2Tlo_@N6RK)`*m$xWb5<9kxCV%^M_}~5!|>9?$G9C32Dd8^C0sl} zY(hAA6NVwel9l9UmJop^xF&C?q-^M$LNRGL+6*d)ks*ja02XAP%W6j|iPS(T-Q+cX zTcOTm)x{SvWK2M(Izolk#U9kbj6^0^Ry(o$_kZ!~yPv@yFd{zEh-OJ<+>{lE>RK<( z7P@fZstXPus~_-@k^sK2C6yl7BdzG&E(tF@-V>c#r^0Ly$!6SGpe{&ZiSj|w4g^GT z6R#0rACiLXh0j?7Ph~ayHPvubS7F<+GHg6nft@+ksB#14HD0*ATx5~XZG|L2Z2=5!ACH^c$Dv>A7?{ZSLUZ;bv@^))*hD4PL{NRKx9W5du6NQ#FpXs5F9!>Drh*Ie% z4sM}%PH)e!n}Z?HwbWcl6%;0!tq#r$&#BjmKEtU(u?eAi(1u7mumAuc07*naR2u>) zE-A0AX?(GtTq1{uFoM4C1Vu8^XN$ZDA(NQo(l8ja%-GGt` z7e4*r5Ptak3@U59=-;aoX8rG3v~I@Iu$4%gpmceVK^nXc$Qpt`!vdsG`x)-yAOXp5 zmbI0H;(|1Tv=(Yt2wrU@xJS+MlQ=?H>q_82T~ziGa;@yYk#pihQ!IfW%1JBY8A``8 zHVch%l@0EYnWubA!fV2N!jMnPDys4Lq}Q?M@JaaGZcHDZfjhe(<7h>kud+_#@ThO;tCd>q6OMxaDMi6rm(vL4RTT?!Nr85K70cxO3 zbkGx5QaHw-S!I!o68%R%044HPK36h3&NpgzkYsl6_ z^~lLWPZ;%dbb{%w!30_j#pzNonfxy&MUir@@{v?BDz+my9XgC!Q@B}I=pl0>-|*6k zYHZlL5A`xq(5G8_ZQ_(}l4Kf(PMpP#eTQ+&4L#AUaXsdm47V8a=NdJuh<^TyDt?F? z@yxkPcxKAmIF@q(8PR6E_i#h>ZJ!Q%lg3n18aTnRDTvqrW6tagrFi!BfAQi|y)n2? zBejnXmpB?hDFh-ddZBfP?0ThLiNMmTi&gma>Em=-lV&N2q_jW)Wz{Zxw0JN6*nA0B zBU-?m-VQL^;3IIVI2#c~hcNf~?zruSCa~Lx@y>;ah;b;47Jx4ReEjVmeEQ32R5?B9 z*`XB{e=!RwNpW282nLmDLJxQOgte+nmwKX?&|(u=Y@^oYq6}*z9lP}n*);pDqs{Bl z8VY0RIEACT(78a@3xk4mxdBH`WaFEk|G>UO$1rU0K)f=6bZe7oQahuZ3k8_)>TKHG zAvHM>kK8*9x82+aQIV2&LPr!D&8V!UBuNx)#I(WjQ|B;c#>d!y0K^-S~LH7Q`pVWBkM2RDx29S|psTU`?U7G!s{>NZC%O5>ODS zZrp6zjJ?!-WC6UBXG^g3uWYQ^RfckV3&gkTMn5MBdfu};Fsio=lOOGhglMZ0odt7t{3Up}tfHIU$1v?>o*NEo?knWi^r z2tw1q4|N5DqKCv~zIMwl%=>OR3X4mrkNMVt{qV-~Px5)QNTVJ|I8~F3dIRpGZO{GAaujV}iT2S&_;%J%L`Rr3 zNpni(2qzww+l$YBI)V>>JPIESc;fzHcbF^mDnF z;q!VC8D+=qH}%1UCr4^>m&h1CTDTOy{j&icx0lk3-DbrLPmjjXn@Mv42B*X2647DF z(p}j@shP8$o)ssIh?MG!;`Ni$s}C`04s`@eS2>*c{huvZ_`@&oc)VPF0>g(4#H$lW z2N8`J`IVwlJT-MDib_f)CBYE0V-Kdm#^xO?(YR z%Vaf-#+Ot3p;eDQKusz^bV_3YJ_Z%< zN?j7Xq&A>I zv5WsKLHoE;EPV48WF*@)B&FJVOux9i0Zg8=8NaN%0E^j#Pu`h=`|r4guZIdBL^YjW z50KAEi<*T?e!~wdR`V2Y#_n;kF?eh0c=YJpR$0H2ifY{Uz|*i;Ev#mPKt&jkln{?q z-+#oJC0rlQx&o$>su61^uO}BgBIzjn`2eA?w$A7z5-j_CJ{B+g1M9Z#Rx%Jt6WIot z>3C_vW9XdKB81Ll5C8q|E%TL^f{l_Y3Ef)s~~r*gc!b^Sr?I9P~D z6K_G3jZ}USLKS$H6RE~iC}ZYO8LGl@sCj_6g?hEQdoFdD@t z;y5V5ljM|_e|KEO+$G0xHKjX}vwBg2%HQ}i`leT4?u&hq5^rbjQ=xej_{HW_QRBhH zcQ;|p_IxD8Md8OUXQF$jEVh4jwZP;{LQbQZ^Z8<|-@03=J|nZTSj>2C?1LCFbRc8d z0C4Qgd5n2shT5Tn=QcT=wK%YTIX&MYWLAKJLYRV3(pO})rlFHMyj0|?pmTyHt;6`9 zbH8o@h)_Cs>q>>75FyL%{CC0w75eKtN(4}1q{4{SC zQjH9P&|VSG6$*#--Y}ljDKYoO3Nx?v6%40sNs0*{$VJu ztik(VevfUt4!}cCdto)K=_yJ0-{djql+}VmBH_|fihk)>Nspkn=FZ1gOaDOq)L4A? z@iXYyran-61#n*Bu1B7BES*=trpg9Qh-=HXQ#f=aACsQFMeWZd+7j~X1gWb$$h=1C zL45*IapbSKB#j7|j5xbyJ(>*a$MTQ_{G!*0)LIq>3~ zt=N=fL~OS^P+L}vvVCjt@`Eig>EX_>npDWe_D775&3)Cz^LYM)?WlDDQ=fep6UU5X zt>Kj)w&tOFL+w3u67PQc4K5cJQ{hKC%XMhg3^QMQ4sp>^r-=aY@8;e3WWf)payURv zxk-$V#q<}RMz1cqX1p>XX&6ChSw(eg4kl+BRAyYpsIoQ-pAIc_s}A;DDk#RcKd-`n zn|8wM^U@cP{PX%5sd!@42n_1qBiM@9KPv$Iu<~Dgw&*8H+zIiqnEU!qqY1e&tPy!7Ud;Gx z6Mo-aj>wib!so1n?aB^(I<+ru>)VJI#tYAx+;Y#4TDKq5Kiz@Ff1gLA%vAjJ#Z0tp z-cVuyZkL2GhzXDGJ9HA8cJ4!s(}~9Q>*4mB`ynNnHQAB{qQ~pQ;p1m;>U zM!Qx`S?4?Pqd@Uc_JCd$sK%}AaZ;b9?veN`j0TXTHyJSxDmiLBcx3#mxLm|DDoLKa z-;Zt`v+(M3PoQ3E679mKX?7aIr%!y_!ycN5t7R4RMLoK-!$)tvz$7~-MDkqHQsk3` zKjGl<)BNN@1FR-9`t|6D=`W0hJyL~4%-fHwvdT|!Ybq(037E|BeGF*7)biEOb0y9Ks7b50HZ^Q zNC9kVD66Qz%QJq!Z+j{b)%I3+igVE3mV@tR4ncY%Nx_!toCP!S7Z7{k)-k`~T(JX> zj2Mg$-@``l;R)JGGxFCX^g3ko6O93O9SQ^%ugyH+q+c!jMT+EwPP z!l^C04q?iS4`DW&=|Ohyzy1RH_v*;qg(~wA$$9od0bY1>E}1Kt`Ks!mHsH8HoU8jWN^b^q4G z*m0&B;~(n@v)RIXh^na!G~!EFfJa*;V@%}f(>)LoQQ-y^n?wv?M=egR-H9g6k`UXj zJ>N~%nvqFKH6`0!RsvsbEh6g?M&XRgp^NO5qGK{f0A7w<~LE01^P3Pc39*pW%>Yymc}wRpUlFK9Ht5FQT`_h1qs%xXeRMot%>LwSeERJ#=-Htu7QQzY^)nLW zhA5n>0ti&+0B)vvgng;$DsMDm&g|dNx?^(;ACkq=8x;2_i|oP@511kVcNt|e(OFIa z61D3b|3nniFs`7_t0=F*o;BOiqfH`WJ9lBtd+GN=O{?`7K92`AXR~2%)C8tTyX*kh z`pPYFfW1CoWd3{dc2dTF@Zb?V{mK&Lp$QDpNiY}e#_t~vM(0*ZQXfreK{&K7uXbbd zdt315)?D0ia~~}D;B{C@agRb^x~u@P^Qv7gdvvu#FBmwKk*f#+$=N3{f$3KR9Zyz9Sq=6m<^!eAzuyMy;8ch^G5mpOEKQJ64Zo3f) zaqP@0A_3Q|-Hzv8{}2X)AD_PQAO;WYzzj=qNF0}F^m15-N8xh2 z$ms_3eKwm79kN=&7C~IjGL`C_De5CayGlcPs>H%-nO1F#rKo8xhy~W-458c^X@K8GJy{(}WStbo_!LsDWK7QFu& zGSi6>$oBR0xmZQd2 zQB7fpNJO9}9|l(e0=9G@vVr0;@)OUJtB95xGG8X!9cp2aUuo{XaP@Hygu#HEvqkve zqkl2`@s_YRZVpQVbF~_%tw5f@^7|>H8m;h_7oqCJF`By+k(R*;$^t|+hQZ1-A!9tA zMc$hDQ^qDnA#J!^<%Jxg*U{pQ7R^P)cSD8q(5*ZyBw3A zd;qUJ_arQmt)@^QohwjL>A-8VzrcZ`Cs_%o&x`wp4aUT=qYy#pfd=vn`1;3H_;wjN zafic5nz8IhzwTWyd)fpItuZ2!A&P`5WQZecP#wK$w1%W%BqR757)}3m04OQ1!jcth zuk0LVCN;4k+ z{BH|>{{3HEEiL1&IUw3@qYaxzjTnOZ8KjtT3V}oLRx$DItDznzkn7AbKy5MLE>@%mnZuqV`Iz$d zKlo&H6SV2t8WHt)+m?uAz?wic6THkuC5zorrGT7G@hcsLu*R0K|G(PVv4!favHbyfl6^ZtUF!5h6i~OEhv3(Go)+o(!ACfFD1ffF2#2uoQ=yi!k_{ zKy+h(zyt0qr2hGeV}KrN%WF*i!KA4mw@=L>|Re543(!C)Zmfi|2Aji&5t%? zRNo|wxxX_a8}M9wLhuB~)7oMmZQes0Jk6LJ@RMdl{m5T z+YhN1E||L5IxP5pCBFUncWToRf+pIV)HIV4%=_;g#A(5ZSKj^vTlXAN`ghZQrv3n; zB5nA0`Fu@dFfkj&S5p^LNP9Bm!$||ez-sj(8 z$DTv*@~&!w2lT}oFFc`O#!nV4!%r*!qCu66v}DYC?|(>1h)1p4jrYFz9;?@Grp;ch zW(!(1YlPRQJdOJ4LfUA7AIZ{uc>Jr_w)ZH;jl2=BJ$EN;7C!zJ0mF9RTv!S)RZ2706+bC9CPPyL+f-K7EbGfs3y%> z`K2`lhNwpBCUH}ijz93} zqak(rH04vvQz>9BwjD%P#e*E+qv~7__r8Im_^|&4aC#YA%!XSksm)Zre zXTlJf$&A{nY{2WlH!Bb0g9SS%guAJKbA0?Ni2w%>u*5K1!BdLrlSdKVx;=F>8VFNp zEq%qq1IHyAbw*rU7%b5URGs4xhB7Z{9E9nb!Oh=@oW-Leu9RuLKI7xRBeg5!H% zF2=5Xhbg`%WtSv7;JGoQ5Fe`s^N422%`c?Q#c1DCZVS{)OMz8+wj{$tKyc+-+0&!B zE{v_f$cW8XK%k&Tz^dGoHd;3z@uxHZ0$s8%nh? zzWm=8e~L6xc){;o@#lJM+`bQ!#y*IqjWS^2ZNCK(DDCSEpy?A6UYU(`+xOz7vA5ub zaf4xSBw!fT|pd{as$5|9y+lqCqP13QEwe zXA{hwI)EW-ksjgkpz72K#J1~5gG|&8Q2fa(N1qy?-dY4mtbsr`xFD2};9@l~LV+gpbP;>qqzFT$> z<6gWIR+}A&Y6ycZjR`?A1_Hqx1%S^XrG5zeoXNX?_T=NyX&b5Cw&=C~7(TEGYYsqb z;Di^8AIA!yu%rf$y}k~+PZZ<#MepN=-s+)%qKlr`%(99q>_2iEXV2%NecP63-=-O2 zqDVF>54=fa6z*5W`>2=l8mi}19Ev#4!890g8_XytA1~Kuaw{wG$EmB*t0fl-;al$c@^~% z?bxyU9YlDq0PYfsn++y2J3LxBQIV-cO~8n>A*8~P5#^#4NAShBd+^$$1M&5rd(g5? zGCrI>7_{V$csno6I%wuBl0A zr*A%pdj~b6aKrDcp$41T&hp;b_Ost;SdDuJlmsdM`r`6hjDGQVq}ikJ!PB?m$vG>L z-XI!ZygM958Wm+&*Hcjr$NBS!>(Y%UyBQfYBJhg1ISI!0dno)6azqdYo3YxoE5F!* zaZ`T9j5~VZVtEagZaahzCig<4PHlDDPh5oD9V%t}kYfI_qen4s)me;tb}-V@#HpCf zk8dDJgu?I3DL{tKou`4tt4?6r7kiP_ zqA}L|JddTWC|(x{whI@e0;Oa@`hTHt!NeLu3vH-|d#t({>J^el^*S13sf4QGu2zHL9U`gf<7Dymix z0X?0Cw^Nq1Ci!U1hHOlGe?6AGbT?XMBw*6~zj39i0xQ3J6h<#g3n0YnE-#1kTn^&8 z_TT{{wHYnrGR|xy&LE6oo`xYLqNw`H&aJ@s7gu26lY^+Hn*99+jJYip!yX=@27qW9 z1uM&B_p1$i$(S73r|{c9Cy>^<1#THc>aLkrgI>?a!1kWy9Ak1o?DG7 zrw{XA?T4FsH&$zyIh>-wF&-b-b+`bdXKaSu7L7l@{|F5-3G9;7zXic^cGLIo7w*~+ zkVQ@z)6%jqg6jZKdRZD)fCi&^#S0{I!nG%|2eXyJJoKgf&9c#4CxeUYbpw%-leD=l z>}`yW4RF@Fap%JmaXkAx-gv4f#@^i;q>FNHZV@)`&BLQ3Ix!5ajEzeUA*IB7h?FEr zW-c$@{&W*{-@iNRMv8|&TYCWi>^p^(3r8WEbap0i$7qDRv;;LdXA$46tI|)Dy^BRq zS?<1YBdR?Q*mAJ+V>-7$04vw#V9jqwFzenvv^&FR8xNzXyadmV?uxXA8L&p!=y_ds zyA?K@g+Vb1ViJaTmz5%W=OJu7@57iUZ-gz>)*-kcCNuZF{< zN+$`q1UW<$si@Wfa9U8MmF5F6GyYH+w{z*bcGFIbfAu}Y+5K2C_ck=njH9_l-!9*W z?wuQ;V{2vzs%)dx!M>U*n4)4h7B}ErUIku!<8Qn|cNTE^UwZ|^v{T18r$&4Xr z-zuF8b_2W>WvDunjkr#oV6w1w<+9Y}WUg~x5+jlm9X)x5t=%i{Z2(H0XpxqH&Bt?* zS5}3x8aLA7ENI_65f<({Pe_bHlg7zt->yEIHA&%7Q?3mIe&nv-j9+$_;NfwDke(8& zQXdxrjEIHgRHZV}EPk&WMym~n&s@c=<5ptiZ7uQcbNyf^m2dn~#x$w`B4BLTQ@`S9 zt`l>nO~8Y9-zI4+WkL8avfZU?uvI5|&=Is=pz6SZ_UkarpkWLxt*d>31i>o3Dpi%L z;c$5XdIkvbomREgF>{4hIfH5I0cqvXTOTaIf**dzlOtMU)}+2LA%M#zPQ1Tx8>Woy zi;UE0r2`nv1L8SA!uQ}T$b&tT<+T&q`1+SaIDM=LEi)6b@5ludmDix!?L$e83nK=% z!c&j*LTW+;m6X1kN>m&_iMV#{V75nb2H+dZb900NONovXpTE`tSgfqQA$hMk0=M4t z1sqO4NXpBon>u1ZRwKN(VmmHZR^ZFG2EiU1k6N!Er_Wr$md&SeDX$zox;4Usqk1DY ziWJWo)&(&WQEcXq&yy_>`6 z_u$H|y+~@;4mNUvx`02*0&{6gArV_)@(+P3CYz0QXM+KGMKu^Q>Kk-xnSogk_eV-p zGy*<9ax1Ix?EJs*+_*lt?WWc|O3m{8&tANWWxwo0eqIUgAK42%IyXe5)eL9u1#H=P z90#v>@yaX16^JDg^917yhG7OeOFVPrUVuH5#7NATzx)us`f(ptd~`dSG$Y5ZGIy#t zRfbKK;i*L{kK&bi`|0?qzgqorvE*A5IO# zoV*I$Ghrph-PaN0AL_!4Q+`?tB|rrZfqHR#4hL-YGU0OjuzdA#Ec|XKhW2QMTRSyF z=i7(FP*o1^xf58v_aydTF2bu5`y)HM5N%tgB0fF}n}1!8Hl11^wJGt@3(Dt?QbqfT zj867JZBY?DoiZXRnQEP-YmVaE#ryI3xLeUIIS$4qS@4w>Ay8h7<$F(IbIv8qoOT;h z<4JywFs=*1v~hG{E(8x zhMD#7={r-9k)F)3xbU9I-XfWpc(L@$Gd{vM%huq_Y5j5kpypJHKl8>v*s}jJ=1%E{ z+Xjg46T&EE#W_@R84akte3^E9HYFzG=T(QX;K%)V?#><<+@UFKF-b6Y=tFyQdXMkI zxx7o5^4&UoK4&-@rm^}4;z?PxdO1`qjwxq&6x5|RnlYP8=-Ph6;!P;JlniPoIfM&!EQb zgts@KZ+&3gqdgFjoT}JKN|Rqcx3iZj(Bt71=+nI;zWL~Nq$I1UCXzH`zw)?;ILt2y zN^?VW+Pj})gnCz^m96=k)ceVdke>*Z$=Z5IvG1d+(8Ipl%7tW+{pgSkT; zsV*B-d?5@b$)>9dzLVaWyAERJM+;F?<7Cbb$$O)?=KwVN{||io=E2bf)ul zkcLX!a(6$NBE;EWY7LkiYGJNJKO7e?QYMUU(i9~XwHP^mIi4Nd8Mk+C33G>jFxc6t zkF-Vmt6ww2UBg9f7bX4{_gC@HGMfK(@zZOKE0!H%g@hAQ19 z)Od?uP5)$zG14z4J z0ot@~j%5qxAhRCHw$(Ztf?za%h=9j3qmVUwZO%Nb-?B?nWG_g;M2?8!XE3*DTpzPv zn~ZvC$!gF+101xeISi%>8WvG)(Q8J@1})^=X7JU+s@5yA^X5?Zv!b zj-hF~9e>Wh8woK)GDw5t(uF+U?{T5}%xT!0wZO)G`8a;&Doj-YJaZE}oX*s)H;j?& zbQY3x2(lji9~E(d)1XRvzx4$S*=Cni600|wpDjKTsY z*;Ro=eyyo;!guZjj-0-VAGcq{2XpR&ogR3hc9vtiDl`;(06j3TstV3a7ZKf}6+Ic} zhgHY$;a9t`VMZrJH){?{T%4qxIr9;*X0o8|kcBYW6R>*8r)W&hEEel7yTcW2$l?Sc zU8Q{eR<7QNj~6XLjl)UT&B_l4S0c>fpl}#4WMCh>_{<|TYgBbX@dwGwAj6{&_J>eW zEER&wI397~L7m`oH;u{5H>0Am2G32KLoq+~esEVGowGlHZk@8wvrBu*waLi|$Vg2_ zYGPb)zaYUidOaBcKL7e>%=l;#CXDQW>0`R1u*88;Q&!{Dr7Co57LCIv%E$U0|>hZx553{@QAs+Vmfu|9mAT zjOl@4gGh6z0KWhAFgC3_j5qFYhDHPXsxW~|O1jP>CO{a#<3-hJ(uukj@m+gj@$&uH zw>u9XjUEDX>#i`y3F*lQn@V?&8}2jvv2x>Xe81rk-hJ&hbZV6<$yh#5vOT0!GUp6x zD=RVe+Z;@rIv6dQr77MZ<^olvm91BJz;fq|BKN$dJg-gy~a+qYCSv%=)^du64>Hb(1o5z9i8;lyC{ z0WF=h*D?UR>CgYR;==_?;36lX(1RO{G}(mc5p)B_Ih;KkZRzQlc1;^oXL`8dM!QjMz?H zk&{z^j}{)l8xIUba483dnk!T%nrbn+ zQ2!#oc|C4a9^8-E&Rt=$Sa7-6fx9RDj$2zrVCsFXU~ko$o=dDW<`Oh+2w>#Y|M1_g zi`e?-Vq~=>soOe27X(K|l0-EcdQ$Pa_5tiLi>u|8cysOoT3JRCEGZ-KN0DxIpT0dM z7-OIUkF0U7l-QEndp6kceK9N>Z zK#lvuoh2oxIeQlIS#9zCcbjp!JOd-+cz^6_Oj$??Hn)vQ!{P_22toi8+^zPbDG64jb(A$tfq!*gxBz7TpkfW@~ zc@AZjRUD+Sl_g^Cmqi~SQ>hgR`?ye?skylB6JnHc^Ivp=x}>ZEugv@mM^0ud&5Q`Q z#>K>7`twiXhMt`yd?-176_q6P5L+-xc*5n%+5J*}A%>5B9)6z#%jXP2X=N=QowkXd za(ML21-$%77A8L2g-QseWgyjLj2Xx?%d&G&mRE?3W*K@sC8Dr;dQxDao_-Pf8mlX9rJ%UhPNk;MoK%9O3dtp-8=VS>(+f}-98KbdUr>p z-A32a>kGhBoD0vzWB6&?G5oRZDBgT^2zs|q=OGdjm?8|24e!;fShc?tuDE23dAJvI zW2){oCdIiBV%@7j8K7eCZbUV2fr!*J3f*4+WDEY?rX}Qu2l`L3F zQX&@4osNvuL~WBSh4&;YS&6#~CX=K{Ab`WiPGj`sw_x#A;lD*AFlXToY(7$p-aR_w zhhP83tVumF_O2{7H=kOHB-e+9v%^@B(`kbiL!!xDMTC7ouP&H9eUi=_6e6WZVMf8HS|}bO9a`cRP0qg%(dt58%rC;|iPLCb9_1$x zKx%RVe*NY{-s?v*JBee(fFuN_GkD0#Zr^ zF2TDKdtmI{JR4G|5rqg@WO3I&JK-*`#<7AL{IRzhOQ+tAXtNomZXe$KZ67T0smL!V z#O0!LxV=8a#YUn-%O)7mw+rg0CE)1powNdN(mf5ad|M$N=+_m$Z9NHlgafZkxDkmB zNI|=LP#!bf0>~?_!9Pnk(0u#JUuR?7laHbQjs0j4@6fg#xazZ@McdZ+`IpuB#l^_4^y2$nRe0^i zL5Lw9F-dsI0#VTb4hJd@9iV}**erI6PqovJULzJ^NaqAh9hQm2_F1sRCGf0NJ`fnN zXvJZ?^5p@%|G)8g{J{}IbxU;@Iyd0;Ae1oId3%U}jJ}37I9vJ%~?VcunM2FvH3*Y0p@gd-oMgWMUDT#a4r(w&E z{TTbwyJ(kT#N@HPFz&4l`0&k_aqw6UHNIy~=!tRnwgWlnigS7RVP%8qVr|3Ajw13ZeV{r~># zruSY*NJxOtd+$g`6cAKYq*oCTq)6{bFVaDfBGRM?DoRxZ5fG8yYaj_pNbh~$=bV|@ zon7Mp_vX5uhq#%YIdjh4%l8gr+~~pl{pX*YI(3YQAXfr>Lg`W`l9~Jdq-`x%1`lhm z!pwEPmXiwrm# zjg$%SCM~y+w9Fjo0Lnr0B_=6QoQ%czx!4mK?#ZMPEvW36NnuJV2|2}l^G7OEK5vV! zx0`wHnlw#2lqgZzTKYG995ozaS6<)Ehf&rdJ$J2MzREmUuDYTg?(ZfRm z*}r9(n)tG@!fff+in$aEK?_^`Kb&Bd@HOOMc@ur9u>p+%93%s%4vGPyBE#6eW}eEO zHjaati*$@-8~W6qWiWB>!c_)OTtMA$Bc0n-X4a}dxpm=JHf-C=()Bx;*rzsM45?3H z@++Kt11%s=TGB`WXZ`dy>2a_4=2Sc#8dPR{mxjE^%%{Vw1LPDI%Yrb0cqTCMgS=fS z6CA{?r$Qqn<6|tOTp1sxP5z9NCr@+z%HKE`?btE3Kj#xoELgLXVckM`=iO#FIXUUz z(G`%b1xt<+ zpqf_3f((oWS=f~nO2%}yGvQ%hBKvrIHVdF@U4ifhoBvE<(&%;s_`9n;0E!0GVAi#a ztdI(l#1*=u_B*)J`wHdCYd|D&WnIwpZZV`q|+n{Sm*5F?xpZe6aJXqx3v8mYaO zo3KvqzFrDpmd>_1#l~b2;7-v(1B}B_OjK7`UpkW2Dn;_m$~o5DX?0&MN}#L!RF2BV zL^5&h<~{n3nN65i0nHjka`?A6E}z=R=A8$az3gi~XkU&MU%Wx?vnRMliV&c34;AoR z62{TvH@SAb{CV&jy))N210KOH;EmMuH!)1xvy-mZ(YlY`kNewmQL z7xR80J~5p&tCmt(#LUIqv79`<{`LoH`gr(w(zj=4IyS9CW=;X)*8jq}+p)?N7zs%( zdYlayi}SJ1Pb0{sm{(~Eut51hH>!qslADu8<+3h3O(|jF)J}v1DnstfE}PZ1Dtn(3 z{gjO7v6As!%Z161uAs$NsX2_EeL_~hem$Zp?opMbnPfr0fPWt((_!cj^nLG5zM7{X zL})V0@{3h7f|U$@Eh%QLu&u6r9`}l2>z)?DFS`k)_D&^(KO*27j>dt%+`V_UrgtXd7b@8GK zv`g>N7z@*A)*y_mq9C@ep38wBPcmW7DjHXEW6$!gWL&?7PlHBk@2-CXko z#N7Ns_8vLK!6PSG@Wmj?`YAZ3%MM=R=%q(YAN2vQuC9E(;2U11W=n_{Y5$fK(W|aM zS8w0r#j7+~bvmeHbv|rXnP09x;=+vwtY7jDp<4ZtT9TrMja1R6?0xqA+Z_AzDYYWJ z2n_VVtEK{ZC`_(hKi*;K*MG67cLZ(QR>xUXjjEDXFv;DROj`BcL#MV)`F7oxI@??= zfYX8~(pJ{BO=<_M54h+pf>MO!i?}3)PnbhmX13bvt$_Fj`g-%jj;|C3_^%&xeVLL^ zQd~2A^Nq*@=%YY#!8YuylOC2ZrQ+l~dKOQwVdHQXwzpayEYz&Pc>j9EEakw(_w_dU zYmTn^ywaQ)5neRd(X;<(Zr;8_r7#Z~G-}7(DW6KyXvo9`c-rUj`^GmZe)br*%GG2~ zu#EJnlU~HXckahC@{2>H7r>fN-s0%h=WITGivS-_)=uh2Et$+QkXqtGk11Q_k~hp6 zj<2@|-9KGSVr~hB;t~e82w-&ou0)nA%cU!~s1_B0r-z%2fStW?h4mY^)1sa~{dzaS z)7_EO^n9i)K1quf9q9L7XS41V_dojE1uBLG6X@!Q(b0)42VWY0FpasN_hrzB?a9o_ z<+FL;aPar57#&@32&+QDi+faXE1^%DNLGG#jDq|^9PABD@70_dkwGlqbBxssyAf8# z)7-0T1rDG!iyG}nx%3ySkH(OdSICriE8tnF5)NKsTD&N@D`e#KpGi+jW%JaQ_*bf+ z%o9*UsE^~aWG*HwJVIuJh3b%XKIV8vX=U!VT0%#)k|>pkl@&jjASOXDz&r%fgiMI3 z5Q@SCQZ#_@4J482BC$46MjheX3UNymNay7IpD8w#gN29QYw$Q6orLqL+*-t-t5=TX z>t(Yn9=c+aSm%rMddMspbljEnhoq;F52M#s@(-~vb+aentC+RaiS|plqvj4G!nj z)o4a6+R5N9&6qvDuiV_vW`E6&i!WqIvbI+~-_7n#m^3jg!!;DaW#I0^r+l~P5JmY3 zeE3dnqACV4cll|m*K9%mUT<0^(3F_S$uGoMkV9di373%atoiOF%Xc4V?WDfE)43Tb zY1s^!vYOLZ?qhIp!l7I(ijrb+|6l*+?DuQ2|JUF7_ug}*;{y0A-D==dv4R=o_wn;IrYt;0B5tKIhowp0+<^SwI}1o?^9O68#MJWgT8qLXxNU6J8^8%jnK z4s}9OCjF+L=I@(v+`sS>fpW069wO3~d^8hUjSks{B>%&N5#Nf5PiE+Zxum9LD3d4E z0W84*zWlKL|1g29?rY;At7e)_6iDMF{WtYCljU=t1Zm@Yycw%e<;as`TB2JxNaxI+W0fBgTGvdd)4YV z{11#(Yf=|dBQ-sjX^T&C>E9R}JiK`npD713&-=6|y}NhBJ-jj|qXTo-e9y9Pk5VZ# zfVrbT;OxcgtUvU-LQM8f*!#Os)UE&kAOJ~3K~#n?vO^VS_G^g(US`L}mo}}MsLxZ?e5vsh-G{c$sb&I|VkX4KCoycoJW|pH@UU_Z z;cu1+@Z<2ef&sMqS~?8P!p}^RHeptswWGrZ)!7_YlG%nSboYAv{3Ra@oghsh(d;7R zt^h(6wy~lCwAoYt<)zrz|N6`HVKsqBketEr33CYv@@4J9De}r^FJ98T+aRh2*|TY2 zImA3@=kRj)M}(PU%tGdfdZJ~U&U5IOJD8l@ar5%!(TkVN9PuuL`hSG8cMyez#Y|hV zi}eS7S3tG$1+=;nFP6THz@7@NPP@v1Y#Q|jejWmy*=A!^LerQ*{5>%_ot&H;IsH&I zp)J0En=b|j7jEBs#(NXj67wn(I}dM+0pS$I+{2WeqGYt4J+ZIa3{!3vg)tB5-nb%b zCcMj-sY^I}@hWdLsmYX2K48wG#e6mUZG!w}rMgjb8Xb?*sN=Pu{S-i@l=38N-0V*k&-v9VuSDu+08>R};61~!+F-`e|& z`|SGRI%~IHz{Sg-UhlreSKAKJr+ZtbO&o=tvzs(W=B(b!%3UX9*OXI02zEY!H ze7qC}P-=ig6h;7LDfK)#(a-q)m)q<+mrBnzb@~3}CDskANRYdu?AsQOW@dhgY?3Kd z6`Y+&#(B6CT&o7|ZpvWm1)DFka`#Od*RI0Pd)8wt6-dp7kX}1?EmUeDPz{Mf+uXQ> zBtDt6fLF<>R)YY8{eAdh$0{8Nm?lhLFTt?T@9TtT6$MhwBFn06RGA(kLtOMYI-Xub z$14pCYCXGPfT~gD*s^@KDmk^PQk^Ezb5v=ZuP>(3@1aQyV93JL!&NPhHE{274Da+G zO@LEAoBD^d>gQ;Nk7!T5>SZkBN)1N-xe?2hg~u@&-I+gqG+(aUL)p+EHmsb3LD<$9 zSho2H^SAzlqkk}g4V%l)Vt)QkoycOsA-E!;-X0v8{SJ}-s+83i{K~>HO_So*?KYw`wO;ekiBy12MGk$LAbnUC&B!g6r)B%(_%IaMY%?m68m zd9rG9Z+7q6&-I(PSop;t4*v8T&z@aj%BL-Hbx||(Vjsl>8C75v<>nFd?{$W*x<#jk z)fm#V1H+c=BFZ5v{H4dzFCXKQ<8_O2V3no0{vDY8txiE_Pgf`thrGNAg7{+d#Y}m=_t=}`GnFsC;ChjJ~+67&4ml!un z7Bf4ykRhKRvywv>q?wFM4|`w{ro3mSM0;RS{*9XuY;4T6Ib`_ zBt0fZ;(vyB`3T44L=KH_ON5`MVYDIFS}t6-UUTAHaUS*6qLL&WT`{@(@FF&e&O;WE z>Kjg(S~c+t@FweJG`D})FPYCVFr4r=x{#ilPSTy5eA=cmb4I_*cRP0D=jqJbZ5#2$ zoHdjWD`Z5U20A9R4!&hPd&Z6f*Vy`7JgbIxp?Qm@9Ju_1UEhAo%E6WJb`fKvjJTGI zz&S*iY(|PQGGtSaoxKsa%2lxw<62F{oWByo;Q4=&`9FAkumw_F4T;{7y^mUHyl0LEbpKxbk+dA<XfVbOeMq#+N zm3x_#oJpsVzw#_0mv=g~VC9_gc#3%iRszksI@4SzYNgd}>~kyaFW_**K=s9v5wu$i z1_%uB=Ex4=1L*zC(rjzp!}MgPK2~P}{kNm=y6#XSI}c?Tbi8zerJxlLFqvrCq%MnR zjM44I|3%TqSrj#-^@Y?J;hOU}HlCrQr?P2DH=@Fox*(-G zRcUM&PHW1YTa4Xwle7#Y8wRxDNopR=-g*=Jzz8~ae234wm7`I452-zzLqc$kh*WFu zO%!Hjk#YU1Y?E{;s}0OHF>>k=_FhQF%iWb9wymUgwF+hltqu3Hm_9nH+gU8m{C z-DLzsHu;OFWQmEi#5C%cq%y5jd0ZT{Y9mXHdMQVtY=OQ;UgCtRTO;UHK()L1@+vKt z4xg;VyUiPfRgP4aWp9UvgOT(i6Y7pdAD&zrgdv5dUSBD-4Mr+ioE}BUwXIjrd1VX*q&3F zVB8`F0|=8yynsN(;nNuKeiZL@uBMB}E5(U9FQVCg;5r+AjU_6?iB5H@F|ctZ zN(}Zm)oYHyFO;{t^kh_*P#RVAl8&%*a3HSbD@sYLCAb8zK=$JYxJQXzVTA#5U&is{ z(Ho4}{Zcl|FPZ!a13r4^wK;O7h&)}ANByhS@mg|E>6ux~T)K(NS8tmGEn?pS{d`zD zb1YRVma_m4m-?XB6@=d9wTwws4^-7*7Gl>lfjQ=_uvk%13BxBY;LgJ*s>D&sAOsZR z;jJqO5&fEKeUK^!)p`wEqF0fX|6>D`#g^g}t9+$>Ei*fpW?lM{l9I;G;gQrXs|<_& z{a!koPQ(&g)}PTsno=&aP!6Fv#?IQb}pJBsu3h`;y`OHU-S`%;EP`}l6nd}`MeKGlCj zI@G;TAfB^IJBEG%Nxmc1N2dP==c5gelHZOqW#bnn#K@~qM<35^D|znOz` z%CmKIf;I13cNg@^sqC1k2WKXVLmyw5;gLvJcAQ?JCx#Toad`&w-0coW7Y#?HZw!3-jXG zZx86urZtmB^~0zYR0);u>`tN4nZsvpvFp-P678Jubaf@f+l>#axY40{fC|B)m@*P- z#Jnc`FgIHQ(3(+{-O~O`MmEe0Vj?@ggg>rDb2F)cA}43u3?{1kJJYP9H*U_N)LJ}D z$?#_87BFq;W}4M;<-@nCnFW!lsD!wOPuYIx2B)s4Gv=)_v?%Y+>Jzb43a-Eht!ra1 zkT3$va^T0)?EGd6Ylc+8%}G?9g3;9(&*}pGPD5c+4n*K9<;T9jC8DCa11{~#6=D*z zn06qBznwdZ%Qt*WZhpQJ^ijjjV*JwF zi6aOO@c9qZ*oL7j2c_DerG-J|nk@@AGmLz&NRXJ=|Kmw^eE$=f+1ZMa7d0)STj_tb zI4kE)q)rV{m#-%PK`6Q|A$>T&`Z9H4x`?aUDJ~^iplYp0Phari@TtTnzG8Y8e|k0Y zQ+t$^4G@nLbHJXb6)^Fzdr8r4Ly|^Xv?G)~$!V#7a`$Op`^$IoWc)vYnHol)RbG zo{=9L%d4CchHQDp!=z$b*005PUoVu9hGxS;%@f(;{8$maOa-Xm!YXpEcy2~^E~BO_ z;(@@P(rFMOd?Uj`7}oDSn%1w0y}bqp`5(4WDa@tL2hd4>Eoz~YQbonZ{CfH?emeCh z(J$giNln8}%;M77-(p*;+#somX%IP+;a?(m1XyqhRUqt2ED9TJuFM9 zt^!o0mJy4wMxy3kFo5`1JV2UR#TbO6tT!j^?TL<0k=bLJmEi)Hk*#iXWZ$ZWOnPlU;>M9ECj2NkfJ<3{wOfdI`iC)jM5!G;NRK7j5o z=5;BbrTwoKTR0;BT)U-oeTlhks?-zf7D&(UzSWKo-|4K3!n873bT6q7aatwSv}<(C zV%}@r-%4TZi~rtY$hf(rrlhd8PZ+H$yJP3-ik*iCg=y&&3%EVq&+60h9QrE(Pe&u? zPwvA|kR>sIOzFuO+`W{7wPI!19um`EEhiAa3*t8`M+2sUJWMG`7z2VqFn}alWq+() zCgpT3Z(`|#mVc4`t}5{t6;hI&sW6m~z(V4RhHz&WisNH3`1o@_F_R^0cTh3XfhP6C zdGs`y>v!Twj8CIVh%;>}dr&*VL(WeSaebGvp%kSg@!8k+`LK5%I(KX(L3U?~67#I5 zG%DjrlX?L%f+Ud_FyT_Rtbz_FcR*RWE#RVf(c*$4;;-DmK@0{o8n_jc%e+xH&nDjF3G_ht?2GT_7RR1l+m9PBNE%F2Jx z%&O9u%tD=ty0q@tQA`ExGizoL5u3L@`jqSUpYrJ&zKrb{j7ymyoI^uolSxiYEIH4` zY+xmQF6ivL3$NJrTO7Ww_MG{3H->^7N|IhulAn*ApExKZB}oa`1(s16K!msi@hg!J zX^KdoC~bb2&QH{$Kw9^a>b#ppfY~Xwlm#m$q#*uc45ngA^7AN3h{G-@1d~9Gj*Z5? zLKTWrljJ@;$Sh{U{PjGIjwLj}0|ysZN(!?X-MK8~{T=ajb3jHS)utdjZ*PhEkbUn4 zAI-har2q9cH*ZpxFPClN(e(?AdozqX_g+!Ax-Y(7!o*Y7X7BEXcb)o5hn;$SitVkm zy=uum@!9DUHzB|Y=ozcU{^{ZG-NoN44m1kFhNpk zI$z9R&F%Y-q}q`xNR@`}t}YDk`#$YkHN@LfV8!c+y>xX}8h2ZL%eJ0GgJ;o6jf|{Z z#?M&F4=2yjq=Gx^hEyV?YIz(y)lorWvSVf@nfLBdk}t-g3i>s&>9;s`olU^s!+}43 z*@Y=5oubG0B$3Ia(aRVNz5yU?TuJmw?TY}>RkW(ol4qGdBYX^#!VfY_Bg_`dSxd=j zK1Icnw-^$t11!X}&;TXHl%%I&5Q4GyBbbH)|s%>0}Sm#%W+m!pj797e6O z9z2Xr$HT*c$g-l3K-AoeaZbhfHfyF%w$W>G)$v#CMagN`?H#tC}WcIVCdzIeLY zk!vzA<3KDY?_?4b5Wu>HQ)t?-CUzoEp;5cu9ML-`?)fifNw>v@n3#{MMNPI^k@S2T(7vv6C_~vn7P}rGIa#^LG_VEto*Fv70rh z!-xUz5mml4)Z|iZmr_3}B?q9tPTi!;tQ;1u`i5^0{z6!QBg;Q)NYna}YWcE-yov?* z)6JW*14`AA%=_^Lr>>2GStHLz=P~S%tD`s8$sp1k$5&t|fR>u7p#7W$v1_8K>^E z30XNhXxcH({1Zo;O78S-;!C3_Pf~M=*?lRQZ_XwY5E#saPd?^@9-=eO=J54`+SVR2 z`+-LG9XZK&2Y=>Oa+<1@EDRvVHwnLQ^5{Xl+og>z2c>r|bo8xxWEKse1?N;*tSfJo zW9?%S`0MX${BiMLZr*vI%@bGK)D(iKQ!R=wCy&D4*HdTj{ul9=;*$SAFIB=#;_$~! zU&{AKPZQ#8&(0-Xu2ND^C^tkv4)$JkhnSQCoG9Y**@F_2 zTpxy1dQ25xM8bhcr&sj@OL2C= zfquN*p|wOJkBTgdtBVRxqeCj!XUFwqrh`YW1zNZU=S_sODzHRM4`SSXnOPjiGfwGXC#*784Ieg+Q^(qIjVP;z*g56|7 zMxZyy6us`Jq_BYWYu72sFOUSCkylLHxi@fiG-4SFon=G zX(XdSD)O|P{VOgr@z>>B%$&V~{Jb2T?d@n4=1;qF0ry$;Ai3#VJk=6s4BU@SWYvlV%o^L8pfWyI`3TYWXy@vN zldqrDUduL}_&jDFeo1tyiQ#>FFkwVL zTwR?l!pF)~v9=*&xJY$yPa0M|*qTY}ZoG3lJJs5mfpRxTHWyf68>g;(4rgf zJ&I=Dimy3+?r*xbD#yfu4X9Mki~N)nx!Dfh+Nd672L#Co#z?=Rm_Wj2-g`NT%_rjt z^|t3_Y98-)@5HpR1F@6XGWsZux)<7^n1Oc{iqT@(dk*}<#!WjBv7#Q8LueHifSnG$ zTzuWh%^4>bCmdazaB>#0b69xl8cpANi>{pou&kxXPXpLho+2{jswOg*rdZUuxOUsY z(WGql2t!9XMtmo<#+`S=Ec&f?^s}6^SavuNQWCVrm{w zUS!guVW8|m@UCBvNHu^{;iawvYf`6{xRvIbn z6e%S<^0C7{=A-T%R7X)OSJl6yx=_8;H}8NRDpBzuPoKLa3!;*eUNNp;T?TZoinoW8 zEYZDj`4P2S)lp3#m59~S)Z(mc((l}%IKPm>5*V=QA!Xd`XjajaZ~lnG-NT(lv&Ye> zP8Bo!pCakiozo@kq+_Turp5p#e!swy6`OGW-*}@L&8y(4=0AicbocYb%ij}6XD6km zMw{7XDq;KOhm@(`jJHJ^-)t@*!ROx7O&lgkE?-+ zor7px-i<}SByi$hE(6}}!raND)I?ut5gUP?kYKQSk?TGV#2BFPV<^o_4hg~ij`-ssCtWD(R(Nc_WyL6r5kq0g^7@;VhR~()ubK^ zr;S#7f_3(t{8f+HqLZ|?&jp$K-nRQN3)g;2kdHl+2G*x%J25iIKt_5di&vj!K);qm zl@ln`ifycHqcX5UbTVZ=d_Zw-0T-U+F#U%Z=5-07O0XMiPrcy$gH#$etj+vsqY3a; zuyo9R#Orps2(bVFAOJ~3K~y}Tw&bZp|4b&HM8`2^;ylR8U~!w8Qd$X3=pP=4hmVI6 zE);i^)|6U3YJ#u-eniz4t!dk;v6@#=0DnM$zn`mRORXxuwYEl8kQg92J%>-Huj0|u z$84S7ky@1%cyrYyRN*1jefS^l|BbsZnK1u2L!0;$>gC9_hbg?>B2=zdXisIFnu&yz zTpm5oq*bFJ+(H6zFJE5H5)%_HrHN_YT{XI=QHD-ap1u&xrwh(v=j6)nbzf4aMkQ|F zf5y0(OSyXM0iU<`qjL=}rXGsrPNISNlZMm#-M3W9Zo>qaNJ>d((!AB&e)vS!R{;Tj zJ~F%-pe5Sm>sp&mW}C1S*{hI=76vtEZFN^#eMz@4orbt}`w>GvpM|~H9L*^*K=sNM z_DsMq+xH_4s`)XgUtQ|e43?Xak($oZjpqpr z4PbP?hGuXiJvgmcP+ojI*-xL6lT*a<WsM zii?_Fh7h z%s+mOp8fhzySk{Kw=RxTl%l2dKyk*E%(?iRK#*9l_B#%qyhQZ~Hx8|RSC(d5Wj?jc zw@R`{Pu*qSsz3N0Cb%DKwo-Xe^vDZ49oQiu$5BQ(Sv-^Pt8&drr! zSpfmBouj#`Nya7A$?B@sEhsEz&iadNK60O)Z?GSL)&VCypZh6>r(m{I22 zXf3&xe2s-3<$QoN9p<4<4BIk*-nmeBOTz_naCB0U!xV{9E;N{3>lZ59uhw+vofG9& zrNga=j|JTN)jX8hBO4Rq>nbIi$m~v>e~f48C9Ij=L5?le%oekwsw$e? z=;vfVi{@!k0mHUFWBxngR1Q>XSOjfm=9RGXd>ns0N~cr%mP{Q#9B07kV%VL0eIK0j-!_-Wl%J#Ipu1FcBs*e zIzvo!kmVN9W7HAuzQ|$K+=;y3t&L=KQBg2%<}yy7InTO&@jOfBX31U$)xt@~KEaVL#y`mu3FTl_tp zBxZhcN*2=>p5WNkB<6h5fPU}RQ4Zg1uBeh$)Q8CFDUZpGPhiTyIP(7oKR&TzC~gXU zs|Ri(x6s5_$DZ=wRRNtkwC0n6AIN44vsBSJEJ!gnk*wbkLgQ(Bixuvk9uOx7~FW2Mt)H-&1wb8rD`US5MCL%MV!2v zNW0p8gjFevdsLKpibPpDla5_i4+)p zM@}X2`4e^xj9}ZvRCfNI!VlY4(7drS-pL$&1D?kwGW7G=WaQ+U&qT!gE0inCcM_LW z&or8ES&GG?H;>F#y*U%C>R08>UN`v_QTW>DT2s922vdnl{2Lw`EN93nh4wbYpxs{+ zS2m8z@!v1-`HW@Mtl-9)DXj?fb(L4fBxEsj)j5t`h^2C<3wxHoO|XC{d`%vi{kLh+q%KYp zm|ycM^n%(t+?JJ_$2VK|P{oi%o64c;g-YH+5{=r{cq2B6Ut@9^^Z6%ud$^eQ)Vu{| zQ&iEALN(vK_l!MjupF7XeXjwN1XGc*fsw`Pa@|pPkb_xlp1q^&E0*~r7uoojqg%-1ol$nWD z5j>KirR)@71x0M!e~V>1uT!&1B{nRXBI!cx#o=Fn=kqyV(Yv}cZK`-O_FxQ^t5s*` z`USX&(5Q|!p2sFIaLi1y^YT@mQ_ikJL?}Dge5vy@wQVnjmK7qj+}C`6{g6C;`GHkE zj?THTAzsA<8jp*RdTM2(xOds$K)&C+#4@Z+l@?k9iJ53^{OkC{WZJ(!oIp?5G`oWY z!xfjLW#;nn#9z7cARQ+|5tIAXU_`$r>Zw_V9heVMBzFq(d2;SDL$^Gkf}aypI)^Cp zcGa?M@ruR8V$4&P9OUQa?ab-xiR`b*zPJsK(S{!Gftpud-_UtF)q! zzgCr|D2U9QB8JaC$*C*x4F0eiGsX>(v?9>4-y8TjaZety`rWc@zm&}Rmv(GgGMU!R z8(I;n&;WzS&O!(o*`sY|Cvz+jWrNwhVUeYZS028OpyaRCv|)CnRCbr9oi--5R1VRH zMr~vB5*=E=qD++Sdm??Vpu-6bP=KiWvU+9L`<(hvnm% z(WAZ6bn!ANhhei%ap`WVeAz&UA}$>4hliV@`V|SSCGRwfGLV;&%%-j9`TDm+z8zQ| ze|HBd@y(J-^tt8~^5SJCDs9kK>=Qf#ETLo zQtWfZIn`9Q^1CqMilgsipPEQXPBtYXBkkrzl5aR+6(W^zt5sZ0^@t1x+4P;5l**}d z|FCAuJ_)ZF=;lEG#sM@cr_@>9P0VBWqXM?fX-A-sq8-gfnfgoa^QX8(R6vx9_Z+s5 zx5OOC>BVDx*`)mYp(4Y*5jJE`0!gJQw8F*Fj`XZTrhN4$hyQp+eQ@?pN~>Tpg8#I3|oy6)D4ycF0_&XZNiGier5nIW!?FO#oW64m~$7daQf`u z+$ z+(V`;{Eb=N!>AoD5FeBpAMpi|8+Z|)MV%^sILauJBDJNm7W83fVBPT;lCz7LJN^y) z!qsX{`PxDN=%uUrCB?bYK-g88TEdM-DH2OGA+?B2OQzALWg}wZ5~$zyeMYtnrbjJr z2JVigcB7`Onm-;70k5K38_#1B<%F2*yaF>Wka*9?@DTQ_U--IdW1cvposSlP)2&fw zf>>(+?d{FvtQy!>4ur-%2B`twA2JRX7iV)gOgJdQ*4r-_Ko)w5Jt>7l)mw{yvUBs8 z^5q&19y!LPy&ng>bnU=Af}SveVR_C2qD?+BocB+fEy0>LX#=Ep zPX5VHM^E$g*>hRyTfb%`zukVxh$enCk95PR3JbxoF)8`X_$`@j^Eyzknm@RPfuqQP zi?*qI61*$(_6_Vjy)gL)(SPhAO!);Ydp|-+BI&xa3JOcO@gSKxRsEzU&`O43RO3{aZ_G1?l38Q=?$A&{2<1<7RO6w;{2c80bJre_@=rCeE;VU^N9AqOWXdwe{d zNKVV+RZ1=qA)<({L{4ZF1S8%@Tq{h12l2Taznj9-rWcfsIURgsFh@sJlM8-OzJ-@~PR zB*(6%FmKJD%;{Q|8lgg>swSHtOMFnSsVBD7qh2vkJ_lwptX0aPt) zR$Uss=?zWWDhIQVYwH8(W2U7z&B~)KcKoAfaS|L?ivo#*mPJq@K{in!YrD&mQBv;s z+qr+}GvW&leASg^HG_EYB!Pi5Pvhubh7C)mQ$8Y$s79S=Q74$SQ(8+vD?FkwICx;n zda9TKf&mIrF=anx#}7AHz3m@1eq4?qPsKbF<+6%Y1|j_f!IueAqC)qdrQ_x1h_{Ex zb{f=)gbKk(XIa;|nUqz)lcYSNlkmS?h6xTFJ)Jx`C&3_vl31tc1>Un!Gl6u(`r2q;Gd`sj|F&{>)t+FRaEwio zN*}^Evmgc@3k@LP(M9vK&Iu?NR))PBg@>*=D7v_@d99X2*zBbnIdMaV|YS z*-waLF_Sunnx&H_0R_Q}`gbR1JDF9?&Mo3WbQ)F5sl|J0U`?E*sMC6uQo!S+JbYao zs2QqMFN(rCF`y%_P~;IxNX;$c($fr%-_Ino!~r)q7knHI60Y5WA_@x%$Z6-Yabu(fg2o^&0kGo*cec#J79@VQ%*@LVVP)qTF|-*+naxC@L0aP%7oa z-0}BS1cf5O6~9LODi|ZX(8R!Xw{dWGVdcCoR4ebNnjS{kzaabpneEp3iY3J+vYtMX zonEr(h}tyKw4W23v0ya`d}3M1)zOR(!E;`W=tF=FFbPe6vHMhV%*0y zWj&C&U`>Vo#>pS--61=gN6%Auf7~z3?;J?=P*)|%qn0FyHHu8AL|bqW9kY;}nlBlm zY>+bROUCSr4J73hv*PyzZY3LVbr$8#$o}D8wY_Ll!3`f*@qOi;B_5Iq{)x?J?#V=g zeLbjD#vf+~J8oUSikpi)-mWgxj11zVHg%~Q;wRw>HP1k<&uHLPMh>fgyUYH+qZ!h* zBORL6$IfWS?I+R9-ME>b*Y}`On5SwBE16l-cXqDq zMntgI{b%tB&F`arl$Vl1#=QslHmHxCL=RLRe&n|&j9Ge)O5XM?dnb%ylZic-lR1~- z!T!xlC>tVB`jnL8)0hMXj-EkoL4iC+8LBlQ=d|t85@GtFifuiR&S)vER>&G1T6IjV z!b(zf>YQyg#3inI6rG^Jqe~5-q|=3piU=1PKuv_19TW4-&4-|wLhariN>r$crQ=#~ z{Kt#TJCwwMZ7a>)Wt(>#VAirtOde2|&-&K2D*IJ>5d}QE%zp9fpU;@N{457Psi-Es zR28kp%QLeIa8c{kMI%T|d=~C5jtcI5iO3+E$SZ;kXA_Adh>zcFi=VfbEX=$9;0Z_1 zUB=s(&hVxI@_k>V=983N#LKJ_E<7)!XS)`(Z(JW=PY;qZGWcTFEJnT4j5n%=6Xx%! zY^6HtN88u*yaG<%iR1gfpHN_MqjR%HG_O+)A)y5WY}|hsFV9qFf7%3Bfq1QHQ7NsV zASsEg`}eq)Vq(&+XXG0^sa9UVJ{tJ<&I3Z-@|p5x8Or&HS|^3DwPVc4%xBGs7zVW~ zOL(9d_N^SY*&3Ewz$k}le75ZY_fk#Njq+pVT&(gOQ45t~tzQi@WIvW;G!PiIaRWQLb!2n}skSlsRG)vlO zAR;V;-5VBI5@EJRjCQeY@uiJFVAB(<3xjH$Q(A0Qz4^nZ@q9RZ0#0H^m{fsEjfHfA zH!ZPbLe&$~^N~dd7--#nAT=vEvFOvf%=+>d5?rgZcEM!4g{^Ng@U>)s^-Le!fRP{7 zHiyW})rsP{h553NcJqN-oI8D+Io-lk;8bO2#JZBx^6_wU#9lT}KtVx?32((WdzEeCi=SRGdH4V#L(9kmRl1KL_Ej?Tzu7}_YO?`QU-lCQfZ&Zxnm811+mlffz)cpc1i(J5ST-JmdhQS_VnbuJ^V_^V#s;OdQ!? z^)VF58!dbQ!2kt?=0JuhFBewE?)6F(NDVbw1gn+QS1HX(h+A53t!IRlBCX}iX{}{u zRihA)Fo8Z)onS4DCO!`$Gngt7_I%l=0wWfjA*f1A7R?-s zi=L~xzSUDKkuwx)D zEsxv+6BUCM;u2CYub@O~fM9<&vkxO)_21Y$cHML3i~jG)Mt{|RRM_5N;M%>1Ojx%Y zr?Pc$3a&;`PBQI%UNPd`&eHKMDlU?5zHIXj;-B7Q`^5JMm*vq)frF^ed6b;Rmb3Ty z<6aUi>QrS=_s+PAeggG<1jC8{t=PU7Cx;ZaEqYUiTt!p95~MZANL1#dN2J9iFz<&L zV)Fc$JfxqL;%S+gloS_Iv0ORsJbKFPuXpirJ!b|t_qP;+sbw0sqBHpZ-(;qA3&UH4 zjCBzsjh2KKIB+F}c|XTfr*agxA3R~@D$jFg_5wlM4DmDdACj*xgo!Iu(Od8a!ZXp?=0b=7B^w|t@@(Ppz8LD6qR)+8a z%(X-MM6F)R>nj|zJDWAAtOivFWM~#jY0)3OX{2nA{Qt+#&`cQg6ndK%Sh)MQ+rcd=8QF7dvixg;hrg+)7$@Weg>d#_OW4EvOOeAcD{ZR*!l z{2&7|GB#@dO2XX>Sk}KiUT)4jdYQ_FNAdiAH;%ZB5~@X2q-EXeM3oCurWlwpLlsRN z{W5{+Yrf&TC2f_+kIwuQg5$!4dlbgTviWoZ&i+;D*`bY`*7M~zd&$hrtUdB8)4-q-uUcHJ8Nl?!@LYV)qMb z)vS$+s~cCZUgGeYcPJOERpcs?RSH|xhAJ#EQoYO9G^ympsu}I^5ru~8-~PH0&%mk2 zc$Hbeq)+=Z?$iF*oBOVnJ$U*ep1z+>m4nIEsy(Tps#hw{H)0N*Iqt7gpcakMAh@*! zsqbpm7Aj}kOo`OVYfWXyLs6$}>r{()37Mq$d=^<*+435}2*SA&%?jVGUx2rVGDO1s zP$eFznlKj6W#Ly_ICfq((L`Hrw zOHU_qHr9wCxHh#s(%CR?49QPplrWxfbPEgl=BLvfi?+w$7a`w809biOpJ2sjy$SGg zH$%pVrL8-1hR1iW5*gqkON`?)^C%M-NT(K!sTCE8kGqFVyqS|oDuD|o5^4Wm{=CHB zH!pB#br;1!H6N~tt9KK)cm7{~x{^VICY@4GVvs8hY7MKhGLq)O#bs}PFao=h6t>UnNT8U4XfDAqP+~N2 z^S4V>Y+Rc!zB*4OQx@Ip`Y2JJyb>nve#)G8%2G~@H4?tE80KeZBsM-rI+aFydlsEe z;KU0zoGZ4J7(jN3H`p_`AC)7*h(R~4_R0`D&1@5Jlv@t|M7`=J zMto4q9EcEvD-wNUCjUTUY9U?T>`wD~b;-`jW$Td>{CxWr4w0=CGs(_KLF_F^yhF0=-4d6+$yOg6jZapWMab7Gwk^F3Eoa{X>Tuly_8aioZJE?t-8R0laGkG z@jG@h?QKaliC?$uI>P2%hs-${rMbw&N8LL!X6T1j=8`7l%^#Y>vNk0?dO0r}Vk}mT zWdWAEn4M1Br-@CU_tjQ@J9o(f8jA@>dj|&heuuvAcQF?>>7M!8q6H&~P-yvpB4)IA zW8sf4`1yJkV}^W8-w(PH=HY?%?m|#qLwjF}-}r z(3U|YWEC>+XdM1-4$SKwsz!>`WkaNME$W13E?v*5f9~RLXT;4=h>sl$73ZDOsOHnGbx&+a=x&j_1lV8HCFdEr;;T0=RByjZeD9U;ZgbjruHG)w3E({#J zlER|XIjos8mX=K$(xCl&bZ#ETqOr}SL##2jC97s&*|y6p{`RK)+rTarSTv!P1P>7Z zy?E=tEZKgU+vg5bCQzMjqsD5p{^u+888w}RSIG)rsC8HWUuACrXI1sR4?lOhdzc=& zyOC6+6~UlXkPuLj22olO5u{O2(m(|KDgqJ;h%|zLfON+IGfa2gxqo+_b#?6A%2jk>>@1C44~_emH?=MXf0X6C1=&U$OIp?ml1p16Gczhd5+l#+HXTdaIBZ zJ+*1x0Isg?+!Bm?tqvx=*<1!*k`ZLvBy;jGXTctnt5hB*4_(6KZqfL7=L7t4H3th` zibA_;0h-%p7Md+?LSilwavhlbYa+5ETf#l8GV-n;#9Q4PVf-!?<@FW+W8hyn7J5 z-QB?wIzDbTc*71aIFMB0f&z95y@wmxHED>ht()-eel~v}yf?AUF`VkWmJmxH?qOR1FZk`Dn`vafSQ%#k(Hf>4Rbo8PL&X@P;38p0aI6;#INg@ zpm9Cc!$>6JSi*O~^6#)^_kO7k2E++$hNwhMhKBGs86gHa{d! z2MC6-H^;){BBrRCRaB;7%(Qv9bN`VJZa69{alqft2cw4#K!e&<;pyqlX-OY%FWxp= z1#~K|yLI;g`oB93j=V&y99Rhv-ZpIeI|bkUm5P*nRf@8%t*`#IH3yP+ZJdBqo!>wKD6-tP+C_sdfi;KFGm~Q9khH zA*ow5sfbW&JC_Uc{(Sp&Sf$aF4=*()1#9 zTW}lG#}2}~gL`Ax_>Zw;&jE~mtsW*0VYU25Mwru~E;ju5+YJo+@Hebn^dTnAn1@LN z>tk52I-CvKu(xMZP9D-SvaxyF9_-wEfH&<@S!uS^Y_3_?k>1Zg zE3rS#Q>plpm}(=`lwMR<)QQSf(HV|viN($tn=#7qshVlf>w~MPF{f#;?A?j_NEC zW#l}H>?O#_FBbJeupz@c_)0+86NzKBx-w)vSy$77e6&0*9 z!OHv5+R&m=T}&T83_<>)z)y;xIk`%MUz2_iZBPzS9FyuKNYIpq&Icn9M%!6PC&!@4{=l%uvw-J*egIqcT!(95BpTGIj=zo^#h;UFp{T%U z=f`A^P3F5B?%_ygG(0M_09-v_e|!a>4QhqgUwYQ00PNVOo&(0<$|S-zvaquS$sY$;K}W+M|4gOrpVok+c598w1`(lg9P<=8#{1JBS&Jzr*9; zW(bU{gz$>dqCKKiT-rjA<8ylvuKlE<)5Z+sM-+{jz6fXj+7CxoHfBufglAjImg;=Zfba$zc3#EE zx%+YW*A2LE=`xlsUxtmJc0p969~OOg4xg+#j=%S8#!tWQ!;jnd2xU{yM*e1FuMiuB zIa5ZVe5^dnz-rw!>{2m+{D6itq!>^lCc^`8*QHcS)pw8!NGxR%eUfls1z%fs9l(a4 zcOfY?T~bz}PKG*HY%k4k#>!P-(5z8{-fWzGb-3M&K^oe5-8xxI1-~EF1zn_6? zr8e*iE{Djfaq!?Z`yv<=l%d%Btl$F^r1WcNkg|V0W;_>(ZY&^n0lxSn311yagFh>~ zemR=g4{=}4t-ojr%;w_XhdJo?)kDmlG#rEazQE6k%T72AKSu$g%12_x#E#;$8+miK z`g2zu$ExkOd8H?VG(Gza#E#W3BRa?vlfO8Lt^4ob`pMl`@%1LYQ;d5MnZ#rU!q3+i zP3qUe%TJ)Iym+m(=3i+*Dq9H4qZWt|$EYsdEqT`PV0K_@6{%76VKB zmFN9H)3S?^m2XG0%6^!<*Z@KTUy%&M?4V>FnMF$l9gtr&+A^Uyoc4J_=KljcA@A6JYBcSCM* z2{Mc9D9E!THozUheuDQFYve%ge{TMx2gTSM`V{=CHbwreBbfb)ANqBwDn8@xjc0m& zi^ZQzM{r0mTJ;+bN43uI3JgPJ)p&UF@&`&Wh`&V{hsx!M4Jwzv{TMG*b6`^E2ox}e zYik0MU7~UI`gKg~QVy>+XH1)H1y5k@o{JfHe_JLNOnVnEJ>LP(zBClI1Jlv6k_Wb( z&cNDbec{c@VAVJrz@RC+aV^mmn^w)^{hqq@8j7u7bmd9O*C+2o!SRM4@TCFKjL%wqU*Mvx^)Uy_p@yQ;27pMB<~-Em0*pNPC;alpJi`cLOUooZ>i~ z)&H<%nbRu{*OCe`d*>s#)OZ0AbsNAhB#3vCesJ{;vQBNm-gPrjuLg7FHrz=_Lf;7s z;MVj--23Y=UViW!CPaC_Lmni-xqH?hsL+804-0T2+kqU|xV86Sdzx*oJU{SZlqSkfXr)uBl5w1>{-_vHdc1*=8it^{(?yp zCgR^~_we4TKj2fT1tO}JhZil`kg*PfKa62hK$&lPk$W5-|Fa)?C%0iqzj#CjdSJlH z>v(_CIILLv1G-cx#Jlaob&$#CT|B1^D-I>&yHh1tJ@0)qYg`{y8+XF!PUY}&lOT-x z`Zh0@u3VmFt;G@-!xc3;eT9~7TVd(PllWN^U3(A5w#6O58uAYPa6i6T{wX>?-3&Ro z`AALA=9ymi|B`y1j3V~)6-<|@yum_qN{=UDfKKq4Wy}&7NHV8%F`QBnQ-Es5{3eU7 zl*f#XEXt{rgKS17ye`+TP#G#Y-(ID0b?{<#F&BOwHx+@V$uF;6=G8h4@ zi7yM*i;9qV^FGqAo<@(F9$50>2+mc1{_R$Lb?7!CTRexPEB_+$uMPM-x(MYwT{#7s zR$PL=a)4DyMTl^e@H4sgx`x3uI1V1Zp~$;`4xNh=L_+sC|_}|j!@%D!Y5EvehZA;Ct{PkKhpuT#NOY^1gP zS-)dwwTDkkWq7#Sk$rSCW)%)0p&uGpPGcwYrms7^8xyF zE{}fC*Wi7O-kbL)_FgK6Z_TF>QlWwfdOdvL6%ZgGjVYWhwbx}1jn~BOatQu+ zEDbZq55b^UUlf(Ql#J0b;e>pl=-i6fB?h45)@1|ydxnDXjXxp}APX?c6li%zPUWa< z8{O+GkGE8Tw3R6(C#f4sEFMhv5YS2^n1c&fZsO^lgE6sFG+u5H%%K9a>Y4dPc;U;N zXw#+zmd$w|S8v=$*FM9sux}hX)d}Pko-8J1we((YHu!q7E^5UXyZHhBzFUCU4t)_+ zxgIZN5G;kFt{uqB$U^eHM0i~O6^q97#f7Wav3SQRRO>ww8MiMX>({mD=#huRMJ}An zk3Ohd23l``I^1BH(uqbNNYclQ1OTgD^2 z)&C`2zkLsp1s5@)OC*PyqMeAyD)0U`1C#&v5c5Bp#1BfJ@X=x{?iGfotFr_cu<2wH zYBi~i_HC*x_7yjic;^%Ld@mx^X-tXZ4y&K5Rcc4jwI#{!G76KWiNrc+K zUWAz8V;3!0G+LlCV=y=-fFd5;a4z~yCDOVtkTXlKBQ)Uw^!+Gip$%@yeN?@X!S1LC zUDa=^fziZ-8lDX&PhG$ZZ;ZyIj*;kIN1pp-bKu)!$@uzAK93t z$b8IxQMB&Rh7JxC|5w95blqM2o#cx0onAvgg<85#jH%3)WvNhb4G% z;CN(Kc^Uz+Rd93jLQM5eMFV>gu4EN)>NlJP{w_9nxw_z*n;RAu1jF92AHpiez&9iS z_Pksq?EVHDeQv@nyAX-#1-M{$!3MiK!aQsk8|j8PcN?x10Fxd7xixwss6s{Ff`r9P z#pn0p+ey7pxneA`vU2g=#_gECU=)4C-X zHF-87ZI7_{wem7PaA4=TG{n}gf%dH`qoAk+E7l#y(w{D4$=qq^`fO`{xcab(vw3xD z(>hhL{>x7h;Kv$xsf436ie}p?-&c7_u}|Az4LV%w)GIMe9- z34d(Hyn@qc?dQhJj*~JA@z`F1Ep`u_Dz>3YU;xqzOOOy&58mY)A*^B)y!?D&E6hjq z<5O5Vz7N7f#bFi~uii%6J`>QOl|xWm96bG5zaJs+f^s%GJJ7gMbhnT_JmnEX znkr=*c=EFG@aV6|x_km7+lOLkn=qqcmIJu_C=YLamw;X`^~AqdZX)^CIV|WKkJw*YlaE*QOqi0Z#psfGP9#p1!~3sz!E z*HH9sEE?PLZMLp9^!oe;E@t_l;&Vgb6A`DahbY=2FpS|r*pQQ)2=9{{QM+ap>`Qb- zT#If>=KO3tpJ~fT@g{GGUwHKX?TepiN|*0<-31i zR5;tr0e(75T23);{?}S%a=HuB%Qb*|Iaa^pi@=yjgv3N}Z)?v^M;n(L_;A$g@bGl! zTD^GX2F%%X0zvgUBBD|pTv8L?m5C+&qEVkU2~hh5T!0P7Qt`&n_ORPr@xjzB zxSJn{&lk-`dR7j$?%a=n0AIZHd`HAYhQo_*{t@n4$O$1r_yU?`OrTXo!y7Gxr5roA zx7OIzLIiODt`Eth0ptsGGzqr6WUL<&k09;_ST7pjxy3hdzc2t* z`;Lbj>n0(`OWnH)m{ePjOW(|czeh33br}k;kaGOs?0b7RpyK^gSP<)qNLJ$@_OTsYxiGmVix_SX)0)Qoxnd#fG(yi!ndR1>VtB z;O^xEFK+$*+{8Lf|(G42IKR8HKWT?Q7cfJ!= zUI@DwphL1v+Q>;m#Mev;nV?HWOZP_yx4`$_aeO^E4pD*b{93F`V&abvIh7nA;)$hw zW8}se8?P~90X7@Uv3o^m^Fk}kTeuqs|4ql+Bi_bqy`C3Ur?Mxjk@c1WC)=24C7>eW z6uT?-%s4H_To7ly0BMV&4ZZvfKOlqc2s3f~@=YT{L#(|T5xt3JAF*N5Ef*r+q3%dp z0VRZ#4`pY<4j4HNu^yRtuVW-aeO&SSH+RsfYZuI!I+|S2hSlqT#?((g$H)%h7~C=x zZp@;)+R%N;P29@$MWt6p!P7rTr1hn_(TYnf3w!P2=2h_Vb4T2>ec0lav_js|U8qkY?^e0f-*AnQWGj&G`3DIO85;EnZRy?Gx!htEJ!tsaP~UQwRY ztUA!CQejCe$Oc!!$;pOSyal__`$tTH+DxK|0N}y?%?N#b3ak3ZAR^EMXYS=;+@=KN z6qKNQeSf_1R2bqyR57D?R<8>(cM(1Q~EyJ{w)TXsQc9oD6e{gj|EHxDKI zzr^4^FJQ&;wTLLrM@?@BF8M`Z0&#Ol9q{1z2CwpB;$D|IMUNGYi+jy z18)_f{Tr`i!iWLVK9TRMsR6M4x5F5-bPEESbVqP>ISu86OsVe(7{@Zbs$(06MiOSQ zXD=!!LT*MD@^f=xJcX%`Km!zGng!yb_6m5?74*;XcmYE5Pyr(P$j! z17EhClCy!bOu{DGtt5MgVeb0#xNs*MZ;yBf{a)z?FAuh-+X9s-EK!z%8(;;$MfI(w zE9GZ6NH@10GLorfDV7rtqD4$k8OsD))WoSM6C9~SaOEXRc^z_vCj~I1&`CX@$$`l0 zZ{PhVK3cRI2}!BQ%PruRy+*}YyxOxfKiQ=UtA6Ai6jCv8H3=afWt%^mnCZKZpXyXiEQwmdr z=_RNa<%R{X#3IDs6|4kbRr@lAEhW1M2X5wK)o%~r84!w5Z@qy&J-fi2ow%(9)7bxQ zye7RCH;PUKNhyjB7>%ArG+$7fMz_SVa%I%^PvNp;%*$(m_@;Pinw<%>Cd#EbqQyqe z5D}%L)Jmx2gEN2RR6(c;iU)s~l#1Pd9LDK$m+>e$4WYpSs9mixUV8o+L`R4oJ7$Cih~p+co$4LJ3$+l4@whrrlmt zgv^9HNPm=qLc1$m-I!H2g3r+SNCcJ(MQ(Z~?*F+3g%8f7UaS|VY@dGS8B{7Ci!~dz zA=D$6pYRwTnXKJo00%lk02DldPW%G>rJjn4W3A`PMpyZJJIM;LQdQw53rSBS*uXV z(@CqAm!FUP{6bzQ!V2n`h10ySq%$8Ur{deqzhc$5Kf>Ks1bR4+RN~VD}lR*2V!bgL`G5yQm>su-sJ;u z6z3r>0lPIs$|3|aCccf1?V7^N(~Ea!TlLK*Z2Rp`q^GCy>#%sDTGdME-uW4HdA2nw z#mB(QOR!S<$09$vb&iS1x4>*Cu*G~$@&Wm$p(j@SPrQaq(kkzzZGI^hNbOdVwK~N7 zNh?JL;M8M~2~e}GJ%MxOQX4kRz?KF*GI>UYkqevlk3{2*sGprKvgw!I*njv0_aF(0 zX>df=fk$L*xVo|3QlgbPV`hpUoWqboy)fmadhq7k3~fkC%|KFmt_&6>k1pM3u%9;~ z!vpo^ac#k+3@4^!;>h2ZarpEl6crYtdgWMjZPy4DW0)ZFT`&ejAT3HvPEsbb?j(_yozpudhlq_u8L`33S05y`Dq=Ue6&sEZ8{mNJ1=rPFq?A-+&)kE{vb7qg&rwWr27= z1H6maq165pEAOu+L0^LyNK^jFnTsgn`WjNnLp>xGb54V*pjOK|c{;7()H++9-h^N* zT4}75R46ILN}#Dst8u6j3oRX%dy~wb*#t>;11?BOO~K_pg7&MsJf}cc4}MYFIvF7~*9gOGN@OWj_AT zHOyM^6ONs~E?TNc7+F3d7-RcChyFcS*9MJw44JpCr+lvKw-eBz&%4NvY5|{^>IjJr zhhIn_w->w{2g#f=yq|XG9+J);hRwGeTmx9AWky_-prkmT?<%sny2I7Oi!)+{sdrI$ z_cSV(^Ty|&Ohi-O*-q?lAR0=|y15)iy<@RO`~uXo^UF~=Q7AyHrK$Cf$qHEhVUjI6 zhvu!0dVaO5B+o;|M|%K$VJkx;v8=UFNo%Py0avv}#2XTiBKpuSW67cBgFK`Ji z4>!MZC{9m+JtKivfAVd0?8ns|E*?H`_3}q?+8sm&dSd0g_wiJdy23k|pq}8}O(BjJ zX3JJu1#L`J3tedW$fY2!lc|tKhk}Pvmcn9a#jwR-)!#zpWG>4>F7S7ZGs4V*uBkI6 zxTPX>Zpw`PBh)GX0FOJ^))eQ{`z57tb3 z6K%Buh}GD0^gQ~GU&LC&8FlGOU}X2{X4PY{edRQGu%=kNZbKSdX$vXe$DZxv*~{oM z`U_s1=H?RukEmMWyd=rN+uU3^rCCyxkL*i_;IKL1>h1|gZYq2uV&NNI0bar3@C*zS zRzE8hiD!=>>-Hr?2Ki#=w~J6AK2k219E`~mTObHwcQmDJl3_(z5`(1PSBq5^l5mD< z=A>(udiY$A{qL=W`(pUfW<2RpBTT4-^ zwMfg#6NP|uVM-hb3--gRX+zM?qyWJ5C7bZY|NbCW$0#&W>k=Oxh^^qKuvp2&twl4DToQA7+AUvaL!NE4$FbKq`&iqW|-#ZI?W+GgJqIvmt zbiIb~^beFLt5CmhLvda^mRW|Kk?wM`m5?b(G{FpIxSS9MR^cuM zXVhX+6hKC0MNn3yvgV?wtm|XC$UTGy$PgnYvaD}OT^g}srioHmhE9q}Bb5`9uu?v> z=4H#mi5B-}+>;25>ANbxQk0;4PAT_S=m+M%VWZW z@XNw6s9b?nuZmUDmQ2qhd)>j0a$UK0GiGc&4X?QR+{zawoP#|l6>gywU~~6|JwF2_ znUCP&69mtgdT{d!Kv>0C_yzmxa%PrW;wO2Q*oD%R*m3{xHatFa04H~Tjj9!6jj|V= zYLybC#%`sxmBLa5C?(|N1sc;4Gp<+Ei3}Rd(GwKm|1#9dgJ{oXd_f1nbP%Rgvlj3& z?m~^UT1s+Mj?T(ZC}Rp*DGgRu1TQkQ+67vHp&UH_W&BUf7*d7sI}MN(EGGf9LKmfo z2~vz;B3g_>PmKtOB0QM|QmbNeaRzcRF)r2^fezHkpzy=caI%FD414kyoC#J0W1u=mIr+{v`TH6Q}6o&k9Gx!QPtP)D9fQXU{JyTGIX z{NzWQ3&H|@uxk37XxCIKfPAdGk5bWl>;hc9pTxCK3%=|R!wAs%WBTHam)q+qOsxPC zbufB1H8BN`?mR$FW)4nYyN#JY{SEi%dWZ=0L8X{b-YO+FJOI(bJ_z-7b`k&Y^4&z7J$nwxkCKp|kqmog3ZettP&GaZ%^KFk+i$!KPj-R}{c#q3 z66b3$Jn~D_x(ltQfsI+g^}n3eZaRqg?>ihg5m{$Bi` zvJiGA3i8LI`fL;h1w}|qPRG%c=dk{lJvjEyb&Ma{3zOgJ&4u=lqh~R6_By0x>W0Lu92~gv09`vhjcW1b;OFDYTdH{R#=(r@G|HXj1gi((Sqzc_R0CT>4SMp0pbIQqxc z6;WY99ACF>R1+OqH$qgo0E7nli{A5c(!_8Tpt0d$QaZA;Gf}Nl9G|28OaW%CLt1ve zV5#+I1cIwR=gt%}1!87l!ref|oiq7wtV%jHs*; z`yNj^%Uq>~6;g-z=U9@l6Zs;fPXq)~VWthBYdn<5TtUN~fm~7aeXu59@UDM-eB=h!|ikr$IH0QHsu* zTyX^`9RwSfWL@5X z=D^KeRFO(*ng3Bz0#>wHAvzrOYm`UZMm5l>O+$pUqgb6`=O>Op)ZMcaLAUHZfqf_b z#XpyBp-`P2OQEmavn#}*1YWK-G_F+{UE4Ik3+aTC^(H?cB2%DS5{qjj_-h>`Ltypbho;8c--n|G4%-u$m| z>dIYY<>qsot9W^eMaA{xq1gOz2GNg*39!413!*~i~OWf8RGweHZ z7Q<(=AUId4m|iFLjgUYeteHL(ZCMaZew;!GD|WU9y;=(77))!=N;0zW$?{Fu^VbC= zW#n+h5_SG+Z-Wpx7MmC{A>bx^$=kynQNg}=w_jJh`a(On^Alps2&}Z#7fQtxZ{6lS zShneRB&BEZvwpR~(MreW*toaOnMhe;x2sh#26HF$N7K5Mbv3G)Y;po^OvcyH9Xg%j zIpl;1sS=HAw=<2nfv2J`?MtJQN=RcL2s7Cn_v#3VO7zhbiy$ zMx|JG5{yZ6sa*35rDfz`?&_cM&5k3;FD#a}#xQQ?-Gb)8Rd0t?0%`+qxV!qJchI3_ zJzj!dN_d?ZeL6e*ZT$ifdK0UtF@e#RlfrikNh0L5cn~~mjfer%ebp&AHk+V9twAt=jO<*D{$w4tA3kfaKyt9WYSUrI!F4lGvr3%V zau}oJ%AcKAh%eUf!ir6MkX2A*(53wOq*!Z#A!be*Gs7X9nKYJ7Zdk26K6#RHvXw0aa_sT$(ttNyrL?y=pkDV7Nn*8dy2& zZO({TA&^i2mI%ui?F;ppS^^q`1^Hq1)Hl(#MJ+8u>~={h85sD%a-6t)TUc!QT^dMl zn?Dk*n$@*Xe`aeuW6370{^bDjitOTXd090Bf1+hLe=bR_^4(t?0?`$h-67ZmlT+N) z2AN7xAy_qI7#h~DY_8CB0IcQvgiqGs``=H9eFr*VSL-fYRPt-fHXO^9D|`CY~cK zzA)l|HZ@*ab1&ioz}?k`_Xl>zyZyV04%5UK{&Dmi_W(vF*oYIDz_FcTt7i-&c>tkp zNh#?VIAsNn|9i_cR|>W;0o?l8+i2OmzQI_M`?9mazWe0>#x2;u1((}AmIrq5lk8QjKqza*nDuDe0E;INg1?X2&M6H0rk#iJ!IDkL%q!5@VRc_| z4-sE5Dmdi79{&}h%5fu-o|TE~2`Na)$U|l>BM*$T3DkGQcx-r~b$zUw{f?lm3G~sK z-%^B&RUnnHD{rWAj#53t^%Ki);sBU<=mRnoJkeH~S`+Ff%aCvrH(N@32o6!fjI!c{ z8Db~E%vJhw1t z>X-QI;w_6;k^R|hHf;NB1X?wh=Ub6`GO;>#`V!up@f9AXu@<}HdBs5^T(flt4q*Tt z@NsuVd{j7s1AO^s68}@c+YggjUly`o!kmRw#vs_o1HY}Ffy%Lroe}q9bnt-pm*LE{ zdwkjrs3~Q@A$lRb(xEwC>d*|$>sNypYuh3z?Ub}E96xgf8+RY$rQ}8GR8Ym&l{h#7 z!92l+IU~`rH9PoReVd4h!mLi@UVhvh6>CDps01~kJ1x#;R?=vXu5L&J5glFsUzt`* zX9(>XN|zY`h&iV@|%`egMli@8vK;1;Uj7X9^JH?S|jh%tV#)5vGy^<^co?lqb)%>xYqe(*WBQ8!p+qx0N+`uHGp1yVC-%oHotndsH3E>|q-or)A>f zFaL)PyN*fLO0BUlpv)D#f;H<8PSp)fV2WPr)X3?Eqg-REh}3xHn!v=Qa)D z<|b)8c_~hVvSWub*%o&0Ze+?%%tu(DA68AL)u7@TnFkm=bp?)JyrU^ty$w&|@vU>; zLF*RvER?tdN6uWsD`V%Qz^*p73#-eXogeM$A`abaRx=(;rwm2qI3~Exj0|{d`dMFW z#y2~Up|IF4ExCY3K>^;VTOkq?hxA0tMm0o;V6!2=pcsu`eh-OhqG5o#wvbQJ(*3;w z&tv?XFNi}hh~kTZs+d~*asR(W-790}<7z^(X0BAdKKpo7XaK(dbR_E6s;IpsjTyAC zn-03uuPVnu?rW*0qhN&s8lo(wbAm-=Wx0WRFiWz@ROF@@BK1`jH7Q?ZilR(XYT#rC zaQ#jaS`V0pLWyw&b`=3F696_mMxHHv?{&QTd^;)p&IW8e1G9>g=6{RTTmIy*z|X@K zom%3Q6ArYIucP~7Us-^ zmJO+6kZ!@ME%B^s9y>Y3s&>oPA{8sx6rJ?Jk3})Cnr1qObQe zjq&-6p(1!v*j$+(( z5qAD{$&~2g_K$g<|ESps{kvhp;1|TXW>zWFFoR5n&BhP%Xw!cN?_4cJL-s7R+^H;R+%AkB|fKNhO|zkmr&_xAQnsxTuz(?0%>z^q7Kd9CJ)HhMlm`H z5;@rms;0{-pc=oi)_*p18!{88u0P-qgR?tYhK2U}dAeZ7%4w)uB}RHGVlK3~664d~ zRYEJJRJ&k`3rj5~+Y!bRVQXX%EP^&gg|cU6nc%ffGQkW24VktA$1X4$)R;Lw44IJI z_Sw5=)tvPb660rMU9o;ArhfH{rZj?wx)|BPyw zB?iDY{&XBP6E_pn#J&Nwd0sXW_Vw|=`-5J=e=(3#1o>x*bA-CPS) z%6DiWZrZmTBmnJu!dn50(l3cr8-cjxecB!e|IZU@XvTfSS3sav&1DeGWyXeA$IZuYCoc<*KvC;NgV;F-zbu`I#)iteI z9^ZU20ul7oQ0mr9JLLXVLfa#bS90le9x4Q7q$$DxdnE?SDMwA<{0g|1mk zJ4^*nP6di7z%a%FWiSXNBu?cI*uQuTFl{K>H8!?np$jqlEavk_puoQ?IZw@zT?Y zy}N48lv^~|yFZSe$FSL}k(N~;w@}K&nxeNYY@Bf3qBV<((}WNyw$8{^n5?w))T(7; zm6&k+Z}E71(GoUhYOrelsabvLIZrUdWNJyiIA|iiA(_)4XSQtfHG#?Ssq{{ zS~jbr{RZn-)NS}DxR;WleYg4!Uo2NwJlCQ&mQ5Lqpa60}G_fxxuV7-|R4QB<2sJFT zN7%CG1jc^09@z!#G*1clWDKMBfT&nan>&@IRQU;c2#1<}ojj8XJCk8&NwN|z7keAu5ElO|k9_v=UBEb`EM2u6CqZWWq$38nRm&0x2OdAqr9lWb#5%xOC7#t&(+h zEDK<=-ZmUOaRG16T#e++982xJO1qcfy*Hl6`@?#g_H3T>Rqo73SK`2n&osi~_Xon?k0qZh zs&4hD60+$}DJ*P)O;Va9eBHS7Fy34A19A$BMR#eLe^7CYLLfXRLAp<6c;g>3Ld z9zULmS$ZWq%3!LaVOp0olr8 zfadjtBHJ8zn3RF8!)D{|<8)o#ER29yLH4Uv-O5<|@mmNB4z$p}hMg8M5#8TVhV`e+ zos0`u@!`n1-}2fg9+t}jJ7uTXiJ9-d^0Y1)5hqUC#4bD~TO?rBQlZyhdU7QV4jbHD zZKz&39<~3gPUVWD1>7*Ul7B1B@H!Pcf=Kwp5sgu8G)?i6wK0~q5SEOZ8no4=Xi%rz z4N*O(LS|7(EpQGzO3pyH;j?i&F-;2rtpGIN2VfWNR@v+GPa+gnzM^X={m>)gcmY|qaVv0$jD@LPofgej8 zHgq014QFmXQbtEof&y}|Ae3zZ-?C%^S~XHFJg8|`lP-RX3Q}Q7SbY$q`OaRrf$klj z;&nVUC2zutGKShK_XA{P7Z}4QsZkvRFbJe_g;ANF0t6hPlw1P5MCiGy54XCCo zqbC)+lo7B}qDtRP3gE=9ie!dzCvxUYL5gx$g1k1xR@UoLELtjYWy7q`H(|-f`$dngkZOmP;h_cqFm(jSMOrUw>!|PVNJZ; z+@0_2on?5mye{;(Hi39}+bl#)AP1qq~7 zC)Nx3bQVK8vGDx1hT)BsB=StZp>dh>rNfH22O$SvF|&Fq$$6q6&g zdO<5h0&wBVeLOvQ21?{nrY5nLdwfgmc8u!V5fg^=Fx9b_fr*fumW>IYeT!`ePD?Mu zwv?2hR>f#^YukwbSG#JQu}4@zpyTH-?4z|v%N8f92q$JNoKOH&4Qkw-=K**%=xrlm zqk$k8C^-`& zKVF0Ve_!UC@_Th?iuZ=}L~JCX9pzfA*svQ@zudyFYl@p?Ojf626xPohh4N9x8N$Rm zlH{CO87|*=fGvBDBR(<|FLr4OA7;Et8AmJCSq8CH)M^ z_Jp60Cz%p6D|GGlBaEB74oCmJsn5}(j1H?yj|%a}qDgPy*{7IAHf#e=gvmUBf)C17 zFlK}82^I=KAP}ntO-aXKo(K~gVl;(F5^38PFa?kvfK*k!^WjQt-21n99)jrjLD%vr zz1=-9_O;F!*}sc!W+j}d^6AFnvTc<^CVzqbr>~+|ZbV_%suC5771M^Ge$9#|1}h~! z2lac7L%u9sGOVe%Cj0J-?ds#JStA6bDFy8fg%l{-hRfIQW55T?aO+_Tygfb9tX2ig z9{U=qSBkbkIV*&=mNSq^u{wDxZEEUFXUUpdjJB)>RW}n4peEbcMMaZgRB)B-5x}bB z2nsX}R);RGUS!R9IB?|jRrDFZP}J~qWt64C$}H;JJ5aYm6yAQdGn&?|3NKGLesW21 zQ8BXf?by2K7{1>6CmyA-_9>)88wqAb?-&P0_U?q4BYT@n4ljjZK`<|eRvv&+dLkjl zO0rpVTxSZv5@9E#=&i^9O`$Tgb8+{|2=evB#`$B>v`!`MN!UmB zQxBk;cX3=S;vAj{c9sa^5Qt@hSsuXb<@mT=fNk?wF`Riv82cnU>GH$Rf5h5thxkTx zL!eZpqnLEz#Yzz9{DtV^|!flId@px^jKxSJ$$62^~_QD(2!sThqeZ5yCTjS7f~2<6mtQBg7O zC#K-y&HLDY;v$ZnyM{d88N-k-t{?0iGe-$t?bH+trwtcMwKPE+^+-yJ4Xe$I z@bqGnAl;eWW|vW0B6a_M`p_EQs2i$LDtD!%i71fCEfPQO6j~9_qltas?4>*CH*ql@ zrDw~7pN(BjA_ld%dv+O~a8Yd=<+8cRMpV34kZ_@*e~qY9adWZp7AZ5{?ZdbEiG>oE zrwSm}&p6GT?TiWw^vCLHgVC0iH1NtQ`8%ZN8ab5CgIfhb4;KT(C{m0_g=d z#Ec2=E29_S&f|2wVO#~_Y;61>Z2mm5Qd9=3>eGeYbn-9Sak7zkdFs`Up*aF z<05464ZeA1;o9w3xM3G>^Qe`WFS)r)o9(0a^YP(?gkpK}3yP4Dl>>HyB%5+}h&DS+ zTX|t!cUDq@XB$_;rX}z3;b?nGyp^KH(Q+k3HRw8|FcwI1;X;Rm@|kE*gC^sf;@O6nqZe)o z219LRmygRK&^)py*vZQOdEz48n7W*I#8CMFm67Fw&)6?E6iKb zdxWQp3&yU@4CLdq-MkId94ks16j`@QOdU5n@100tm4e zf*Jv}CMAdn^uzY$lTf*Ql#x>?i%6lUf_M`pE(#8nno4UVPZNMr+|37M5CJr0(X9T- zst0-`@((@|C%kW&-=i#(u++?zt=YU6^VV(WCCR!S3N4S|R@c0JQ2SCc8)jDy&Z&2A z*AO$_>5X{GXb=HcK`@U2ESq~c1Y&JbSPa0rLz5rH0&x$ZJ(97XfCU!W-~aP0g|K33&5gy#~qGQZ3nfz~Z( z44^6)jY(q9zVqN2jQ{Lgr1A0uB`dU1uL!C&^t1HjQC`A80yf^H_mk26(EZsa;*>{q zVF`=0w`E0o_mePo?l(Ae_L^j~h|`zPtky)$GhYmnpP}PppJ6?LmQNpshP5i18)Hdh zW@iXTs#gf8rHBhYcN}2b)(BSA7bLXHTdVoBjn_?7Y|bHJ)dYnLyFk4E)FlR8z5-CKISoF}J}k~1)U=?47%*F|KoCSfWTP_~WS zUcnt|P!+xp^7TTeX0;FZ{o^Ed9sY-RhGwvc zHU84FM|M~V*dwi^-Hvj>{%F;(Iy$wi$Gd14O|Yo%qX@tfn*k`cmtfD4f3Wq>Q#f$q z0v@Gi@{G2)f?+h(1{vk;Yz{l(%7vm`lUh9U&Wwd8r(B6Swp#fz*&sS8twT! z8o$HAugMOVFrHlw%HiNmxWa-16HaU=+SBT_{EMqep2btnC{=VJ_3G^e)hN*jy zli|eFv3D57o0OW3zt3F*+dy>Y@=Xp?3W|z_<+R!0?dgFk@sX%sy&|4zQ5OyCRN^gM z*nM?}MD6gbL5SI#P_CW*ots<0m5(*PVzpA|uieGat&{?!D~^yb0cKpT zte-ATmE$%Yyk}Az3W>-=T4N2O6dGI5#V3KR9uX-6;Vzf^SV{fqDntg;6#S5@t;-n{ zTp_SWjom7E`rm5O$|yac-`99YJ-56M-P@{cw?*fj+a4bH7)%Mlm8|6pQ)p(P*#Q;q z?(SU3#pZOiAw?N0H4n;aD~n0W1r!x+_13Z#jEQJu1&pHN9|eVlTnX91A6_0z&`T`m z5Gcbzo{-G7O3^(j)HDUkmUDouYOEE)Oe8|`Nvpiwt zEbd!-Nfn@)v|mN_WO4X!U^ACF1=Iw=I z2o`eNz$>KC$D(nje=5bX!Zc^gZ7B}3pc|6fr@@F|iIg!bwQgkm6qZnGQ9}+VhC$Dn z|7Zv%-xS1g03r>KE?F0JhH54o0>OfZ?iQa4uC)ESl{%$2hN ztIO&MAj}c97*-3QEFYaPifpv3IPrz00u;+<=y#PYnuLf3OVWBcWfchfAlxHWdGp^^ zD5aH(cvT7uN?nU82T@|Gq)L(1oN4yMGAt`Zu^KAvb%+#Mr@5@Pv&w)Io#wZ*LM#1m zVlb$8pxA5hiWf=(v>vD_Ch|_uK?0BBsf< zj?o#jq1r4eAt4sc6r)(Z&J#SQGg{I_8!8K-6uhkBH4)Q^GIn+vy)v2>YLz%6>*JTf z_B$~uMsZ%LDRtrn)Gd`tC|hjW5@{+ib#hBneYn1YMG}e9nPUZ=?-Ezm)`Mm^h>Ih0 zt%(mUaRh_vrd(26X>jXINoZC|4}|c?M1VEq(W&#YHlR33B3Uf27_l`lR*4_!^0i

Ws#)3aMmnME-58jvbUnMK$0?iAWM^W@^%y2_FdO=&lQDpZn%MKGKpeH?o9sTwDh z87g9*zyiddN=`usXAMFvBHW&Wxdydgm9MJ*sou~i)D z%+FKHKn;n4L<;*m!5uWfE$h-&0i<%F<;V$~e9{_d<)yI4u;AitGA|}^pkA;nEcO58 z=88?DRSeGh0@1-(=DO5vG&Cj$8WYrEx|B%}#TN|$Bf_Cl;lyfKhh!3NHAX&%&X@|T zz&L?mCU-BdPS=>UXyNZt??nZl2FX@Ia@OOLPlKLBve&{$j!~~{UVe+fIFkVi1x(6n z2_Px8$v;QnlT%iROb%VAverz`i+L^7ZaFchhT+q8s+0#;Yhy|VnG&9?bNR79rF=%n4?!x*(HsN6*6ITZc2FzYN1V9`-H$*lD7JQ2s$=qSFLVKzfF;?rS z70ybhDobUtET-qPEKaHUEv5OTPYa~hj=)?K8Y^X$Ezx`%?E0%tl*no`%92NCV=L=5w)DIfs8n4JSwPE|4VO%xN@jG4g`q5*$pb3ErNZFM zG$>1JX-H*;9~3%S7ET#>Wv@*YtWFe!2#OdE#d4*yiP{k<&tO#sIu{D;X#+sa7mbDJ zJXrtM0-)WccKyb!XpmkOQ$y3?mKee`W&)F((a=_5HF-bto?VUf)S4&=S;|wBizprV nKT=CiLMW!=C``t}P_X|8L46m8zR7oj00000NkvXXu0mjfW2bYC literal 0 HcmV?d00001 diff --git a/editors/vscode/package-lock.json b/editors/vscode/package-lock.json new file mode 100644 index 00000000..774a6709 --- /dev/null +++ b/editors/vscode/package-lock.json @@ -0,0 +1,5182 @@ +{ + "name": "clice-vscode", + "version": "0.1.4", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "clice-vscode", + "version": "0.1.4", + "dependencies": { + "decompress": "^4.2.1", + "vscode-languageclient": "^9.0.1" + }, + "devDependencies": { + "@types/decompress": "^4.2.7", + "@types/mocha": "^10.0.7", + "@types/node": "20.x", + "@types/vscode": "^1.80.0", + "@typescript-eslint/eslint-plugin": "^7.14.1", + "@typescript-eslint/parser": "^7.11.0", + "@vscode/test-cli": "^0.0.12", + "@vscode/test-electron": "^2.4.0", + "eslint": "^8.57.0", + "ts-loader": "^9.5.1", + "typescript": "^5.4.5", + "webpack": "^5.92.1", + "webpack-cli": "^5.1.4" + }, + "engines": { + "vscode": "^1.80.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/decompress": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.7.tgz", + "integrity": "sha512-9z+8yjKr5Wn73Pt17/ldnmQToaFHZxK0N1GHysuk/JIPT8RIdQeoInM01wWPgypRcvb6VH1drjuFpQ4zmY437g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", + "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/vscode": { + "version": "1.80.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.80.0.tgz", + "integrity": "sha512-qK/CmOdS2o7ry3k6YqU4zD3R2AYlJfbwBoSbKpBoP+GpXNE+0NEgJOli4n0bm0diK5kfBnchgCEj4igQz/44Hg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", + "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/type-utils": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", + "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", + "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", + "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vscode/test-cli": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.12.tgz", + "integrity": "sha512-iYN0fDg29+a2Xelle/Y56Xvv7Nc8Thzq4VwpzAF/SIE6918rDicqfsQxV6w1ttr2+SOm+10laGuY9FG2ptEKsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mocha": "^10.0.10", + "c8": "^10.1.3", + "chokidar": "^3.6.0", + "enhanced-resolve": "^5.18.3", + "glob": "^10.3.10", + "minimatch": "^9.0.3", + "mocha": "^11.7.4", + "supports-color": "^10.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "vscode-test": "out/bin.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vscode/test-electron": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.4.0.tgz", + "integrity": "sha512-yojuDFEjohx6Jb+x949JRNtSn6Wk2FAh4MldLE3ck9cfvCqzwxF32QsNy1T9Oe4oT+ZfFcg0uPUCajJzOmPlTA==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", + "jszip": "^3.10.1", + "ora": "^7.0.1", + "semver": "^7.6.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserslist": { + "version": "4.25.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz", + "integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001735", + "electron-to-chromium": "^1.5.204", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "license": "MIT", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "license": "MIT" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "license": "MIT" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/c8": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/c8/-/c8-10.1.3.tgz", + "integrity": "sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.1", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^3.1.1", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", + "test-exclude": "^7.0.1", + "v8-to-istanbul": "^9.0.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "monocart-coverage-reports": "^2" + }, + "peerDependenciesMeta": { + "monocart-coverage-reports": { + "optional": true + } + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001737", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz", + "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "license": "MIT", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "license": "MIT", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/diff": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.211", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.211.tgz", + "integrity": "sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mocha": { + "version": "11.7.5", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz", + "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-stdout": "^1.3.1", + "chokidar": "^4.0.1", + "debug": "^4.3.5", + "diff": "^7.0.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^9.0.5", + "ms": "^2.1.3", + "picocolors": "^1.1.1", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^9.2.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", + "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", + "dev": true, + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.9.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.3.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "string-width": "^6.1.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/string-width": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", + "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "license": "MIT", + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "license": "MIT", + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "license": "MIT", + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar-stream/node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/terser": { + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/test-exclude": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-buffer/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/to-buffer/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageclient": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-9.0.1.tgz", + "integrity": "sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==", + "dependencies": { + "minimatch": "^5.1.0", + "semver": "^7.3.7", + "vscode-languageserver-protocol": "3.17.5" + }, + "engines": { + "vscode": "^1.82.0" + } + }, + "node_modules/vscode-languageclient/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.101.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", + "integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.3", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz", + "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/editors/vscode/package.json b/editors/vscode/package.json new file mode 100644 index 00000000..bef2fe6c --- /dev/null +++ b/editors/vscode/package.json @@ -0,0 +1,174 @@ +{ + "name": "clice-vscode", + "displayName": "clice", + "description": "VSCode extension for clice", + "repository": { + "type": "git", + "url": "https://github.com/clice-project/clice-vscode" + }, + "version": "0.1.4", + "publisher": "ykiko", + "icon": "clice.png", + "engines": { + "vscode": "^1.80.0" + }, + "categories": [ + "Programming Languages", + "Linters", + "Formatters" + ], + "keywords": [ + "C", + "C++", + "cuda", + "clang" + ], + "activationEvents": [ + "onLanguage:c", + "onLanguage:cpp", + "onLanguage:cuda-cpp" + ], + "contributes": { + "configuration": { + "type": "object", + "title": "C/C++ Language Client", + "properties": { + "clice-client.trace.server": { + "default": "verbose" + }, + "clice.executable": { + "type": "string", + "default": "", + "description": "The path of clice executable." + }, + "clice.mode": { + "type": "string", + "default": "pipe", + "enum": [ + "pipe", + "socket" + ], + "description": "How to communicate with clice. pipe or socket. For daily use please use pipe." + }, + "clice.host": { + "type": "string", + "default": "127.0.0.1", + "description": "The host to connect to (default: 127.0.0.1)" + }, + "clice.port": { + "type": "number", + "default": 50051, + "description": "The port to connect to" + } + } + }, + "commands": [], + "semanticTokenTypes": [ + { + "id": "character", + "description": "C/C++ character literal (e.g., 'a')", + "superType": "string" + }, + { + "id": "directive", + "description": "C/C++ preprocessor directive (e.g., #include)", + "superType": "keyword" + }, + { + "id": "header", + "description": "C/C++ header name (e.g., )", + "superType": "string" + }, + { + "id": "module", + "description": "C++20 module name", + "superType": "namespace" + }, + { + "id": "macroParameter", + "description": "C/C++ macro parameter", + "superType": "parameter" + }, + { + "id": "union", + "description": "C/C++ union type", + "superType": "struct" + }, + { + "id": "field", + "description": "C/C++ field (member variable)", + "superType": "variable" + }, + { + "id": "label", + "description": "C/C++ label (for goto)", + "superType": "variable" + }, + { + "id": "concept", + "description": "C++20 concept", + "superType": "type" + }, + { + "id": "attribute", + "description": "GNU/MSVC/C++11/C23 attribute", + "superType": "macro" + }, + { + "id": "paren", + "description": "Parentheses `()`", + "superType": "operator" + }, + { + "id": "bracket", + "description": "Brackets `[]`", + "superType": "operator" + }, + { + "id": "brace", + "description": "Braces `{}`", + "superType": "operator" + }, + { + "id": "angle", + "description": "Angle brackets `<>`", + "superType": "operator" + } + ] + }, + "main": "./dist/extension.js", + "scripts": { + "compile": "webpack", + "watch": "webpack --watch", + "vscode:prepublish": "webpack --mode production --devtool hidden-source-map", + "package": "vsce package --baseImagesUrl https://raw.githubusercontent.com/clice-project/clice-vscode/main/", + "publish": "vsce publish --baseImagesUrl https://raw.githubusercontent.com/clice-project/clice-vscode/main/", + "pretest": "npm run compile && npm run lint", + "lint": "eslint src --ext ts", + "test": "vscode-test", + "release:patch": "npm version patch -m \"release: v%s\" && git push --follow-tags", + "release:minor": "npm version minor -m \"release: v%s\" && git push --follow-tags" + }, + "devDependencies": { + "@types/decompress": "^4.2.7", + "@types/mocha": "^10.0.7", + "@types/node": "20.x", + "@types/vscode": "^1.80.0", + "@typescript-eslint/eslint-plugin": "^7.14.1", + "@typescript-eslint/parser": "^7.11.0", + "@vscode/test-cli": "^0.0.12", + "@vscode/test-electron": "^2.4.0", + "eslint": "^8.57.0", + "ts-loader": "^9.5.1", + "typescript": "^5.4.5", + "webpack": "^5.92.1", + "webpack-cli": "^5.1.4" + }, + "dependencies": { + "decompress": "^4.2.1", + "vscode-languageclient": "^9.0.1" + }, + "overrides": { + "glob": "^11.1.0" + } +} diff --git a/editors/vscode/src/download.ts b/editors/vscode/src/download.ts new file mode 100644 index 00000000..4160eee0 --- /dev/null +++ b/editors/vscode/src/download.ts @@ -0,0 +1,224 @@ +import * as vscode from 'vscode'; +import * as fs from 'fs'; +import * as path from 'path'; +import * as https from 'https'; +import * as os from 'os'; +// @ts-ignore +import decompress = require('decompress'); + +interface GitHubRelease { + tag_name: string; + assets: { + name: string; + browser_download_url: string; + }[]; +} + + +export async function ensureServerBinary( + context: vscode.ExtensionContext, + channel: vscode.OutputChannel +): Promise { + + const storagePath = context.globalStorageUri.fsPath; + const platform = os.platform(); + const arch = os.arch(); + + channel.appendLine(`[Download] Initializing clice downloader...`); + channel.appendLine(`[Download] Platform: ${platform}, Arch: ${arch}, Storage: ${storagePath}`); + + let platformKeyword = ''; + let archKeyword = ''; + let binaryName = 'clice'; + + if (platform === 'win32') { + platformKeyword = 'windows'; + archKeyword = 'x64'; + binaryName = 'clice.exe'; + } else if (platform === 'darwin') { + platformKeyword = 'macos'; + archKeyword = arch; + } else if (platform === 'linux') { + platformKeyword = 'linux'; + archKeyword = arch === 'x64' ? 'x86_64' : arch; + } else { + const msg = `Unsupported platform: ${platform}`; + channel.appendLine(`[Download] Error: ${msg}`); + vscode.window.showErrorMessage(msg); + return undefined; + } + + const executablePath = path.join(storagePath, "bin", binaryName); + + if (fs.existsSync(executablePath)) { + channel.appendLine(`[Download] Found existing binary at: ${executablePath}`); + // TODO: check tag update + return executablePath; + } + + if (!fs.existsSync(storagePath)) { + channel.appendLine(`[Download] Creating storage directory: ${storagePath}`); + fs.mkdirSync(storagePath, { recursive: true }); + } + + const statusItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100); + + try { + statusItem.text = "$(sync~spin) Checking clice updates..."; + statusItem.show(); + + channel.appendLine(`[Download] Fetching latest release from GitHub...`); + const release = await fetchReleaseInfo(channel); + channel.appendLine(`[Download] Latest tag: ${release.tag_name}`); + + const asset = release.assets.find(a => { + const name = a.name.toLowerCase(); + return name.includes(platformKeyword) && + name.includes(archKeyword) && + !name.includes('symbol'); + }); + + if (!asset) { + throw new Error(`No compatible asset found for ${platform}-${archKeyword} in release ${release.tag_name}`); + } + + channel.appendLine(`[Download] Found asset: ${asset.name}`); + channel.appendLine(`[Download] Download URL: ${asset.browser_download_url}`); + + const tempArchiveName = asset.name; + const tempArchivePath = path.join(storagePath, tempArchiveName); + + statusItem.text = `$(cloud-download) Downloading clice...`; + await downloadFile(asset.browser_download_url, tempArchivePath, channel); + + statusItem.text = `$(file-zip) Extracting...`; + channel.appendLine(`[Download] Extracting ${tempArchivePath} to ${storagePath}...`); + + await decompress(tempArchivePath, storagePath); + channel.appendLine(`[Download] Extraction complete.`); + + fs.unlinkSync(tempArchivePath); + + if (!fs.existsSync(executablePath)) { + throw new Error(`Executable not found at ${executablePath} after extraction.`); + } + + if (platform !== 'win32') { + channel.appendLine(`[Download] Setting executable permissions (chmod 755)...`); + fs.chmodSync(executablePath, '755'); + } + + channel.appendLine(`[Download] Setup successful. Binary ready at: ${executablePath}`); + vscode.window.showInformationMessage(`Clice language server updated to ${release.tag_name}`); + return executablePath; + + } catch (error) { + channel.appendLine(`[Download] CRITICAL ERROR during setup:`); + if (error instanceof Error) { + channel.appendLine(`[Download] Message: ${error.message}`); + if (error.stack) { + channel.appendLine(`[Download] Stack: ${error.stack}`); + } + } else { + channel.appendLine(`[Download] Unknown error: ${JSON.stringify(error)}`); + } + + vscode.window.showErrorMessage(`Failed to download clice server. Check "clice" output channel for details.`, "Open Output").then(selection => { + if (selection === "Open Output") { + channel.show(); + } + }); + + return undefined; + } finally { + statusItem.dispose(); + } +} + +function downloadFile(url: string, destPath: string, channel: vscode.OutputChannel, maxRedirects = 5): Promise { + return new Promise((resolve, reject) => { + if (maxRedirects <= 0) { + reject(new Error('Too many redirects')); + return; + } + + const file = fs.createWriteStream(destPath); + channel.appendLine(`[Download] Start downloading to ${destPath}`); + + https.get(url, { headers: { 'User-Agent': 'VSCode-Extension' } }, (response) => { + if (response.statusCode === 302 || response.statusCode === 301) { + channel.appendLine(`[Download] Redirecting to ${response.headers.location}`); + file.close(); + downloadFile(response.headers.location!, destPath, channel, maxRedirects - 1).then(resolve).catch(reject); + return; + } + if (response.statusCode !== 200) { + reject(new Error(`Download failed with status code ${response.statusCode}`)); + return; + } + + response.pipe(file); + file.on('finish', () => { + file.close(); + channel.appendLine(`[Download] Download finished.`); + resolve(); + }); + }).on('error', (err) => { + file.close(); + fs.unlink(destPath, () => { }); + reject(err); + }); + }); +} + +async function fetchReleaseInfo(channel: vscode.OutputChannel): Promise { + try { + channel.appendLine('[Download] Attempting to fetch latest stable release...'); + const release = await fetchJson('/repos/clice-io/clice/releases/latest'); + channel.appendLine(`[Download] Found stable release: ${release.tag_name}`); + return release; + } catch (error: any) { + if (error.message && error.message.includes('404')) { + channel.appendLine('[Download] Latest stable release not found (404). Checking for pre-releases...'); + + const releases = await fetchJson('/repos/clice-io/clice/releases?per_page=1'); + + if (Array.isArray(releases) && releases.length > 0) { + const latestPre = releases[0]; + channel.appendLine(`[Download] Found pre-release: ${latestPre.tag_name}`); + return latestPre; + } else { + throw new Error('No releases found in repository.'); + } + } + throw error; + } +} + +function fetchJson(apiPath: string): Promise { + return new Promise((resolve, reject) => { + const options = { + hostname: 'api.github.com', + path: apiPath, + headers: { 'User-Agent': 'VSCode-Extension' } + }; + + https.get(options, (res) => { + let data = ''; + if (res.statusCode && (res.statusCode < 200 || res.statusCode >= 300)) { + res.resume(); + reject(new Error(`GitHub API returned ${res.statusCode} for ${apiPath}`)); + return; + } + + res.on('data', (chunk) => data += chunk); + res.on('end', () => { + try { + resolve(JSON.parse(data)); + } catch (e) { + reject(new Error(`Failed to parse GitHub API response: ${e}`)); + } + }); + }).on('error', reject); + }); +} diff --git a/editors/vscode/src/extension.ts b/editors/vscode/src/extension.ts new file mode 100644 index 00000000..2d9b4556 --- /dev/null +++ b/editors/vscode/src/extension.ts @@ -0,0 +1,93 @@ +import * as net from 'net'; +import * as vscode from 'vscode'; +import { workspace, window, ExtensionContext } from 'vscode'; +import { LanguageClient, LanguageClientOptions, ServerOptions, StreamInfo } from 'vscode-languageclient/node'; +import { getSetting } from './setting'; +import { ensureServerBinary } from './download' + +let client: LanguageClient; + +export async function registerCommands(client: LanguageClient, context: ExtensionContext) { + context.subscriptions.push(vscode.commands.registerCommand("clice.restart", async () => { + await client.restart(); + })); +} + +export async function activate(context: ExtensionContext) { + console.log('Congratulations, your extension "clice" is now active!'); + + const channel = window.createOutputChannel('clice'); + const verboseChannel = window.createOutputChannel('clice-verbose'); + + const setting = getSetting(); + if (!setting) { + return; + } + + let executable = setting.executable + let serverOptions: ServerOptions | (() => Promise); + + if (setting.mode === "pipe") { + if (!executable || executable === "") { + const downloadedPath = await ensureServerBinary(context, channel); + if (downloadedPath) { + executable = downloadedPath; + } else { + window.showErrorMessage("Could not find or download clice executable."); + return; + } + } + + let args = ["--mode=pipe"]; + serverOptions = { + run: { command: executable, args: args }, + debug: { command: executable, args: args } + }; + } else if (setting.mode === "socket") { + serverOptions = (): Promise => { + return new Promise((resolve, reject) => { + const client = new net.Socket(); + client.connect(setting.port, setting.host, () => { + resolve({ + reader: client, + writer: client, + }); + }); + client.on('error', (error) => { + reject(error); + }); + }); + }; + } else { + vscode.window.showErrorMessage("Invalid mode, please set the mode to 'pipe' or 'socket'."); + return + } + + const clientOptions: LanguageClientOptions = { + documentSelector: [{ scheme: 'file', language: 'cpp' }], + outputChannel: channel, + traceOutputChannel: verboseChannel, + synchronize: { + fileEvents: workspace.createFileSystemWatcher('**/.clientrc') + } + }; + + client = new LanguageClient( + 'clice', + 'clice', + serverOptions, + clientOptions + ); + + await registerCommands(client, context); + + await client.start(); +} + +export function deactivate(): Thenable | undefined { + if (!client) { + return undefined; + } + let ret = client.stop(); + return ret; +} diff --git a/editors/vscode/src/feature/header.ts b/editors/vscode/src/feature/header.ts new file mode 100644 index 00000000..04b514f9 --- /dev/null +++ b/editors/vscode/src/feature/header.ts @@ -0,0 +1,70 @@ +import * as vscode from 'vscode'; +import { DocumentUri } from 'vscode-languageclient/node'; + +let provider: HeaderContextProvider | undefined = undefined; + +export type HeaderContext = { + file: string, + index: number, + include: number +}; + +export type HeaderContextSwitchParams = { + header: DocumentUri, + context: HeaderContext, +}; + +export type IncludeLocation = { + line: number, + filename: string +}; + +export class TreeItem extends vscode.TreeItem { + children: Array = [] + context: HeaderContext | undefined = undefined; +}; + +export class HeaderContextProvider implements vscode.TreeDataProvider { + private _onDidChangeTreeData: vscode.EventEmitter = new vscode.EventEmitter(); + readonly onDidChangeTreeData: vscode.Event = this._onDidChangeTreeData.event; + + header: string = "" + items: Array = [] + + update(contexts: Array>) { + /// Create groups + this.items = contexts.map((contexts) => { + let item = new TreeItem("", vscode.TreeItemCollapsibleState.Expanded); + item.children = contexts.map((context) => { + const uri = vscode.Uri.file(context.file); + let item = new TreeItem(uri, vscode.TreeItemCollapsibleState.None); + item.context = context; + item.iconPath = vscode.ThemeIcon.File; + item.contextValue = "header-context"; + return item; + }); + return item; + }); + + this.refresh(); + } + + refresh(): void { + this._onDidChangeTreeData.fire(); + } + + getTreeItem(element: TreeItem) { + return element; + } + + getChildren(element?: TreeItem) { + return element ? element.children : this.items; + } +}; + + + +export function registerHeaderContextView() { + provider = new HeaderContextProvider(); + let treeView = vscode.window.createTreeView("header-contexts", { treeDataProvider: provider }); +} diff --git a/editors/vscode/src/feature/highlight.ts b/editors/vscode/src/feature/highlight.ts new file mode 100644 index 00000000..bd2fb83e --- /dev/null +++ b/editors/vscode/src/feature/highlight.ts @@ -0,0 +1,66 @@ +import * as vscode from 'vscode'; + +const rainbowColors = [ + "#56B6C2", + "#61AFEF", + "#C678DD", + "#E06C75", + "#98C379", + "#D19A66", + "#E5C07B" +]; + +const textEditorDecorationTypes = rainbowColors.map((color) => { + return vscode.window.createTextEditorDecorationType({ + color: color + }); +}); + +export function highlightDocument(document: vscode.TextDocument, legend: vscode.SemanticTokensLegend, semanticTokens: vscode.SemanticTokens) { + const editor = vscode.window.activeTextEditor; + if (!editor || editor.document !== document) { return; } + const angleIndex = legend?.tokenTypes.indexOf('angle'); + const leftIndex = legend?.tokenModifiers.indexOf('left'); + const rightIndex = legend?.tokenModifiers.indexOf('right'); + if (leftIndex === undefined || rightIndex === undefined || angleIndex === undefined) { return; } + + const decorations = new Map(); + let level = 0; + + let lastLine = 0; + let lastStart = 0; + + // [line, startCharacter, length, tokenType, tokenModifiers] + for (let i = 0; i < semanticTokens.data.length; i += 5) { + const [lineDelta, startDelta, length, tokenType, tokenModifiers] = semanticTokens.data.slice(i, i + 5); + + lastLine += lineDelta; + lastStart = lineDelta === 0 ? lastStart + startDelta : startDelta; + + const range = new vscode.Range(lastLine, lastStart, lastLine, lastStart + length); + + if (tokenType === angleIndex) { + if (tokenModifiers & (1 << rightIndex)) { + level -= 1; + } + + if (decorations.has(level % rainbowColors.length)) { + decorations.get(level % rainbowColors.length)?.push(range); + } else { + decorations.set(level % rainbowColors.length, [range]); + } + + if (tokenModifiers & (1 << leftIndex)) { + level += 1; + + } + } + } + + for (const [level, ranges] of decorations) { + editor.setDecorations( + textEditorDecorationTypes[level], + ranges + ); + } +} diff --git a/editors/vscode/src/setting.ts b/editors/vscode/src/setting.ts new file mode 100644 index 00000000..6467bda7 --- /dev/null +++ b/editors/vscode/src/setting.ts @@ -0,0 +1,31 @@ +import * as vscode from 'vscode'; + +interface Setting { + executable: string | undefined, + mode: string, + host: string, + port: number, +} + +export function getSetting(): Setting | undefined { + const setting = vscode.workspace.getConfiguration('clice') + const executable = setting.get('executable'); + const mode = setting.get('mode'); + + if (mode !== "pipe" && mode !== "socket") { + vscode.window.showErrorMessage(`Unexpected mode: ${mode}`); + return undefined + } + + const host = setting.get('host')!; + const port = setting.get('port')!; + + if (mode === "socket" && (!host || !port)) { + vscode.window.showErrorMessage('Socket mode requires both host and port to be configured.'); + return undefined; + } + + return { + executable, mode, host, port, + } +} diff --git a/editors/vscode/src/test/extension.test.ts b/editors/vscode/src/test/extension.test.ts new file mode 100644 index 00000000..4ca0ab41 --- /dev/null +++ b/editors/vscode/src/test/extension.test.ts @@ -0,0 +1,15 @@ +import * as assert from 'assert'; + +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +import * as vscode from 'vscode'; +// import * as myExtension from '../../extension'; + +suite('Extension Test Suite', () => { + vscode.window.showInformationMessage('Start all tests.'); + + test('Sample test', () => { + assert.strictEqual(-1, [1, 2, 3].indexOf(5)); + assert.strictEqual(-1, [1, 2, 3].indexOf(0)); + }); +}); diff --git a/editors/vscode/tsconfig.json b/editors/vscode/tsconfig.json new file mode 100644 index 00000000..8a79f20f --- /dev/null +++ b/editors/vscode/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "Node16", + "target": "ES2022", + "lib": [ + "ES2022" + ], + "sourceMap": true, + "rootDir": "src", + "strict": true /* enable all strict type-checking options */ + /* Additional Checks */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + } +} diff --git a/editors/vscode/webpack.config.js b/editors/vscode/webpack.config.js new file mode 100644 index 00000000..9a160447 --- /dev/null +++ b/editors/vscode/webpack.config.js @@ -0,0 +1,48 @@ +//@ts-check + +'use strict'; + +const path = require('path'); + +//@ts-check +/** @typedef {import('webpack').Configuration} WebpackConfig **/ + +/** @type WebpackConfig */ +const extensionConfig = { + target: 'node', // VS Code extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/ + mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') + + entry: './src/extension.ts', // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/ + output: { + // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/ + path: path.resolve(__dirname, 'dist'), + filename: 'extension.js', + libraryTarget: 'commonjs2' + }, + externals: { + vscode: 'commonjs vscode' // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/ + // modules added here also need to be added in the .vscodeignore file + }, + resolve: { + // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader + extensions: ['.ts', '.js'] + }, + module: { + rules: [ + { + test: /\.ts$/, + exclude: /node_modules/, + use: [ + { + loader: 'ts-loader' + } + ] + } + ] + }, + devtool: 'nosources-source-map', + infrastructureLogging: { + level: "log", // enables logging required for problem matchers + }, +}; +module.exports = [ extensionConfig ];