diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 620b7071f8..0000000000 --- a/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["stage-2", "react", "es2015"] -} diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index ca7a3d5aa0..0000000000 --- a/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true - -[*.{js,jsx}] -charset = utf-8 -indent_style = space -indent_size = 2 diff --git a/.env_example b/.env_example new file mode 100644 index 0000000000..2781cf6af5 --- /dev/null +++ b/.env_example @@ -0,0 +1 @@ +VITE_API_HOST=https://api.opendota.com \ No newline at end of file diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index aad2e90496..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -build -webpack.config.js diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 33948f3120..0000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "parserOptions": { - "ecmaFeatures": { "experimentalObjectRestSpread": true } - }, - "extends": "airbnb", - "rules": { - "react/prop-types": 0, - "max-len": ["error", 150], - "no-shadow": 0 - } -} diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md new file mode 100644 index 0000000000..e59f5c0f9d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -0,0 +1,29 @@ +--- +name: 🐛 Bug Report +about: If something isn't working as expected 🤔. +--- + +**Current Behavior** +A clear and concise description of the behavior. + +**Expected behavior/code** +A clear and concise description of what you expected to happen (or code). + +**Console Output** +Please provide your browsers console log if possible. Most browsers will open the console via F12. + +``` +please paste console output in here +``` + +**Environment** + +- Browser Version: [e.g. Chrome 64.0, Firefox 57, Edge 17] +- OS: [e.g. OSX 10.13.4, Windows 10 or Linux Distribution] + +**Possible Solution** + + + +**Additional context/Screenshots** +Add any other context about the problem here. If applicable, add screenshots to help explain. diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md new file mode 100644 index 0000000000..83d138eb98 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Feature_request.md @@ -0,0 +1,17 @@ +--- +name: 🚀 Feature Request +about: I have a suggestion (and might want to implement 🙂)! +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I have an issue when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. Add any considered drawbacks. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Teachability, Documentation, Adoption, Migration Strategy** +If you can, explain how users will be able to use this and possibly write out a version the docs. +Maybe a screenshot or design? diff --git a/.github/ISSUE_TEMPLATE/Support.md b/.github/ISSUE_TEMPLATE/Support.md new file mode 100644 index 0000000000..3e41358dce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Support.md @@ -0,0 +1,12 @@ +--- +name: 🤗 Support Question +about: If you have a question 💬, please check out our Discord! +--- + +**Explain your question as detailed as possible** + +I need help with... + +--- + +If you have a support request or question please also check our Discord Server: https://discord.gg/opendota diff --git a/.github/browserstack_logo.png b/.github/browserstack_logo.png new file mode 100644 index 0000000000..6428883808 Binary files /dev/null and b/.github/browserstack_logo.png differ diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..1bf21e6625 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + - package-ecosystem: npm + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml new file mode 100644 index 0000000000..54bd8717c1 --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,37 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: 24.x + - run: npm ci + - run: npm run build --if-present + env: + CI: true + NODE_ENV: production + - run: cp build/index.html build/404.html + - name: Push to remote + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "opendota+github-actions[bot]@users.noreply.github.com" + rm .gitignore + git checkout -b release + git add --all + git commit --quiet -m "Built from ${{ github.sha }}" + git push origin release -f diff --git a/.gitignore b/.gitignore index cfada684a4..0333e784a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,10 @@ node_modules +.vscode .idea npm-debug.log build .DS_STORE +*.swp +.env +yarn.lock +.vite diff --git a/.nojekyll b/.nojekyll deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2db1c96897..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: node_js -node_js: -- 'node' -notifications: - email: - - howardc93@gmail.com - - aqc2109@columbia.edu -script: -- npm run build -deploy: - provider: script - skip_cleanup: true - on: - branch: master - script: bash deploy.sh diff --git a/404.html b/404.html deleted file mode 120000 index 64233a9e95..0000000000 --- a/404.html +++ /dev/null @@ -1 +0,0 @@ -index.html \ No newline at end of file diff --git a/CNAME b/CNAME deleted file mode 100644 index 7cc9cf13ed..0000000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -ui.yasp.co \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..815e74f939 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 The OpenDota Project + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index cbd142d28e..8d7d5a52ff 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,40 @@ -# ui -[![Build Status](https://travis-ci.org/yasp-dota/ui.svg?branch=master)](https://travis-ci.org/yasp-dota/ui) +# opendota-web -Web UI for YASP. This is a SPA (single-page application) built with React, Redux, and React-Router. +[![Help Contribute to Open Source](https://www.codetriage.com/odota/web/badges/users.svg)](https://www.codetriage.com/odota/web) -Quickstart ----- -* Install Node.js (6.0.0 or greater) (on Ubuntu, `curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - && sudo apt-get install -y nodejs`) -* `npm install` -* `npm start` -* Visit port 8080 on your development machine. You can configure the port used by webpack-dev-server in `webpack.config.js`. -* Ready to make a pull request? Run `npm run build` to make sure the build runs and there are no linting errors. +OpenDota Web UI: A web interface for viewing Dota 2 data. This utilizes the [OpenDota API](https://docs.opendota.com), which is also an [open source project](https://github.com/odota/core). -Tech stack ----- -* View layer: React -* State management: Redux -* CSS: css-modules & postcss -* New to React/Redux? Read these articles on React and watch these egghead series by Redux creator Dan Abramov. +## Quickstart -Thinking in React: https://facebook.github.io/react/docs/thinking-in-react.html +- Clone the repo using `git clone git@github.com:odota/web.git` +- Install Node.js (v16 or greater) (download [installer](https://nodejs.org/en/download/) or [install via package manager](https://nodejs.org/en/download/package-manager/)) +- `npm install` +- `npm start` +- Visit port 5173 on your development machine. -Getting started with Redux: https://egghead.io/courses/getting-started-with-redux +## Contributing -Idiomatic Redux: https://egghead.io/courses/building-react-applications-with-idiomatic-redux +- Make some changes. +- `npm run typecheck` to check your code for typing errors. +- `npm test` to check all app routes for uncaught JavaScript errors. +- Submit a pull request. Wait for review and merge. +- Congratulations! You're a contributor. -ES6 guide: https://github.com/lukehoban/es6features +## Configuration -Notes ----- -* For ease of development, the SPA is pointed to production YASP by default. This means you don't need to set up the entire stack/get sample data. -* You can configure it to point to your own instance (if you are working on a backend feature) in `yasp.config.js`. +- You can set the following environment variables: + - VITE_API_HOST: Changes the API that the UI requests data from (default https://api.opendota.com) + - SSL_CRT_FILE/SSL_KEY_FILE: Causes the development server to use HTTPS + +## Tech Stack + +- View: React/Redux +- CSS: styled-components + +## Notes + +- You don't have to set up the entire stack (databases, etc.), or worry about getting starter data, since the UI points to the production API. +- Use the configuration to point to your own API (if you are working on a new feature and want to start building the UI before it's deployed to production). +- Discord: https://discord.gg/opendota + - Strongly recommended for active developers! We move fast and it's helpful to be up to speed with everything that's happening. +- If you're interested in contributing regularly, let us know and we'll add you to the organization. diff --git a/actions/appBarActions.js b/actions/appBarActions.js deleted file mode 100644 index bc844102d8..0000000000 --- a/actions/appBarActions.js +++ /dev/null @@ -1,9 +0,0 @@ -const OPEN = 'yasp/appBar/OPEN'; - -export const appBarActions = { - OPEN, -}; - -export const openMenu = () => ({ - type: OPEN, -}); diff --git a/actions/constantsActions.js b/actions/constantsActions.js deleted file mode 100644 index 92696d1ed0..0000000000 --- a/actions/constantsActions.js +++ /dev/null @@ -1,43 +0,0 @@ -import fetch from 'isomorphic-fetch'; -import { HOST_URL } from '../actions'; -const url = '/api/constants'; -const REQUEST = 'yasp/constants/REQUEST'; -const OK = 'yasp/constants/OK'; -const ERROR = 'yasp/constants/ERROR'; - -export const constantsActions = { - REQUEST, - OK, - ERROR, -}; - -const getConstantsRequest = () => ({ - type: REQUEST, -}); -const getConstantsOk = (payload) => ({ - type: OK, - payload, -}); -const getConstantsError = (payload) => ({ - type: ERROR, - payload, -}); - -export const getConstants = (host = HOST_URL) => (dispatch) => { - getConstantsRequest(); - return fetch(`${host}${url}`, { credentials: 'include' }) - .then(response => response.json()) - .then(json => { - const links = Object.keys(json.navbar_pages).map( - (key) => ({ path: `/${key}`, name: json.navbar_pages[key].name }) - ); - const transformedData = { - ...json, - links, - }; - dispatch(getConstantsOk(transformedData)); - }) - .catch(error => { - dispatch(getConstantsError(error)); - }); -}; diff --git a/actions/index.js b/actions/index.js deleted file mode 100644 index 91c3404f1a..0000000000 --- a/actions/index.js +++ /dev/null @@ -1,28 +0,0 @@ -import { metadataActions, getMetadata } from './metadataActions'; -import { constantsActions, getConstants } from './constantsActions'; -import { playerActions, getPlayer } from './playerActions'; -import { matchActions, getMatch, setMatchSort } from './matchActions'; -import { playerMatchesActions, getPlayerMatches, setPlayerMatchesSort } from './playerMatchesActions'; -import { appBarActions, openMenu } from './appBarActions'; -import { searchActions, getSearchResult } from './searchActions'; -import { HOST_URL } from '../yasp.config'; - -export { - metadataActions, - getMetadata, - constantsActions, - getConstants, - playerActions, - getPlayer, - matchActions, - getMatch, - setMatchSort, - playerMatchesActions, - getPlayerMatches, - setPlayerMatchesSort, - appBarActions, - openMenu, - getSearchResult, - searchActions, - HOST_URL, -}; diff --git a/actions/matchActions.js b/actions/matchActions.js deleted file mode 100644 index 54614732c7..0000000000 --- a/actions/matchActions.js +++ /dev/null @@ -1,44 +0,0 @@ -import fetch from 'isomorphic-fetch'; -import { HOST_URL } from '../actions'; - -const url = '/api/matches/'; - -const REQUEST = 'yasp/match/REQUEST'; -const OK = 'yasp/match/OK'; -const ERROR = 'yasp/match/ERROR'; -const SORT = 'yasp/match/SORT'; - -export const matchActions = { - REQUEST, - OK, - ERROR, - SORT, -}; - -const getMatchRequest = () => ({ type: REQUEST }); - -const getMatchOk = (payload) => ({ - type: OK, - payload, -}); - -const getMatchError = (payload) => ({ - type: ERROR, - payload, -}); - - -export const setMatchSort = (sortField, sortState, sortFn) => ({ - type: SORT, - sortField, - sortState, - sortFn, -}); - -export const getMatch = (matchId) => (dispatch) => { - dispatch(getMatchRequest()); - return fetch(`${HOST_URL}${url}${matchId}`) - .then(response => response.json()) - .then(json => dispatch(getMatchOk(json))) - .catch(error => dispatch(getMatchError(error))); -}; diff --git a/actions/metadataActions.js b/actions/metadataActions.js deleted file mode 100644 index 03cd1f861f..0000000000 --- a/actions/metadataActions.js +++ /dev/null @@ -1,34 +0,0 @@ -import fetch from 'isomorphic-fetch'; -import { HOST_URL } from '../actions'; -const url = '/api/metadata'; -const REQUEST = 'yasp/metadata/REQUEST'; -const OK = 'yasp/metadata/OK'; -const ERROR = 'yasp/metadata/ERROR'; - -export const metadataActions = { - REQUEST, - OK, - ERROR, -}; - -const getMetadataRequest = () => ({ - type: REQUEST, -}); -const getMetadataOk = (payload) => ({ - type: OK, - payload, -}); -const getMetadataError = (payload) => ({ - type: ERROR, - payload, -}); - -export const getMetadata = (host = HOST_URL) => (dispatch) => { - getMetadataRequest(); - return fetch(`${host}${url}`, { credentials: 'include' }) - .then(response => response.json()) - .then(json => dispatch(getMetadataOk(json))) - .catch(error => { - dispatch(getMetadataError(error)); - }); -}; diff --git a/actions/playerActions.js b/actions/playerActions.js deleted file mode 100644 index 414353d99e..0000000000 --- a/actions/playerActions.js +++ /dev/null @@ -1,43 +0,0 @@ -import fetch from 'isomorphic-fetch'; -import { HOST_URL } from '.'; -import { getPlayerMatchesOk, getPlayerMatchesRequest, getPlayerMatchesError } from './playerMatchesActions'; - -const url = '/api/players'; - -const REQUEST = 'yasp/player/REQUEST'; -const OK = 'yasp/player/OK'; -const ERROR = 'yasp/player/ERROR'; - -export const playerActions = { - REQUEST, - OK, - ERROR, -}; - -const getPlayerRequest = () => ({ type: REQUEST }); - -const getPlayerOk = (payload) => ({ - type: OK, - payload, -}); - -const getPlayerError = (payload) => ({ - type: ERROR, - payload, -}); - -export const getPlayer = (accountId, host = HOST_URL) => (dispatch) => { - dispatch(getPlayerRequest()); - dispatch(getPlayerMatchesRequest()); - return fetch(`${host}${url}/${accountId}`) - .then(response => response.json()) - .then(json => { - const { matches, ...playerData } = json; - dispatch(getPlayerOk(playerData)); - dispatch(getPlayerMatchesOk(matches)); - }) - .catch(error => { - dispatch(getPlayerError(error)); - dispatch(getPlayerMatchesError(error)); - }); -}; diff --git a/actions/playerMatchesActions.js b/actions/playerMatchesActions.js deleted file mode 100644 index 20092d87b0..0000000000 --- a/actions/playerMatchesActions.js +++ /dev/null @@ -1,43 +0,0 @@ -import fetch from 'isomorphic-fetch'; -import { HOST_URL } from './'; - -const url = (playerId, numMatches) => `/api/players/${playerId}/matches?limit=${numMatches}`; - -const REQUEST = 'yasp/playerMatches/REQUEST'; -const OK = 'yasp/playerMatches/OK'; -const ERROR = 'yasp/playerMatches/ERROR'; -const SORT = 'yasp/playerMatches/SORT'; - -export const playerMatchesActions = { - REQUEST, - OK, - ERROR, - SORT, -}; - -export const setPlayerMatchesSort = (sortField, sortState, sortFn) => ({ - type: SORT, - sortField, - sortState, - sortFn, -}); - -export const getPlayerMatchesRequest = () => ({ type: REQUEST }); - -export const getPlayerMatchesOk = (payload) => ({ - type: OK, - payload, -}); - -export const getPlayerMatchesError = (payload) => ({ - type: ERROR, - payload, -}); - -export const getPlayerMatches = (playerId, numMatches, host = HOST_URL) => (dispatch) => { - dispatch(getPlayerMatchesRequest()); - return fetch(`${host}${url(playerId, numMatches)}`, { credentials: 'include' }) - .then(response => response.json()) - .then(json => dispatch(getPlayerMatchesOk(json.matches))) - .catch(error => dispatch(getPlayerMatchesError(error))); -}; diff --git a/actions/searchActions.js b/actions/searchActions.js deleted file mode 100644 index d6e9646806..0000000000 --- a/actions/searchActions.js +++ /dev/null @@ -1,37 +0,0 @@ -import fetch from 'isomorphic-fetch'; -import { HOST_URL } from '../actions'; - -const url = '/api/search'; - -const START = 'yasp/search/START'; -const DONE = 'yasp/search/DONE'; -const ERROR = 'yasp/search/ERROR'; - -export const searchActions = { - START, - DONE, - ERROR, -}; - -const getSearchStart = () => ({ - type: START, -}); - -const getSearchDone = (payload) => ({ - type: DONE, - payload, -}); - -const getSearchError = (payload) => ({ - type: ERROR, - payload, -}); - -export const getSearchResult = (query) => (dispatch) => { - dispatch(getSearchStart()); - - return fetch(`${HOST_URL}${url}?q=${query}`) - .then(res => res.json()) - .then(json => dispatch(getSearchDone(json))) - .catch(err => dispatch(getSearchError(err))); -}; diff --git a/assets/Roboto-Bold.ttf b/assets/Roboto-Bold.ttf deleted file mode 100755 index a355c27cde..0000000000 Binary files a/assets/Roboto-Bold.ttf and /dev/null differ diff --git a/assets/Roboto-Light.ttf b/assets/Roboto-Light.ttf deleted file mode 100755 index 94c6bcc67e..0000000000 Binary files a/assets/Roboto-Light.ttf and /dev/null differ diff --git a/assets/Roboto-LightItalic.ttf b/assets/Roboto-LightItalic.ttf deleted file mode 100755 index 04cc002302..0000000000 Binary files a/assets/Roboto-LightItalic.ttf and /dev/null differ diff --git a/assets/flaticon.css b/assets/flaticon.css deleted file mode 100644 index 6d555dd88f..0000000000 --- a/assets/flaticon.css +++ /dev/null @@ -1,17 +0,0 @@ -@font-face { - font-family: "Flaticon"; - src: url("/assets/flaticon.eot"); - src: url("/assets/flaticon.eot#iefix") format("embedded-opentype"), - url("/assets/flaticon.woff") format("woff"), - url("/assets/flaticon.ttf") format("truetype"), - url("/assets/flaticon.svg") format("svg"); - font-weight: normal; - font-style: normal; -} -[class^="flaticon-"]:before, [class*=" flaticon-"]:before, -[class^="flaticon-"]:after, [class*=" flaticon-"]:after { - font-family: Flaticon; - font-style: normal; -}.flaticon-1:before { - content: "\e000"; -} diff --git a/assets/flaticon.eot b/assets/flaticon.eot deleted file mode 100644 index 9351a1454f..0000000000 Binary files a/assets/flaticon.eot and /dev/null differ diff --git a/assets/flaticon.svg b/assets/flaticon.svg deleted file mode 100644 index f9fc0aea19..0000000000 --- a/assets/flaticon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/flaticon.ttf b/assets/flaticon.ttf deleted file mode 100644 index 87e35402b8..0000000000 Binary files a/assets/flaticon.ttf and /dev/null differ diff --git a/assets/flaticon.woff b/assets/flaticon.woff deleted file mode 100644 index ebe80763e4..0000000000 Binary files a/assets/flaticon.woff and /dev/null differ diff --git a/components/AccountWidget/AccountWidget.css b/components/AccountWidget/AccountWidget.css deleted file mode 100644 index 00a0bca3a2..0000000000 --- a/components/AccountWidget/AccountWidget.css +++ /dev/null @@ -1,6 +0,0 @@ - - -.container li { - display: inline-block; - padding-left: 10px; -} diff --git a/components/AccountWidget/AccountWidget.jsx b/components/AccountWidget/AccountWidget.jsx deleted file mode 100644 index 2e47ca2c71..0000000000 --- a/components/AccountWidget/AccountWidget.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import Spinner from '../Spinner'; -import Error from '../Error'; -import { REDUCER_KEY } from '../../reducers'; -import { getPlayer } from '../../actions'; -import { Link } from 'react-router'; -import styles from './AccountWidget.css'; - -// Maybe we can factor out this ternary into a function? -const AccountWidget = ({ loading, error, user }) => ( -
- {loading && !error && } - {error && } - {!error && !loading && user ? ( - - ) - : Login - } -
-); - -export { AccountWidget }; - -const mapStateToProps = (state) => { - const { error, loading, user } = state[REDUCER_KEY].gotMetadata; - - return { - loading, - error, - user, - }; -}; - -const mapDispatchToProps = (dispatch) => ({ - getPlayer: (playerId) => dispatch(getPlayer(playerId)), -}); - -export default connect(mapStateToProps, mapDispatchToProps)(AccountWidget); diff --git a/components/AccountWidget/index.js b/components/AccountWidget/index.js deleted file mode 100644 index bf69a44feb..0000000000 --- a/components/AccountWidget/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import AccountWidget from './AccountWidget'; - -export default AccountWidget; diff --git a/components/App/App.css b/components/App/App.css deleted file mode 100644 index f2c2478ff6..0000000000 --- a/components/App/App.css +++ /dev/null @@ -1,22 +0,0 @@ -@import "../palette.css"; - -.container { - transition: var(--normalTransition); - position: relative; - display: flex; - flex-direction:column; - height: 100%; -} - -.drawerOpen { - left: 256px; -} - -.drawerClosed { - left: 0; -} - -.body { - padding: 50px; - flex-grow: 1; -} diff --git a/components/App/App.jsx b/components/App/App.jsx deleted file mode 100644 index e686691f2d..0000000000 --- a/components/App/App.jsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react'; -import Header from '../Header'; -import Footer from '../Footer'; -import getMuiTheme from 'material-ui/styles/getMuiTheme'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; -import styles from './App.css'; -import { connect } from 'react-redux'; -import { REDUCER_KEY } from '../../reducers'; - -const App = ({ children, open }) => ( - -
-
-
- {children} -
-
-
-); - -const mapStateToProps = (state) => ({ - open: state[REDUCER_KEY].appBar.open, -}); - -export default connect(mapStateToProps)(App); diff --git a/components/App/index.js b/components/App/index.js deleted file mode 100644 index f1f2a246e9..0000000000 --- a/components/App/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import App from './App'; - -export default App; diff --git a/components/Cheese/Cheese.css b/components/Cheese/Cheese.css deleted file mode 100644 index ca4366c5c8..0000000000 --- a/components/Cheese/Cheese.css +++ /dev/null @@ -1,23 +0,0 @@ -.container { - display: flex; - flex-direction: row; - justify-content: space-around; - flex-wrap: wrap; - - @media only screen and (max-width: 650px) { - flex-direction: column; - } -} - -.percent { - margin-bottom: 10px; -} - -.section { - width: calc(100% / 3); - text-align: center; - @media only screen and (max-width: 650px) { - width: 100%; - margin-bottom: 25px; - } -} diff --git a/components/Cheese/Cheese.jsx b/components/Cheese/Cheese.jsx deleted file mode 100644 index 4ff84cca6d..0000000000 --- a/components/Cheese/Cheese.jsx +++ /dev/null @@ -1,56 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import { REDUCER_KEY } from '../../reducers'; -import Spinner from '../Spinner'; -import styles from './Cheese.css'; -import LinearProgress from 'material-ui/LinearProgress'; -import CheeseButton from './CheeseButton'; - -const Cheese = ({ donations, error, loading }) => { - const { goal, cheese } = donations; - const percent = cheese / goal; - - const getCheeseMeter = () => ( -
-
{(percent * 100).toFixed(2)}%
- - {percent >= 1 &&
- Woo!!! Thanks guys! No more ads! - Resets in X days.
} -
- ); - - return ( -
-
-
Buy some cheese. Help pay for servers. Reaching the goal every month keeps us running.
-
-
-
-

Monthly Cheese Goal

-
- {error && } - {loading && } - { /* TODO - this should be it's own component called cheese meter */ - !error && !loading - && getCheeseMeter(donations.goal, donations.cheese) - } -
-
-
-
- -
-
- ); -}; - -const mapStateToProps = (state) => { - const { loading, error, donations } = state[REDUCER_KEY].gotMetadata; - - return { - loading, - error, - donations, - }; -}; - -export default connect(mapStateToProps)(Cheese); diff --git a/components/Cheese/CheeseButton.css b/components/Cheese/CheeseButton.css deleted file mode 100644 index 6937100029..0000000000 --- a/components/Cheese/CheeseButton.css +++ /dev/null @@ -1,14 +0,0 @@ -@import "../palette.css"; - -:export { backgroundColor: var(--defaultPrimaryColor) } -:export { hoverColor: color(var(--defaultPrimaryColor) lightness(-10%)) } - -.cheese { - font-family: Flaticon; - font-size: 40px; - text-shadow: 0 0 10px #ff0; - margin: 0 10px; - &::before { - content: "\E000"; - } -} diff --git a/components/Cheese/CheeseButton.jsx b/components/Cheese/CheeseButton.jsx deleted file mode 100644 index 571d7932e9..0000000000 --- a/components/Cheese/CheeseButton.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import FontIcon from 'material-ui/FontIcon'; -import { Link } from 'react-router'; -import styles from './CheeseButton.css'; -import FlatButton from 'material-ui/FlatButton'; - -export default () => ( - - - - - - -); diff --git a/components/Cheese/index.js b/components/Cheese/index.js deleted file mode 100644 index 297a584deb..0000000000 --- a/components/Cheese/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Cheese from './Cheese'; - -export default Cheese; diff --git a/components/Constants/createConstantsWrapper.jsx b/components/Constants/createConstantsWrapper.jsx deleted file mode 100644 index 7d99931537..0000000000 --- a/components/Constants/createConstantsWrapper.jsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import { REDUCER_KEY } from '../../reducers'; -import Spinner from '../Spinner'; -import Error from '../Error'; - -export default (Component) => { - const ConstantsWrapper = (props) => { - const { error, loading, ...realProps } = props; - return ( -
- {loading && !error && } - {error && } - {!loading && !error && } -
- ); - }; - - const mapStateToProps = (state) => { - const { error, loading } = state[REDUCER_KEY].gotConstants; - - return { - error, - loading, - }; - }; - - return connect(mapStateToProps)(ConstantsWrapper); -}; diff --git a/components/Constants/index.js b/components/Constants/index.js deleted file mode 100644 index 49f048204b..0000000000 --- a/components/Constants/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import createConstantsWrapper from './createConstantsWrapper'; - -export default createConstantsWrapper; diff --git a/components/Error/Error.jsx b/components/Error/Error.jsx deleted file mode 100644 index 6470aa2f88..0000000000 --- a/components/Error/Error.jsx +++ /dev/null @@ -1,3 +0,0 @@ -import React from 'react'; - -export default () =>
Whoops! Something went wrong.
; diff --git a/components/Error/index.js b/components/Error/index.js deleted file mode 100644 index 591ec17265..0000000000 --- a/components/Error/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Error from './Error'; - -export default Error; diff --git a/components/Footer/Footer.css b/components/Footer/Footer.css deleted file mode 100644 index 1694fbcefe..0000000000 --- a/components/Footer/Footer.css +++ /dev/null @@ -1,17 +0,0 @@ -@import "../palette.css"; - -.footer { - padding: 20px; - background-color: var(--primaryTextColor); - color: #fff; -} - -.links { - background-color: var(--primaryTextColor); - color: #fff; - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: center; - padding: 1em 1em 1em 1em; -} diff --git a/components/Footer/Footer.jsx b/components/Footer/Footer.jsx deleted file mode 100644 index 007f2f5e17..0000000000 --- a/components/Footer/Footer.jsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import Cheese from '../Cheese'; -import styles from './Footer.css'; - -const Footer = () => ( -
- -
-); - -export default Footer; - -// tooltips(); -// formatHtml(); diff --git a/components/Footer/FooterLinks.jsx b/components/Footer/FooterLinks.jsx deleted file mode 100644 index e7dec3d4c9..0000000000 --- a/components/Footer/FooterLinks.jsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import styles from './Footer.css'; - -export default () => ( - - An open source volunteer project - • Privacy & Terms  - • Follow on   - • Join us on Discord  - • Dota 2 API powered by   - • Parsing by clarity  - • Cheese icon by Belc on flaticon  - -); diff --git a/components/Footer/index.js b/components/Footer/index.js deleted file mode 100644 index dcdcbe0b4e..0000000000 --- a/components/Footer/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import Footer from './Footer'; -import FooterLinks from './FooterLinks'; - -export default Footer; -export { FooterLinks }; diff --git a/components/Header/Header.container.js b/components/Header/Header.container.js deleted file mode 100644 index b05daaaea7..0000000000 --- a/components/Header/Header.container.js +++ /dev/null @@ -1,9 +0,0 @@ -import { connect } from 'react-redux'; -import Header from './Header'; -import { openMenu } from '../../actions'; - -const mapDispatchToProps = (dispatch) => ({ - openMenu: () => dispatch(openMenu()), -}); - -export default connect(null, mapDispatchToProps)(Header); diff --git a/components/Header/Header.css b/components/Header/Header.css deleted file mode 100644 index 33f1de8c36..0000000000 --- a/components/Header/Header.css +++ /dev/null @@ -1,12 +0,0 @@ -@import "../palette.css"; - -.header { - background-color: var(--defaultPrimaryColor) !important; - - & a { - color: #fff; - &:hover { - color: var(--primaryTextColor); - } - } -} diff --git a/components/Header/Header.jsx b/components/Header/Header.jsx deleted file mode 100644 index ff56cd5e15..0000000000 --- a/components/Header/Header.jsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import Logo from '../Logo'; -import { NavDrawer } from '../NavBar'; -import AccountWidget from '../AccountWidget'; -import AppBar from 'material-ui/AppBar'; -import styles from './Header.css'; - -export default ({ openMenu }) => ( -
- )} - iconStyleRight={{ marginRight: 0 }} - title={()} - onLeftIconButtonTouchTap={() => openMenu()} - /> - -
-); diff --git a/components/Header/index.js b/components/Header/index.js deleted file mode 100644 index 9b1e901062..0000000000 --- a/components/Header/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Header from './Header.container'; - -export default Header; diff --git a/components/Home/Home.jsx b/components/Home/Home.jsx deleted file mode 100644 index c72a383e36..0000000000 --- a/components/Home/Home.jsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; - -const Home = () => ( -
This is a home page!
-); - -function mapStateToProps(data) { - return { content: data.content }; -} - -export default connect(mapStateToProps)(Home); diff --git a/components/Home/index.js b/components/Home/index.js deleted file mode 100644 index fbe3fed6bf..0000000000 --- a/components/Home/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Home from './Home'; - -export default Home; diff --git a/components/Logo/Logo.jsx b/components/Logo/Logo.jsx deleted file mode 100644 index 04369f63b5..0000000000 --- a/components/Logo/Logo.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router'; - -export default () => ( -
- - YASP -
- - - -
- -
-); diff --git a/components/Logo/index.js b/components/Logo/index.js deleted file mode 100644 index 72acb339d7..0000000000 --- a/components/Logo/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Logo from './Logo'; - -export default Logo; diff --git a/components/Match/Match.jsx b/components/Match/Match.jsx deleted file mode 100644 index b149d620fb..0000000000 --- a/components/Match/Match.jsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import { MatchTable } from '../Table'; -import { getMatch } from '../../actions'; -import { connect } from 'react-redux'; - -const Match = () => ( -
- -
-); - -const mapStateToProps = (state, { params }) => ({ matchId: params.match_id }); - -const mapDispatchToProps = (dispatch) => ({ - sort: (column) => dispatch(getMatch(column)), - getMatch: (matchId) => dispatch(getMatch(matchId)), -}); - -class RequestLayer extends React.Component { - componentDidMount() { - this.props.getMatch(this.props.routeParams.match_id); - } - - componentWillUpdate(nextProps) { - if (this.props.match_id !== nextProps.match_id) { - this.props.getMatch(nextProps.match_id); - } - } - - render() { - return ( -
- -
- ); - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(RequestLayer); diff --git a/components/Match/index.js b/components/Match/index.js deleted file mode 100644 index 15231febd1..0000000000 --- a/components/Match/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Match from './Match'; - -export default Match; diff --git a/components/NavBar/NavBar.css b/components/NavBar/NavBar.css deleted file mode 100644 index 92709f1ba1..0000000000 --- a/components/NavBar/NavBar.css +++ /dev/null @@ -1,13 +0,0 @@ -@import "../palette.css"; - -.listItem { - padding: 20px; - font-size: var(--mediumLargeFontSize); - - color: var(--primaryTextColor); - - &:hover { - background-color: var(--primaryTextColor); - color: #fff; - } -} diff --git a/components/NavBar/NavBar.jsx b/components/NavBar/NavBar.jsx deleted file mode 100644 index 05ab7aee97..0000000000 --- a/components/NavBar/NavBar.jsx +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import Spinner from '../Spinner'; -import Error from '../Error'; -import { REDUCER_KEY } from '../../reducers'; -import { Link } from 'react-router'; -import Divider from 'material-ui/Divider'; -import styles from './NavBar.css'; -import { openMenu } from '../../actions'; - -const NavBar = ({ loading, error, links, toggleMenu }) => { - const getNavLinks = (navLinks) => - navLinks.map((link, index) => ( - -
  • - {link.name} -
  • - - - )); - - return ( -
    - {loading && !error && } - {error && } - {!loading && !error && getNavLinks(links)} -
    - ); -}; - -const mapStateToProps = (state) => { - const { loading, error, links } = state[REDUCER_KEY].gotConstants; - - return { - loading, - error, - links, - }; -}; - -export default connect(mapStateToProps, { toggleMenu: openMenu })(NavBar); diff --git a/components/NavBar/NavDrawer.css b/components/NavBar/NavDrawer.css deleted file mode 100644 index 15a47957ab..0000000000 --- a/components/NavBar/NavDrawer.css +++ /dev/null @@ -1,10 +0,0 @@ -.container { - display: flex; - flex-direction:column; - min-height: 100%; - position: relative; -} - -.navigation { - flex-grow: 1; -} diff --git a/components/NavBar/NavDrawer.jsx b/components/NavBar/NavDrawer.jsx deleted file mode 100644 index 07e4b6cdf0..0000000000 --- a/components/NavBar/NavDrawer.jsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import NavBar from './NavBar'; -import Drawer from 'material-ui/Drawer'; -import { FooterLinks } from '../Footer'; -import { REDUCER_KEY } from '../../reducers'; -import styles from './NavDrawer.css'; -import { openMenu } from '../../actions'; - -const NavDrawer = ({ open, openMenu }) => ( - -
    -
    - -
    -
    - -
    -
    -
    -); - -const mapStateToProps = (state) => ({ - open: state[REDUCER_KEY].appBar.open, -}); - -export default connect(mapStateToProps, { openMenu })(NavDrawer); diff --git a/components/NavBar/index.js b/components/NavBar/index.js deleted file mode 100644 index ebdd1269ae..0000000000 --- a/components/NavBar/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import NavBar from './NavBar'; -import NavDrawer from './NavDrawer'; - -export { - NavBar, - NavDrawer, -}; diff --git a/components/Player/Player.jsx b/components/Player/Player.jsx deleted file mode 100644 index 19d9a2f77d..0000000000 --- a/components/Player/Player.jsx +++ /dev/null @@ -1,58 +0,0 @@ -import React from 'react'; -import { PlayerMatchesTable } from '../Table'; -import PlayerHeader from './PlayerHeader'; -import Error from '../Error'; -import { getPlayer } from '../../actions'; -import { connect } from 'react-redux'; -import styles from './PlayerHeader.css'; - -const Player = ({ playerId }) => { - if (!playerId) { - return ; - } - - return ( -
    -
    - -
    - - -
    - ); -}; - -const mapStateToProps = (state, { params }) => ({ playerId: params.account_id }); - -const mapDispatchToProps = (dispatch) => ({ - getPlayer: (playerId) => dispatch(getPlayer(playerId)), -}); - -class RequestLayer extends React.Component { - componentDidMount() { - this.props.getPlayer(this.props.playerId); - } - - componentWillUpdate(nextProps) { - if (this.props.playerId !== nextProps.playerId) { - this.props.getPlayer(nextProps.playerId); - } - } - - render() { - return ; - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(RequestLayer); - -// const mapStateToProps = (state) => ({ -// profile: player.getProfile(state), -// win: player.getWin(state), -// lose: player.getLose(state), -// mmrEstimate: player.getMmrEstimate(state), -// soloMmrEstimate: player.getSoloMmrEstimate(state), -// competitiveRank: player.getCompetitiveRank(state), -// loading: player.getLoading(state), -// error: player.getError(state), -// }); diff --git a/components/Player/PlayerHeader.css b/components/Player/PlayerHeader.css deleted file mode 100644 index 747e315dc8..0000000000 --- a/components/Player/PlayerHeader.css +++ /dev/null @@ -1,82 +0,0 @@ -@import "../palette.css"; - -.header { - margin-bottom: 30px; -} - -.image { - display: inline-block; - height: 30px; - width: 30px; - background-size: cover; -} - -.nameContainer { - display: flex; - flex-direction: row; - font-size: 26px; - text-transform: uppercase; - margin-bottom: 20px; -} - -.pictureContainer { - display: flex; - flex-direction: column; - justify-content: center; -} - -.playerName { - display: flex; - flex-direction: column; - justify-content: center; - margin: 0 10px; -} - -.playerPicture { - border-radius: 100px; - height: 40px; -} - -.playerPictureYasp { - composes: playerPicture; - border: 5px solid #BBF0FD; -} - -.playerPictureCheese { - composes: playerPicture; - border: 5px solid #FFD700 -} - -.yaspBadge { - composes: image; -} - -.container { - display: flex; - flex-direction: row; - margin: 0 0 5px 0; - justify-content: space-between; - flex-wrap: wrap; -} - - -@media only screen and (max-width: 650px) { - .mmr { - display: flex; - flex-direction: row; - justify-content: space-between; - width: 100%; - } - - .mmrContainer { - width: 100%; - margin-top: 15px; - } - - .playerInfo { - display: flex; - flex-direction: column; - align-items: center; - width: 100%; - } -} diff --git a/components/Player/PlayerHeader.jsx b/components/Player/PlayerHeader.jsx deleted file mode 100644 index 67ee65834a..0000000000 --- a/components/Player/PlayerHeader.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import PlayerName from './PlayerName'; -import PlayerMMR from './PlayerMMR'; -import PlayerRecord from './PlayerRecord'; -import styles from './PlayerHeader.css'; - -export default () => ( -
    - -
    - - -
    -
    -); diff --git a/components/Player/PlayerMMR.jsx b/components/Player/PlayerMMR.jsx deleted file mode 100644 index 13a2433050..0000000000 --- a/components/Player/PlayerMMR.jsx +++ /dev/null @@ -1,37 +0,0 @@ -import React from 'react'; -import Error from '../Error'; -import Spinner from '../Spinner'; -import { connect } from 'react-redux'; -import { player } from '../../reducers'; -import styles from './PlayerHeader.css'; - -export const PlayerMMR = ({ loading, error, rank, soloRank, mmrEstimate }) => { - const getPlayerMMR = () => { - if (error) return ; - if (loading) return ; - return ( -
    -
    Solo: {soloRank}
    -
    Party: {rank}
    -
    Estimate: {mmrEstimate.estimate}
    -
    - ); - }; - - return ( -
    - {getPlayerMMR()} -
    - ); -}; - -const mapStateToProps = (state) => ({ - loading: player.getLoading(state), - error: player.getError(state), - rank: player.getCompetitiveRank(state), - soloRank: player.getSoloMmrEstimate(state), - mmrEstimate: player.getMmrEstimate(state), -}); - - -export default connect(mapStateToProps)(PlayerMMR); diff --git a/components/Player/PlayerName.jsx b/components/Player/PlayerName.jsx deleted file mode 100644 index b38f70c169..0000000000 --- a/components/Player/PlayerName.jsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -// import YaspBadge from './YaspBadge'; -import PlayerPicture from './PlayerPicture'; -import Error from '../Error'; -import Spinner from '../Spinner'; -import { connect } from 'react-redux'; -import { player } from '../../reducers'; -import styles from './PlayerHeader.css'; - -const PlayerName = ({ playerName, registered, loading, error }) => { - const getPlayerName = () => { - if (error) return ; - if (loading) return ; - - return ( -
    -
    - -
    -
    {playerName}
    -
    - ); - }; - - return
    {getPlayerName()}
    ; -}; - -export { PlayerName }; - -// TODO - add account reducer for player so I can just call getX() instead of dot notation - -const mapStateToProps = (state) => ({ - loading: player.getLoading(state), - error: player.getError(state), - playerName: player.getPlayerName(state), - registered: player.getLastLogin(state), -}); - -export default connect(mapStateToProps)(PlayerName); diff --git a/components/Player/PlayerPicture.jsx b/components/Player/PlayerPicture.jsx deleted file mode 100644 index 43bc920123..0000000000 --- a/components/Player/PlayerPicture.jsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import { player } from '../../reducers'; -import Avatar from 'material-ui/Avatar'; -import styles from './PlayerHeader.css'; - -const getPlayerStyle = (registered, cheese) => { - if (cheese) return styles.playerPictureCheese; - if (registered) return styles.playerPictureYasp; - return styles.playerPicture; -}; - -const PlayerPicture = ({ picture, steamLink, cheese, registered }) => ( - - - -); - -// TODO - refactor so that account is its own reducer with its own getX() functions - -const mapStateToProps = (state) => ({ - picture: player.getPicture(state), - steamLink: player.getSteamLink(state), - cheese: player.getCheese(state), -}); - -export { PlayerPicture }; - -export default connect(mapStateToProps)(PlayerPicture); diff --git a/components/Player/PlayerRecord.jsx b/components/Player/PlayerRecord.jsx deleted file mode 100644 index 07b9580c8f..0000000000 --- a/components/Player/PlayerRecord.jsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import Error from '../Error'; -import Spinner from '../Spinner'; -import { connect } from 'react-redux'; -import { player } from '../../reducers'; -import styles from './PlayerHeader.css'; - -export const PlayerRecord = ({ loading, error, wins, losses }) => { - const calcWinPercent = (wins, losses) => Math.ceil(10000 * ((wins) / (wins + losses))) / 100; - - const getPlayerRecord = () => { - if (error) return ; - if (loading) return ; - return ( -
    -
    {`${wins} - ${losses} (${calcWinPercent(wins, losses)}%)`}
    -
    - ); - }; - - return ( -
    - {getPlayerRecord()} -
    - ); -}; - -const mapStateToProps = (state) => ({ - loading: player.getLoading(state), - error: player.getError(state), - wins: player.getWins(state), - losses: player.getLosses(state), -}); - - -export default connect(mapStateToProps)(PlayerRecord); diff --git a/components/Player/PlayerStats.jsx b/components/Player/PlayerStats.jsx deleted file mode 100644 index 083bdd95e0..0000000000 --- a/components/Player/PlayerStats.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import PlayerMMR from './PlayerMMR'; -import PlayerRecord from './PlayerRecord'; - -export default () => ( -
    - - -
    -); diff --git a/components/Player/YaspBadge.jsx b/components/Player/YaspBadge.jsx deleted file mode 100644 index 0a2b6b3e3e..0000000000 --- a/components/Player/YaspBadge.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import { HOST_URL } from '../../yasp.config'; -import styles from './PlayerHeader.css'; - -export default () => ( -
    -); diff --git a/components/Player/index.js b/components/Player/index.js deleted file mode 100644 index 5914df86e3..0000000000 --- a/components/Player/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import Player from './Player'; -import YaspBadge from './YaspBadge'; - -export default Player; -export { YaspBadge }; diff --git a/components/Search/Search.jsx b/components/Search/Search.jsx deleted file mode 100644 index 532a4d83c1..0000000000 --- a/components/Search/Search.jsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; - -import { connect } from 'react-redux'; -import { REDUCER_KEY } from '../../reducers'; -import { getSearchResult } from '../../actions'; - -import SearchForm from './SearchForm'; -import SearchResult from './SearchResult'; - -const Search = ({ dispatchSearch, data, loading, done }) => ( -
    - dispatchSearch(value)} - /> - {done ? : ''} -
    -); - -const mapStateToProps = (state) => { - const { error, loading, done, searchResults } = state[REDUCER_KEY].gotSearch; - - return { - loading, - error, - done, - data: searchResults, - }; -}; - -const mapDispatchToProps = (dispatch) => ({ - dispatchSearch: (query) => dispatch(getSearchResult(query)), -}); - -export default connect(mapStateToProps, mapDispatchToProps)(Search); diff --git a/components/Search/SearchForm.jsx b/components/Search/SearchForm.jsx deleted file mode 100644 index ea1abb3a5a..0000000000 --- a/components/Search/SearchForm.jsx +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; - -import TextField from 'material-ui/TextField'; -import RaisedButton from 'material-ui/RaisedButton'; -import ActionSearch from 'material-ui/svg-icons/action/search'; -import CircularProgress from 'material-ui/CircularProgress'; - -import style from './search.css'; - -const loadingStyle = { - display: 'block', - margin: '40px auto 0 auto', -}; - -const SearchForm = ({ hintText, onSubmit, disabled }) => { - let queryValue = ''; - - const formSubmit = (e) => { - e.preventDefault(); - onSubmit(queryValue); - }; - const loadingIndicator = () => ( -
    - -
    - ); - - return ( -
    - { queryValue = e.target.value; }} - fullWidth - /> - } - /> - {disabled ? loadingIndicator() : ''} - - ); -}; - -export default SearchForm; diff --git a/components/Search/SearchResult.jsx b/components/Search/SearchResult.jsx deleted file mode 100644 index 895d0a6466..0000000000 --- a/components/Search/SearchResult.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import SearchResultItem from './SearchResultItem'; -import { List } from 'material-ui/List'; -import style from './search.css'; - -export default ({ players }) => { - let playerResult = players.map((player, idx) => ( - - )); - - return ( -
    -

    - There are {players.length} results {/* TODO replace hardcoded text */} -

    - {playerResult} -
    - ); -}; diff --git a/components/Search/SearchResultItem.jsx b/components/Search/SearchResultItem.jsx deleted file mode 100644 index bbee4a5479..0000000000 --- a/components/Search/SearchResultItem.jsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router'; -import Divider from 'material-ui/Divider'; -import Avatar from 'material-ui/Avatar'; -import { ListItem } from 'material-ui/List'; - -export default ({ steamId, name, avatarFullUrl }) => ( -
    - - } - /> - - -
    -); diff --git a/components/Search/index.js b/components/Search/index.js deleted file mode 100644 index 517d0ee89b..0000000000 --- a/components/Search/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Search from './Search'; - -export default Search; diff --git a/components/Search/search.css b/components/Search/search.css deleted file mode 100644 index 9d250f64d7..0000000000 --- a/components/Search/search.css +++ /dev/null @@ -1,7 +0,0 @@ -.searchResult { - margin-top: 20px; -} - -.loadingWrapper { - margin-top: 40px; -} diff --git a/components/Spinner/Spinner.jsx b/components/Spinner/Spinner.jsx deleted file mode 100644 index c47af2f4eb..0000000000 --- a/components/Spinner/Spinner.jsx +++ /dev/null @@ -1,4 +0,0 @@ -import React from 'react'; -import CircularProgress from 'material-ui/CircularProgress'; - -export default ({ size = 1 }) =>
    ; diff --git a/components/Spinner/index.js b/components/Spinner/index.js deleted file mode 100644 index 0484da0db5..0000000000 --- a/components/Spinner/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Spinner from './Spinner'; - -export default Spinner; diff --git a/components/TabBar/TabBar.jsx b/components/TabBar/TabBar.jsx deleted file mode 100644 index bb90c2c52b..0000000000 --- a/components/TabBar/TabBar.jsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import { Tabs, Tab } from 'material-ui/Tabs'; -import { browserHistory } from 'react-router'; - - // {overview && ( - // ( - - browserHistory.push(tab.props.value)} /> - browserHistory.push(tab.props.value)} /> - browserHistory.push(tab.props.value)} /> - -); -export default TabBar; diff --git a/components/TabBar/index.js b/components/TabBar/index.js deleted file mode 100644 index 51ccf2ee93..0000000000 --- a/components/TabBar/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import TabBar from './TabBar'; - -export default TabBar; diff --git a/components/Table/MatchTable.container.jsx b/components/Table/MatchTable.container.jsx deleted file mode 100644 index 56876a7a80..0000000000 --- a/components/Table/MatchTable.container.jsx +++ /dev/null @@ -1,31 +0,0 @@ -import { connect } from 'react-redux'; -import { REDUCER_KEY } from '../../reducers'; -import Table from './Table'; -import createConstantsWrapper from '../Constants'; -import { getMatch, setMatchSort } from '../../actions'; -import { overviewColumns } from './columnDefinitions'; -import { sortMatch, transformMatch } from '../../selectors'; - -const mapStateToProps = (state) => { - const { error, loading, sortState, sortField } = state[REDUCER_KEY].gotMatch.match.players; - - return { - loading, - error, - data: sortState ? sortMatch(state) : transformMatch(state), - // data: transformMatch(state), - sortState, - sortField, - // important to set the columns here since we don't have wrapper anymore - columns: overviewColumns, - }; -}; - -const mapDispatchToProps = (dispatch) => ({ - sortClick: (field, sortState, sortFn) => dispatch(setMatchSort(field, sortState, sortFn)), - getMatch: (playerId, numMatches, host) => dispatch(getMatch(playerId, numMatches, host)), -}); - -const TableWrapper = connect(mapStateToProps, mapDispatchToProps)(Table); - -export default createConstantsWrapper(TableWrapper); diff --git a/components/Table/PlayerMatchesTable.container.jsx b/components/Table/PlayerMatchesTable.container.jsx deleted file mode 100644 index 124ff8eb2b..0000000000 --- a/components/Table/PlayerMatchesTable.container.jsx +++ /dev/null @@ -1,30 +0,0 @@ -import { connect } from 'react-redux'; -import { REDUCER_KEY } from '../../reducers'; -import Table from './Table'; -import createConstantsWrapper from '../Constants'; -import { getPlayerMatches, setPlayerMatchesSort } from '../../actions'; -import { playerMatchesColumns } from './columnDefinitions'; -import { sortPlayerMatches, transformPlayerMatches } from '../../selectors'; - -const mapStateToProps = (state) => { - const { error, loading, sortState, sortField } = state[REDUCER_KEY].gotPlayer.matches; - - return { - loading, - error, - data: sortState ? sortPlayerMatches(state) : transformPlayerMatches(state), - sortState, - sortField, - // important to set the columns here since we don't have wrapper anymore - columns: playerMatchesColumns, - }; -}; - -const mapDispatchToProps = (dispatch) => ({ - sortClick: (field, sortState, sortFn) => dispatch(setPlayerMatchesSort(field, sortState, sortFn)), - getPlayerMatches: (playerId, numMatches, host) => dispatch(getPlayerMatches(playerId, numMatches, host)), -}); - -const TableWrapper = connect(mapStateToProps, mapDispatchToProps)(Table); - -export default createConstantsWrapper(TableWrapper); diff --git a/components/Table/Table.css b/components/Table/Table.css deleted file mode 100644 index 66e72c27cd..0000000000 --- a/components/Table/Table.css +++ /dev/null @@ -1,48 +0,0 @@ -@import "../palette.css"; - -.container { - min-width: 100%; - @media only screen and (max-width: 960px) { - margin: 0 -25px; - overflow-x: scroll; - } -} - -.innerContainer { - @media only screen and (max-width: 960px) { - min-width: 1325px; - } -} - -.header { - background-color: var(--darkPrimaryColor)!important; -} - -.headerCell { - display: flex; - flex-direction: row; - justify-content: space-between; - text-align: center; - & * { - color: #fff!important; - } - &:hover { - cursor: pointer; - & span, & div { - color: var(--primaryTextColor)!important; - } - } -} - -.row { - background-color: #fff; -} - -.row0 { - composes: row; -} - -.row1 { - composes: row; - background-color: #eee; -} diff --git a/components/Table/Table.jsx b/components/Table/Table.jsx deleted file mode 100644 index dca2499c75..0000000000 --- a/components/Table/Table.jsx +++ /dev/null @@ -1,56 +0,0 @@ -// TODO - consume the new action, read it in mstp of table, pass down the sort fn action and the -// sorted state through mstp/mdtp, and add the sorting functions to the column definition - -import React from 'react'; -import { - Table as MaterialTable, - TableBody as MaterialTableBody, - TableHeader as MaterialTableHeader, -} from 'material-ui/Table'; -import TableHeader from './TableHeader'; -import Spinner from '../Spinner'; -import Error from '../Error'; -import styles from './Table.css'; -import TableRow from './TableRow'; -import { getTotalWidth } from './tableHelpers'; - -const Table = ({ data, columns, loading, error, sortState, sortField, sortClick }) => { - const totalWidth = getTotalWidth(columns); - - const getTable = () => ( -
    - - - - - - {data.map((row, index) => ( - - ))} - - -
    - ); - - return ( -
    - {loading && } - {!loading && error && } - {!loading && !error && getTable()} -
    - ); -}; - -export default Table; diff --git a/components/Table/TableHeader.jsx b/components/Table/TableHeader.jsx deleted file mode 100644 index e7e78da790..0000000000 --- a/components/Table/TableHeader.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react'; -import { TableRow as MaterialTableRow } from 'material-ui/Table'; -import TableHeaderColumn from './TableHeaderColumn'; - -const TableHeader = ({ columns, sortState, sortField, sortClick, totalWidth }) => ( - - {columns.map((column, index) => ( - - ))} - -); - -export default TableHeader; diff --git a/components/Table/TableHeaderColumn.jsx b/components/Table/TableHeaderColumn.jsx deleted file mode 100644 index 550678f0c9..0000000000 --- a/components/Table/TableHeaderColumn.jsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import { - getWidthStyle, - isSortField, - getSortIcon, -} from './tableHelpers'; -import { TableHeaderColumn as MaterialTableHeaderColumn } from 'material-ui/Table'; -import styles from './Table.css'; -import FontIcon from 'material-ui/FontIcon'; -import { Text } from '../Text'; - -export default ({ column, sortClick, sortField, sortState, totalWidth }) => ( - -
    sortClick(column.field, isSortField(sortField, column.field) ? sortState : '', column.sortFn)} - > - {column.displayName} - {column.sortFn && ( - - {getSortIcon(sortState, sortField, column.field)} - - )} -
    -
    -); diff --git a/components/Table/TableRow.jsx b/components/Table/TableRow.jsx deleted file mode 100644 index 01212e2822..0000000000 --- a/components/Table/TableRow.jsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import { TableRow as MaterialTableRow } from 'material-ui/Table'; -import TableRowColumn from './TableRowColumn'; -import styles from './Table.css'; - -export default ({ row, columns, totalWidth, index }) => ( - - {columns.map((column, colIndex) => ( - - ))} - -); diff --git a/components/Table/TableRowColumn.jsx b/components/Table/TableRowColumn.jsx deleted file mode 100644 index d67a063245..0000000000 --- a/components/Table/TableRowColumn.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import { TableRowColumn as MaterialTableRowColumn } from 'material-ui/Table'; -import { getWidthStyle } from './tableHelpers'; - -export default ({ row, column, totalWidth }) => ( - - {row && column.displayFn && column.displayFn({ row, column, field: row[column.field] })} - {row && row[column.field] && !column.displayFn && (row[column.field].display || row[column.field].display)} - -); diff --git a/components/Table/columnDefinitions/column.css b/components/Table/columnDefinitions/column.css deleted file mode 100644 index 5890908cf7..0000000000 --- a/components/Table/columnDefinitions/column.css +++ /dev/null @@ -1,17 +0,0 @@ -.teamIndicator { - opacity: .5; - height: 30px; - width: 7px; - display: inline-block; - margin-right: 3px; -} - -.dire { - composes: teamIndicator; - background-color: #CD5C5C; -} - -.radiant { - composes: teamIndicator; - background-color: #66CD00; -} diff --git a/components/Table/columnDefinitions/index.js b/components/Table/columnDefinitions/index.js deleted file mode 100644 index d70057a4fa..0000000000 --- a/components/Table/columnDefinitions/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import playerMatchesColumns from './playerMatchesColumns'; -import { overviewColumns } from './matchColumns'; - -export { playerMatchesColumns, overviewColumns }; diff --git a/components/Table/columnDefinitions/matchColumns.jsx b/components/Table/columnDefinitions/matchColumns.jsx deleted file mode 100644 index 496adc049c..0000000000 --- a/components/Table/columnDefinitions/matchColumns.jsx +++ /dev/null @@ -1,96 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router'; -import { YaspBadge } from '../../Player'; -import { defaultSort } from './utility'; -import styles from './column.css'; - -const overviewColumns = [{ - displayName: 'Hero', - field: 'hero_id', - width: 3.5, - displayFn: ({ field, row }) => ( -
    -
    -
    - - {row.last_login && row.last_login.value && } -
    - {row.account_id.value ? {row.personaname.value} : 'Anonymous'} -
    - ), -}, { - displayName: 'LVL', - field: 'level', - width: 1.5, - sortFn: defaultSort, -}, { - displayName: 'K', - field: 'kills', - width: 1.5, - sortFn: defaultSort, -}, { - displayName: 'D', - field: 'deaths', - width: 1.5, - sortFn: defaultSort, -}, { - displayName: 'A', - field: 'assists', - width: 1.5, - sortFn: defaultSort, -}, { - displayName: 'LH', - field: 'last_hits', - width: 2, - sortFn: defaultSort, -}, { - displayName: 'D', - field: 'denies', - width: 1, - sortFn: defaultSort, -}, { - displayName: 'G', - field: '', - width: 2, - displayFn: ({ row }) => `${(row.gold_per_min.value * row.duration.value / 60 / 1000).toFixed(1)}K`, -}, { - displayName: 'GPM', - field: 'gold_per_min', - width: 2, - sortFn: defaultSort, -}, { - displayName: 'XPM', - field: 'xp_per_min', - width: 2, - sortFn: defaultSort, -}, { - displayName: 'HD', - field: 'hero_damage', - width: 2, - sortFn: defaultSort, -}, { - displayName: 'TD', - field: 'tower_damage', - width: 2, - sortFn: defaultSort, -}, { - displayName: 'HH', - field: 'hero_healing', - width: 1, - sortFn: defaultSort, -}, { - displayName: 'Items', - field: '', - width: 7, - displayFn: ({ row }) => { - const itemArray = []; - for (let i = 0; i < 6; i++) { - if (row[`item_${i}`].display) { - itemArray.push(); - } - } - return itemArray; - }, -}]; - -export { overviewColumns }; diff --git a/components/Table/columnDefinitions/playerMatchesColumns.js b/components/Table/columnDefinitions/playerMatchesColumns.js deleted file mode 100644 index 0084b18f7b..0000000000 --- a/components/Table/columnDefinitions/playerMatchesColumns.js +++ /dev/null @@ -1,52 +0,0 @@ -import React from 'react'; -import { defaultSort, useOriginalValueSort } from './utility'; -import { Link } from 'react-router'; - -export default [{ - displayName: 'ID', - field: 'match_id', - width: 2, - sortFn: defaultSort, - displayFn: ({ field }) => {field.display}, -}, { - displayName: 'Hero', - field: 'hero_id', - width: 1.5, - sortFn: defaultSort, - displayFn: ({ field }) => , -}, { - displayName: 'W/L', - field: 'radiant_win', - width: 1.5, - sortFn: defaultSort, -}, { - displayName: 'Mode', - field: 'game_mode', - width: 2.5, - sortFn: defaultSort, -}, { - displayName: 'Date', - field: 'start_time', - width: 2, - sortFn: useOriginalValueSort, -}, { - displayName: 'Duration', - field: 'duration', - width: 2, - sortFn: useOriginalValueSort, -}, { - displayName: 'Kills', - field: 'kills', - width: 1.8, - sortFn: defaultSort, -}, { - displayName: 'Deaths', - field: 'deaths', - width: 1.8, - sortFn: defaultSort, -}, { - displayName: 'Assists', - field: 'assists', - width: 1.8, - sortFn: defaultSort, -}]; diff --git a/components/Table/columnDefinitions/utility.js b/components/Table/columnDefinitions/utility.js deleted file mode 100644 index da2255e8d9..0000000000 --- a/components/Table/columnDefinitions/utility.js +++ /dev/null @@ -1,7 +0,0 @@ -export const defaultSort = (array, field, property = 'display') => array.sort((a, b) => { - if (a[field][property] < b[field][property]) return -1; - if (a[field][property] > b[field][property]) return 1; - return 0; -}); - -export const useOriginalValueSort = (array, field) => defaultSort(array, field, 'value'); diff --git a/components/Table/index.js b/components/Table/index.js deleted file mode 100644 index 9778ad24a2..0000000000 --- a/components/Table/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import Table from './Table'; -import PlayerMatchesTable from './PlayerMatchesTable.container'; -import MatchTable from './MatchTable.container'; - -export default Table; -export { PlayerMatchesTable, MatchTable, Table }; diff --git a/components/Table/tableHelpers.js b/components/Table/tableHelpers.js deleted file mode 100644 index f02ddda8b0..0000000000 --- a/components/Table/tableHelpers.js +++ /dev/null @@ -1,24 +0,0 @@ -const getTotalWidth = (columns) => columns.reduce((prev, current) => prev + current.width, 0); - -const getWidthStyle = (column, total) => ({ width: `${column / total}%` }); - -const isSortField = (sortField, field) => sortField === field; - -const getSortIcon = (sortState, sortField, field) => { - let sort = 'sort'; - if (isSortField(sortField, field)) { - if (sortState === 'asc') { - sort = 'arrow_upward'; - } else if (sortState === 'desc') { - sort = 'arrow_downward'; - } - } - return sort; -}; - -export { - getTotalWidth, - getWidthStyle, - isSortField, - getSortIcon, -}; diff --git a/components/Text/Text.css b/components/Text/Text.css deleted file mode 100644 index ec254ed37a..0000000000 --- a/components/Text/Text.css +++ /dev/null @@ -1,5 +0,0 @@ -@import "../palette.css"; - -.text { - color: var(--primaryTextColor); -} diff --git a/components/Text/Text.jsx b/components/Text/Text.jsx deleted file mode 100644 index 44b380491f..0000000000 --- a/components/Text/Text.jsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import styles from './Text.css'; - -export default ({ color, size, children }) => { - const propStyles = { }; - if (color) { - propStyles.color = color; - } - if (size) { - propStyles.fontSize = size; - } - return
    {children}
    ; -}; diff --git a/components/Text/index.js b/components/Text/index.js deleted file mode 100644 index adfffafb83..0000000000 --- a/components/Text/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import Text from './Text'; - -export { Text }; diff --git a/components/palette.css b/components/palette.css deleted file mode 100644 index a4df58ed75..0000000000 --- a/components/palette.css +++ /dev/null @@ -1,23 +0,0 @@ -:root { - --darkPrimaryColor: #388E3C; - --defaultPrimaryColor: #4CAF50; - --lightPrimaryColor: #C8E6C9; - --textPrimaryColor: #FFFFFF; - --accentColor: #FF5722; - - --primaryTextColor: #212121; - --secondaryTextColor: #727272; - - --primaryLinkColor: #42A5F5; - - --dividerColor: #B6B6B6; - - /* font sizes */ - --normalFontSize: 12px; - --mediumLargeFontSize: 16px; - --fontFamily: 'Roboto', sans-serif; - - --navDrawerWidth: 256px; - --normalTransition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; - --linearTransition: all 450ms linear 0ms; -} diff --git a/components/palette2.css b/components/palette2.css deleted file mode 100644 index 285c869c62..0000000000 --- a/components/palette2.css +++ /dev/null @@ -1,8 +0,0 @@ -.dark-primary-color { background: #E64A19; } -.default-primary-color { background: #FF5722; } -.light-primary-color { background: #FFCCBC; } -.text-primary-color { color: #FFFFFF; } -.accent-color { background: #4CAF50; } -.primary-text-color { color: #212121; } -.secondary-text-color { color: #727272; } -.divider-color { border-color: #B6B6B6; } diff --git a/crowdin.yaml b/crowdin.yaml new file mode 100644 index 0000000000..3abba759a9 --- /dev/null +++ b/crowdin.yaml @@ -0,0 +1,3 @@ +files: + - source: /src/lang/en-US.json + translation: /src/lang/%locale%.json diff --git a/deploy.sh b/deploy.sh deleted file mode 100755 index 4f392d9822..0000000000 --- a/deploy.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -git config user.name "Travis CI" -git config user.email "travis@travis-ci.org" - -git remote add upstream "https://$GH_TOKEN@github.com/yasp-dota/ui.git" -git add --all -git add --force build -git commit -m "Build $TRAVIS_COMMIT" -git push -f upstream HEAD:gh-pages \ No newline at end of file diff --git a/dev/migrateLangFormat.ts b/dev/migrateLangFormat.ts new file mode 100644 index 0000000000..bd03c28b91 --- /dev/null +++ b/dev/migrateLangFormat.ts @@ -0,0 +1,50 @@ +import fs from "node:fs"; +import path from "node:path"; + +const langsPath = path.resolve(__dirname, "../src/lang"); +const oldLangsPath = path.resolve(__dirname, "../src/lang/old"); +const excludedLangKeys = ["title_template"]; +const langs = fs + .readdirSync(langsPath) + .filter((dir) => [".", "..", "old", "index.js"].includes(dir) === false); + +if (!fs.existsSync(oldLangsPath)) { + fs.mkdirSync(oldLangsPath); +} + +langs.forEach((langFile) => { + // Make a backup of the old file. + if (!fs.existsSync(path.resolve(oldLangsPath, langFile))) { + fs.copyFileSync( + path.resolve(langsPath, langFile), + path.resolve(oldLangsPath, langFile), + ); + } + + const lang = JSON.parse( + fs.readFileSync(path.resolve(langsPath, langFile).toString()), + ); + const pattern = /(%[^\s^%]+)/g; + const updatedLang = {}; + Object.entries(lang).map(([langKey, string]) => { + let count = 0; + const replaced = string.split(pattern).map((split) => { + if ( + excludedLangKeys.includes(langKey) === false && + split.match(pattern) + ) { + // eslint-disable-next-line no-plusplus + return `{${count++}}`; + } + + return split; + }); + updatedLang[langKey] = replaced.join(""); + return updatedLang[langKey]; + }); + + fs.writeFileSync( + path.resolve(langsPath, langFile), + JSON.stringify(updatedLang, undefined, " "), + ); +}); diff --git a/dev/updateEmoticons.ts b/dev/updateEmoticons.ts new file mode 100644 index 0000000000..f88fd408c3 --- /dev/null +++ b/dev/updateEmoticons.ts @@ -0,0 +1,13 @@ +import fs from "fs"; + +process.chdir(__dirname); + +try { + fs.copyFileSync( + "../node_modules/dota2-emoticons/resources/images/emoticons", + "../assets/images/dota2/emoticons", + ); + console.log("Success!"); +} catch (err) { + console.error(err); +} diff --git a/dev/updatelangvpk.ts b/dev/updatelangvpk.ts new file mode 100644 index 0000000000..09371449a4 --- /dev/null +++ b/dev/updatelangvpk.ts @@ -0,0 +1,172 @@ +/* eslint-disable import/no-extraneous-dependencies, no-console, import/no-unresolved */ +import fs from "fs"; +import vdf from "vdf-parser"; +// For updating the opendota-ui lang files with data from the vpk + +const dontReplace = [ + "npc_dota_brewmaster_earth_#", + "npc_dota_brewmaster_fire_#", + "npc_dota_brewmaster_storm_#", + "game_mode_22", +]; + +// links langTag to the language file in the vpk +// null indicates that dota does not support this language +const langTagNames = { + "bg-BG": "bulgarian", + "cs-CZ": "czech", + "da-DK": "danish", + "de-DE": "german", + "el-GR": "greek", + // 'en-US': 'english', // commented out because we don't want to mess up the spacing + "es-ES": "spanish", + "es-PE": "spanish", + "es-US": "spanish", + "fi-FI": "finnish", + "fr-FR": "french", + "he-IL": null, + "hu-HU": "hungarian", + "it-IT": "italian", + "ja-JP": "japanese", + "ko-KR": "korean", + "ms-MY": null, + "nl-NL": "dutch", + "no-NO": "norwegian", + "pl-PL": "polish", + "pt-BR": "portuguese", + "pt-PT": "portuguese", + "ro-RO": "romanian", + "ru-RU": "russian", + "sk-SK": null, + "sr-SP": null, + "sv-SE": "swedish", + "th-TH": "thai", + "tr-TR": "turkish", + "uk-UA": "ukrainian", + "vi-VN": null, + "zh-CN": "schinese", + "zh-TW": "tchinese", +}; + +// The rest of these are build later on +const replacements = { + rune_0: "DOTA_Tooltip_rune_doubledamage", + rune_1: "DOTA_Tooltip_rune_haste", + rune_2: "DOTA_Tooltip_rune_illusion", + rune_3: "DOTA_Tooltip_rune_invisibility", + rune_4: "DOTA_Tooltip_rune_regeneration", + rune_5: "DOTA_Tooltip_rune_bounty", + rune_6: "DOTA_Tooltip_rune_arcane", +}; + +const langDir = "src/lang/"; + +let englishLang = null; +try { + englishLang = JSON.parse(fs.readFileSync(`${langDir}en-US.json`, "utf8")); +} catch (ex) { + console.log("Couldn't find en-US.json in the specified directory"); + process.exit(1); +} + +const updateLang = (langTag, langName) => { + if (!langName) { + return; // Means dota doesn't have this lang file + } + const stringsUrl = `https://raw.githubusercontent.com/dotabuff/d2vpkr/master/dota/resource/dota_${langName}.json`; + const langFilename = `${langDir}${langTag}.json`; + + request(stringsUrl, (err, resp, body) => { + console.log(`${langTag} <= ${langName}`); + if (err || resp.statusCode !== 200) { + console.log(`Error ${resp.statusCode} when getting ${langName}: ${err}`); + process.exit(1); + } + const strings = JSON.parse(body).lang.Tokens; + + let lang = null; + try { + lang = JSON.parse(fs.readFileSync(langFilename, "utf8")); + } catch (ex) { + console.log(`${ex.name} when reading ${langTag}: ${ex.message}`); + process.exit(1); + } + + Object.keys(replacements).forEach((key) => { + if ( + (!lang[key] || lang[key] === englishLang[key]) && + replacements[key] in strings + ) { + let result = strings[replacements[key]]; + if (["chatwheel_71", "chatwheel_72"].indexOf(key) >= 0) { + result = result.replace(/%s1/, strings.DOTA_Shared_Unit_Control_Hero); + } + lang[key] = result; + } + }); + + let outString = JSON.stringify(lang, null, 2); + // Fix "key": "value" to "key":"value", because thats how it is currently + outString = outString.replace(/": "/g, '":"'); + + fs.writeFile(langFilename, outString, "utf8"); + }); +}; + +// Build the rest of replacements here +// game modes +for (let i = 0; `game_mode_${i}` in englishLang; i += 1) { + replacements[`game_mode_${i}`] = `game_mode_lobby_name_${i}`; +} +// npc_dota_(unitstrings) +Object.keys(englishLang) + .filter((k) => k.match(/^npc_dota_/)) + .forEach((key) => { + replacements[key] = key.replace("#", "1"); + }); +replacements.npc_dota_phoenix_sun = "DOTA_Tooltip_ability_phoenix_supernova"; +replacements.npc_dota_weaver_swarm = "DOTA_Tooltip_ability_weaver_the_swarm"; +// regions, chat wheel, & call update +request( + "https://raw.githubusercontent.com/dotabuff/d2vpkr/master/dota/scripts/regions.json", + (err, resp, body) => { + if (err || resp.statusCode !== 200) { + console.log("Error getting regions info from d2vpkr"); + process.exit(1); + } + const { regions } = JSON.parse(body); + + Object.keys(regions).forEach((key) => { + replacements[`region_${regions[key].region}`] = regions[ + key + ].display_name.replace(/^#/, ""); + }); + request( + "https://raw.githubusercontent.com/dotabuff/d2vpkr/master/dota/scripts/chat_wheel.txt", + (_err, _resp, _body) => { + if (_err || _resp.statusCode !== 200) { + console.log("Error getting chat wheel info from d2vpkr"); + process.exit(1); + } + const chatWheel = vdf.parse(_body).chat_wheel.messages; + + Object.keys(chatWheel).forEach((key) => { + if (chatWheel[key].message[0] === "#") { + replacements[`chatwheel_${chatWheel[key].message_id}`] = chatWheel[ + key + ].message.replace(/^#/, ""); + } + }); + + // Remove ones we don't want to replace + dontReplace.forEach((key) => { + delete replacements[key]; + }); + console.log("Updating lang files..."); + Object.keys(langTagNames).forEach((tag) => + updateLang(tag, langTagNames[tag]), + ); + }, + ); + }, +); diff --git a/global.css b/global.css deleted file mode 100644 index c0d9445bfa..0000000000 --- a/global.css +++ /dev/null @@ -1,33 +0,0 @@ -@import "./components/palette.css"; - -:global(body) { - margin: 0; - color: var(--primaryTextColor); - font-family: var(--fontFamily); - height: 100%; -} - -:global(.flaticon) { - font-family: Flaticon; -} - -:global(a) { - text-decoration: none; - color: var(--primaryLinkColor); - &:hover { - color: color(var(--primaryLinkColor) lightness(-33%)); - } -} - -:global(li) { - list-style-type: none; -} - -:global(html) { - height: 100%; -} - -:global(#react) { - height: 100%; - overflow-x: hidden; -} diff --git a/index.html b/index.html index 977fd421c6..8f60be4354 100644 --- a/index.html +++ b/index.html @@ -1,36 +1,94 @@ - + - - - YASP - Open Source Dota 2 Statistics - - - - - - - - - - - - - - - - - - - - - - + + + OpenDota - Dota 2 Statistics + + + + + + + + + + + + + + + + + + + + + + + + + + -
    - + +
    - diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000..c2a1ccb0ea --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16000 @@ +{ + "name": "opendota-web", + "version": "1.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "opendota-web", + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@mars3d/heatmap.js": "^2.0.7", + "@melloware/react-logviewer": "^6.4.1", + "@mui/icons-material": "^7.3.5", + "@mui/material": "^7.3.6", + "@stripe/stripe-js": "^1.32.0", + "abcolor": "^0.5.5", + "ace-builds": "^1.43.5", + "air-datepicker": "^3.6.0", + "dota2-emoticons": "^1.0.4", + "dotaconstants": "^10.8.0", + "fuzzy": "^0.1.3", + "history": "^4.10.1", + "nanoid": "^5.1.6", + "papaparse": "^5.5.3", + "querystring": "^0.2.1", + "react": "^17.0.2", + "react-content-loader": "^7.1.1", + "react-countup": "^6.5.3", + "react-dom": "^17.0.2", + "react-ga": "^3.3.1", + "react-helmet": "^6.1.0", + "react-markdown": "^8.0.7", + "react-redux": "^7.1.3", + "react-router-dom": "^5.1.2", + "react-stripe-checkout": "^2.6.3", + "react-tooltip": "3.11.1", + "react-transition-group": "^2.5.0", + "recharts": "^2.15.4", + "redux": "^4.2.1", + "redux-responsive": "^4.3.8", + "redux-thunk": "^2.4.2", + "reselect": "^4.0.0", + "styled-components": "^4.4.1", + "virtua": "^0.47.1", + "wordcloud": "^1.2.3" + }, + "devDependencies": { + "@types/node": "^25.0.3", + "@types/papaparse": "^5.5.2", + "@types/react": "^17.0.40", + "@types/react-dom": "^17.0.13", + "@types/react-helmet": "^6.1.11", + "@types/react-router-dom": "^5.3.3", + "@types/react-tooltip": "3.9.3", + "@types/react-transition-group": "^2.9.2", + "@types/styled-components": "4.0.3", + "@types/wordcloud": "^1.2.2", + "sanitize-filename-ts": "^1.0.2", + "testcafe": "^3.7.3", + "testcafe-react-selectors": "^5.0.3", + "typescript": "^5.9.3", + "vdf-parser": "^1.2.1", + "vite": "^7.2.6" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/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==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", + "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.3.tgz", + "integrity": "sha512-XcQ3X58CKBdBnnZpPaQjgVMePsXtSZzHoku70q9tUAQp02ggPQNM04BF3RvlW1GSM/McbSOQAzEK4MXbS7/JFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", + "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.27.1.tgz", + "integrity": "sha512-ez3a2it5Fn6P54W8QkbfIyyIbxlXvcxyWHHvno1Wg0Ej5eiJY5hBb8ExttoIOJJk7V2dZE6prP7iby5q2aQ0Lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-flow-strip-types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-react-display-name": "^7.23.3", + "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@devexpress/bin-v8-flags-filter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@devexpress/bin-v8-flags-filter/-/bin-v8-flags-filter-1.3.0.tgz", + "integrity": "sha512-LWLNfYGwVJKYpmHUDoODltnlqxdEAl5Qmw7ha1+TSpsABeF94NKSWkQTTV1TB4CM02j2pZyqn36nHgaFl8z7qw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@devexpress/callsite-record": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@devexpress/callsite-record/-/callsite-record-4.1.7.tgz", + "integrity": "sha512-qr3VQYc0KopduFkEY6SxaOIi1Xhm0jIWQfrxxMVboI/p2rjF/Mj/iqaiUxQQP6F3ujpW/7l0mzhf17uwcFZhBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "^4.14.72", + "callsite": "^1.0.0", + "chalk": "^2.4.0", + "error-stack-parser": "^2.1.4", + "highlight-es": "^1.0.0", + "lodash": "4.6.1 || ^4.16.1", + "pinkie-promise": "^2.0.0" + } + }, + "node_modules/@electron/asar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz", + "integrity": "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/serialize/node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.1", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", + "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/styled/node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/styled/node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mars3d/heatmap.js": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mars3d/heatmap.js/-/heatmap.js-2.0.7.tgz", + "integrity": "sha512-cIXF6XF761d0ZS0XB43UlNvvXZrHj9VIJv4H6da2AiGS/R1gUs7KvSeu0XEEztiG4FdoeLrwIjIV0yZYDwIDZg==", + "license": "ISC" + }, + "node_modules/@melloware/react-logviewer": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@melloware/react-logviewer/-/react-logviewer-6.4.1.tgz", + "integrity": "sha512-ArCs2C2KchI3Sa+LP80JghtcZu3zqxkXmoZx6DKJXgzRTN07Q8ECl7wzf26eQT0g0yM2CMOJ4WgfavhQ4xKA5Q==", + "dependencies": { + "hotkeys-js": "4.0.2", + "immutable": "5.1.5", + "mitt": "3.0.1", + "react-string-replace": "2.0.1", + "virtua": "0.48.8" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@melloware/react-logviewer/node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/@melloware/react-logviewer/node_modules/virtua": { + "version": "0.48.8", + "resolved": "https://registry.npmjs.org/virtua/-/virtua-0.48.8.tgz", + "integrity": "sha512-jpsxOw5V4B6hg44JePRLo9DL0TV7N1lBEVtPjKpAJebXyhI2s9lfiXJESaLapNtr3vtiSk/pWHiLf7B2a6UcgQ==", + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0", + "solid-js": ">=1.0", + "svelte": ">=5.0", + "vue": ">=3.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "solid-js": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.6.tgz", + "integrity": "sha512-QaYtTHlr8kDFN5mE1wbvVARRKH7Fdw1ZuOjBJcFdVpfNfRYKF3QLT4rt+WaB6CKJvpqxRsmEo0kpYinhH5GeHg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.5.tgz", + "integrity": "sha512-LciL1GLMZ+VlzyHAALSVAR22t8IST4LCXmljcUSx2NOutgO2XnxdIp8ilFbeNf9wpo0iUFbAuoQcB7h+HHIf3A==", + "dependencies": { + "@babel/runtime": "^7.28.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^7.3.5", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.6.tgz", + "integrity": "sha512-R4DaYF3dgCQCUAkr4wW1w26GHXcf5rCmBRHVBuuvJvaGLmZdD8EjatP80Nz5JCw0KxORAzwftnHzXVnjR8HnFw==", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/core-downloads-tracker": "^7.3.6", + "@mui/system": "^7.3.6", + "@mui/types": "^7.4.9", + "@mui/utils": "^7.3.6", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material-pigment-css": "^7.3.6", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@mui/material-pigment-css": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@mui/material/node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.0.tgz", + "integrity": "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA==", + "license": "MIT" + }, + "node_modules/@mui/material/node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/@mui/private-theming": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.6.tgz", + "integrity": "sha512-Ws9wZpqM+FlnbZXaY/7yvyvWQo1+02Tbx50mVdNmzWEi51C51y56KAbaDCYyulOOBL6BJxuaqG8rNNuj7ivVyw==", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.6", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.6.tgz", + "integrity": "sha512-+wiYbtvj+zyUkmDB+ysH6zRjuQIJ+CM56w0fEXV+VDNdvOuSywG+/8kpjddvvlfMLsaWdQe5oTuYGBcodmqGzQ==", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.6.tgz", + "integrity": "sha512-8fehAazkHNP1imMrdD2m2hbA9sl7Ur6jfuNweh5o4l9YPty4iaZzRXqYvBCWQNwFaSHmMEj2KPbyXGp7Bt73Rg==", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/private-theming": "^7.3.6", + "@mui/styled-engine": "^7.3.6", + "@mui/types": "^7.4.9", + "@mui/utils": "^7.3.6", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.4.9", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.9.tgz", + "integrity": "sha512-dNO8Z9T2cujkSIaCnWwprfeKmTWh97cnjkgmpFJ2sbfXLx8SMZijCYHOtP/y5nnUb/Rm2omxbDMmtUoSaUtKaw==", + "dependencies": { + "@babel/runtime": "^7.28.4" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.6.tgz", + "integrity": "sha512-jn+Ba02O6PiFs7nKva8R2aJJ9kJC+3kQ2R0BbKNY3KQQ36Qng98GnPRFTlbwYTdMD6hLEBKaMLUktyg/rTfd2w==", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/types": "^7.4.9", + "@types/prop-types": "^15.7.15", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz", + "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==" + }, + "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/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@stripe/stripe-js": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.32.0.tgz", + "integrity": "sha512-7EvBnbBfS1aynfLRmBFcuumHNGjKxnNkO47rorFBktqDYHwo7Yw6pfDW2iqq0R8r7i7XiJEdWPvvEgQAiDrx3A==" + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "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/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", + "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", + "dev": true, + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/papaparse": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.5.2.tgz", + "integrity": "sha512-gFnFp/JMzLHCwRf7tQHrNnfhN4eYBVYYI897CGX4MY1tzY9l2aLkVyx2IlKZ/SAqDbB3I1AOZW5gTMGGsqWliA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "17.0.47", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", + "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", + "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", + "dev": true, + "dependencies": { + "@types/react": "^17" + } + }, + "node_modules/@types/react-helmet": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.11.tgz", + "integrity": "sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-redux": { + "version": "7.1.24", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz", + "integrity": "sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", + "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", + "dev": true, + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/react-tooltip": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@types/react-tooltip/-/react-tooltip-3.9.3.tgz", + "integrity": "sha512-X9xuVWlZTLUQadIIrf5MnMPo/FE8izJPRo6c6f+XUs8eIaQ2vj+5Qw4Ttw9bMUPrqImmsJp7o7FY4t1qHLFf4g==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.9.2.tgz", + "integrity": "sha512-5Fv2DQNO+GpdPZcxp2x/OQG/H19A01WlmpjVD9cKvVFmoVLOZ9LvBgSWG6pSXIU4og5fgbvGPaCV5+VGkWAEHA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/styled-components": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-4.0.3.tgz", + "integrity": "sha512-LzntHlOKEOxUxMkVmQPNG88TsldeHO2NlwNkzHnw4wL8qhHQgd7u+u3yw84hZgoFh4ugsLCbFtjYcbP7v5WC5Q==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/react": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/@types/wordcloud": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/wordcloud/-/wordcloud-1.2.2.tgz", + "integrity": "sha512-UMKd/doXE3karDUd5l+2LqFKUU4SmuPWOT/VA22OrPOUGMlb8/qQvSf+DBLQf/sd8UphuBGxOK/jB/1BB5oQRw==", + "dev": true + }, + "node_modules/abcolor": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/abcolor/-/abcolor-0.5.5.tgz", + "integrity": "sha512-xYDsPOWM2/n6Xvc9mwcJ1BIHdk6ahjWIqp5dwx9P+s0Ou/f6moythvJOdUNTdeRkB18e0yGin4DBZUksoaEQiw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/ace-builds": { + "version": "1.43.5", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz", + "integrity": "sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==" + }, + "node_modules/acorn-hammerhead": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/acorn-hammerhead/-/acorn-hammerhead-0.6.2.tgz", + "integrity": "sha512-JZklfs1VVyjA1hf1y5qSzKSmK3K1UUUI7fQTuM/Zhv3rz4kFhdx4QwVnmU6tBEC8g/Ov6B+opfNFPeSZrlQfqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.46" + } + }, + "node_modules/acorn-hammerhead/node_modules/@types/estree": { + "version": "0.0.46", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "dev": true, + "license": "MIT" + }, + "node_modules/address": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-2.0.3.tgz", + "integrity": "sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/air-datepicker": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/air-datepicker/-/air-datepicker-3.6.0.tgz", + "integrity": "sha512-+txUkqa949rXBJDmkQAIb/GehZECJYF4rm9XJxVYtEX22C9WvBpE/XwCUQZBopKIkpg4ycAySJ9lH3JOg9qQTw==", + "license": "MIT" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", + "dev": true, + "license": "MIT" + }, + "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/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-exit-hook": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-1.1.2.tgz", + "integrity": "sha512-CeTSWB5Bou31xSHeO45ZKgLPRaJbV4I8csRcFYETDBehX7H+1GDO/v+v8G7fZmar1gOmYa6UTXn6d/WIiJbslw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-module-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", + "pkg-up": "^3.1.0", + "reselect": "^4.1.7", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/babel-plugin-module-resolver/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-styled-components": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==", + "dev": true + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "dev": true + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.20.tgz", + "integrity": "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/bowser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.6.0.tgz", + "integrity": "sha512-Fk23J0+vRnI2eKDEDoUZXWtbMjijr098lKhuj4DKAfMKMCRVfJOuxXlbpxy0sTgbZ/Nr2N8MexmOir+GGI/ZMA==", + "dev": true, + "license": "MIT" + }, + "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/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, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "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": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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 + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "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/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chrome-remote-interface": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.32.2.tgz", + "integrity": "sha512-3UbFKtEmqApehPQnqdblcggx7KveQphEMKQmdJZsOguE9ylw2N2/9Z7arO7xS55+DBJ/hyP8RrayLt4MMdJvQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "2.11.x", + "ws": "^7.2.0" + }, + "bin": { + "chrome-remote-interface": "bin/client.js" + } + }, + "node_modules/classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/coffeescript": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.7.0.tgz", + "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", + "dev": true, + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true, + "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 + }, + "node_modules/core-js-compat": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", + "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/countup.js": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.8.0.tgz", + "integrity": "sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==" + }, + "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/crypto-md5": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-md5/-/crypto-md5-1.0.0.tgz", + "integrity": "sha512-65Mtei8+EkSIK+5Ie4gpWXoJ/5bgpqPXFknHHXAyhDqKsEAAzUslGd8mOeawbfcuQ8fADNKcF4xQA3fqlZJ8Ig==", + "dev": true, + "license": "BSD", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.5.2" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==", + "dev": true, + "dependencies": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/del/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/device-specs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/device-specs/-/device-specs-1.0.0.tgz", + "integrity": "sha512-fYXbFSeilT7bnKWFi4OERSPHdtaEoDGn4aUhV5Nly6/I+Tp6JZ/6Icmd7LVIF5euyodGpxz2e/bfUmDnIdSIDw==", + "dev": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.1109433", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1109433.tgz", + "integrity": "sha512-w1Eqih66egbSr2eOoGZ+NsdF7HdxmKDo3pKFBySEGsmVvwWWNXzNCDcKrbFnd23Jf7kH1M806OfelXwu+Jk11g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/diff": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", + "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", + "dev": true, + "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/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/dota2-emoticons": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dota2-emoticons/-/dota2-emoticons-1.0.4.tgz", + "integrity": "sha512-XULzbnE0YeACeJxx+OCeW/lp+nj1P4OLtHIHxb8jqYO1Wo6pCwbhkIxkpqOfNMAP8DZ60kL+ekCoOKE6uzRqIA==" + }, + "node_modules/dotaconstants": { + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/dotaconstants/-/dotaconstants-10.8.0.tgz", + "integrity": "sha512-4imDHLtqBg4abJ2Q/t2Kac/rM5kB5mCBF1lXaUDFtmoJ+TDku8TZ+R8ilU5l7xWpLZBEEYAe+u40CWxku9iFWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.241", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.241.tgz", + "integrity": "sha512-ILMvKX/ZV5WIJzzdtuHg8xquk2y0BOGlFOxBVwTpbiXqWIH0hamG45ddU4R3PQ0gYu+xgo0vdHXHli9sHIGb4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", + "dev": true, + "engines": { + "node": ">4.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" + } + }, + "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": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esotope-hammerhead": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/esotope-hammerhead/-/esotope-hammerhead-0.6.9.tgz", + "integrity": "sha512-rD9Jbh0SFJzKe1RGfsbwpN5IBdubHKC61xRW7A5BPgBTtEnFxsWOqPITVhBaVDc4r5VPmh+Y1U1wmqReTfn1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.46" + } + }, + "node_modules/esotope-hammerhead/node_modules/@types/estree": { + "version": "0.0.46", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "dev": true, + "license": "MIT" + }, + "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/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/execa/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/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, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.3.2.tgz", + "integrity": "sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "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/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.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, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-babel-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.1.2.tgz", + "integrity": "sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.3" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuzzy": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-os-info": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-os-info/-/get-os-info-1.0.2.tgz", + "integrity": "sha512-Nlgt85ph6OHZ4XvTcC8LMLDDFUzf7LAinYJZUwzrnc3WiO+vDEHDmNItTtzixBDLv94bZsvJGrrDRAE6uPs4MQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "getos": "^3.2.1", + "macos-release": "^3.0.1", + "os-family": "^1.1.0", + "windows-release": "^5.0.1" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "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/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/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==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/highlight-es": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.3.tgz", + "integrity": "sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.0", + "is-es2016-keyword": "^1.0.0", + "js-tokens": "^3.0.0" + } + }, + "node_modules/highlight-es/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true, + "license": "MIT" + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hotkeys-js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-4.0.2.tgz", + "integrity": "sha512-fJNEO88zWwoXEGJuvjSbunKSexaT1VbC1S9wIzMA2BfOZ5KPiQj2wTqxDeXd110/4akiAuQIsE3TSbNvGgCyQg==", + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-status-codes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", + "dev": true, + "license": "MIT" + }, + "node_modules/httpntlm": { + "version": "1.8.13", + "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.8.13.tgz", + "integrity": "sha512-2F2FDPiWT4rewPzNMg3uPhNkP3NExENlUGADRUDPQvuftuUTGW98nLZtGemCIW3G40VhWZYgkIDcQFAwZ3mf2Q==", + "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://www.paypal.com/donate/?hosted_button_id=2CKNJLZJBW8ZC" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/samdecrock" + } + ], + "dependencies": { + "des.js": "^1.0.1", + "httpreq": ">=0.4.22", + "js-md4": "^0.3.2", + "underscore": "~1.12.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/httpreq": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-1.1.1.tgz", + "integrity": "sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.15.1" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/humanize-duration": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.2.tgz", + "integrity": "sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz", + "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", + "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "license": "MIT" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-es2016-keyword": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-es2016-keyword/-/is-es2016-keyword-1.0.0.tgz", + "integrity": "sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==", + "dev": true, + "license": "MIT" + }, + "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-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-podman": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-podman/-/is-podman-1.0.1.tgz", + "integrity": "sha512-+5vbtF5FIg262iUa7gOIseIWTx0740RHiax7oSmJMhbfSoBIMQ/IacKKgfnGj65JGeH9lGEVQcdkDwhn1Em1mQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-podman": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "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/js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/linux-platform-info": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/linux-platform-info/-/linux-platform-info-0.0.3.tgz", + "integrity": "sha512-FZhfFOIz0i4EGAvM4fQz+eayE9YzMuTx45tbygWYBttNapyiODg85BnAlQ1xnahEkvIM87T98XhXSfW8JAClHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-family": "^1.0.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/log-update-async-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/log-update-async-hook/-/log-update-async-hook-2.0.7.tgz", + "integrity": "sha512-V9KpD1AZUBd/oiZ+/Xsgd5rRP9awhgtRiDv5Am4VQCixiDnAbXMdt/yKz41kCzYZtVbwC6YCxnWEF3zjNEwktA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.2", + "async-exit-hook": "^1.1.2", + "onetime": "^2.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/macos-release": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.4.0.tgz", + "integrity": "sha512-wpGPwyg/xrSp4H4Db4xYSeAr6+cFQGHfspHzDUdYxswDnUW0L5Ov63UuJiSr8NMSpyaChO4u1n0MXUvVPtrN6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/match-url-wildcard": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/match-url-wildcard/-/match-url-wildcard-0.0.4.tgz", + "integrity": "sha512-R1XhQaamUZPWLOPtp4ig5j+3jctN+skhgRmEQTUamMzmNtRG69QEirQs0NZKLtHMR7tzWpmtnS4Eqv65DcgXUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + } + }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mediaquery": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mediaquery/-/mediaquery-0.0.3.tgz", + "integrity": "sha512-vBusBYjjcPv1gPf5WEpnvRtL585rsiDrHLgOK8LHje0FIk/8Zn9iRlv/IUvDg6l9YxujJTnmrDpQgAYZBivzfQ==" + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "node_modules/merge-anything": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-2.4.4.tgz", + "integrity": "sha512-l5XlriUDJKQT12bH+rVhAHjwIuXWdAIecGwsYjv2LJo+dA1AeRTmeQS+3QBpO6lEthBMDi2IUMpLC1yyRvGlwQ==", + "dependencies": { + "is-what": "^3.3.1" + } + }, + "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 + }, + "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/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "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": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + } + }, + "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/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "dependencies": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-duration-format-commonjs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/moment-duration-format-commonjs/-/moment-duration-format-commonjs-1.0.1.tgz", + "integrity": "sha512-KhKZRH21/+ihNRWrmdNFOyBptFi7nAWZFeFsRRpXkzgk/Yublb4fxyP0jU6EY1VDxUL/VUPdCmm/wAnpbfXdfw==", + "dev": true + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "node_modules/mustache": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", + "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", + "dev": true, + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + }, + "engines": { + "npm": ">=1.4.0" + } + }, + "node_modules/nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/node-releases": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-family": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/os-family/-/os-family-1.1.0.tgz", + "integrity": "sha512-E3Orl5pvDJXnVmpaAA2TeNNpNhTMl4o5HghuWhOivBjEiTnJSrMYSa5uZMek1lBEvu8kKEsa2YgVcGFVDqX/9w==", + "dev": true, + "license": "MIT" + }, + "node_modules/p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "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==" + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/promisify-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promisify-event/-/promisify-event-1.0.0.tgz", + "integrity": "sha512-mshw5LiFmdtphcuUGKyd3t6zmmgIVxrdZ8v4R1INAXHvMemUsDCqIUeq5QUIqqDfed8ZZ6uhov1PqhrdBvHOIA==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode-terminal": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.10.0.tgz", + "integrity": "sha512-ZvWjbAj4MWAj6bnCc9CnculsXnJr7eoKsvH/8rVpZbqYxP2z05HNQa43ZVwe/dVRcFxgfFHE2CkUqn0sCyLfHw==", + "dev": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" + }, + "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/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-content-loader": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-content-loader/-/react-content-loader-7.1.1.tgz", + "integrity": "sha512-yNkqtd+15wXRLfDKZb5nTqDV2fPTG2kpUgeGRb+WBz43bU0j4DSGXETF0bnFr44fAoTPpm0Dya0WGdhpHSvtYA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/react-countup": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.5.3.tgz", + "integrity": "sha512-udnqVQitxC7QWADSPDOxVWULkLvKUWrDapn5i53HE4DPRVgs+Y5rr4bo25qEl8jSh+0l2cToJgGMx+clxPM3+w==", + "license": "MIT", + "dependencies": { + "countup.js": "^2.8.0" + }, + "peerDependencies": { + "react": ">= 16.3.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-ga": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-3.3.1.tgz", + "integrity": "sha512-4Vc0W5EvXAXUN/wWyxvsAKDLLgtJ3oLmhYYssx+YzphJpejtOst6cbIHCIyF50Fdxuf5DDKqRYny24yJ2y7GFQ==", + "license": "Apache-2.0", + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^15.6.2 || ^16.0 || ^17 || ^18" + } + }, + "node_modules/react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.3.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-markdown": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", + "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/prop-types": "^15.0.0", + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "prop-types": "^15.0.0", + "property-information": "^6.0.0", + "react-is": "^18.0.0", + "remark-parse": "^10.0.0", + "remark-rehype": "^10.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/react-markdown/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-redux": { + "version": "7.2.8", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz", + "integrity": "sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz", + "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.3", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-side-effect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", + "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.3.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-smooth": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", + "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", + "license": "MIT", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-smooth/node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/react-smooth/node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-string-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-2.0.1.tgz", + "integrity": "sha512-J7y/IxZkwhOgCexu6GtkNH2FIa9f/z6ykvK1YXS8VLIdvcP8Vyx3LAUFsfIFvq3aQbmin2d+clFR1J50LnR2yA==" + }, + "node_modules/react-stripe-checkout": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-stripe-checkout/-/react-stripe-checkout-2.6.3.tgz", + "integrity": "sha512-lnsCaAdlmwPGGMbQoI8FXtQUgEm+ktzPZ/ipAw4j0HYf80kef7CivGx6QitmgEn99/aa5hI/dmVXwfVZW/Mzfg==" + }, + "node_modules/react-tooltip": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.11.1.tgz", + "integrity": "sha512-YCMVlEC2KuHIzOQhPplTK5jmBBwoL+PYJJdJKXj7M/h7oevupd/QSVq6z5U7/ehIGXyHsAqvwpdxexDfyQ0o3A==", + "dependencies": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + }, + "engines": { + "node": ">=4.2.1" + }, + "peerDependencies": { + "react": ">=0.14", + "react-dom": ">=0.14" + } + }, + "node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, + "node_modules/read-file-relative": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/read-file-relative/-/read-file-relative-1.2.0.tgz", + "integrity": "sha512-lwZUlN2tQyPa62/XmVtX1MeNLVutlRWwqvclWU8YpOCgjKdhg2zyNkeFjy7Rnjo3txhKCy5FGgAi+vx59gvkYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsite": "^1.0.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==", + "dev": true, + "license": "MIT", + "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/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/recharts": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", + "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^18.3.1", + "react-smooth": "^4.0.4", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/recharts/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-responsive": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/redux-responsive/-/redux-responsive-4.3.8.tgz", + "integrity": "sha512-h+q9KTfaOdgXxFhqwHhAIHT/1ZiARFmM3iLMOnjpc79BUXlW24N3qJmUR5kOQYicIKKL0usIjNuNa+2HFTnxLg==", + "dependencies": { + "mediaquery": "0.0.3" + }, + "peerDependencies": { + "redux": "^4.0.0" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/repeating": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha512-Nh30JLeMHdoI+AsQ5eblhZ7YlTsM9wiJQe/AHIunlK3KWzvXhXb36IJ7K1IOeRjIOtzMjdUHjwXUFxKJoPTSOg==", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "bin": { + "repeating": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/replicator": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/replicator/-/replicator-1.0.5.tgz", + "integrity": "sha512-saxS4y7NFkLMa92BR4bPHR41GD+f/qoDAwD2xZmN+MpDXgibkxwLO2qk7dCHYtskSkd/bWS8Jy6kC5MZUkg1tw==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "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, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", + "fsevents": "~2.3.2" + } + }, + "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/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "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" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sanitize-filename-ts": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sanitize-filename-ts/-/sanitize-filename-ts-1.0.2.tgz", + "integrity": "sha512-bON2VOJoappmaBHlnxvBNk5R7HkUAsirf5m1M5Kz15uZykDGbHfGPCQNcEQKR8HrQhgh9CmQ6Xe9y71yM9ywkw==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.2" + } + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "dev": true, + "license": "MIT" + }, + "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": "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/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "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.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/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==", + "dev": true, + "license": "MIT" + }, + "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, + "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/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 + }, + "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/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/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "hasInstallScript": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/styled-components/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "node_modules/stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "peerDependencies": { + "stylis": "^3.5.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/testcafe": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/testcafe/-/testcafe-3.7.3.tgz", + "integrity": "sha512-PZfNGVXYX+KjKgHepsnPv4xgeA+PK9GiQF+OUl4R2tG8KBjqFgGP1sl5UOnFIIaL6ncbf5Erhpubt0VvsJlJ/w==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.2", + "@babel/plugin-proposal-decorators": "^7.23.2", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", + "@babel/plugin-transform-runtime": "7.23.3", + "@babel/preset-env": "^7.23.2", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-react": "^7.22.15", + "@babel/runtime": "^7.23.2", + "@devexpress/bin-v8-flags-filter": "^1.3.0", + "@devexpress/callsite-record": "^4.1.6", + "@types/node": "20.14.5", + "address": "^2.0.2", + "async-exit-hook": "^1.1.2", + "babel-plugin-module-resolver": "5.0.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "bowser": "^2.8.1", + "callsite": "^1.0.0", + "chai": "4.3.4", + "chalk": "^2.3.0", + "chrome-remote-interface": "^0.32.2", + "coffeescript": "^2.3.1", + "commander": "^8.3.0", + "debug": "^4.3.1", + "dedent": "^0.4.0", + "del": "^3.0.0", + "device-specs": "^1.0.0", + "devtools-protocol": "0.0.1109433", + "diff": "^4.0.2", + "elegant-spinner": "^1.0.1", + "email-validator": "^2.0.4", + "emittery": "^0.4.1", + "error-stack-parser": "^2.1.4", + "execa": "^4.0.3", + "get-os-info": "^1.0.2", + "globby": "^11.0.4", + "graceful-fs": "^4.1.11", + "graphlib": "^2.1.5", + "http-status-codes": "^2.2.0", + "humanize-duration": "^3.25.0", + "import-lazy": "^3.1.0", + "indent-string": "^1.2.2", + "is-ci": "^1.0.10", + "is-docker": "^2.0.0", + "is-glob": "^2.0.1", + "is-podman": "^1.0.1", + "is-stream": "^2.0.0", + "json5": "^2.2.2", + "lodash": "^4.17.21", + "log-update-async-hook": "^2.0.7", + "make-dir": "^3.0.0", + "mime-db": "^1.41.0", + "moment": "^2.29.4", + "moment-duration-format-commonjs": "^1.0.0", + "mustache": "^2.1.2", + "nanoid": "^3.1.31", + "os-family": "^1.0.0", + "parse5": "^1.5.0", + "pify": "^2.3.0", + "pinkie": "^2.0.4", + "pngjs": "^3.3.1", + "pretty-hrtime": "^1.0.3", + "promisify-event": "^1.0.0", + "prompts": "^2.4.2", + "qrcode-terminal": "^0.10.0", + "read-file-relative": "^1.2.0", + "replicator": "^1.0.5", + "resolve-cwd": "^1.0.0", + "resolve-from": "^4.0.0", + "sanitize-filename": "^1.6.0", + "semver": "^7.5.3", + "set-cookie-parser": "^2.5.1", + "source-map-support": "^0.5.16", + "strip-bom": "^2.0.0", + "testcafe-browser-tools": "2.0.26", + "testcafe-hammerhead": "31.7.6", + "testcafe-legacy-api": "5.1.8", + "testcafe-reporter-json": "^2.1.0", + "testcafe-reporter-list": "^2.2.0", + "testcafe-reporter-minimal": "^2.2.0", + "testcafe-reporter-spec": "^2.2.0", + "testcafe-reporter-xunit": "^2.2.1", + "testcafe-selector-generator": "^0.1.0", + "time-limit-promise": "^1.0.2", + "tmp": "0.2.5", + "tree-kill": "^1.2.2", + "typescript": "4.7.4", + "unquote": "^1.1.1", + "url-to-options": "^2.0.0" + }, + "bin": { + "testcafe": "bin/testcafe-with-v8-flag-filter.js" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/testcafe-browser-tools": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/testcafe-browser-tools/-/testcafe-browser-tools-2.0.26.tgz", + "integrity": "sha512-nTKSJhBzn9BmnOs0xVzXMu8dN2Gu13Ca3x3SJr/zF6ZdKjXO82JlbHu55dt5MFoWjzAQmwlqBkSxPaYicsTgUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find": "^1.0.0", + "debug": "^4.3.1", + "dedent": "^0.7.0", + "del": "^5.1.0", + "execa": "^3.3.0", + "fs-extra": "^10.0.0", + "graceful-fs": "^4.1.11", + "linux-platform-info": "^0.0.3", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "mustache": "^2.1.2", + "nanoid": "^3.1.31", + "os-family": "^1.0.0", + "pify": "^2.3.0", + "pinkie": "^2.0.1", + "read-file-relative": "^1.2.0", + "which-promise": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/testcafe-browser-tools/node_modules/del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/testcafe-browser-tools/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/testcafe-browser-tools/node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/testcafe-browser-tools/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/testcafe-browser-tools/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/testcafe-hammerhead": { + "version": "31.7.6", + "resolved": "https://registry.npmjs.org/testcafe-hammerhead/-/testcafe-hammerhead-31.7.6.tgz", + "integrity": "sha512-PkYW+je+xiOi6hzEl7Rv6w4Aqawxr1wTMt6je/wYT3MkU6b4s2WKwF9MIg5thA3/TUt3djV+BJPzbWo3JInV3w==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.3.0-rc.1", + "@electron/asar": "^3.2.3", + "acorn-hammerhead": "0.6.2", + "bowser": "1.6.0", + "crypto-md5": "^1.0.0", + "debug": "4.3.1", + "esotope-hammerhead": "0.6.9", + "http-cache-semantics": "^4.1.0", + "httpntlm": "^1.8.10", + "iconv-lite": "0.5.1", + "lodash": "^4.17.21", + "lru-cache": "11.0.2", + "match-url-wildcard": "0.0.4", + "merge-stream": "^1.0.1", + "mime": "~1.4.1", + "mustache": "^2.1.1", + "nanoid": "^3.1.12", + "os-family": "^1.0.0", + "parse5": "^7.1.2", + "pinkie": "2.0.4", + "read-file-relative": "^1.2.0", + "semver": "7.5.3", + "tough-cookie": "4.1.3", + "tunnel-agent": "0.6.0", + "ws": "^7.4.6" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/testcafe-hammerhead/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/testcafe-hammerhead/node_modules/merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/testcafe-hammerhead/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/testcafe-hammerhead/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/testcafe-hammerhead/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/testcafe-legacy-api": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/testcafe-legacy-api/-/testcafe-legacy-api-5.1.8.tgz", + "integrity": "sha512-Jp/8xPQ+tjr2iS569Og8fFRaSx/7h/N/t6DVzhWpVNO3D5AtPkGmSjCAABh7tHkUwrKfBI7sLuVaxekiT5PWTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "3.2.3", + "dedent": "^0.6.0", + "highlight-es": "^1.0.0", + "lodash": "^4.14.0", + "moment": "^2.14.1", + "mustache": "^2.2.1", + "os-family": "^1.0.0", + "parse5": "^2.1.5", + "pify": "^2.3.0", + "pinkie": "^2.0.1", + "read-file-relative": "^1.2.0", + "strip-bom": "^2.0.0", + "testcafe-hammerhead": ">=19.4.0" + } + }, + "node_modules/testcafe-legacy-api/node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/testcafe-legacy-api/node_modules/dedent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.6.0.tgz", + "integrity": "sha512-cSfRWjXJtZQeRuZGVvDrJroCR5V2UvBNUMHsPCdNYzuAG8b9V8aAy3KUcdQrGQPXs17Y+ojbPh1aOCplg9YR9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/testcafe-legacy-api/node_modules/parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha512-yJQdbcT+hCt6HD+BuuUvjHUdNwerQIKSJSm7tXjtp6oIH5Mxbzlt/VIIeWxblsgcDt1+E7kxPeilD5McWswStA==", + "dev": true, + "license": "MIT" + }, + "node_modules/testcafe-react-selectors": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/testcafe-react-selectors/-/testcafe-react-selectors-5.0.3.tgz", + "integrity": "sha512-UBqkuQwrPmoxc//KUEtDiAkcns99EhgDNwVa3Q662yY8cQL01hbInXKqY1smOZRHEQwjnFjA2cEL7BHrQzR/pg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "testcafe": ">1.0.0" + } + }, + "node_modules/testcafe-reporter-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-json/-/testcafe-reporter-json-2.2.0.tgz", + "integrity": "sha512-wfpNaZgGP2WoqdmnIXOyxcpwSzdH1HvzXSN397lJkXOrQrwhuGUThPDvyzPnZqxZSzXdDUvIPJm55tCMWbfymQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/testcafe-reporter-list": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-list/-/testcafe-reporter-list-2.2.0.tgz", + "integrity": "sha512-+6Q2CC+2B90OYED2Yx6GoBIMUYd5tADNUbOHu3Hgdd3qskzjBdKwpdDt0b7w0w7oYDO1/Uu4HDBTDud3lWpD4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/testcafe-reporter-minimal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-minimal/-/testcafe-reporter-minimal-2.2.0.tgz", + "integrity": "sha512-iUSWI+Z+kVUAsGegMmEXKDiMPZHDxq+smo4utWwc3wI3Tk6jT8PbNvsROQAjwkMKDmnpo6To5vtyvzvK+zKGXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/testcafe-reporter-spec": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-spec/-/testcafe-reporter-spec-2.2.0.tgz", + "integrity": "sha512-4jUN75Y7eaHQfSjiCLBXt/TvJMW76kBaZGC74sq03FJNBLoo8ibkEFzfjDJzNDCRYo+P7FjCx3vxGrzgfQU26w==", + "dev": true, + "license": "MIT" + }, + "node_modules/testcafe-reporter-xunit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/testcafe-reporter-xunit/-/testcafe-reporter-xunit-2.2.1.tgz", + "integrity": "sha512-ge1msi8RyNVyK0QrsmC79zedV7jHasKpBPeOUZd/ORpbYLeYDnprjIeOuIukw0knnTieeYsOK29/ZD+UI7/tdw==", + "dev": true + }, + "node_modules/testcafe-selector-generator": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/testcafe-selector-generator/-/testcafe-selector-generator-0.1.0.tgz", + "integrity": "sha512-MTw+RigHsEYmFgzUFNErDxui1nTYUk6nm2bmfacQiKPdhJ9AHW/wue4J/l44mhN8x3E8NgOUkHHOI+1TDFXiLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/testcafe/node_modules/@types/node": { + "version": "20.14.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.5.tgz", + "integrity": "sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/testcafe/node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "dev": true + }, + "node_modules/testcafe/node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "node_modules/testcafe/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/testcafe/node_modules/dedent": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.4.0.tgz", + "integrity": "sha512-25DJIXD6mCqYHIqI3/aBfAvFgJSY9jIx397eUQSofXbWVR4lcB21a17qQ5Bswj0Zv+3Nf06zNCyfkGyvo0AqqQ==", + "dev": true + }, + "node_modules/testcafe/node_modules/emittery": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", + "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/testcafe/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/testcafe/node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/testcafe/node_modules/indent-string": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-1.2.2.tgz", + "integrity": "sha512-Z1vqf6lDC3f4N2mWqRywY6odjRatPNGDZgUr4DY9MLC14+Fp2/y+CI/RnNGlb8hD6ckscE/8DlZUwHUaiDBshg==", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + }, + "bin": { + "indent-string": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/testcafe/node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/testcafe/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/testcafe/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/testcafe/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/testcafe/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/testcafe/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/testcafe/node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/testcafe/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/testcafe/node_modules/parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==", + "dev": true + }, + "node_modules/testcafe/node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/testcafe/node_modules/resolve-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-1.0.0.tgz", + "integrity": "sha512-ac27EnKWWlc2yQ/5GCoCGecqVJ9MSmgiwvUYOS+9A+M0dn1FdP5mnsDZ9gwx+lAvh/d7f4RFn4jLfggRRYxPxw==", + "dev": true, + "dependencies": { + "resolve-from": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/testcafe/node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/testcafe/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/testcafe/node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/testcafe/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, + "license": "MIT" + }, + "node_modules/time-limit-promise": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/time-limit-promise/-/time-limit-promise-1.0.4.tgz", + "integrity": "sha512-FLHDDsIDducw7MBcRWlFtW2Tm50DoKOSFf0Nzx17qwXj8REXCte0eUkHrJl9QU3Bl9arG3XNYX0PcHpZ9xyuLw==", + "dev": true, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "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/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-to-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-2.0.0.tgz", + "integrity": "sha512-mfONnc9dqO0J41wUh/El+plDskrIJRcyLcx6WjEGYW2K11RnjPDAgeoNFCallADaYJfcWIvAlYyZPBw02AbfIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uvu/node_modules/diff": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", + "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/uvu/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "node_modules/vdf-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/vdf-parser/-/vdf-parser-1.2.1.tgz", + "integrity": "sha512-g5c73LP8NSebruEiVjOpV6KlN6xgVXBXc5UbexHWzjkatLJR++gUBhg76YqfJ9j4ZLfZ+Hv00592uiDywR+dWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/virtua": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/virtua/-/virtua-0.47.1.tgz", + "integrity": "sha512-IGe/hnZJdywFtFqpmtvS25II/Ov7i4vWnyagdguxLPvM8bSLmfEZULChdmTYwfcWI2XnxX+VGV4GpgaOvGp+7g==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0", + "solid-js": ">=1.0", + "svelte": ">=5.0", + "vue": ">=3.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "solid-js": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/vite": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", + "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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-promise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-promise/-/which-promise-1.0.0.tgz", + "integrity": "sha512-15ahjtDr3H+RBtTrvBcKhOFhIEiN3RZSCevDPWtBys+QUivZX9cYyNJcyWNIrUMVsgGrEuIThif9jxeEAQFauw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.2.0", + "pinkie-promise": "^1.0.0", + "which": "^1.1.2" + } + }, + "node_modules/which-promise/node_modules/pinkie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", + "integrity": "sha512-VFVaU1ysKakao68ktZm76PIdOhvEfoNNRaGkyLln9Os7r0/MCxqHjHyBM7dT3pgTiBybqiPtpqKfpENwdBp50Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which-promise/node_modules/pinkie-promise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", + "integrity": "sha512-5mvtVNse2Ml9zpFKkWBpGsTPwm3DKhs+c95prO/F6E7d6DN0FPqxs6LONpLNpyD7Iheb7QN4BbUoKJgo+DnkQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which-promise/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/windows-release": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.1.1.tgz", + "integrity": "sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.1.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/windows-release/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/windows-release/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/windows-release/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, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wordcloud": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/wordcloud/-/wordcloud-1.2.3.tgz", + "integrity": "sha512-9by77b7Sd9e1K75kSmVeAD+JnGpiLR1Z4EX1mYQL91jKrU1/4bHw4h4DExQ+dzfT+PvihDcH7OS7V4Y5UkbF2w==" + }, + "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, + "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/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/wrap-ansi/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/wrap-ansi/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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + } + }, + "dependencies": { + "@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true + }, + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "requires": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + } + }, + "@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "dev": true + }, + "@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "requires": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "dependencies": { + "@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==", + "requires": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "requires": { + "@babel/types": "^7.27.3" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "requires": { + "@babel/types": "^7.27.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" + }, + "@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==" + }, + "@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "dev": true, + "requires": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + } + }, + "@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "requires": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + } + }, + "@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "requires": { + "@babel/types": "^7.28.5" + } + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", + "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + } + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.3.tgz", + "integrity": "sha512-XcQ3X58CKBdBnnZpPaQjgVMePsXtSZzHoku70q9tUAQp02ggPQNM04BF3RvlW1GSM/McbSOQAzEK4MXbS7/JFg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", + "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + } + }, + "@babel/preset-flow": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.27.1.tgz", + "integrity": "sha512-ez3a2it5Fn6P54W8QkbfIyyIbxlXvcxyWHHvno1Wg0Ej5eiJY5hBb8ExttoIOJJk7V2dZE6prP7iby5q2aQ0Lg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-flow-strip-types": "^7.27.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-react-display-name": "^7.23.3", + "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==" + }, + "@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "requires": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + } + }, + "@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "requires": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + } + }, + "@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "requires": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + } + }, + "@devexpress/bin-v8-flags-filter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@devexpress/bin-v8-flags-filter/-/bin-v8-flags-filter-1.3.0.tgz", + "integrity": "sha512-LWLNfYGwVJKYpmHUDoODltnlqxdEAl5Qmw7ha1+TSpsABeF94NKSWkQTTV1TB4CM02j2pZyqn36nHgaFl8z7qw==", + "dev": true + }, + "@devexpress/callsite-record": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@devexpress/callsite-record/-/callsite-record-4.1.7.tgz", + "integrity": "sha512-qr3VQYc0KopduFkEY6SxaOIi1Xhm0jIWQfrxxMVboI/p2rjF/Mj/iqaiUxQQP6F3ujpW/7l0mzhf17uwcFZhBA==", + "dev": true, + "requires": { + "@types/lodash": "^4.14.72", + "callsite": "^1.0.0", + "chalk": "^2.4.0", + "error-stack-parser": "^2.1.4", + "highlight-es": "^1.0.0", + "lodash": "4.6.1 || ^4.16.1", + "pinkie-promise": "^2.0.0" + } + }, + "@electron/asar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.4.1.tgz", + "integrity": "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==", + "dev": true, + "requires": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } + }, + "@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + }, + "dependencies": { + "@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "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==" + }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + } + } + }, + "@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "requires": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + }, + "dependencies": { + "@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" + }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + } + } + }, + "@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "requires": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + }, + "dependencies": { + "@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" + }, + "@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" + } + } + }, + "@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" + }, + "@emotion/styled": { + "version": "11.14.1", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", + "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "dependencies": { + "@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "requires": { + "@emotion/memoize": "^0.9.0" + } + }, + "@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" + } + } + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "requires": {} + }, + "@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==" + }, + "@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" + }, + "@esbuild/aix-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", + "dev": true, + "optional": true + }, + "@esbuild/openharmony-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", + "dev": true, + "optional": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@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==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@mars3d/heatmap.js": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mars3d/heatmap.js/-/heatmap.js-2.0.7.tgz", + "integrity": "sha512-cIXF6XF761d0ZS0XB43UlNvvXZrHj9VIJv4H6da2AiGS/R1gUs7KvSeu0XEEztiG4FdoeLrwIjIV0yZYDwIDZg==" + }, + "@melloware/react-logviewer": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@melloware/react-logviewer/-/react-logviewer-6.4.1.tgz", + "integrity": "sha512-ArCs2C2KchI3Sa+LP80JghtcZu3zqxkXmoZx6DKJXgzRTN07Q8ECl7wzf26eQT0g0yM2CMOJ4WgfavhQ4xKA5Q==", + "requires": { + "hotkeys-js": "4.0.2", + "immutable": "5.1.5", + "mitt": "3.0.1", + "react-string-replace": "2.0.1", + "virtua": "0.48.8" + }, + "dependencies": { + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "virtua": { + "version": "0.48.8", + "resolved": "https://registry.npmjs.org/virtua/-/virtua-0.48.8.tgz", + "integrity": "sha512-jpsxOw5V4B6hg44JePRLo9DL0TV7N1lBEVtPjKpAJebXyhI2s9lfiXJESaLapNtr3vtiSk/pWHiLf7B2a6UcgQ==", + "requires": {} + } + } + }, + "@mui/core-downloads-tracker": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.6.tgz", + "integrity": "sha512-QaYtTHlr8kDFN5mE1wbvVARRKH7Fdw1ZuOjBJcFdVpfNfRYKF3QLT4rt+WaB6CKJvpqxRsmEo0kpYinhH5GeHg==" + }, + "@mui/icons-material": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.5.tgz", + "integrity": "sha512-LciL1GLMZ+VlzyHAALSVAR22t8IST4LCXmljcUSx2NOutgO2XnxdIp8ilFbeNf9wpo0iUFbAuoQcB7h+HHIf3A==", + "requires": { + "@babel/runtime": "^7.28.4" + } + }, + "@mui/material": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.6.tgz", + "integrity": "sha512-R4DaYF3dgCQCUAkr4wW1w26GHXcf5rCmBRHVBuuvJvaGLmZdD8EjatP80Nz5JCw0KxORAzwftnHzXVnjR8HnFw==", + "requires": { + "@babel/runtime": "^7.28.4", + "@mui/core-downloads-tracker": "^7.3.6", + "@mui/system": "^7.3.6", + "@mui/types": "^7.4.9", + "@mui/utils": "^7.3.6", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.2.0", + "react-transition-group": "^4.4.5" + }, + "dependencies": { + "@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "requires": {} + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "react-is": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.0.tgz", + "integrity": "sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA==" + }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + } + } + }, + "@mui/private-theming": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.6.tgz", + "integrity": "sha512-Ws9wZpqM+FlnbZXaY/7yvyvWQo1+02Tbx50mVdNmzWEi51C51y56KAbaDCYyulOOBL6BJxuaqG8rNNuj7ivVyw==", + "requires": { + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.6", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.6.tgz", + "integrity": "sha512-+wiYbtvj+zyUkmDB+ysH6zRjuQIJ+CM56w0fEXV+VDNdvOuSywG+/8kpjddvvlfMLsaWdQe5oTuYGBcodmqGzQ==", + "requires": { + "@babel/runtime": "^7.28.4", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + } + }, + "@mui/system": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.6.tgz", + "integrity": "sha512-8fehAazkHNP1imMrdD2m2hbA9sl7Ur6jfuNweh5o4l9YPty4iaZzRXqYvBCWQNwFaSHmMEj2KPbyXGp7Bt73Rg==", + "requires": { + "@babel/runtime": "^7.28.4", + "@mui/private-theming": "^7.3.6", + "@mui/styled-engine": "^7.3.6", + "@mui/types": "^7.4.9", + "@mui/utils": "^7.3.6", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + } + }, + "@mui/types": { + "version": "7.4.9", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.9.tgz", + "integrity": "sha512-dNO8Z9T2cujkSIaCnWwprfeKmTWh97cnjkgmpFJ2sbfXLx8SMZijCYHOtP/y5nnUb/Rm2omxbDMmtUoSaUtKaw==", + "requires": { + "@babel/runtime": "^7.28.4" + } + }, + "@mui/utils": { + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.6.tgz", + "integrity": "sha512-jn+Ba02O6PiFs7nKva8R2aJJ9kJC+3kQ2R0BbKNY3KQQ36Qng98GnPRFTlbwYTdMD6hLEBKaMLUktyg/rTfd2w==", + "requires": { + "@babel/runtime": "^7.28.4", + "@mui/types": "^7.4.9", + "@types/prop-types": "^15.7.15", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.2.0" + }, + "dependencies": { + "react-is": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz", + "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==" + } + } + }, + "@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, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@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 + }, + "@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, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz", + "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz", + "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz", + "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz", + "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz", + "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz", + "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz", + "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz", + "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz", + "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz", + "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-loong64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz", + "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-loong64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz", + "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-ppc64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz", + "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-ppc64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz", + "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz", + "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz", + "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz", + "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz", + "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz", + "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-openbsd-x64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz", + "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-openharmony-arm64": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz", + "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz", + "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz", + "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-gnu": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz", + "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz", + "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==", + "dev": true, + "optional": true + }, + "@stripe/stripe-js": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.32.0.tgz", + "integrity": "sha512-7EvBnbBfS1aynfLRmBFcuumHNGjKxnNkO47rorFBktqDYHwo7Yw6pfDW2iqq0R8r7i7XiJEdWPvvEgQAiDrx3A==" + }, + "@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==" + }, + "@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" + }, + "@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" + }, + "@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "requires": { + "@types/d3-color": "*" + } + }, + "@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==" + }, + "@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "requires": { + "@types/d3-time": "*" + } + }, + "@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "requires": { + "@types/d3-path": "*" + } + }, + "@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==" + }, + "@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" + }, + "@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "requires": { + "@types/ms": "*" + } + }, + "@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 + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "requires": { + "@types/unist": "^2" + } + }, + "@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "dev": true + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "dev": true + }, + "@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "requires": { + "@types/unist": "^2" + } + }, + "@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" + }, + "@types/node": { + "version": "25.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", + "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", + "dev": true, + "requires": { + "undici-types": "~7.16.0" + } + }, + "@types/papaparse": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.5.2.tgz", + "integrity": "sha512-gFnFp/JMzLHCwRf7tQHrNnfhN4eYBVYYI897CGX4MY1tzY9l2aLkVyx2IlKZ/SAqDbB3I1AOZW5gTMGGsqWliA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==" + }, + "@types/react": { + "version": "17.0.47", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", + "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", + "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", + "dev": true, + "requires": { + "@types/react": "^17" + } + }, + "@types/react-helmet": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-6.1.11.tgz", + "integrity": "sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-redux": { + "version": "7.1.24", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz", + "integrity": "sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==", + "requires": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "@types/react-router": { + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", + "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", + "dev": true, + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dev": true, + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "@types/react-tooltip": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@types/react-tooltip/-/react-tooltip-3.9.3.tgz", + "integrity": "sha512-X9xuVWlZTLUQadIIrf5MnMPo/FE8izJPRo6c6f+XUs8eIaQ2vj+5Qw4Ttw9bMUPrqImmsJp7o7FY4t1qHLFf4g==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.9.2.tgz", + "integrity": "sha512-5Fv2DQNO+GpdPZcxp2x/OQG/H19A01WlmpjVD9cKvVFmoVLOZ9LvBgSWG6pSXIU4og5fgbvGPaCV5+VGkWAEHA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/styled-components": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-4.0.3.tgz", + "integrity": "sha512-LzntHlOKEOxUxMkVmQPNG88TsldeHO2NlwNkzHnw4wL8qhHQgd7u+u3yw84hZgoFh4ugsLCbFtjYcbP7v5WC5Q==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/react": "*" + } + }, + "@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + }, + "@types/wordcloud": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/wordcloud/-/wordcloud-1.2.2.tgz", + "integrity": "sha512-UMKd/doXE3karDUd5l+2LqFKUU4SmuPWOT/VA22OrPOUGMlb8/qQvSf+DBLQf/sd8UphuBGxOK/jB/1BB5oQRw==", + "dev": true + }, + "abcolor": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/abcolor/-/abcolor-0.5.5.tgz", + "integrity": "sha512-xYDsPOWM2/n6Xvc9mwcJ1BIHdk6ahjWIqp5dwx9P+s0Ou/f6moythvJOdUNTdeRkB18e0yGin4DBZUksoaEQiw==" + }, + "ace-builds": { + "version": "1.43.5", + "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.43.5.tgz", + "integrity": "sha512-iH5FLBKdB7SVn9GR37UgA/tpQS8OTWIxWAuq3Ofaw+Qbc69FfPXsXd9jeW7KRG2xKpKMqBDnu0tHBrCWY5QI7A==" + }, + "acorn-hammerhead": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/acorn-hammerhead/-/acorn-hammerhead-0.6.2.tgz", + "integrity": "sha512-JZklfs1VVyjA1hf1y5qSzKSmK3K1UUUI7fQTuM/Zhv3rz4kFhdx4QwVnmU6tBEC8g/Ov6B+opfNFPeSZrlQfqA==", + "dev": true, + "requires": { + "@types/estree": "0.0.46" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.46", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "dev": true + } + } + }, + "address": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-2.0.3.tgz", + "integrity": "sha512-XNAb/a6TCqou+TufU8/u11HCu9x1gYvOoxLwtlXgIqmkrYQADVv6ljyW2zwiPhHz9R1gItAWpuDrdJMmrOBFEA==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "air-datepicker": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/air-datepicker/-/air-datepicker-3.6.0.tgz", + "integrity": "sha512-+txUkqa949rXBJDmkQAIb/GehZECJYF4rm9XJxVYtEX22C9WvBpE/XwCUQZBopKIkpg4ycAySJ9lH3JOg9qQTw==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", + "dev": true + }, + "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 + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, + "async-exit-hook": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-1.1.2.tgz", + "integrity": "sha512-CeTSWB5Bou31xSHeO45ZKgLPRaJbV4I8csRcFYETDBehX7H+1GDO/v+v8G7fZmar1gOmYa6UTXn6d/WIiJbslw==", + "dev": true + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "babel-plugin-module-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz", + "integrity": "sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==", + "dev": true, + "requires": { + "find-babel-config": "^2.0.0", + "glob": "^8.0.3", + "pkg-up": "^3.1.0", + "reselect": "^4.1.7", + "resolve": "^1.22.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.4" + } + }, + "babel-plugin-styled-components": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==", + "dev": true + }, + "bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "baseline-browser-mapping": { + "version": "2.8.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.20.tgz", + "integrity": "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==", + "dev": true + }, + "bowser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.6.0.tgz", + "integrity": "sha512-Fk23J0+vRnI2eKDEDoUZXWtbMjijr098lKhuj4DKAfMKMCRVfJOuxXlbpxy0sTgbZ/Nr2N8MexmOir+GGI/ZMA==", + "dev": true + }, + "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, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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, + "requires": { + "fill-range": "^7.1.1" + } + }, + "browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "dev": true, + "requires": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + } + }, + "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 + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" + }, + "caniuse-lite": { + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "dev": true + }, + "chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chrome-remote-interface": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.32.2.tgz", + "integrity": "sha512-3UbFKtEmqApehPQnqdblcggx7KveQphEMKQmdJZsOguE9ylw2N2/9Z7arO7xS55+DBJ/hyP8RrayLt4MMdJvQg==", + "dev": true, + "requires": { + "commander": "2.11.x", + "ws": "^7.2.0" + } + }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" + }, + "coffeescript": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.7.0.tgz", + "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "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 + }, + "core-js-compat": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", + "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "dev": true, + "requires": { + "browserslist": "^4.22.2" + } + }, + "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==", + "dev": true + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "dependencies": { + "yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==" + } + } + }, + "countup.js": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.8.0.tgz", + "integrity": "sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==" + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-md5": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-md5/-/crypto-md5-1.0.0.tgz", + "integrity": "sha512-65Mtei8+EkSIK+5Ie4gpWXoJ/5bgpqPXFknHHXAyhDqKsEAAzUslGd8mOeawbfcuQ8fADNKcF4xQA3fqlZJ8Ig==", + "dev": true + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" + }, + "css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "requires": { + "internmap": "1 - 2" + } + }, + "d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" + }, + "d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" + }, + "d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" + }, + "d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "requires": { + "d3-color": "1 - 3" + } + }, + "d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==" + }, + "d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "requires": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + } + }, + "d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "requires": { + "d3-path": "^3.1.0" + } + }, + "d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "requires": { + "d3-array": "2 - 3" + } + }, + "d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "requires": { + "d3-time": "1 - 3" + } + }, + "d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + }, + "decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "requires": { + "character-entities": "^2.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==", + "dev": true, + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "device-specs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/device-specs/-/device-specs-1.0.0.tgz", + "integrity": "sha512-fYXbFSeilT7bnKWFi4OERSPHdtaEoDGn4aUhV5Nly6/I+Tp6JZ/6Icmd7LVIF5euyodGpxz2e/bfUmDnIdSIDw==", + "dev": true + }, + "devtools-protocol": { + "version": "0.0.1109433", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1109433.tgz", + "integrity": "sha512-w1Eqih66egbSr2eOoGZ+NsdF7HdxmKDo3pKFBySEGsmVvwWWNXzNCDcKrbFnd23Jf7kH1M806OfelXwu+Jk11g==", + "dev": true + }, + "diff": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", + "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", + "dev": true + }, + "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, + "requires": { + "path-type": "^4.0.0" + } + }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "dota2-emoticons": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dota2-emoticons/-/dota2-emoticons-1.0.4.tgz", + "integrity": "sha512-XULzbnE0YeACeJxx+OCeW/lp+nj1P4OLtHIHxb8jqYO1Wo6pCwbhkIxkpqOfNMAP8DZ60kL+ekCoOKE6uzRqIA==" + }, + "dotaconstants": { + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/dotaconstants/-/dotaconstants-10.8.0.tgz", + "integrity": "sha512-4imDHLtqBg4abJ2Q/t2Kac/rM5kB5mCBF1lXaUDFtmoJ+TDku8TZ+R8ilU5l7xWpLZBEEYAe+u40CWxku9iFWA==" + }, + "electron-to-chromium": { + "version": "1.5.241", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.241.tgz", + "integrity": "sha512-ILMvKX/ZV5WIJzzdtuHg8xquk2y0BOGlFOxBVwTpbiXqWIH0hamG45ddU4R3PQ0gYu+xgo0vdHXHli9sHIGb4w==", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", + "dev": true + }, + "email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true + }, + "error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "esbuild": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" + } + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "esotope-hammerhead": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/esotope-hammerhead/-/esotope-hammerhead-0.6.9.tgz", + "integrity": "sha512-rD9Jbh0SFJzKe1RGfsbwpN5IBdubHKC61xRW7A5BPgBTtEnFxsWOqPITVhBaVDc4r5VPmh+Y1U1wmqReTfn1AQ==", + "dev": true, + "requires": { + "@types/estree": "0.0.46" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.46", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "dev": true + } + } + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "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 + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "fast-equals": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.3.2.tgz", + "integrity": "sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@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" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "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, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-babel-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.1.2.tgz", + "integrity": "sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==", + "dev": true, + "requires": { + "json5": "^2.2.3" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "fuzzy": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "integrity": "sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true + }, + "get-os-info": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-os-info/-/get-os-info-1.0.2.tgz", + "integrity": "sha512-Nlgt85ph6OHZ4XvTcC8LMLDDFUzf7LAinYJZUwzrnc3WiO+vDEHDmNItTtzixBDLv94bZsvJGrrDRAE6uPs4MQ==", + "dev": true, + "requires": { + "getos": "^3.2.1", + "macos-release": "^3.0.1", + "os-family": "^1.1.0", + "windows-release": "^5.0.1" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "requires": { + "async": "^3.2.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true + }, + "graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==" + }, + "highlight-es": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/highlight-es/-/highlight-es-1.0.3.tgz", + "integrity": "sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==", + "dev": true, + "requires": { + "chalk": "^2.4.0", + "is-es2016-keyword": "^1.0.0", + "js-tokens": "^3.0.0" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true + } + } + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "hotkeys-js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-4.0.2.tgz", + "integrity": "sha512-fJNEO88zWwoXEGJuvjSbunKSexaT1VbC1S9wIzMA2BfOZ5KPiQj2wTqxDeXd110/4akiAuQIsE3TSbNvGgCyQg==" + }, + "http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true + }, + "http-status-codes": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==", + "dev": true + }, + "httpntlm": { + "version": "1.8.13", + "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.8.13.tgz", + "integrity": "sha512-2F2FDPiWT4rewPzNMg3uPhNkP3NExENlUGADRUDPQvuftuUTGW98nLZtGemCIW3G40VhWZYgkIDcQFAwZ3mf2Q==", + "dev": true, + "requires": { + "des.js": "^1.0.1", + "httpreq": ">=0.4.22", + "js-md4": "^0.3.2", + "underscore": "~1.12.1" + } + }, + "httpreq": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-1.1.1.tgz", + "integrity": "sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "humanize-duration": { + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.2.tgz", + "integrity": "sha512-A15OmA3FLFRnehvF4ZMocsxTZYvHq4ze7L+AgR1DeHw0xC9vMd4euInY83uqGU9/XXKNnVIEeKc1R8G8nKqtzg==", + "dev": true + }, + "iconv-lite": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz", + "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true + }, + "immutable": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", + "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==" + }, + "import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "requires": { + "hasown": "^2.0.2" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-es2016-keyword": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-es2016-keyword/-/is-es2016-keyword-1.0.0.tgz", + "integrity": "sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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 + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" + }, + "is-podman": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-podman/-/is-podman-1.0.1.tgz", + "integrity": "sha512-+5vbtF5FIg262iUa7gOIseIWTx0740RHiax7oSmJMhbfSoBIMQ/IacKKgfnGj65JGeH9lGEVQcdkDwhn1Em1mQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" + }, + "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==" + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "linux-platform-info": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/linux-platform-info/-/linux-platform-info-0.0.3.tgz", + "integrity": "sha512-FZhfFOIz0i4EGAvM4fQz+eayE9YzMuTx45tbygWYBttNapyiODg85BnAlQ1xnahEkvIM87T98XhXSfW8JAClHg==", + "dev": true, + "requires": { + "os-family": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "log-update-async-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/log-update-async-hook/-/log-update-async-hook-2.0.7.tgz", + "integrity": "sha512-V9KpD1AZUBd/oiZ+/Xsgd5rRP9awhgtRiDv5Am4VQCixiDnAbXMdt/yKz41kCzYZtVbwC6YCxnWEF3zjNEwktA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.2", + "async-exit-hook": "^1.1.2", + "onetime": "^2.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true + }, + "macos-release": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.4.0.tgz", + "integrity": "sha512-wpGPwyg/xrSp4H4Db4xYSeAr6+cFQGHfspHzDUdYxswDnUW0L5Ov63UuJiSr8NMSpyaChO4u1n0MXUvVPtrN6A==", + "dev": true + }, + "match-url-wildcard": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/match-url-wildcard/-/match-url-wildcard-0.0.4.tgz", + "integrity": "sha512-R1XhQaamUZPWLOPtp4ig5j+3jctN+skhgRmEQTUamMzmNtRG69QEirQs0NZKLtHMR7tzWpmtnS4Eqv65DcgXUA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + } + }, + "mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "requires": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "requires": { + "@types/mdast": "^3.0.0" + } + }, + "mediaquery": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mediaquery/-/mediaquery-0.0.3.tgz", + "integrity": "sha512-vBusBYjjcPv1gPf5WEpnvRtL585rsiDrHLgOK8LHje0FIk/8Zn9iRlv/IUvDg6l9YxujJTnmrDpQgAYZBivzfQ==" + }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "merge-anything": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-2.4.4.tgz", + "integrity": "sha512-l5XlriUDJKQT12bH+rVhAHjwIuXWdAIecGwsYjv2LJo+dA1AeRTmeQS+3QBpO6lEthBMDi2IUMpLC1yyRvGlwQ==", + "requires": { + "is-what": "^3.3.1" + } + }, + "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 + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "requires": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "requires": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "requires": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "requires": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==" + }, + "micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==" + }, + "micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "requires": { + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "requires": { + "micromark-util-types": "^1.0.0" + } + }, + "micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "requires": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "requires": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==" + }, + "micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==" + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "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 + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "dev": true + }, + "moment-duration-format-commonjs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/moment-duration-format-commonjs/-/moment-duration-format-commonjs-1.0.1.tgz", + "integrity": "sha512-KhKZRH21/+ihNRWrmdNFOyBptFi7nAWZFeFsRRpXkzgk/Yublb4fxyP0jU6EY1VDxUL/VUPdCmm/wAnpbfXdfw==", + "dev": true + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mustache": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", + "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", + "dev": true + }, + "nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==" + }, + "node-releases": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "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==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "os-family": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/os-family/-/os-family-1.1.0.tgz", + "integrity": "sha512-E3Orl5pvDJXnVmpaAA2TeNNpNhTMl4o5HghuWhOivBjEiTnJSrMYSa5uZMek1lBEvu8kKEsa2YgVcGFVDqX/9w==", + "dev": true + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "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, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "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 + }, + "papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==" + }, + "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==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "requires": { + "entities": "^6.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "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 + }, + "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==" + }, + "path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "dev": true + }, + "postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "requires": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "dependencies": { + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true + } + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true + }, + "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==", + "dev": true + }, + "promisify-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promisify-event/-/promisify-event-1.0.0.tgz", + "integrity": "sha512-mshw5LiFmdtphcuUGKyd3t6zmmgIVxrdZ8v4R1INAXHvMemUsDCqIUeq5QUIqqDfed8ZZ6uhov1PqhrdBvHOIA==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==" + }, + "psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "requires": { + "punycode": "^2.3.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "qrcode-terminal": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.10.0.tgz", + "integrity": "sha512-ZvWjbAj4MWAj6bnCc9CnculsXnJr7eoKsvH/8rVpZbqYxP2z05HNQa43ZVwe/dVRcFxgfFHE2CkUqn0sCyLfHw==", + "dev": true + }, + "querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "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 + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-content-loader": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-content-loader/-/react-content-loader-7.1.1.tgz", + "integrity": "sha512-yNkqtd+15wXRLfDKZb5nTqDV2fPTG2kpUgeGRb+WBz43bU0j4DSGXETF0bnFr44fAoTPpm0Dya0WGdhpHSvtYA==", + "requires": {} + }, + "react-countup": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.5.3.tgz", + "integrity": "sha512-udnqVQitxC7QWADSPDOxVWULkLvKUWrDapn5i53HE4DPRVgs+Y5rr4bo25qEl8jSh+0l2cToJgGMx+clxPM3+w==", + "requires": { + "countup.js": "^2.8.0" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "react-ga": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-3.3.1.tgz", + "integrity": "sha512-4Vc0W5EvXAXUN/wWyxvsAKDLLgtJ3oLmhYYssx+YzphJpejtOst6cbIHCIyF50Fdxuf5DDKqRYny24yJ2y7GFQ==", + "requires": {} + }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-markdown": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", + "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", + "requires": { + "@types/hast": "^2.0.0", + "@types/prop-types": "^15.0.0", + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "prop-types": "^15.0.0", + "property-information": "^6.0.0", + "react-is": "^18.0.0", + "remark-parse": "^10.0.0", + "remark-rehype": "^10.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "dependencies": { + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + } + } + }, + "react-redux": { + "version": "7.2.8", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz", + "integrity": "sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==", + "requires": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + } + }, + "react-router": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz", + "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.3", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-side-effect": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", + "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==", + "requires": {} + }, + "react-smooth": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", + "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", + "requires": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "dependencies": { + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + } + } + }, + "react-string-replace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-2.0.1.tgz", + "integrity": "sha512-J7y/IxZkwhOgCexu6GtkNH2FIa9f/z6ykvK1YXS8VLIdvcP8Vyx3LAUFsfIFvq3aQbmin2d+clFR1J50LnR2yA==" + }, + "react-stripe-checkout": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-stripe-checkout/-/react-stripe-checkout-2.6.3.tgz", + "integrity": "sha512-lnsCaAdlmwPGGMbQoI8FXtQUgEm+ktzPZ/ipAw4j0HYf80kef7CivGx6QitmgEn99/aa5hI/dmVXwfVZW/Mzfg==" + }, + "react-tooltip": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.11.1.tgz", + "integrity": "sha512-YCMVlEC2KuHIzOQhPplTK5jmBBwoL+PYJJdJKXj7M/h7oevupd/QSVq6z5U7/ehIGXyHsAqvwpdxexDfyQ0o3A==", + "requires": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + } + }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + }, + "read-file-relative": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/read-file-relative/-/read-file-relative-1.2.0.tgz", + "integrity": "sha512-lwZUlN2tQyPa62/XmVtX1MeNLVutlRWwqvclWU8YpOCgjKdhg2zyNkeFjy7Rnjo3txhKCy5FGgAi+vx59gvkYg==", + "dev": true, + "requires": { + "callsite": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "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==", + "dev": true + } + } + }, + "recharts": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", + "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", + "requires": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^18.3.1", + "react-smooth": "^4.0.4", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "dependencies": { + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + } + } + }, + "recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "requires": { + "decimal.js-light": "^2.4.1" + } + }, + "redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "requires": { + "@babel/runtime": "^7.9.2" + } + }, + "redux-responsive": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/redux-responsive/-/redux-responsive-4.3.8.tgz", + "integrity": "sha512-h+q9KTfaOdgXxFhqwHhAIHT/1ZiARFmM3iLMOnjpc79BUXlW24N3qJmUR5kOQYicIKKL0usIjNuNa+2HFTnxLg==", + "requires": { + "mediaquery": "0.0.3" + } + }, + "redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "requires": {} + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "remark-rehype": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "requires": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + } + }, + "repeating": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "integrity": "sha512-Nh30JLeMHdoI+AsQ5eblhZ7YlTsM9wiJQe/AHIunlK3KWzvXhXb36IJ7K1IOeRjIOtzMjdUHjwXUFxKJoPTSOg==", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replicator": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/replicator/-/replicator-1.0.5.tgz", + "integrity": "sha512-saxS4y7NFkLMa92BR4bPHR41GD+f/qoDAwD2xZmN+MpDXgibkxwLO2qk7dCHYtskSkd/bWS8Jy6kC5MZUkg1tw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, + "resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "requires": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "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==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "4.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", + "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.59.0", + "@rollup/rollup-android-arm64": "4.59.0", + "@rollup/rollup-darwin-arm64": "4.59.0", + "@rollup/rollup-darwin-x64": "4.59.0", + "@rollup/rollup-freebsd-arm64": "4.59.0", + "@rollup/rollup-freebsd-x64": "4.59.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.59.0", + "@rollup/rollup-linux-arm-musleabihf": "4.59.0", + "@rollup/rollup-linux-arm64-gnu": "4.59.0", + "@rollup/rollup-linux-arm64-musl": "4.59.0", + "@rollup/rollup-linux-loong64-gnu": "4.59.0", + "@rollup/rollup-linux-loong64-musl": "4.59.0", + "@rollup/rollup-linux-ppc64-gnu": "4.59.0", + "@rollup/rollup-linux-ppc64-musl": "4.59.0", + "@rollup/rollup-linux-riscv64-gnu": "4.59.0", + "@rollup/rollup-linux-riscv64-musl": "4.59.0", + "@rollup/rollup-linux-s390x-gnu": "4.59.0", + "@rollup/rollup-linux-x64-gnu": "4.59.0", + "@rollup/rollup-linux-x64-musl": "4.59.0", + "@rollup/rollup-openbsd-x64": "4.59.0", + "@rollup/rollup-openharmony-arm64": "4.59.0", + "@rollup/rollup-win32-arm64-msvc": "4.59.0", + "@rollup/rollup-win32-ia32-msvc": "4.59.0", + "@rollup/rollup-win32-x64-gnu": "4.59.0", + "@rollup/rollup-win32-x64-msvc": "4.59.0", + "@types/estree": "1.0.8", + "fsevents": "~2.3.2" + } + }, + "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, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "requires": { + "mri": "^1.1.0" + } + }, + "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==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "sanitize-filename-ts": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sanitize-filename-ts/-/sanitize-filename-ts-1.0.2.tgz", + "integrity": "sha512-bON2VOJoappmaBHlnxvBNk5R7HkUAsirf5m1M5Kz15uZykDGbHfGPCQNcEQKR8HrQhgh9CmQ6Xe9y71yM9ywkw==", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.2" + } + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "dev": true + }, + "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, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "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 + }, + "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 + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true + }, + "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, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "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 + } + } + }, + "space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "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 + } + } + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "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 + } + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "requires": { + "inline-style-parser": "0.1.1" + } + }, + "styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "requires": {} + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "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==" + }, + "testcafe": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/testcafe/-/testcafe-3.7.3.tgz", + "integrity": "sha512-PZfNGVXYX+KjKgHepsnPv4xgeA+PK9GiQF+OUl4R2tG8KBjqFgGP1sl5UOnFIIaL6ncbf5Erhpubt0VvsJlJ/w==", + "dev": true, + "requires": { + "@babel/core": "^7.23.2", + "@babel/plugin-proposal-decorators": "^7.23.2", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", + "@babel/plugin-transform-runtime": "7.23.3", + "@babel/preset-env": "^7.23.2", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-react": "^7.22.15", + "@babel/runtime": "^7.23.2", + "@devexpress/bin-v8-flags-filter": "^1.3.0", + "@devexpress/callsite-record": "^4.1.6", + "@types/node": "20.14.5", + "address": "^2.0.2", + "async-exit-hook": "^1.1.2", + "babel-plugin-module-resolver": "5.0.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "bowser": "^2.8.1", + "callsite": "^1.0.0", + "chai": "4.3.4", + "chalk": "^2.3.0", + "chrome-remote-interface": "^0.32.2", + "coffeescript": "^2.3.1", + "commander": "^8.3.0", + "debug": "^4.3.1", + "dedent": "^0.4.0", + "del": "^3.0.0", + "device-specs": "^1.0.0", + "devtools-protocol": "0.0.1109433", + "diff": "^4.0.2", + "elegant-spinner": "^1.0.1", + "email-validator": "^2.0.4", + "emittery": "^0.4.1", + "error-stack-parser": "^2.1.4", + "execa": "^4.0.3", + "get-os-info": "^1.0.2", + "globby": "^11.0.4", + "graceful-fs": "^4.1.11", + "graphlib": "^2.1.5", + "http-status-codes": "^2.2.0", + "humanize-duration": "^3.25.0", + "import-lazy": "^3.1.0", + "indent-string": "^1.2.2", + "is-ci": "^1.0.10", + "is-docker": "^2.0.0", + "is-glob": "^2.0.1", + "is-podman": "^1.0.1", + "is-stream": "^2.0.0", + "json5": "^2.2.2", + "lodash": "^4.17.21", + "log-update-async-hook": "^2.0.7", + "make-dir": "^3.0.0", + "mime-db": "^1.41.0", + "moment": "^2.29.4", + "moment-duration-format-commonjs": "^1.0.0", + "mustache": "^2.1.2", + "nanoid": "^3.1.31", + "os-family": "^1.0.0", + "parse5": "^1.5.0", + "pify": "^2.3.0", + "pinkie": "^2.0.4", + "pngjs": "^3.3.1", + "pretty-hrtime": "^1.0.3", + "promisify-event": "^1.0.0", + "prompts": "^2.4.2", + "qrcode-terminal": "^0.10.0", + "read-file-relative": "^1.2.0", + "replicator": "^1.0.5", + "resolve-cwd": "^1.0.0", + "resolve-from": "^4.0.0", + "sanitize-filename": "^1.6.0", + "semver": "^7.5.3", + "set-cookie-parser": "^2.5.1", + "source-map-support": "^0.5.16", + "strip-bom": "^2.0.0", + "testcafe-browser-tools": "2.0.26", + "testcafe-hammerhead": "31.7.6", + "testcafe-legacy-api": "5.1.8", + "testcafe-reporter-json": "^2.1.0", + "testcafe-reporter-list": "^2.2.0", + "testcafe-reporter-minimal": "^2.2.0", + "testcafe-reporter-spec": "^2.2.0", + "testcafe-reporter-xunit": "^2.2.1", + "testcafe-selector-generator": "^0.1.0", + "time-limit-promise": "^1.0.2", + "tmp": "0.2.5", + "tree-kill": "^1.2.2", + "typescript": "4.7.4", + "unquote": "^1.1.1", + "url-to-options": "^2.0.0" + }, + "dependencies": { + "@types/node": { + "version": "20.14.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.5.tgz", + "integrity": "sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "dev": true + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "dedent": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.4.0.tgz", + "integrity": "sha512-25DJIXD6mCqYHIqI3/aBfAvFgJSY9jIx397eUQSofXbWVR4lcB21a17qQ5Bswj0Zv+3Nf06zNCyfkGyvo0AqqQ==", + "dev": true + }, + "emittery": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.4.1.tgz", + "integrity": "sha512-r4eRSeStEGf6M5SKdrQhhLK5bOwOBxQhIE3YSTnZE3GpKiLfnnhE+tPtrJE79+eDJgm39BM6LSoI8SCx4HbwlQ==", + "dev": true + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, + "indent-string": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-1.2.2.tgz", + "integrity": "sha512-Z1vqf6lDC3f4N2mWqRywY6odjRatPNGDZgUr4DY9MLC14+Fp2/y+CI/RnNGlb8hD6ckscE/8DlZUwHUaiDBshg==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "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 + }, + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==", + "dev": true + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-1.0.0.tgz", + "integrity": "sha512-ac27EnKWWlc2yQ/5GCoCGecqVJ9MSmgiwvUYOS+9A+M0dn1FdP5mnsDZ9gwx+lAvh/d7f4RFn4jLfggRRYxPxw==", + "dev": true, + "requires": { + "resolve-from": "^2.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==", + "dev": true + } + } + }, + "semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "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 + } + } + }, + "testcafe-browser-tools": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/testcafe-browser-tools/-/testcafe-browser-tools-2.0.26.tgz", + "integrity": "sha512-nTKSJhBzn9BmnOs0xVzXMu8dN2Gu13Ca3x3SJr/zF6ZdKjXO82JlbHu55dt5MFoWjzAQmwlqBkSxPaYicsTgUw==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^4.3.1", + "dedent": "^0.7.0", + "del": "^5.1.0", + "execa": "^3.3.0", + "fs-extra": "^10.0.0", + "graceful-fs": "^4.1.11", + "linux-platform-info": "^0.0.3", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "mustache": "^2.1.2", + "nanoid": "^3.1.31", + "os-family": "^1.0.0", + "pify": "^2.3.0", + "pinkie": "^2.0.1", + "read-file-relative": "^1.2.0", + "which-promise": "^1.0.0" + }, + "dependencies": { + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "dev": true, + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + } + }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "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 + }, + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true + } + } + }, + "testcafe-hammerhead": { + "version": "31.7.6", + "resolved": "https://registry.npmjs.org/testcafe-hammerhead/-/testcafe-hammerhead-31.7.6.tgz", + "integrity": "sha512-PkYW+je+xiOi6hzEl7Rv6w4Aqawxr1wTMt6je/wYT3MkU6b4s2WKwF9MIg5thA3/TUt3djV+BJPzbWo3JInV3w==", + "dev": true, + "requires": { + "@adobe/css-tools": "^4.3.0-rc.1", + "@electron/asar": "^3.2.3", + "acorn-hammerhead": "0.6.2", + "bowser": "1.6.0", + "crypto-md5": "^1.0.0", + "debug": "4.3.1", + "esotope-hammerhead": "0.6.9", + "http-cache-semantics": "^4.1.0", + "httpntlm": "^1.8.10", + "iconv-lite": "0.5.1", + "lodash": "^4.17.21", + "lru-cache": "11.0.2", + "match-url-wildcard": "0.0.4", + "merge-stream": "^1.0.1", + "mime": "~1.4.1", + "mustache": "^2.1.1", + "nanoid": "^3.1.12", + "os-family": "^1.0.0", + "parse5": "^7.1.2", + "pinkie": "2.0.4", + "read-file-relative": "^1.2.0", + "semver": "7.5.3", + "tough-cookie": "4.1.3", + "tunnel-agent": "0.6.0", + "ws": "^7.4.6" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true + }, + "semver": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + } + } + }, + "testcafe-legacy-api": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/testcafe-legacy-api/-/testcafe-legacy-api-5.1.8.tgz", + "integrity": "sha512-Jp/8xPQ+tjr2iS569Og8fFRaSx/7h/N/t6DVzhWpVNO3D5AtPkGmSjCAABh7tHkUwrKfBI7sLuVaxekiT5PWTA==", + "dev": true, + "requires": { + "async": "3.2.3", + "dedent": "^0.6.0", + "highlight-es": "^1.0.0", + "lodash": "^4.14.0", + "moment": "^2.14.1", + "mustache": "^2.2.1", + "os-family": "^1.0.0", + "parse5": "^2.1.5", + "pify": "^2.3.0", + "pinkie": "^2.0.1", + "read-file-relative": "^1.2.0", + "strip-bom": "^2.0.0", + "testcafe-hammerhead": ">=19.4.0" + }, + "dependencies": { + "async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", + "dev": true + }, + "dedent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.6.0.tgz", + "integrity": "sha512-cSfRWjXJtZQeRuZGVvDrJroCR5V2UvBNUMHsPCdNYzuAG8b9V8aAy3KUcdQrGQPXs17Y+ojbPh1aOCplg9YR9g==", + "dev": true + }, + "parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha512-yJQdbcT+hCt6HD+BuuUvjHUdNwerQIKSJSm7tXjtp6oIH5Mxbzlt/VIIeWxblsgcDt1+E7kxPeilD5McWswStA==", + "dev": true + } + } + }, + "testcafe-react-selectors": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/testcafe-react-selectors/-/testcafe-react-selectors-5.0.3.tgz", + "integrity": "sha512-UBqkuQwrPmoxc//KUEtDiAkcns99EhgDNwVa3Q662yY8cQL01hbInXKqY1smOZRHEQwjnFjA2cEL7BHrQzR/pg==", + "dev": true, + "requires": {} + }, + "testcafe-reporter-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-json/-/testcafe-reporter-json-2.2.0.tgz", + "integrity": "sha512-wfpNaZgGP2WoqdmnIXOyxcpwSzdH1HvzXSN397lJkXOrQrwhuGUThPDvyzPnZqxZSzXdDUvIPJm55tCMWbfymQ==", + "dev": true + }, + "testcafe-reporter-list": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-list/-/testcafe-reporter-list-2.2.0.tgz", + "integrity": "sha512-+6Q2CC+2B90OYED2Yx6GoBIMUYd5tADNUbOHu3Hgdd3qskzjBdKwpdDt0b7w0w7oYDO1/Uu4HDBTDud3lWpD4Q==", + "dev": true + }, + "testcafe-reporter-minimal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-minimal/-/testcafe-reporter-minimal-2.2.0.tgz", + "integrity": "sha512-iUSWI+Z+kVUAsGegMmEXKDiMPZHDxq+smo4utWwc3wI3Tk6jT8PbNvsROQAjwkMKDmnpo6To5vtyvzvK+zKGXA==", + "dev": true + }, + "testcafe-reporter-spec": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/testcafe-reporter-spec/-/testcafe-reporter-spec-2.2.0.tgz", + "integrity": "sha512-4jUN75Y7eaHQfSjiCLBXt/TvJMW76kBaZGC74sq03FJNBLoo8ibkEFzfjDJzNDCRYo+P7FjCx3vxGrzgfQU26w==", + "dev": true + }, + "testcafe-reporter-xunit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/testcafe-reporter-xunit/-/testcafe-reporter-xunit-2.2.1.tgz", + "integrity": "sha512-ge1msi8RyNVyK0QrsmC79zedV7jHasKpBPeOUZd/ORpbYLeYDnprjIeOuIukw0knnTieeYsOK29/ZD+UI7/tdw==", + "dev": true + }, + "testcafe-selector-generator": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/testcafe-selector-generator/-/testcafe-selector-generator-0.1.0.tgz", + "integrity": "sha512-MTw+RigHsEYmFgzUFNErDxui1nTYUk6nm2bmfacQiKPdhJ9AHW/wue4J/l44mhN8x3E8NgOUkHHOI+1TDFXiLQ==", + "dev": true + }, + "time-limit-promise": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/time-limit-promise/-/time-limit-promise-1.0.4.tgz", + "integrity": "sha512-FLHDDsIDducw7MBcRWlFtW2Tm50DoKOSFf0Nzx17qwXj8REXCte0eUkHrJl9QU3Bl9arG3XNYX0PcHpZ9xyuLw==", + "dev": true + }, + "tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "requires": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "dependencies": { + "fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "requires": {} + }, + "picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true + } + } + }, + "tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "dev": true + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + } + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" + }, + "trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, + "undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "requires": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + } + }, + "unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==" + }, + "unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + } + }, + "unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "dev": true, + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-to-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-2.0.0.tgz", + "integrity": "sha512-mfONnc9dqO0J41wUh/El+plDskrIJRcyLcx6WjEGYW2K11RnjPDAgeoNFCallADaYJfcWIvAlYyZPBw02AbfIQ==", + "dev": true + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "requires": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "dependencies": { + "diff": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", + "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==" + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" + } + } + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "vdf-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/vdf-parser/-/vdf-parser-1.2.1.tgz", + "integrity": "sha512-g5c73LP8NSebruEiVjOpV6KlN6xgVXBXc5UbexHWzjkatLJR++gUBhg76YqfJ9j4ZLfZ+Hv00592uiDywR+dWg==", + "dev": true + }, + "vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + } + }, + "vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "requires": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "virtua": { + "version": "0.47.1", + "resolved": "https://registry.npmjs.org/virtua/-/virtua-0.47.1.tgz", + "integrity": "sha512-IGe/hnZJdywFtFqpmtvS25II/Ov7i4vWnyagdguxLPvM8bSLmfEZULChdmTYwfcWI2XnxX+VGV4GpgaOvGp+7g==", + "requires": {} + }, + "vite": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", + "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", + "dev": true, + "requires": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "fsevents": "~2.3.3", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "dependencies": { + "fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "requires": {} + }, + "picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-promise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-promise/-/which-promise-1.0.0.tgz", + "integrity": "sha512-15ahjtDr3H+RBtTrvBcKhOFhIEiN3RZSCevDPWtBys+QUivZX9cYyNJcyWNIrUMVsgGrEuIThif9jxeEAQFauw==", + "dev": true, + "requires": { + "pify": "^2.2.0", + "pinkie-promise": "^1.0.0", + "which": "^1.1.2" + }, + "dependencies": { + "pinkie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", + "integrity": "sha512-VFVaU1ysKakao68ktZm76PIdOhvEfoNNRaGkyLln9Os7r0/MCxqHjHyBM7dT3pgTiBybqiPtpqKfpENwdBp50Q==", + "dev": true + }, + "pinkie-promise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", + "integrity": "sha512-5mvtVNse2Ml9zpFKkWBpGsTPwm3DKhs+c95prO/F6E7d6DN0FPqxs6LONpLNpyD7Iheb7QN4BbUoKJgo+DnkQA==", + "dev": true, + "requires": { + "pinkie": "^1.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "windows-release": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-5.1.1.tgz", + "integrity": "sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==", + "dev": true, + "requires": { + "execa": "^5.1.1" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "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 + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + } + } + }, + "wordcloud": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/wordcloud/-/wordcloud-1.2.3.tgz", + "integrity": "sha512-9by77b7Sd9e1K75kSmVeAD+JnGpiLR1Z4EX1mYQL91jKrU1/4bHw4h4DExQ+dzfT+PvihDcH7OS7V4Y5UkbF2w==" + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "requires": {} + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "dev": true, + "optional": true, + "peer": true + } + } +} diff --git a/package.json b/package.json index 5240cb2a96..12345546c7 100644 --- a/package.json +++ b/package.json @@ -1,68 +1,87 @@ { - "name": "yasp-ui", - "description": "Open source Dota 2 replay parsing and statistics", - "version": "1.0.0", - "license": "GPL-3.0", + "name": "opendota-web", + "description": "Dota 2 Data Web UI", + "version": "1.0.1", + "private": true, + "license": "MIT", + "type": "module", "scripts": { - "webpack": "webpack -p --bail", - "watch": "webpack --watch", - "start": "webpack-dev-server -d", - "ncu": "npm-check-updates -u", - "updateconstants": "wget -qO- https://yasp.co/api/constants > ./constants.json", - "build": "npm run lint && npm run webpack", - "lint": "eslint . --ext .js,.jsx" - }, - "repository": { - "type": "git", - "url": "http://github.com/yasp-dota/ui" + "start": "vite --host", + "preview": "vite preview --host", + "build": "vite build && npm run typecheck", + "test": "testcafe -c 4 chrome:headless --skip-js-errors testcafe/ --app \"vite preview --host --port 5000 \"", + "analyze": "npx source-map-explorer 'build/assets/*.js' --html result.html --no-border-checks", + "typecheck": "tsc --project tsconfig.json --noEmit", + "lintfix": "eslint . --ext .ts,.tsx,.js,.jsx --fix", + "lint": "eslint . --ext .ts,.tsx,.js,.jsx", + "update:emoticons": "npm r dota2-emoticons && npm i dota2-emoticons && node dev/updateEmoticons.js", + "prettier": "npx prettier --write ." }, "dependencies": { - "material-design-icons": "^2.2.3", - "moment": "^2.13.0", - "react-tap-event-plugin": "^1.0.0", - "reselect": "^2.5.1" + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@mars3d/heatmap.js": "^2.0.7", + "@melloware/react-logviewer": "^6.4.1", + "@mui/icons-material": "^7.3.5", + "@mui/material": "^7.3.6", + "@stripe/stripe-js": "^1.32.0", + "abcolor": "^0.5.5", + "ace-builds": "^1.43.5", + "air-datepicker": "^3.6.0", + "dota2-emoticons": "^1.0.4", + "dotaconstants": "^10.8.0", + "fuzzy": "^0.1.3", + "history": "^4.10.1", + "nanoid": "^5.1.6", + "papaparse": "^5.5.3", + "querystring": "^0.2.1", + "react": "^17.0.2", + "react-content-loader": "^7.1.1", + "react-countup": "^6.5.3", + "react-dom": "^17.0.2", + "react-ga": "^3.3.1", + "react-helmet": "^6.1.0", + "react-markdown": "^8.0.7", + "react-redux": "^7.1.3", + "react-router-dom": "^5.1.2", + "react-stripe-checkout": "^2.6.3", + "react-tooltip": "3.11.1", + "react-transition-group": "^2.5.0", + "recharts": "^2.15.4", + "redux": "^4.2.1", + "redux-responsive": "^4.3.8", + "redux-thunk": "^2.4.2", + "reselect": "^4.0.0", + "styled-components": "^4.4.1", + "virtua": "^0.47.1", + "wordcloud": "^1.2.3" }, "devDependencies": { - "babel-core": "6.9.0", - "babel-loader": "^6.2.3", - "babel-polyfill": "^6.7.2", - "babel-preset-es2015": "^6.9.0", - "babel-preset-es2015-webpack": "^6.4.1", - "babel-preset-react": "^6.5.0", - "babel-preset-stage-2": "^6.5.0", - "css-loader": "^0.23.1", - "eslint": "^2.11.0", - "eslint-config-airbnb": "^9.0.1", - "eslint-plugin-import": "^1.8.1", - "eslint-plugin-jsx-a11y": "^1.2.2", - "eslint-plugin-react": "^5.1.1", - "expose-loader": "^0.7.1", - "file-loader": "^0.8.5", - "font-awesome": "^4.6.3", - "isomorphic-fetch": "^2.2.1", - "json-loader": "^0.5.4", - "material-ui": "^0.15.0-alpha.2", - "npm-check-updates": "2.6.5", - "postcss-browser-reporter": "^0.5.0", - "postcss-color-function": "^2.0.1", - "postcss-cssnext": "^2.5.2", - "postcss-import": "^8.1.2", - "postcss-loader": "^0.9.1", - "postcss-reporter": "^1.3.3", - "react": "^15.0.0", - "react-addons-css-transition-group": "^15.0.0", - "react-dom": "^15.0.0", - "react-motion": "^0.4.2", - "react-redux": "^4.4.0", - "react-router": "^2.3.0", - "react-router-redux": "^4.0.1", - "redux": "^3.5.2", - "redux-devtools": "^3.1.1", - "redux-logger": "^2.6.1", - "redux-thunk": "^2.0.1", - "style-loader": "^0.13.0", - "url-loader": "^0.5.7", - "webpack": "^1.12.12", - "webpack-dev-server": "^1.14.1" - } + "@types/node": "^25.0.3", + "@types/papaparse": "^5.5.2", + "@types/react": "^17.0.40", + "@types/react-dom": "^17.0.13", + "@types/react-helmet": "^6.1.11", + "@types/react-router-dom": "^5.3.3", + "@types/react-tooltip": "3.9.3", + "@types/react-transition-group": "^2.9.2", + "@types/styled-components": "4.0.3", + "@types/wordcloud": "^1.2.2", + "sanitize-filename-ts": "^1.0.2", + "testcafe": "^3.7.3", + "testcafe-react-selectors": "^5.0.3", + "typescript": "^5.9.3", + "vdf-parser": "^1.2.1", + "vite": "^7.2.6" + }, + "repository": { + "type": "git", + "url": "http://github.com/odota/web" + }, + "browserslist": [ + ">0.2%", + "not dead", + "not ie <= 11", + "not op_mini all" + ] } diff --git a/public/ads.txt b/public/ads.txt new file mode 100644 index 0000000000..a3d4981b88 --- /dev/null +++ b/public/ads.txt @@ -0,0 +1 @@ +google.com, pub-5591574346816667, DIRECT, f08c47fec0942fa0 \ No newline at end of file diff --git a/public/assets/images/Dota2Logo.svg b/public/assets/images/Dota2Logo.svg new file mode 100644 index 0000000000..c4ea8f4fd8 --- /dev/null +++ b/public/assets/images/Dota2Logo.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/public/assets/images/apple_app_store.png b/public/assets/images/apple_app_store.png new file mode 100644 index 0000000000..24cf61bc44 Binary files /dev/null and b/public/assets/images/apple_app_store.png differ diff --git a/public/assets/images/bawl.gif b/public/assets/images/bawl.gif new file mode 100644 index 0000000000..a3bf3ac2f0 Binary files /dev/null and b/public/assets/images/bawl.gif differ diff --git a/public/assets/images/blank-1x1.gif b/public/assets/images/blank-1x1.gif new file mode 100644 index 0000000000..698cbdc63b Binary files /dev/null and b/public/assets/images/blank-1x1.gif differ diff --git a/public/assets/images/btg_logo.png b/public/assets/images/btg_logo.png new file mode 100644 index 0000000000..64cfb35eb0 Binary files /dev/null and b/public/assets/images/btg_logo.png differ diff --git a/public/assets/images/carry-header.jpg b/public/assets/images/carry-header.jpg new file mode 100644 index 0000000000..965b430980 Binary files /dev/null and b/public/assets/images/carry-header.jpg differ diff --git a/public/assets/images/charm-cry.gif b/public/assets/images/charm-cry.gif new file mode 100644 index 0000000000..add224722b Binary files /dev/null and b/public/assets/images/charm-cry.gif differ diff --git a/public/assets/images/default_attack.png b/public/assets/images/default_attack.png new file mode 100644 index 0000000000..ad436119cf Binary files /dev/null and b/public/assets/images/default_attack.png differ diff --git a/public/assets/images/dire.png b/public/assets/images/dire.png new file mode 100644 index 0000000000..66834f850d Binary files /dev/null and b/public/assets/images/dire.png differ diff --git a/public/assets/images/dota-coach-icon.png b/public/assets/images/dota-coach-icon.png new file mode 100644 index 0000000000..44d4483a72 Binary files /dev/null and b/public/assets/images/dota-coach-icon.png differ diff --git a/public/assets/images/dota2/abilities/ability_lamp_use.png b/public/assets/images/dota2/abilities/ability_lamp_use.png new file mode 100644 index 0000000000..9ad75d74ef Binary files /dev/null and b/public/assets/images/dota2/abilities/ability_lamp_use.png differ diff --git a/public/assets/images/dota2/abilities/ability_pluck_famango.png b/public/assets/images/dota2/abilities/ability_pluck_famango.png new file mode 100644 index 0000000000..a9d77b3caa Binary files /dev/null and b/public/assets/images/dota2/abilities/ability_pluck_famango.png differ diff --git a/public/assets/images/dota2/abilities/twin_gate_portal_warp.png b/public/assets/images/dota2/abilities/twin_gate_portal_warp.png new file mode 100644 index 0000000000..4880151ec3 Binary files /dev/null and b/public/assets/images/dota2/abilities/twin_gate_portal_warp.png differ diff --git a/public/assets/images/dota2/ability_cooldown.png b/public/assets/images/dota2/ability_cooldown.png new file mode 100644 index 0000000000..054aab2bf5 Binary files /dev/null and b/public/assets/images/dota2/ability_cooldown.png differ diff --git a/public/assets/images/dota2/ability_healthcost.png b/public/assets/images/dota2/ability_healthcost.png new file mode 100644 index 0000000000..9c235989b5 Binary files /dev/null and b/public/assets/images/dota2/ability_healthcost.png differ diff --git a/public/assets/images/dota2/ability_manacost.png b/public/assets/images/dota2/ability_manacost.png new file mode 100644 index 0000000000..266407906f Binary files /dev/null and b/public/assets/images/dota2/ability_manacost.png differ diff --git a/public/assets/images/dota2/aegis_icon.png b/public/assets/images/dota2/aegis_icon.png new file mode 100644 index 0000000000..b586e8484f Binary files /dev/null and b/public/assets/images/dota2/aegis_icon.png differ diff --git a/public/assets/images/dota2/badguys_creep.png b/public/assets/images/dota2/badguys_creep.png new file mode 100644 index 0000000000..1782fae776 Binary files /dev/null and b/public/assets/images/dota2/badguys_creep.png differ diff --git a/public/assets/images/dota2/bloodsplattersmall2.png b/public/assets/images/dota2/bloodsplattersmall2.png new file mode 100644 index 0000000000..f0f52a7bea Binary files /dev/null and b/public/assets/images/dota2/bloodsplattersmall2.png differ diff --git a/public/assets/images/dota2/chat_wheel_icon.png b/public/assets/images/dota2/chat_wheel_icon.png new file mode 100644 index 0000000000..b7ec3a001b Binary files /dev/null and b/public/assets/images/dota2/chat_wheel_icon.png differ diff --git a/public/assets/images/dota2/dire_kill.png b/public/assets/images/dota2/dire_kill.png new file mode 100644 index 0000000000..1c36edb042 Binary files /dev/null and b/public/assets/images/dota2/dire_kill.png differ diff --git a/public/assets/images/dota2/direcourier.png b/public/assets/images/dota2/direcourier.png new file mode 100644 index 0000000000..4f6ce1317d Binary files /dev/null and b/public/assets/images/dota2/direcourier.png differ diff --git a/public/assets/images/dota2/disconnect_icon.png b/public/assets/images/dota2/disconnect_icon.png new file mode 100644 index 0000000000..197cf0dd75 Binary files /dev/null and b/public/assets/images/dota2/disconnect_icon.png differ diff --git a/public/assets/images/dota2/dota_plus_icon.png b/public/assets/images/dota2/dota_plus_icon.png new file mode 100644 index 0000000000..bfb59d55b4 Binary files /dev/null and b/public/assets/images/dota2/dota_plus_icon.png differ diff --git a/public/assets/images/dota2/emoticons/aaaah.gif b/public/assets/images/dota2/emoticons/aaaah.gif new file mode 100644 index 0000000000..7d2865ecd8 Binary files /dev/null and b/public/assets/images/dota2/emoticons/aaaah.gif differ diff --git a/public/assets/images/dota2/emoticons/aegis2015.gif b/public/assets/images/dota2/emoticons/aegis2015.gif new file mode 100644 index 0000000000..ceacfc7e84 Binary files /dev/null and b/public/assets/images/dota2/emoticons/aegis2015.gif differ diff --git a/public/assets/images/dota2/emoticons/aegis_2016.gif b/public/assets/images/dota2/emoticons/aegis_2016.gif new file mode 100644 index 0000000000..05e335f335 Binary files /dev/null and b/public/assets/images/dota2/emoticons/aegis_2016.gif differ diff --git a/public/assets/images/dota2/emoticons/aegis_2017.gif b/public/assets/images/dota2/emoticons/aegis_2017.gif new file mode 100644 index 0000000000..6cb9c8092b Binary files /dev/null and b/public/assets/images/dota2/emoticons/aegis_2017.gif differ diff --git a/public/assets/images/dota2/emoticons/angel.gif b/public/assets/images/dota2/emoticons/angel.gif new file mode 100644 index 0000000000..1357b489e1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/angel.gif differ diff --git a/public/assets/images/dota2/emoticons/angel_ti6_charm.gif b/public/assets/images/dota2/emoticons/angel_ti6_charm.gif new file mode 100644 index 0000000000..c5f616fa5e Binary files /dev/null and b/public/assets/images/dota2/emoticons/angel_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/arcane_rune.gif b/public/assets/images/dota2/emoticons/arcane_rune.gif new file mode 100644 index 0000000000..38cccfa023 Binary files /dev/null and b/public/assets/images/dota2/emoticons/arcane_rune.gif differ diff --git a/public/assets/images/dota2/emoticons/bc_emoticon_check.gif b/public/assets/images/dota2/emoticons/bc_emoticon_check.gif new file mode 100644 index 0000000000..f31c215c7e Binary files /dev/null and b/public/assets/images/dota2/emoticons/bc_emoticon_check.gif differ diff --git a/public/assets/images/dota2/emoticons/bc_emoticon_eyes.gif b/public/assets/images/dota2/emoticons/bc_emoticon_eyes.gif new file mode 100644 index 0000000000..be58b816ac Binary files /dev/null and b/public/assets/images/dota2/emoticons/bc_emoticon_eyes.gif differ diff --git a/public/assets/images/dota2/emoticons/bc_emoticon_fire.gif b/public/assets/images/dota2/emoticons/bc_emoticon_fire.gif new file mode 100644 index 0000000000..7254226adc Binary files /dev/null and b/public/assets/images/dota2/emoticons/bc_emoticon_fire.gif differ diff --git a/public/assets/images/dota2/emoticons/bc_emoticon_flex.gif b/public/assets/images/dota2/emoticons/bc_emoticon_flex.gif new file mode 100644 index 0000000000..23b3ed0911 Binary files /dev/null and b/public/assets/images/dota2/emoticons/bc_emoticon_flex.gif differ diff --git a/public/assets/images/dota2/emoticons/bc_emoticon_frog.gif b/public/assets/images/dota2/emoticons/bc_emoticon_frog.gif new file mode 100644 index 0000000000..57b9634d71 Binary files /dev/null and b/public/assets/images/dota2/emoticons/bc_emoticon_frog.gif differ diff --git a/public/assets/images/dota2/emoticons/bc_emoticon_hundred.gif b/public/assets/images/dota2/emoticons/bc_emoticon_hundred.gif new file mode 100644 index 0000000000..f3346e68fb Binary files /dev/null and b/public/assets/images/dota2/emoticons/bc_emoticon_hundred.gif differ diff --git a/public/assets/images/dota2/emoticons/bc_emoticon_okay.gif b/public/assets/images/dota2/emoticons/bc_emoticon_okay.gif new file mode 100644 index 0000000000..f31db899f9 Binary files /dev/null and b/public/assets/images/dota2/emoticons/bc_emoticon_okay.gif differ diff --git a/public/assets/images/dota2/emoticons/blink.gif b/public/assets/images/dota2/emoticons/blink.gif new file mode 100644 index 0000000000..9e44fe93ba Binary files /dev/null and b/public/assets/images/dota2/emoticons/blink.gif differ diff --git a/public/assets/images/dota2/emoticons/blush.gif b/public/assets/images/dota2/emoticons/blush.gif new file mode 100644 index 0000000000..935a0df71e Binary files /dev/null and b/public/assets/images/dota2/emoticons/blush.gif differ diff --git a/public/assets/images/dota2/emoticons/blush_smile.gif b/public/assets/images/dota2/emoticons/blush_smile.gif new file mode 100644 index 0000000000..3c8d43a1b2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/blush_smile.gif differ diff --git a/public/assets/images/dota2/emoticons/blush_ti5_charm.gif b/public/assets/images/dota2/emoticons/blush_ti5_charm.gif new file mode 100644 index 0000000000..5a2b4b6915 Binary files /dev/null and b/public/assets/images/dota2/emoticons/blush_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/bountyrune.gif b/public/assets/images/dota2/emoticons/bountyrune.gif new file mode 100644 index 0000000000..1661d80d7b Binary files /dev/null and b/public/assets/images/dota2/emoticons/bountyrune.gif differ diff --git a/public/assets/images/dota2/emoticons/brood_love.gif b/public/assets/images/dota2/emoticons/brood_love.gif new file mode 100644 index 0000000000..85ffc53fff Binary files /dev/null and b/public/assets/images/dota2/emoticons/brood_love.gif differ diff --git a/public/assets/images/dota2/emoticons/bts3_bristle.gif b/public/assets/images/dota2/emoticons/bts3_bristle.gif new file mode 100644 index 0000000000..9946deed88 Binary files /dev/null and b/public/assets/images/dota2/emoticons/bts3_bristle.gif differ diff --git a/public/assets/images/dota2/emoticons/bts3_godz.gif b/public/assets/images/dota2/emoticons/bts3_godz.gif new file mode 100644 index 0000000000..62582ac2d2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/bts3_godz.gif differ diff --git a/public/assets/images/dota2/emoticons/bts3_lina.gif b/public/assets/images/dota2/emoticons/bts3_lina.gif new file mode 100644 index 0000000000..79d289e4ff Binary files /dev/null and b/public/assets/images/dota2/emoticons/bts3_lina.gif differ diff --git a/public/assets/images/dota2/emoticons/bts3_merlini.gif b/public/assets/images/dota2/emoticons/bts3_merlini.gif new file mode 100644 index 0000000000..34e5291ebb Binary files /dev/null and b/public/assets/images/dota2/emoticons/bts3_merlini.gif differ diff --git a/public/assets/images/dota2/emoticons/bts3_rosh.gif b/public/assets/images/dota2/emoticons/bts3_rosh.gif new file mode 100644 index 0000000000..379374032e Binary files /dev/null and b/public/assets/images/dota2/emoticons/bts3_rosh.gif differ diff --git a/public/assets/images/dota2/emoticons/burn.gif b/public/assets/images/dota2/emoticons/burn.gif new file mode 100644 index 0000000000..908514c84c Binary files /dev/null and b/public/assets/images/dota2/emoticons/burn.gif differ diff --git a/public/assets/images/dota2/emoticons/cheeky.gif b/public/assets/images/dota2/emoticons/cheeky.gif new file mode 100644 index 0000000000..349879e062 Binary files /dev/null and b/public/assets/images/dota2/emoticons/cheeky.gif differ diff --git a/public/assets/images/dota2/emoticons/cheeky_ti5_charm.gif b/public/assets/images/dota2/emoticons/cheeky_ti5_charm.gif new file mode 100644 index 0000000000..d15b92a7da Binary files /dev/null and b/public/assets/images/dota2/emoticons/cheeky_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/chicken_ti6_charm.gif b/public/assets/images/dota2/emoticons/chicken_ti6_charm.gif new file mode 100644 index 0000000000..4dba1c970e Binary files /dev/null and b/public/assets/images/dota2/emoticons/chicken_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/cocky.gif b/public/assets/images/dota2/emoticons/cocky.gif new file mode 100644 index 0000000000..d99c6cbd23 Binary files /dev/null and b/public/assets/images/dota2/emoticons/cocky.gif differ diff --git a/public/assets/images/dota2/emoticons/cocky_ti6_charm.gif b/public/assets/images/dota2/emoticons/cocky_ti6_charm.gif new file mode 100644 index 0000000000..13a732b245 Binary files /dev/null and b/public/assets/images/dota2/emoticons/cocky_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/confounded.gif b/public/assets/images/dota2/emoticons/confounded.gif new file mode 100644 index 0000000000..266e9fe015 Binary files /dev/null and b/public/assets/images/dota2/emoticons/confounded.gif differ diff --git a/public/assets/images/dota2/emoticons/cool.gif b/public/assets/images/dota2/emoticons/cool.gif new file mode 100644 index 0000000000..cc791fb20f Binary files /dev/null and b/public/assets/images/dota2/emoticons/cool.gif differ diff --git a/public/assets/images/dota2/emoticons/cool_ti5_charm.gif b/public/assets/images/dota2/emoticons/cool_ti5_charm.gif new file mode 100644 index 0000000000..3a8fe4ada3 Binary files /dev/null and b/public/assets/images/dota2/emoticons/cool_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/crazy.gif b/public/assets/images/dota2/emoticons/crazy.gif new file mode 100644 index 0000000000..d6f1c4ba26 Binary files /dev/null and b/public/assets/images/dota2/emoticons/crazy.gif differ diff --git a/public/assets/images/dota2/emoticons/crazy_ti5_charm.gif b/public/assets/images/dota2/emoticons/crazy_ti5_charm.gif new file mode 100644 index 0000000000..c3770f7ca5 Binary files /dev/null and b/public/assets/images/dota2/emoticons/crazy_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/cry.gif b/public/assets/images/dota2/emoticons/cry.gif new file mode 100644 index 0000000000..64dcf1e306 Binary files /dev/null and b/public/assets/images/dota2/emoticons/cry.gif differ diff --git a/public/assets/images/dota2/emoticons/cry_ti5_charm.gif b/public/assets/images/dota2/emoticons/cry_ti5_charm.gif new file mode 100644 index 0000000000..3330be0da2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/cry_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_blush.gif b/public/assets/images/dota2/emoticons/dac15_blush.gif new file mode 100644 index 0000000000..7cb7200627 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_blush.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_cool.gif b/public/assets/images/dota2/emoticons/dac15_cool.gif new file mode 100644 index 0000000000..ae36283ffd Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_cool.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_duel.gif b/public/assets/images/dota2/emoticons/dac15_duel.gif new file mode 100644 index 0000000000..a5078e2b6c Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_duel.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_face.gif b/public/assets/images/dota2/emoticons/dac15_face.gif new file mode 100644 index 0000000000..b5b0fcc114 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_face.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_frog.gif b/public/assets/images/dota2/emoticons/dac15_frog.gif new file mode 100644 index 0000000000..3cbd3640d0 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_frog.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_nosewipe.gif b/public/assets/images/dota2/emoticons/dac15_nosewipe.gif new file mode 100644 index 0000000000..ec54bda810 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_nosewipe.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_stab.gif b/public/assets/images/dota2/emoticons/dac15_stab.gif new file mode 100644 index 0000000000..a6a9bfd7fe Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_stab.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_surprise.gif b/public/assets/images/dota2/emoticons/dac15_surprise.gif new file mode 100644 index 0000000000..65511bb2f1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_surprise.gif differ diff --git a/public/assets/images/dota2/emoticons/dac15_transform.gif b/public/assets/images/dota2/emoticons/dac15_transform.gif new file mode 100644 index 0000000000..b3d28dedf6 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dac15_transform.gif differ diff --git a/public/assets/images/dota2/emoticons/darkmoon_chicken.gif b/public/assets/images/dota2/emoticons/darkmoon_chicken.gif new file mode 100644 index 0000000000..c9a45c3e18 Binary files /dev/null and b/public/assets/images/dota2/emoticons/darkmoon_chicken.gif differ diff --git a/public/assets/images/dota2/emoticons/dcfail.gif b/public/assets/images/dota2/emoticons/dcfail.gif new file mode 100644 index 0000000000..5019edff9d Binary files /dev/null and b/public/assets/images/dota2/emoticons/dcfail.gif differ diff --git a/public/assets/images/dota2/emoticons/dcgoodjob.gif b/public/assets/images/dota2/emoticons/dcgoodjob.gif new file mode 100644 index 0000000000..5259d0daa0 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dcgoodjob.gif differ diff --git a/public/assets/images/dota2/emoticons/dcheadshot.gif b/public/assets/images/dota2/emoticons/dcheadshot.gif new file mode 100644 index 0000000000..2ba954e425 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dcheadshot.gif differ diff --git a/public/assets/images/dota2/emoticons/dcheart.gif b/public/assets/images/dota2/emoticons/dcheart.gif new file mode 100644 index 0000000000..d9e1453a2c Binary files /dev/null and b/public/assets/images/dota2/emoticons/dcheart.gif differ diff --git a/public/assets/images/dota2/emoticons/dchorse.gif b/public/assets/images/dota2/emoticons/dchorse.gif new file mode 100644 index 0000000000..691fed8082 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dchorse.gif differ diff --git a/public/assets/images/dota2/emoticons/dead_eyes.gif b/public/assets/images/dota2/emoticons/dead_eyes.gif new file mode 100644 index 0000000000..d44dbf6c70 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dead_eyes.gif differ diff --git a/public/assets/images/dota2/emoticons/devil.gif b/public/assets/images/dota2/emoticons/devil.gif new file mode 100644 index 0000000000..df9059b229 Binary files /dev/null and b/public/assets/images/dota2/emoticons/devil.gif differ diff --git a/public/assets/images/dota2/emoticons/devil_ti6_charm.gif b/public/assets/images/dota2/emoticons/devil_ti6_charm.gif new file mode 100644 index 0000000000..a1b22e49c9 Binary files /dev/null and b/public/assets/images/dota2/emoticons/devil_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/disappear.gif b/public/assets/images/dota2/emoticons/disappear.gif new file mode 100644 index 0000000000..1bcc5ede57 Binary files /dev/null and b/public/assets/images/dota2/emoticons/disappear.gif differ diff --git a/public/assets/images/dota2/emoticons/disappear_ti6_charm.gif b/public/assets/images/dota2/emoticons/disappear_ti6_charm.gif new file mode 100644 index 0000000000..caf4338b35 Binary files /dev/null and b/public/assets/images/dota2/emoticons/disappear_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/disaprove.gif b/public/assets/images/dota2/emoticons/disaprove.gif new file mode 100644 index 0000000000..71e19c4bf9 Binary files /dev/null and b/public/assets/images/dota2/emoticons/disaprove.gif differ diff --git a/public/assets/images/dota2/emoticons/disaprove_ti5_charm.gif b/public/assets/images/dota2/emoticons/disaprove_ti5_charm.gif new file mode 100644 index 0000000000..01689a3d76 Binary files /dev/null and b/public/assets/images/dota2/emoticons/disaprove_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/dizzy.gif b/public/assets/images/dota2/emoticons/dizzy.gif new file mode 100644 index 0000000000..254857b209 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dizzy.gif differ diff --git a/public/assets/images/dota2/emoticons/donkey.gif b/public/assets/images/dota2/emoticons/donkey.gif new file mode 100644 index 0000000000..8c5a6ca46c Binary files /dev/null and b/public/assets/images/dota2/emoticons/donkey.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_axe_heykid.gif b/public/assets/images/dota2/emoticons/dotakin_axe_heykid.gif new file mode 100644 index 0000000000..0846f1a8dd Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_axe_heykid.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_cm_huff.gif b/public/assets/images/dota2/emoticons/dotakin_cm_huff.gif new file mode 100644 index 0000000000..f223b7e138 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_cm_huff.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_es_beg.gif b/public/assets/images/dota2/emoticons/dotakin_es_beg.gif new file mode 100644 index 0000000000..1327551018 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_es_beg.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_kunkka_kisskiss.gif b/public/assets/images/dota2/emoticons/dotakin_kunkka_kisskiss.gif new file mode 100644 index 0000000000..6cd6fd7cbd Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_kunkka_kisskiss.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_mk_snort.gif b/public/assets/images/dota2/emoticons/dotakin_mk_snort.gif new file mode 100644 index 0000000000..a94fee811a Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_mk_snort.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_naga_sweat.gif b/public/assets/images/dota2/emoticons/dotakin_naga_sweat.gif new file mode 100644 index 0000000000..a9499b132b Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_naga_sweat.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_pudge_chuckle.gif b/public/assets/images/dota2/emoticons/dotakin_pudge_chuckle.gif new file mode 100644 index 0000000000..fd293d2c44 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_pudge_chuckle.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_roshan_stars.gif b/public/assets/images/dota2/emoticons/dotakin_roshan_stars.gif new file mode 100644 index 0000000000..20a3554e75 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_roshan_stars.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_slardar_wait.gif b/public/assets/images/dota2/emoticons/dotakin_slardar_wait.gif new file mode 100644 index 0000000000..4c6d739e2b Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_slardar_wait.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_slark_sleep.gif b/public/assets/images/dota2/emoticons/dotakin_slark_sleep.gif new file mode 100644 index 0000000000..3a2702da22 Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_slark_sleep.gif differ diff --git a/public/assets/images/dota2/emoticons/dotakin_tide_bawl.gif b/public/assets/images/dota2/emoticons/dotakin_tide_bawl.gif new file mode 100644 index 0000000000..c3234846fc Binary files /dev/null and b/public/assets/images/dota2/emoticons/dotakin_tide_bawl.gif differ diff --git a/public/assets/images/dota2/emoticons/doubledamage.gif b/public/assets/images/dota2/emoticons/doubledamage.gif new file mode 100644 index 0000000000..182ae587dd Binary files /dev/null and b/public/assets/images/dota2/emoticons/doubledamage.gif differ diff --git a/public/assets/images/dota2/emoticons/drunk.gif b/public/assets/images/dota2/emoticons/drunk.gif new file mode 100644 index 0000000000..f8d023744c Binary files /dev/null and b/public/assets/images/dota2/emoticons/drunk.gif differ diff --git a/public/assets/images/dota2/emoticons/drunk_ti6_charm.gif b/public/assets/images/dota2/emoticons/drunk_ti6_charm.gif new file mode 100644 index 0000000000..eb62c67dbb Binary files /dev/null and b/public/assets/images/dota2/emoticons/drunk_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/dunno.gif b/public/assets/images/dota2/emoticons/dunno.gif new file mode 100644 index 0000000000..500cf08ffb Binary files /dev/null and b/public/assets/images/dota2/emoticons/dunno.gif differ diff --git a/public/assets/images/dota2/emoticons/eh.gif b/public/assets/images/dota2/emoticons/eh.gif new file mode 100644 index 0000000000..9e85785171 Binary files /dev/null and b/public/assets/images/dota2/emoticons/eh.gif differ diff --git a/public/assets/images/dota2/emoticons/exclamation.gif b/public/assets/images/dota2/emoticons/exclamation.gif new file mode 100644 index 0000000000..391bf01095 Binary files /dev/null and b/public/assets/images/dota2/emoticons/exclamation.gif differ diff --git a/public/assets/images/dota2/emoticons/eyeroll.gif b/public/assets/images/dota2/emoticons/eyeroll.gif new file mode 100644 index 0000000000..0ca1a95354 Binary files /dev/null and b/public/assets/images/dota2/emoticons/eyeroll.gif differ diff --git a/public/assets/images/dota2/emoticons/eyeroll_ti6_charm.gif b/public/assets/images/dota2/emoticons/eyeroll_ti6_charm.gif new file mode 100644 index 0000000000..8a2bdd2643 Binary files /dev/null and b/public/assets/images/dota2/emoticons/eyeroll_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/facepalm.gif b/public/assets/images/dota2/emoticons/facepalm.gif new file mode 100644 index 0000000000..c5ec39b714 Binary files /dev/null and b/public/assets/images/dota2/emoticons/facepalm.gif differ diff --git a/public/assets/images/dota2/emoticons/facepalm_ti5_charm.gif b/public/assets/images/dota2/emoticons/facepalm_ti5_charm.gif new file mode 100644 index 0000000000..2a799500fb Binary files /dev/null and b/public/assets/images/dota2/emoticons/facepalm_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/fall_2016_trophy.gif b/public/assets/images/dota2/emoticons/fall_2016_trophy.gif new file mode 100644 index 0000000000..6993facc5f Binary files /dev/null and b/public/assets/images/dota2/emoticons/fall_2016_trophy.gif differ diff --git a/public/assets/images/dota2/emoticons/fall_major_2015_eaglesong.gif b/public/assets/images/dota2/emoticons/fall_major_2015_eaglesong.gif new file mode 100644 index 0000000000..e64e2c1035 Binary files /dev/null and b/public/assets/images/dota2/emoticons/fall_major_2015_eaglesong.gif differ diff --git a/public/assets/images/dota2/emoticons/fire.gif b/public/assets/images/dota2/emoticons/fire.gif new file mode 100644 index 0000000000..4fb88f8dc4 Binary files /dev/null and b/public/assets/images/dota2/emoticons/fire.gif differ diff --git a/public/assets/images/dota2/emoticons/fire_ti6_charm.gif b/public/assets/images/dota2/emoticons/fire_ti6_charm.gif new file mode 100644 index 0000000000..98da92460e Binary files /dev/null and b/public/assets/images/dota2/emoticons/fire_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/flex.gif b/public/assets/images/dota2/emoticons/flex.gif new file mode 100644 index 0000000000..13c9ec9e32 Binary files /dev/null and b/public/assets/images/dota2/emoticons/flex.gif differ diff --git a/public/assets/images/dota2/emoticons/foggy.gif b/public/assets/images/dota2/emoticons/foggy.gif new file mode 100644 index 0000000000..7480cd44d1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/foggy.gif differ diff --git a/public/assets/images/dota2/emoticons/fuming.gif b/public/assets/images/dota2/emoticons/fuming.gif new file mode 100644 index 0000000000..ec868cd265 Binary files /dev/null and b/public/assets/images/dota2/emoticons/fuming.gif differ diff --git a/public/assets/images/dota2/emoticons/gem.gif b/public/assets/images/dota2/emoticons/gem.gif new file mode 100644 index 0000000000..5c36d5e005 Binary files /dev/null and b/public/assets/images/dota2/emoticons/gem.gif differ diff --git a/public/assets/images/dota2/emoticons/gg.gif b/public/assets/images/dota2/emoticons/gg.gif new file mode 100644 index 0000000000..d419f4a9b6 Binary files /dev/null and b/public/assets/images/dota2/emoticons/gg.gif differ diff --git a/public/assets/images/dota2/emoticons/ggdire.gif b/public/assets/images/dota2/emoticons/ggdire.gif new file mode 100644 index 0000000000..a83969c8d6 Binary files /dev/null and b/public/assets/images/dota2/emoticons/ggdire.gif differ diff --git a/public/assets/images/dota2/emoticons/ggradiant.gif b/public/assets/images/dota2/emoticons/ggradiant.gif new file mode 100644 index 0000000000..c51eab7f60 Binary files /dev/null and b/public/assets/images/dota2/emoticons/ggradiant.gif differ diff --git a/public/assets/images/dota2/emoticons/give.gif b/public/assets/images/dota2/emoticons/give.gif new file mode 100644 index 0000000000..cbd5223f5a Binary files /dev/null and b/public/assets/images/dota2/emoticons/give.gif differ diff --git a/public/assets/images/dota2/emoticons/grimace.gif b/public/assets/images/dota2/emoticons/grimace.gif new file mode 100644 index 0000000000..6a30b84e8f Binary files /dev/null and b/public/assets/images/dota2/emoticons/grimace.gif differ diff --git a/public/assets/images/dota2/emoticons/gross.gif b/public/assets/images/dota2/emoticons/gross.gif new file mode 100644 index 0000000000..0bf4da23e1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/gross.gif differ diff --git a/public/assets/images/dota2/emoticons/gross_ti6_charm.gif b/public/assets/images/dota2/emoticons/gross_ti6_charm.gif new file mode 100644 index 0000000000..ebb092d24d Binary files /dev/null and b/public/assets/images/dota2/emoticons/gross_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/gyro.gif b/public/assets/images/dota2/emoticons/gyro.gif new file mode 100644 index 0000000000..8eec0b196d Binary files /dev/null and b/public/assets/images/dota2/emoticons/gyro.gif differ diff --git a/public/assets/images/dota2/emoticons/happy.gif b/public/assets/images/dota2/emoticons/happy.gif new file mode 100644 index 0000000000..4a0487a13b Binary files /dev/null and b/public/assets/images/dota2/emoticons/happy.gif differ diff --git a/public/assets/images/dota2/emoticons/happy_ti6_charm.gif b/public/assets/images/dota2/emoticons/happy_ti6_charm.gif new file mode 100644 index 0000000000..015d472b31 Binary files /dev/null and b/public/assets/images/dota2/emoticons/happy_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/happytears.gif b/public/assets/images/dota2/emoticons/happytears.gif new file mode 100644 index 0000000000..c9cc28524c Binary files /dev/null and b/public/assets/images/dota2/emoticons/happytears.gif differ diff --git a/public/assets/images/dota2/emoticons/happytears_ti5_charm.gif b/public/assets/images/dota2/emoticons/happytears_ti5_charm.gif new file mode 100644 index 0000000000..bfb4bf94ae Binary files /dev/null and b/public/assets/images/dota2/emoticons/happytears_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/haste.gif b/public/assets/images/dota2/emoticons/haste.gif new file mode 100644 index 0000000000..9567dba67d Binary files /dev/null and b/public/assets/images/dota2/emoticons/haste.gif differ diff --git a/public/assets/images/dota2/emoticons/heal.gif b/public/assets/images/dota2/emoticons/heal.gif new file mode 100644 index 0000000000..827a9a7e53 Binary files /dev/null and b/public/assets/images/dota2/emoticons/heal.gif differ diff --git a/public/assets/images/dota2/emoticons/heal_ti6_charm.gif b/public/assets/images/dota2/emoticons/heal_ti6_charm.gif new file mode 100644 index 0000000000..a232834618 Binary files /dev/null and b/public/assets/images/dota2/emoticons/heal_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/heart_kiss.gif b/public/assets/images/dota2/emoticons/heart_kiss.gif new file mode 100644 index 0000000000..071bf24204 Binary files /dev/null and b/public/assets/images/dota2/emoticons/heart_kiss.gif differ diff --git a/public/assets/images/dota2/emoticons/heart_smill.gif b/public/assets/images/dota2/emoticons/heart_smill.gif new file mode 100644 index 0000000000..2421834623 Binary files /dev/null and b/public/assets/images/dota2/emoticons/heart_smill.gif differ diff --git a/public/assets/images/dota2/emoticons/hex.gif b/public/assets/images/dota2/emoticons/hex.gif new file mode 100644 index 0000000000..fa6d53d158 Binary files /dev/null and b/public/assets/images/dota2/emoticons/hex.gif differ diff --git a/public/assets/images/dota2/emoticons/hex_ti6_charm.gif b/public/assets/images/dota2/emoticons/hex_ti6_charm.gif new file mode 100644 index 0000000000..5545dd363d Binary files /dev/null and b/public/assets/images/dota2/emoticons/hex_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/hide.gif b/public/assets/images/dota2/emoticons/hide.gif new file mode 100644 index 0000000000..ef385cda50 Binary files /dev/null and b/public/assets/images/dota2/emoticons/hide.gif differ diff --git a/public/assets/images/dota2/emoticons/highfive.gif b/public/assets/images/dota2/emoticons/highfive.gif new file mode 100644 index 0000000000..dd16602e0e Binary files /dev/null and b/public/assets/images/dota2/emoticons/highfive.gif differ diff --git a/public/assets/images/dota2/emoticons/highfive_ti5_charm.gif b/public/assets/images/dota2/emoticons/highfive_ti5_charm.gif new file mode 100644 index 0000000000..210b50c72d Binary files /dev/null and b/public/assets/images/dota2/emoticons/highfive_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/huh.gif b/public/assets/images/dota2/emoticons/huh.gif new file mode 100644 index 0000000000..718f73efa1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/huh.gif differ diff --git a/public/assets/images/dota2/emoticons/huh_ti5_charm.gif b/public/assets/images/dota2/emoticons/huh_ti5_charm.gif new file mode 100644 index 0000000000..5038cd34eb Binary files /dev/null and b/public/assets/images/dota2/emoticons/huh_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/hush.gif b/public/assets/images/dota2/emoticons/hush.gif new file mode 100644 index 0000000000..6028032c4a Binary files /dev/null and b/public/assets/images/dota2/emoticons/hush.gif differ diff --git a/public/assets/images/dota2/emoticons/hush_ti5_charm.gif b/public/assets/images/dota2/emoticons/hush_ti5_charm.gif new file mode 100644 index 0000000000..540463f082 Binary files /dev/null and b/public/assets/images/dota2/emoticons/hush_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/iceburn.gif b/public/assets/images/dota2/emoticons/iceburn.gif new file mode 100644 index 0000000000..223e30dabe Binary files /dev/null and b/public/assets/images/dota2/emoticons/iceburn.gif differ diff --git a/public/assets/images/dota2/emoticons/illusion.gif b/public/assets/images/dota2/emoticons/illusion.gif new file mode 100644 index 0000000000..a8328478b4 Binary files /dev/null and b/public/assets/images/dota2/emoticons/illusion.gif differ diff --git a/public/assets/images/dota2/emoticons/invisibility.gif b/public/assets/images/dota2/emoticons/invisibility.gif new file mode 100644 index 0000000000..391dba3059 Binary files /dev/null and b/public/assets/images/dota2/emoticons/invisibility.gif differ diff --git a/public/assets/images/dota2/emoticons/joke.gif b/public/assets/images/dota2/emoticons/joke.gif new file mode 100644 index 0000000000..a692e14c04 Binary files /dev/null and b/public/assets/images/dota2/emoticons/joke.gif differ diff --git a/public/assets/images/dota2/emoticons/jugg.gif b/public/assets/images/dota2/emoticons/jugg.gif new file mode 100644 index 0000000000..47e1c50a4d Binary files /dev/null and b/public/assets/images/dota2/emoticons/jugg.gif differ diff --git a/public/assets/images/dota2/emoticons/jugg_arcana.gif b/public/assets/images/dota2/emoticons/jugg_arcana.gif new file mode 100644 index 0000000000..cc82afb762 Binary files /dev/null and b/public/assets/images/dota2/emoticons/jugg_arcana.gif differ diff --git a/public/assets/images/dota2/emoticons/kiss2.gif b/public/assets/images/dota2/emoticons/kiss2.gif new file mode 100644 index 0000000000..d253a914f5 Binary files /dev/null and b/public/assets/images/dota2/emoticons/kiss2.gif differ diff --git a/public/assets/images/dota2/emoticons/laugh.gif b/public/assets/images/dota2/emoticons/laugh.gif new file mode 100644 index 0000000000..d09caa91c3 Binary files /dev/null and b/public/assets/images/dota2/emoticons/laugh.gif differ diff --git a/public/assets/images/dota2/emoticons/laugh2.gif b/public/assets/images/dota2/emoticons/laugh2.gif new file mode 100644 index 0000000000..d734dcb07b Binary files /dev/null and b/public/assets/images/dota2/emoticons/laugh2.gif differ diff --git a/public/assets/images/dota2/emoticons/laugh_tears.gif b/public/assets/images/dota2/emoticons/laugh_tears.gif new file mode 100644 index 0000000000..7d2f2535ef Binary files /dev/null and b/public/assets/images/dota2/emoticons/laugh_tears.gif differ diff --git a/public/assets/images/dota2/emoticons/laugh_ti5_charm.gif b/public/assets/images/dota2/emoticons/laugh_ti5_charm.gif new file mode 100644 index 0000000000..755a559612 Binary files /dev/null and b/public/assets/images/dota2/emoticons/laugh_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/legion_commander_t16_charm.gif b/public/assets/images/dota2/emoticons/legion_commander_t16_charm.gif new file mode 100644 index 0000000000..7ec39aa19f Binary files /dev/null and b/public/assets/images/dota2/emoticons/legion_commander_t16_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/lick.gif b/public/assets/images/dota2/emoticons/lick.gif new file mode 100644 index 0000000000..d1b6c0b753 Binary files /dev/null and b/public/assets/images/dota2/emoticons/lick.gif differ diff --git a/public/assets/images/dota2/emoticons/lifestealer.gif b/public/assets/images/dota2/emoticons/lifestealer.gif new file mode 100644 index 0000000000..99bf392561 Binary files /dev/null and b/public/assets/images/dota2/emoticons/lifestealer.gif differ diff --git a/public/assets/images/dota2/emoticons/lifestealer_ti6_charm.gif b/public/assets/images/dota2/emoticons/lifestealer_ti6_charm.gif new file mode 100644 index 0000000000..239f6d9069 Binary files /dev/null and b/public/assets/images/dota2/emoticons/lifestealer_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/money.gif b/public/assets/images/dota2/emoticons/money.gif new file mode 100644 index 0000000000..16485478bb Binary files /dev/null and b/public/assets/images/dota2/emoticons/money.gif differ diff --git a/public/assets/images/dota2/emoticons/monkey_king_arcana.gif b/public/assets/images/dota2/emoticons/monkey_king_arcana.gif new file mode 100644 index 0000000000..69961fe452 Binary files /dev/null and b/public/assets/images/dota2/emoticons/monkey_king_arcana.gif differ diff --git a/public/assets/images/dota2/emoticons/monkey_king_ti6_charm.gif b/public/assets/images/dota2/emoticons/monkey_king_ti6_charm.gif new file mode 100644 index 0000000000..ae76f78128 Binary files /dev/null and b/public/assets/images/dota2/emoticons/monkey_king_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/naga.gif b/public/assets/images/dota2/emoticons/naga.gif new file mode 100644 index 0000000000..17f4cdf121 Binary files /dev/null and b/public/assets/images/dota2/emoticons/naga.gif differ diff --git a/public/assets/images/dota2/emoticons/nerd.gif b/public/assets/images/dota2/emoticons/nerd.gif new file mode 100644 index 0000000000..e67906413f Binary files /dev/null and b/public/assets/images/dota2/emoticons/nerd.gif differ diff --git a/public/assets/images/dota2/emoticons/nervous.gif b/public/assets/images/dota2/emoticons/nervous.gif new file mode 100644 index 0000000000..679ce724a5 Binary files /dev/null and b/public/assets/images/dota2/emoticons/nervous.gif differ diff --git a/public/assets/images/dota2/emoticons/no.gif b/public/assets/images/dota2/emoticons/no.gif new file mode 100644 index 0000000000..1f150d8cce Binary files /dev/null and b/public/assets/images/dota2/emoticons/no.gif differ diff --git a/public/assets/images/dota2/emoticons/observer_ward.gif b/public/assets/images/dota2/emoticons/observer_ward.gif new file mode 100644 index 0000000000..5ce70d2046 Binary files /dev/null and b/public/assets/images/dota2/emoticons/observer_ward.gif differ diff --git a/public/assets/images/dota2/emoticons/onlooker_ti5_charm.gif b/public/assets/images/dota2/emoticons/onlooker_ti5_charm.gif new file mode 100644 index 0000000000..c4c9cad0c1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/onlooker_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/pa_arcana_rose.gif b/public/assets/images/dota2/emoticons/pa_arcana_rose.gif new file mode 100644 index 0000000000..719421ec0e Binary files /dev/null and b/public/assets/images/dota2/emoticons/pa_arcana_rose.gif differ diff --git a/public/assets/images/dota2/emoticons/plant.gif b/public/assets/images/dota2/emoticons/plant.gif new file mode 100644 index 0000000000..9c2da3b815 Binary files /dev/null and b/public/assets/images/dota2/emoticons/plant.gif differ diff --git a/public/assets/images/dota2/emoticons/poop.gif b/public/assets/images/dota2/emoticons/poop.gif new file mode 100644 index 0000000000..28c37abdd9 Binary files /dev/null and b/public/assets/images/dota2/emoticons/poop.gif differ diff --git a/public/assets/images/dota2/emoticons/rage.gif b/public/assets/images/dota2/emoticons/rage.gif new file mode 100644 index 0000000000..d77537c1e0 Binary files /dev/null and b/public/assets/images/dota2/emoticons/rage.gif differ diff --git a/public/assets/images/dota2/emoticons/rage_ti5_charm.gif b/public/assets/images/dota2/emoticons/rage_ti5_charm.gif new file mode 100644 index 0000000000..ca50f71e5f Binary files /dev/null and b/public/assets/images/dota2/emoticons/rage_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/recharge.gif b/public/assets/images/dota2/emoticons/recharge.gif new file mode 100644 index 0000000000..87df8eca18 Binary files /dev/null and b/public/assets/images/dota2/emoticons/recharge.gif differ diff --git a/public/assets/images/dota2/emoticons/regeneration.gif b/public/assets/images/dota2/emoticons/regeneration.gif new file mode 100644 index 0000000000..39aeb2761c Binary files /dev/null and b/public/assets/images/dota2/emoticons/regeneration.gif differ diff --git a/public/assets/images/dota2/emoticons/relieved.gif b/public/assets/images/dota2/emoticons/relieved.gif new file mode 100644 index 0000000000..fefe2f93d0 Binary files /dev/null and b/public/assets/images/dota2/emoticons/relieved.gif differ diff --git a/public/assets/images/dota2/emoticons/sad.gif b/public/assets/images/dota2/emoticons/sad.gif new file mode 100644 index 0000000000..4aaa292227 Binary files /dev/null and b/public/assets/images/dota2/emoticons/sad.gif differ diff --git a/public/assets/images/dota2/emoticons/sad_ti5_charm.gif b/public/assets/images/dota2/emoticons/sad_ti5_charm.gif new file mode 100644 index 0000000000..c1da525aa0 Binary files /dev/null and b/public/assets/images/dota2/emoticons/sad_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/salty.gif b/public/assets/images/dota2/emoticons/salty.gif new file mode 100644 index 0000000000..63c248ce29 Binary files /dev/null and b/public/assets/images/dota2/emoticons/salty.gif differ diff --git a/public/assets/images/dota2/emoticons/salty_ti6_charm.gif b/public/assets/images/dota2/emoticons/salty_ti6_charm.gif new file mode 100644 index 0000000000..2e2d608116 Binary files /dev/null and b/public/assets/images/dota2/emoticons/salty_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/sentry_ward.gif b/public/assets/images/dota2/emoticons/sentry_ward.gif new file mode 100644 index 0000000000..9bf44f8517 Binary files /dev/null and b/public/assets/images/dota2/emoticons/sentry_ward.gif differ diff --git a/public/assets/images/dota2/emoticons/sick.gif b/public/assets/images/dota2/emoticons/sick.gif new file mode 100644 index 0000000000..e2c88a2429 Binary files /dev/null and b/public/assets/images/dota2/emoticons/sick.gif differ diff --git a/public/assets/images/dota2/emoticons/sick_ti5_charm.gif b/public/assets/images/dota2/emoticons/sick_ti5_charm.gif new file mode 100644 index 0000000000..fad70e983b Binary files /dev/null and b/public/assets/images/dota2/emoticons/sick_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/siltbreaker_trophy.gif b/public/assets/images/dota2/emoticons/siltbreaker_trophy.gif new file mode 100644 index 0000000000..7854851abd Binary files /dev/null and b/public/assets/images/dota2/emoticons/siltbreaker_trophy.gif differ diff --git a/public/assets/images/dota2/emoticons/siltbreaker_trophy_2.gif b/public/assets/images/dota2/emoticons/siltbreaker_trophy_2.gif new file mode 100644 index 0000000000..edc74510fb Binary files /dev/null and b/public/assets/images/dota2/emoticons/siltbreaker_trophy_2.gif differ diff --git a/public/assets/images/dota2/emoticons/sleeping.gif b/public/assets/images/dota2/emoticons/sleeping.gif new file mode 100644 index 0000000000..d4d9bb1a17 Binary files /dev/null and b/public/assets/images/dota2/emoticons/sleeping.gif differ diff --git a/public/assets/images/dota2/emoticons/sleeping_ti5_charm.gif b/public/assets/images/dota2/emoticons/sleeping_ti5_charm.gif new file mode 100644 index 0000000000..4dc072dcb0 Binary files /dev/null and b/public/assets/images/dota2/emoticons/sleeping_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/smile.gif b/public/assets/images/dota2/emoticons/smile.gif new file mode 100644 index 0000000000..c96db929a5 Binary files /dev/null and b/public/assets/images/dota2/emoticons/smile.gif differ diff --git a/public/assets/images/dota2/emoticons/smile_ti5_charm.gif b/public/assets/images/dota2/emoticons/smile_ti5_charm.gif new file mode 100644 index 0000000000..f147909bc2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/smile_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/snot.gif b/public/assets/images/dota2/emoticons/snot.gif new file mode 100644 index 0000000000..ae70885f24 Binary files /dev/null and b/public/assets/images/dota2/emoticons/snot.gif differ diff --git a/public/assets/images/dota2/emoticons/snot_ti6_charm.gif b/public/assets/images/dota2/emoticons/snot_ti6_charm.gif new file mode 100644 index 0000000000..8f35fb681a Binary files /dev/null and b/public/assets/images/dota2/emoticons/snot_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/spring_2015_trophy.gif b/public/assets/images/dota2/emoticons/spring_2015_trophy.gif new file mode 100644 index 0000000000..df0c48af4e Binary files /dev/null and b/public/assets/images/dota2/emoticons/spring_2015_trophy.gif differ diff --git a/public/assets/images/dota2/emoticons/stunned.gif b/public/assets/images/dota2/emoticons/stunned.gif new file mode 100644 index 0000000000..d724098e93 Binary files /dev/null and b/public/assets/images/dota2/emoticons/stunned.gif differ diff --git a/public/assets/images/dota2/emoticons/stunned_ti6_charm.gif b/public/assets/images/dota2/emoticons/stunned_ti6_charm.gif new file mode 100644 index 0000000000..f390679385 Binary files /dev/null and b/public/assets/images/dota2/emoticons/stunned_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/surprise.gif b/public/assets/images/dota2/emoticons/surprise.gif new file mode 100644 index 0000000000..9ba8c91b6d Binary files /dev/null and b/public/assets/images/dota2/emoticons/surprise.gif differ diff --git a/public/assets/images/dota2/emoticons/surprise_blush.gif b/public/assets/images/dota2/emoticons/surprise_blush.gif new file mode 100644 index 0000000000..67ac12199d Binary files /dev/null and b/public/assets/images/dota2/emoticons/surprise_blush.gif differ diff --git a/public/assets/images/dota2/emoticons/surprise_ti5_charm.gif b/public/assets/images/dota2/emoticons/surprise_ti5_charm.gif new file mode 100644 index 0000000000..d4a55cf534 Binary files /dev/null and b/public/assets/images/dota2/emoticons/surprise_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/team_af.gif b/public/assets/images/dota2/emoticons/team_af.gif new file mode 100644 index 0000000000..81bc76ef51 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_af.gif differ diff --git a/public/assets/images/dota2/emoticons/team_af_gold.gif b/public/assets/images/dota2/emoticons/team_af_gold.gif new file mode 100644 index 0000000000..ed04637a6e Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_af_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_af_silver.gif b/public/assets/images/dota2/emoticons/team_af_silver.gif new file mode 100644 index 0000000000..85a13f0c97 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_af_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_cloud9.gif b/public/assets/images/dota2/emoticons/team_cloud9.gif new file mode 100644 index 0000000000..0593ec2ab8 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_cloud9.gif differ diff --git a/public/assets/images/dota2/emoticons/team_cloud9_gold.gif b/public/assets/images/dota2/emoticons/team_cloud9_gold.gif new file mode 100644 index 0000000000..fd9d8b8d29 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_cloud9_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_cloud9_silver.gif b/public/assets/images/dota2/emoticons/team_cloud9_silver.gif new file mode 100644 index 0000000000..70b6029bf2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_cloud9_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_complexity.gif b/public/assets/images/dota2/emoticons/team_complexity.gif new file mode 100644 index 0000000000..1ce4f4444b Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_complexity.gif differ diff --git a/public/assets/images/dota2/emoticons/team_complexity_gold.gif b/public/assets/images/dota2/emoticons/team_complexity_gold.gif new file mode 100644 index 0000000000..35a1eea374 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_complexity_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_complexity_silver.gif b/public/assets/images/dota2/emoticons/team_complexity_silver.gif new file mode 100644 index 0000000000..2204552769 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_complexity_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_dc.gif b/public/assets/images/dota2/emoticons/team_dc.gif new file mode 100644 index 0000000000..bd0fc4ada4 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_dc.gif differ diff --git a/public/assets/images/dota2/emoticons/team_dc_gold.gif b/public/assets/images/dota2/emoticons/team_dc_gold.gif new file mode 100644 index 0000000000..6a385310dd Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_dc_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_dc_silver.gif b/public/assets/images/dota2/emoticons/team_dc_silver.gif new file mode 100644 index 0000000000..7e2e5be783 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_dc_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_eg.gif b/public/assets/images/dota2/emoticons/team_eg.gif new file mode 100644 index 0000000000..91165423dd Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_eg.gif differ diff --git a/public/assets/images/dota2/emoticons/team_eg_gold.gif b/public/assets/images/dota2/emoticons/team_eg_gold.gif new file mode 100644 index 0000000000..8299193ba2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_eg_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_eg_silver.gif b/public/assets/images/dota2/emoticons/team_eg_silver.gif new file mode 100644 index 0000000000..27ec3f24bd Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_eg_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_ehome.gif b/public/assets/images/dota2/emoticons/team_ehome.gif new file mode 100644 index 0000000000..55f6e8475a Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_ehome.gif differ diff --git a/public/assets/images/dota2/emoticons/team_ehome_gold.gif b/public/assets/images/dota2/emoticons/team_ehome_gold.gif new file mode 100644 index 0000000000..c73ae1c75d Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_ehome_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_ehome_silver.gif b/public/assets/images/dota2/emoticons/team_ehome_silver.gif new file mode 100644 index 0000000000..d2b5be1559 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_ehome_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_empire.gif b/public/assets/images/dota2/emoticons/team_empire.gif new file mode 100644 index 0000000000..8918895cb3 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_empire.gif differ diff --git a/public/assets/images/dota2/emoticons/team_empire_gold.gif b/public/assets/images/dota2/emoticons/team_empire_gold.gif new file mode 100644 index 0000000000..bc86fe5fd6 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_empire_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_empire_silver.gif b/public/assets/images/dota2/emoticons/team_empire_silver.gif new file mode 100644 index 0000000000..2e970a4f4f Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_empire_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_exe.gif b/public/assets/images/dota2/emoticons/team_exe.gif new file mode 100644 index 0000000000..f6d38b0ad5 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_exe.gif differ diff --git a/public/assets/images/dota2/emoticons/team_exe_gold.gif b/public/assets/images/dota2/emoticons/team_exe_gold.gif new file mode 100644 index 0000000000..8c1ec7b4b2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_exe_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_exe_silver.gif b/public/assets/images/dota2/emoticons/team_exe_silver.gif new file mode 100644 index 0000000000..a3be6f3892 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_exe_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_faceless.gif b/public/assets/images/dota2/emoticons/team_faceless.gif new file mode 100644 index 0000000000..a8df7c4747 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_faceless.gif differ diff --git a/public/assets/images/dota2/emoticons/team_faceless_gold.gif b/public/assets/images/dota2/emoticons/team_faceless_gold.gif new file mode 100644 index 0000000000..28f7020ab2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_faceless_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_faceless_silver.gif b/public/assets/images/dota2/emoticons/team_faceless_silver.gif new file mode 100644 index 0000000000..a4cab74fd7 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_faceless_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_fnatic.gif b/public/assets/images/dota2/emoticons/team_fnatic.gif new file mode 100644 index 0000000000..9d2e2f73ca Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_fnatic.gif differ diff --git a/public/assets/images/dota2/emoticons/team_fnatic_gold.gif b/public/assets/images/dota2/emoticons/team_fnatic_gold.gif new file mode 100644 index 0000000000..43925f5583 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_fnatic_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_fnatic_silver.gif b/public/assets/images/dota2/emoticons/team_fnatic_silver.gif new file mode 100644 index 0000000000..90bd37d8fc Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_fnatic_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_hellraisers.gif b/public/assets/images/dota2/emoticons/team_hellraisers.gif new file mode 100644 index 0000000000..4bebb9d169 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_hellraisers.gif differ diff --git a/public/assets/images/dota2/emoticons/team_hellraisers_gold.gif b/public/assets/images/dota2/emoticons/team_hellraisers_gold.gif new file mode 100644 index 0000000000..acd2ec9116 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_hellraisers_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_hellraisers_silver.gif b/public/assets/images/dota2/emoticons/team_hellraisers_silver.gif new file mode 100644 index 0000000000..c676bb0533 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_hellraisers_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_ig.gif b/public/assets/images/dota2/emoticons/team_ig.gif new file mode 100644 index 0000000000..c12994ad01 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_ig.gif differ diff --git a/public/assets/images/dota2/emoticons/team_ig_gold.gif b/public/assets/images/dota2/emoticons/team_ig_gold.gif new file mode 100644 index 0000000000..8039f37f4d Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_ig_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_ig_silver.gif b/public/assets/images/dota2/emoticons/team_ig_silver.gif new file mode 100644 index 0000000000..72c567c315 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_ig_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_igv.gif b/public/assets/images/dota2/emoticons/team_igv.gif new file mode 100644 index 0000000000..7347627d69 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_igv.gif differ diff --git a/public/assets/images/dota2/emoticons/team_igv_gold.gif b/public/assets/images/dota2/emoticons/team_igv_gold.gif new file mode 100644 index 0000000000..59c6723e2a Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_igv_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_igv_silver.gif b/public/assets/images/dota2/emoticons/team_igv_silver.gif new file mode 100644 index 0000000000..2ef4dab94e Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_igv_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_infamous.gif b/public/assets/images/dota2/emoticons/team_infamous.gif new file mode 100644 index 0000000000..f52fab97c6 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_infamous.gif differ diff --git a/public/assets/images/dota2/emoticons/team_infamous_gold.gif b/public/assets/images/dota2/emoticons/team_infamous_gold.gif new file mode 100644 index 0000000000..51a354667e Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_infamous_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_infamous_silver.gif b/public/assets/images/dota2/emoticons/team_infamous_silver.gif new file mode 100644 index 0000000000..d4db641459 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_infamous_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_lfy.gif b/public/assets/images/dota2/emoticons/team_lfy.gif new file mode 100644 index 0000000000..54fcbd70ef Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_lfy.gif differ diff --git a/public/assets/images/dota2/emoticons/team_lfy_gold.gif b/public/assets/images/dota2/emoticons/team_lfy_gold.gif new file mode 100644 index 0000000000..08a5fbe343 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_lfy_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_lfy_silver.gif b/public/assets/images/dota2/emoticons/team_lfy_silver.gif new file mode 100644 index 0000000000..dbe37c9b9b Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_lfy_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_lgd.gif b/public/assets/images/dota2/emoticons/team_lgd.gif new file mode 100644 index 0000000000..d21083b708 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_lgd.gif differ diff --git a/public/assets/images/dota2/emoticons/team_lgd_gold.gif b/public/assets/images/dota2/emoticons/team_lgd_gold.gif new file mode 100644 index 0000000000..2ed2495ef5 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_lgd_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_lgd_silver.gif b/public/assets/images/dota2/emoticons/team_lgd_silver.gif new file mode 100644 index 0000000000..f6a5a4e83f Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_lgd_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_liquid.gif b/public/assets/images/dota2/emoticons/team_liquid.gif new file mode 100644 index 0000000000..7afdd82e09 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_liquid.gif differ diff --git a/public/assets/images/dota2/emoticons/team_liquid_gold.gif b/public/assets/images/dota2/emoticons/team_liquid_gold.gif new file mode 100644 index 0000000000..169e2e35ad Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_liquid_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_liquid_silver.gif b/public/assets/images/dota2/emoticons/team_liquid_silver.gif new file mode 100644 index 0000000000..8461312fa2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_liquid_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_mvp.gif b/public/assets/images/dota2/emoticons/team_mvp.gif new file mode 100644 index 0000000000..5c6cf9621a Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_mvp.gif differ diff --git a/public/assets/images/dota2/emoticons/team_mvp_silver.gif b/public/assets/images/dota2/emoticons/team_mvp_silver.gif new file mode 100644 index 0000000000..978d0fa29b Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_mvp_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_nb.gif b/public/assets/images/dota2/emoticons/team_nb.gif new file mode 100644 index 0000000000..5c90b07685 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_nb.gif differ diff --git a/public/assets/images/dota2/emoticons/team_nb_gold.gif b/public/assets/images/dota2/emoticons/team_nb_gold.gif new file mode 100644 index 0000000000..96f71ecfc1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_nb_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_nb_silver.gif b/public/assets/images/dota2/emoticons/team_nb_silver.gif new file mode 100644 index 0000000000..b776f5acea Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_nb_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_og.gif b/public/assets/images/dota2/emoticons/team_og.gif new file mode 100644 index 0000000000..5aea4bfe40 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_og.gif differ diff --git a/public/assets/images/dota2/emoticons/team_og_gold.gif b/public/assets/images/dota2/emoticons/team_og_gold.gif new file mode 100644 index 0000000000..e1a6ad6091 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_og_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_og_silver.gif b/public/assets/images/dota2/emoticons/team_og_silver.gif new file mode 100644 index 0000000000..c3a33936bf Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_og_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_secret.gif b/public/assets/images/dota2/emoticons/team_secret.gif new file mode 100644 index 0000000000..f4bf7102ab Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_secret.gif differ diff --git a/public/assets/images/dota2/emoticons/team_secret_gold.gif b/public/assets/images/dota2/emoticons/team_secret_gold.gif new file mode 100644 index 0000000000..8599adac55 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_secret_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_secret_silver.gif b/public/assets/images/dota2/emoticons/team_secret_silver.gif new file mode 100644 index 0000000000..9e11ffcb71 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_secret_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_tnc.gif b/public/assets/images/dota2/emoticons/team_tnc.gif new file mode 100644 index 0000000000..a21691cc46 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_tnc.gif differ diff --git a/public/assets/images/dota2/emoticons/team_tnc_gold.gif b/public/assets/images/dota2/emoticons/team_tnc_gold.gif new file mode 100644 index 0000000000..4ee9221b08 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_tnc_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_tnc_silver.gif b/public/assets/images/dota2/emoticons/team_tnc_silver.gif new file mode 100644 index 0000000000..a1ed0e6d6f Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_tnc_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_vp.gif b/public/assets/images/dota2/emoticons/team_vp.gif new file mode 100644 index 0000000000..5a8298e9f6 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_vp.gif differ diff --git a/public/assets/images/dota2/emoticons/team_vp_gold.gif b/public/assets/images/dota2/emoticons/team_vp_gold.gif new file mode 100644 index 0000000000..8636a4db80 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_vp_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_vp_silver.gif b/public/assets/images/dota2/emoticons/team_vp_silver.gif new file mode 100644 index 0000000000..8e5ffa1af1 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_vp_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_wg.gif b/public/assets/images/dota2/emoticons/team_wg.gif new file mode 100644 index 0000000000..c756a078ae Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_wg.gif differ diff --git a/public/assets/images/dota2/emoticons/team_wg_gold.gif b/public/assets/images/dota2/emoticons/team_wg_gold.gif new file mode 100644 index 0000000000..0635b9024e Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_wg_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_wg_silver.gif b/public/assets/images/dota2/emoticons/team_wg_silver.gif new file mode 100644 index 0000000000..94d16ce0a4 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_wg_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/team_wings.gif b/public/assets/images/dota2/emoticons/team_wings.gif new file mode 100644 index 0000000000..a95ac4805a Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_wings.gif differ diff --git a/public/assets/images/dota2/emoticons/team_wings_gold.gif b/public/assets/images/dota2/emoticons/team_wings_gold.gif new file mode 100644 index 0000000000..63a496bc99 Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_wings_gold.gif differ diff --git a/public/assets/images/dota2/emoticons/team_wings_silver.gif b/public/assets/images/dota2/emoticons/team_wings_silver.gif new file mode 100644 index 0000000000..f6609c925e Binary files /dev/null and b/public/assets/images/dota2/emoticons/team_wings_silver.gif differ diff --git a/public/assets/images/dota2/emoticons/tear.gif b/public/assets/images/dota2/emoticons/tear.gif new file mode 100644 index 0000000000..48afe6b7ce Binary files /dev/null and b/public/assets/images/dota2/emoticons/tear.gif differ diff --git a/public/assets/images/dota2/emoticons/tears.gif b/public/assets/images/dota2/emoticons/tears.gif new file mode 100644 index 0000000000..b70d725dc3 Binary files /dev/null and b/public/assets/images/dota2/emoticons/tears.gif differ diff --git a/public/assets/images/dota2/emoticons/techies.gif b/public/assets/images/dota2/emoticons/techies.gif new file mode 100644 index 0000000000..b86e006882 Binary files /dev/null and b/public/assets/images/dota2/emoticons/techies.gif differ diff --git a/public/assets/images/dota2/emoticons/thinking.gif b/public/assets/images/dota2/emoticons/thinking.gif new file mode 100644 index 0000000000..2fe91cec48 Binary files /dev/null and b/public/assets/images/dota2/emoticons/thinking.gif differ diff --git a/public/assets/images/dota2/emoticons/thinking_ti6_charm.gif b/public/assets/images/dota2/emoticons/thinking_ti6_charm.gif new file mode 100644 index 0000000000..176eb1e805 Binary files /dev/null and b/public/assets/images/dota2/emoticons/thinking_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/throwgame.gif b/public/assets/images/dota2/emoticons/throwgame.gif new file mode 100644 index 0000000000..91cfbfbd9e Binary files /dev/null and b/public/assets/images/dota2/emoticons/throwgame.gif differ diff --git a/public/assets/images/dota2/emoticons/throwgame_ti6_charm.gif b/public/assets/images/dota2/emoticons/throwgame_ti6_charm.gif new file mode 100644 index 0000000000..26ac041f5c Binary files /dev/null and b/public/assets/images/dota2/emoticons/throwgame_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/thumbs_down.gif b/public/assets/images/dota2/emoticons/thumbs_down.gif new file mode 100644 index 0000000000..1a25361776 Binary files /dev/null and b/public/assets/images/dota2/emoticons/thumbs_down.gif differ diff --git a/public/assets/images/dota2/emoticons/thumbs_up.gif b/public/assets/images/dota2/emoticons/thumbs_up.gif new file mode 100644 index 0000000000..27fa75e7b6 Binary files /dev/null and b/public/assets/images/dota2/emoticons/thumbs_up.gif differ diff --git a/public/assets/images/dota2/emoticons/ti4bronze.gif b/public/assets/images/dota2/emoticons/ti4bronze.gif new file mode 100644 index 0000000000..dad73f8d9b Binary files /dev/null and b/public/assets/images/dota2/emoticons/ti4bronze.gif differ diff --git a/public/assets/images/dota2/emoticons/ti4copper.gif b/public/assets/images/dota2/emoticons/ti4copper.gif new file mode 100644 index 0000000000..c210beb4e7 Binary files /dev/null and b/public/assets/images/dota2/emoticons/ti4copper.gif differ diff --git a/public/assets/images/dota2/emoticons/ti4diamond.gif b/public/assets/images/dota2/emoticons/ti4diamond.gif new file mode 100644 index 0000000000..48eb550fce Binary files /dev/null and b/public/assets/images/dota2/emoticons/ti4diamond.gif differ diff --git a/public/assets/images/dota2/emoticons/ti4gold.gif b/public/assets/images/dota2/emoticons/ti4gold.gif new file mode 100644 index 0000000000..c6c7ab032f Binary files /dev/null and b/public/assets/images/dota2/emoticons/ti4gold.gif differ diff --git a/public/assets/images/dota2/emoticons/ti4platinum.gif b/public/assets/images/dota2/emoticons/ti4platinum.gif new file mode 100644 index 0000000000..34fc3cfda7 Binary files /dev/null and b/public/assets/images/dota2/emoticons/ti4platinum.gif differ diff --git a/public/assets/images/dota2/emoticons/ti4silver.gif b/public/assets/images/dota2/emoticons/ti4silver.gif new file mode 100644 index 0000000000..7a08205cc2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/ti4silver.gif differ diff --git a/public/assets/images/dota2/emoticons/tp.gif b/public/assets/images/dota2/emoticons/tp.gif new file mode 100644 index 0000000000..c21417295e Binary files /dev/null and b/public/assets/images/dota2/emoticons/tp.gif differ diff --git a/public/assets/images/dota2/emoticons/tp_ti6_charm.gif b/public/assets/images/dota2/emoticons/tp_ti6_charm.gif new file mode 100644 index 0000000000..4316e29f33 Binary files /dev/null and b/public/assets/images/dota2/emoticons/tp_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/troll.gif b/public/assets/images/dota2/emoticons/troll.gif new file mode 100644 index 0000000000..0204cbefc8 Binary files /dev/null and b/public/assets/images/dota2/emoticons/troll.gif differ diff --git a/public/assets/images/dota2/emoticons/underlord_ti6_charm.gif b/public/assets/images/dota2/emoticons/underlord_ti6_charm.gif new file mode 100644 index 0000000000..9287332ccf Binary files /dev/null and b/public/assets/images/dota2/emoticons/underlord_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/unicorn.gif b/public/assets/images/dota2/emoticons/unicorn.gif new file mode 100644 index 0000000000..0ff9a85dd0 Binary files /dev/null and b/public/assets/images/dota2/emoticons/unicorn.gif differ diff --git a/public/assets/images/dota2/emoticons/venom.gif b/public/assets/images/dota2/emoticons/venom.gif new file mode 100644 index 0000000000..309ed0c9b2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/venom.gif differ diff --git a/public/assets/images/dota2/emoticons/whew.gif b/public/assets/images/dota2/emoticons/whew.gif new file mode 100644 index 0000000000..8d45ecfe1f Binary files /dev/null and b/public/assets/images/dota2/emoticons/whew.gif differ diff --git a/public/assets/images/dota2/emoticons/wink.gif b/public/assets/images/dota2/emoticons/wink.gif new file mode 100644 index 0000000000..f71b64a5ab Binary files /dev/null and b/public/assets/images/dota2/emoticons/wink.gif differ diff --git a/public/assets/images/dota2/emoticons/wink_ti5_charm.gif b/public/assets/images/dota2/emoticons/wink_ti5_charm.gif new file mode 100644 index 0000000000..ce8c60bf72 Binary files /dev/null and b/public/assets/images/dota2/emoticons/wink_ti5_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/winter_2016_trophy.gif b/public/assets/images/dota2/emoticons/winter_2016_trophy.gif new file mode 100644 index 0000000000..88bbc84fb2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/winter_2016_trophy.gif differ diff --git a/public/assets/images/dota2/emoticons/wolf_pup.gif b/public/assets/images/dota2/emoticons/wolf_pup.gif new file mode 100644 index 0000000000..9d9c30d1c2 Binary files /dev/null and b/public/assets/images/dota2/emoticons/wolf_pup.gif differ diff --git a/public/assets/images/dota2/emoticons/yolo.gif b/public/assets/images/dota2/emoticons/yolo.gif new file mode 100644 index 0000000000..d701ddd6c9 Binary files /dev/null and b/public/assets/images/dota2/emoticons/yolo.gif differ diff --git a/public/assets/images/dota2/emoticons/yolo_ti6_charm.gif b/public/assets/images/dota2/emoticons/yolo_ti6_charm.gif new file mode 100644 index 0000000000..cb2068c884 Binary files /dev/null and b/public/assets/images/dota2/emoticons/yolo_ti6_charm.gif differ diff --git a/public/assets/images/dota2/emoticons/zeus_arcana.gif b/public/assets/images/dota2/emoticons/zeus_arcana.gif new file mode 100644 index 0000000000..011e42f612 Binary files /dev/null and b/public/assets/images/dota2/emoticons/zeus_arcana.gif differ diff --git a/public/assets/images/dota2/emoticons/zipper.gif b/public/assets/images/dota2/emoticons/zipper.gif new file mode 100644 index 0000000000..019e42d910 Binary files /dev/null and b/public/assets/images/dota2/emoticons/zipper.gif differ diff --git a/public/assets/images/dota2/gold.png b/public/assets/images/dota2/gold.png new file mode 100644 index 0000000000..243b11ad1c Binary files /dev/null and b/public/assets/images/dota2/gold.png differ diff --git a/public/assets/images/dota2/goodguys_creep.png b/public/assets/images/dota2/goodguys_creep.png new file mode 100644 index 0000000000..c2eac8a624 Binary files /dev/null and b/public/assets/images/dota2/goodguys_creep.png differ diff --git a/public/assets/images/dota2/heroes/123_icon.png b/public/assets/images/dota2/heroes/123_icon.png new file mode 100644 index 0000000000..6e347441cd Binary files /dev/null and b/public/assets/images/dota2/heroes/123_icon.png differ diff --git a/public/assets/images/dota2/heroes/126_icon.png b/public/assets/images/dota2/heroes/126_icon.png new file mode 100644 index 0000000000..b1def01857 Binary files /dev/null and b/public/assets/images/dota2/heroes/126_icon.png differ diff --git a/public/assets/images/dota2/heroes/128_icon.png b/public/assets/images/dota2/heroes/128_icon.png new file mode 100644 index 0000000000..64b74fbac5 Binary files /dev/null and b/public/assets/images/dota2/heroes/128_icon.png differ diff --git a/public/assets/images/dota2/heroes/135.png b/public/assets/images/dota2/heroes/135.png new file mode 100644 index 0000000000..803a8a9ef7 Binary files /dev/null and b/public/assets/images/dota2/heroes/135.png differ diff --git a/public/assets/images/dota2/heroes/135_icon.png b/public/assets/images/dota2/heroes/135_icon.png new file mode 100644 index 0000000000..bdbfab9b0a Binary files /dev/null and b/public/assets/images/dota2/heroes/135_icon.png differ diff --git a/public/assets/images/dota2/lane_1.svg b/public/assets/images/dota2/lane_1.svg new file mode 100644 index 0000000000..4372abc758 --- /dev/null +++ b/public/assets/images/dota2/lane_1.svg @@ -0,0 +1,16 @@ + + + background + + + + + + + + Layer 1 + + + + + \ No newline at end of file diff --git a/public/assets/images/dota2/lane_2.svg b/public/assets/images/dota2/lane_2.svg new file mode 100644 index 0000000000..1b8c42d981 --- /dev/null +++ b/public/assets/images/dota2/lane_2.svg @@ -0,0 +1,22 @@ + + + + background + + + + Layer 1 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/images/dota2/lane_3.svg b/public/assets/images/dota2/lane_3.svg new file mode 100644 index 0000000000..7b4d79a3b6 --- /dev/null +++ b/public/assets/images/dota2/lane_3.svg @@ -0,0 +1,22 @@ + + + background + + + + + Layer 1 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/images/dota2/lane_4.svg b/public/assets/images/dota2/lane_4.svg new file mode 100644 index 0000000000..2ac8a373bd --- /dev/null +++ b/public/assets/images/dota2/lane_4.svg @@ -0,0 +1,15 @@ + + + + background + + + + + + + Layer 1 + + + + \ No newline at end of file diff --git a/public/assets/images/dota2/lane_roam.svg b/public/assets/images/dota2/lane_roam.svg new file mode 100644 index 0000000000..94e53b5843 --- /dev/null +++ b/public/assets/images/dota2/lane_roam.svg @@ -0,0 +1,15 @@ + + + + background + + + + + + + Layer 1 + + + + \ No newline at end of file diff --git a/public/assets/images/dota2/map/badguys_fort.png b/public/assets/images/dota2/map/badguys_fort.png new file mode 100644 index 0000000000..13386682cd Binary files /dev/null and b/public/assets/images/dota2/map/badguys_fort.png differ diff --git a/public/assets/images/dota2/map/badguys_observer.png b/public/assets/images/dota2/map/badguys_observer.png new file mode 100644 index 0000000000..9d1dbe31d0 Binary files /dev/null and b/public/assets/images/dota2/map/badguys_observer.png differ diff --git a/public/assets/images/dota2/map/badguys_rax.png b/public/assets/images/dota2/map/badguys_rax.png new file mode 100644 index 0000000000..a32e8befd5 Binary files /dev/null and b/public/assets/images/dota2/map/badguys_rax.png differ diff --git a/public/assets/images/dota2/map/badguys_rax_angle.png b/public/assets/images/dota2/map/badguys_rax_angle.png new file mode 100644 index 0000000000..44c5a187ac Binary files /dev/null and b/public/assets/images/dota2/map/badguys_rax_angle.png differ diff --git a/public/assets/images/dota2/map/badguys_sentry.png b/public/assets/images/dota2/map/badguys_sentry.png new file mode 100644 index 0000000000..ba4b9dcc93 Binary files /dev/null and b/public/assets/images/dota2/map/badguys_sentry.png differ diff --git a/public/assets/images/dota2/map/badguys_tower.png b/public/assets/images/dota2/map/badguys_tower.png new file mode 100644 index 0000000000..9556cf4247 Binary files /dev/null and b/public/assets/images/dota2/map/badguys_tower.png differ diff --git a/public/assets/images/dota2/map/badguys_tower_angle.png b/public/assets/images/dota2/map/badguys_tower_angle.png new file mode 100644 index 0000000000..1fb9b65ebf Binary files /dev/null and b/public/assets/images/dota2/map/badguys_tower_angle.png differ diff --git a/public/assets/images/dota2/map/detailed_682.jpg b/public/assets/images/dota2/map/detailed_682.jpg new file mode 100644 index 0000000000..814f430a1f Binary files /dev/null and b/public/assets/images/dota2/map/detailed_682.jpg differ diff --git a/public/assets/images/dota2/map/detailed_682.webp b/public/assets/images/dota2/map/detailed_682.webp new file mode 100644 index 0000000000..293d574c5c Binary files /dev/null and b/public/assets/images/dota2/map/detailed_682.webp differ diff --git a/public/assets/images/dota2/map/detailed_686.jpg b/public/assets/images/dota2/map/detailed_686.jpg new file mode 100644 index 0000000000..f3ceba4d62 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_686.jpg differ diff --git a/public/assets/images/dota2/map/detailed_686.webp b/public/assets/images/dota2/map/detailed_686.webp new file mode 100644 index 0000000000..50f2a9f071 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_686.webp differ diff --git a/public/assets/images/dota2/map/detailed_700.jpg b/public/assets/images/dota2/map/detailed_700.jpg new file mode 100644 index 0000000000..00e03eb512 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_700.jpg differ diff --git a/public/assets/images/dota2/map/detailed_700.webp b/public/assets/images/dota2/map/detailed_700.webp new file mode 100644 index 0000000000..7088d89776 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_700.webp differ diff --git a/public/assets/images/dota2/map/detailed_707.jpg b/public/assets/images/dota2/map/detailed_707.jpg new file mode 100644 index 0000000000..86dd0222ee Binary files /dev/null and b/public/assets/images/dota2/map/detailed_707.jpg differ diff --git a/public/assets/images/dota2/map/detailed_707.webp b/public/assets/images/dota2/map/detailed_707.webp new file mode 100644 index 0000000000..fb295e4c39 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_707.webp differ diff --git a/public/assets/images/dota2/map/detailed_720.jpg b/public/assets/images/dota2/map/detailed_720.jpg new file mode 100644 index 0000000000..01bc70dd30 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_720.jpg differ diff --git a/public/assets/images/dota2/map/detailed_720.webp b/public/assets/images/dota2/map/detailed_720.webp new file mode 100644 index 0000000000..126c1d2f04 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_720.webp differ diff --git a/public/assets/images/dota2/map/detailed_723.jpg b/public/assets/images/dota2/map/detailed_723.jpg new file mode 100644 index 0000000000..55e09757ff Binary files /dev/null and b/public/assets/images/dota2/map/detailed_723.jpg differ diff --git a/public/assets/images/dota2/map/detailed_723.webp b/public/assets/images/dota2/map/detailed_723.webp new file mode 100644 index 0000000000..5c77d1811e Binary files /dev/null and b/public/assets/images/dota2/map/detailed_723.webp differ diff --git a/public/assets/images/dota2/map/detailed_732.jpg b/public/assets/images/dota2/map/detailed_732.jpg new file mode 100644 index 0000000000..48756d354d Binary files /dev/null and b/public/assets/images/dota2/map/detailed_732.jpg differ diff --git a/public/assets/images/dota2/map/detailed_732.webp b/public/assets/images/dota2/map/detailed_732.webp new file mode 100644 index 0000000000..30948ef28c Binary files /dev/null and b/public/assets/images/dota2/map/detailed_732.webp differ diff --git a/public/assets/images/dota2/map/detailed_733.jpg b/public/assets/images/dota2/map/detailed_733.jpg new file mode 100644 index 0000000000..5a9463e06c Binary files /dev/null and b/public/assets/images/dota2/map/detailed_733.jpg differ diff --git a/public/assets/images/dota2/map/detailed_733.webp b/public/assets/images/dota2/map/detailed_733.webp new file mode 100644 index 0000000000..4dc05247f1 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_733.webp differ diff --git a/public/assets/images/dota2/map/detailed_738.jpg b/public/assets/images/dota2/map/detailed_738.jpg new file mode 100644 index 0000000000..6002a0720f Binary files /dev/null and b/public/assets/images/dota2/map/detailed_738.jpg differ diff --git a/public/assets/images/dota2/map/detailed_738.webp b/public/assets/images/dota2/map/detailed_738.webp new file mode 100644 index 0000000000..2111aa170f Binary files /dev/null and b/public/assets/images/dota2/map/detailed_738.webp differ diff --git a/public/assets/images/dota2/map/detailed_740.jpg b/public/assets/images/dota2/map/detailed_740.jpg new file mode 100644 index 0000000000..e12459fe9c Binary files /dev/null and b/public/assets/images/dota2/map/detailed_740.jpg differ diff --git a/public/assets/images/dota2/map/detailed_740.webp b/public/assets/images/dota2/map/detailed_740.webp new file mode 100644 index 0000000000..a4efc2d55e Binary files /dev/null and b/public/assets/images/dota2/map/detailed_740.webp differ diff --git a/public/assets/images/dota2/map/detailed_pre682.jpg b/public/assets/images/dota2/map/detailed_pre682.jpg new file mode 100644 index 0000000000..bcba8ba859 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_pre682.jpg differ diff --git a/public/assets/images/dota2/map/detailed_pre682.webp b/public/assets/images/dota2/map/detailed_pre682.webp new file mode 100644 index 0000000000..f642c84219 Binary files /dev/null and b/public/assets/images/dota2/map/detailed_pre682.webp differ diff --git a/public/assets/images/dota2/map/goodguys_fort.png b/public/assets/images/dota2/map/goodguys_fort.png new file mode 100644 index 0000000000..5827cd4db2 Binary files /dev/null and b/public/assets/images/dota2/map/goodguys_fort.png differ diff --git a/public/assets/images/dota2/map/goodguys_observer.png b/public/assets/images/dota2/map/goodguys_observer.png new file mode 100644 index 0000000000..db0388173a Binary files /dev/null and b/public/assets/images/dota2/map/goodguys_observer.png differ diff --git a/public/assets/images/dota2/map/goodguys_rax.png b/public/assets/images/dota2/map/goodguys_rax.png new file mode 100644 index 0000000000..30f36d347c Binary files /dev/null and b/public/assets/images/dota2/map/goodguys_rax.png differ diff --git a/public/assets/images/dota2/map/goodguys_rax_angle.png b/public/assets/images/dota2/map/goodguys_rax_angle.png new file mode 100644 index 0000000000..0400394bcf Binary files /dev/null and b/public/assets/images/dota2/map/goodguys_rax_angle.png differ diff --git a/public/assets/images/dota2/map/goodguys_sentry.png b/public/assets/images/dota2/map/goodguys_sentry.png new file mode 100644 index 0000000000..a979fd6b94 Binary files /dev/null and b/public/assets/images/dota2/map/goodguys_sentry.png differ diff --git a/public/assets/images/dota2/map/goodguys_tower.png b/public/assets/images/dota2/map/goodguys_tower.png new file mode 100644 index 0000000000..767a3e395a Binary files /dev/null and b/public/assets/images/dota2/map/goodguys_tower.png differ diff --git a/public/assets/images/dota2/map/goodguys_tower_angle.png b/public/assets/images/dota2/map/goodguys_tower_angle.png new file mode 100644 index 0000000000..c43ce8bca8 Binary files /dev/null and b/public/assets/images/dota2/map/goodguys_tower_angle.png differ diff --git a/public/assets/images/dota2/map/minimap.jpg b/public/assets/images/dota2/map/minimap.jpg new file mode 100644 index 0000000000..1bf5745181 Binary files /dev/null and b/public/assets/images/dota2/map/minimap.jpg differ diff --git a/public/assets/images/dota2/map/minimap2.jpg b/public/assets/images/dota2/map/minimap2.jpg new file mode 100644 index 0000000000..4a90fde4a3 Binary files /dev/null and b/public/assets/images/dota2/map/minimap2.jpg differ diff --git a/public/assets/images/dota2/map/simple.png b/public/assets/images/dota2/map/simple.png new file mode 100644 index 0000000000..46a17805b5 Binary files /dev/null and b/public/assets/images/dota2/map/simple.png differ diff --git a/public/assets/images/dota2/map/simple_700.png b/public/assets/images/dota2/map/simple_700.png new file mode 100644 index 0000000000..0a836e9a8e Binary files /dev/null and b/public/assets/images/dota2/map/simple_700.png differ diff --git a/public/assets/images/dota2/neutral_abilities/black_dragon_fireball.png b/public/assets/images/dota2/neutral_abilities/black_dragon_fireball.png new file mode 100644 index 0000000000..d22604c497 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/black_dragon_fireball.png differ diff --git a/public/assets/images/dota2/neutral_abilities/centaur_khan_war_stomp.png b/public/assets/images/dota2/neutral_abilities/centaur_khan_war_stomp.png new file mode 100644 index 0000000000..a18334c693 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/centaur_khan_war_stomp.png differ diff --git a/public/assets/images/dota2/neutral_abilities/dark_troll_warlord_ensnare.png b/public/assets/images/dota2/neutral_abilities/dark_troll_warlord_ensnare.png new file mode 100644 index 0000000000..ce2ece2294 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/dark_troll_warlord_ensnare.png differ diff --git a/public/assets/images/dota2/neutral_abilities/dark_troll_warlord_raise_dead.png b/public/assets/images/dota2/neutral_abilities/dark_troll_warlord_raise_dead.png new file mode 100644 index 0000000000..92370e6ac0 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/dark_troll_warlord_raise_dead.png differ diff --git a/public/assets/images/dota2/neutral_abilities/doom_bringer_infernal_blade.png b/public/assets/images/dota2/neutral_abilities/doom_bringer_infernal_blade.png new file mode 100644 index 0000000000..65c6f7784c Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/doom_bringer_infernal_blade.png differ diff --git a/public/assets/images/dota2/neutral_abilities/enraged_wildkin_tornado.png b/public/assets/images/dota2/neutral_abilities/enraged_wildkin_tornado.png new file mode 100644 index 0000000000..11dd859b07 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/enraged_wildkin_tornado.png differ diff --git a/public/assets/images/dota2/neutral_abilities/harpy_storm_chain_lightning.png b/public/assets/images/dota2/neutral_abilities/harpy_storm_chain_lightning.png new file mode 100644 index 0000000000..15ec69b960 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/harpy_storm_chain_lightning.png differ diff --git a/public/assets/images/dota2/neutral_abilities/hill_troll_priest_heal.png b/public/assets/images/dota2/neutral_abilities/hill_troll_priest_heal.png new file mode 100644 index 0000000000..cd7e300087 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/hill_troll_priest_heal.png differ diff --git a/public/assets/images/dota2/neutral_abilities/mud_golem_hurl_boulder.png b/public/assets/images/dota2/neutral_abilities/mud_golem_hurl_boulder.png new file mode 100644 index 0000000000..67fe1cb955 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/mud_golem_hurl_boulder.png differ diff --git a/public/assets/images/dota2/neutral_abilities/necronomicon_archer_archer_aura.png b/public/assets/images/dota2/neutral_abilities/necronomicon_archer_archer_aura.png new file mode 100644 index 0000000000..82e3d0158c Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/necronomicon_archer_archer_aura.png differ diff --git a/public/assets/images/dota2/neutral_abilities/necronomicon_archer_mana_burn.png b/public/assets/images/dota2/neutral_abilities/necronomicon_archer_mana_burn.png new file mode 100644 index 0000000000..3a3ff6177f Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/necronomicon_archer_mana_burn.png differ diff --git a/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_last_will.png b/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_last_will.png new file mode 100644 index 0000000000..9a4ce3e27e Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_last_will.png differ diff --git a/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_mana_break.png b/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_mana_break.png new file mode 100644 index 0000000000..4a19ad3a6b Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_mana_break.png differ diff --git a/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_true_sight.png b/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_true_sight.png new file mode 100644 index 0000000000..c24b8c8549 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/necronomicon_warrior_true_sight.png differ diff --git a/public/assets/images/dota2/neutral_abilities/ogre_magi_frost_armor.png b/public/assets/images/dota2/neutral_abilities/ogre_magi_frost_armor.png new file mode 100644 index 0000000000..a02541bd23 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/ogre_magi_frost_armor.png differ diff --git a/public/assets/images/dota2/neutral_abilities/polar_furbolg_ursa_warrior_thunder_clap.png b/public/assets/images/dota2/neutral_abilities/polar_furbolg_ursa_warrior_thunder_clap.png new file mode 100644 index 0000000000..30ed73e782 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/polar_furbolg_ursa_warrior_thunder_clap.png differ diff --git a/public/assets/images/dota2/neutral_abilities/satyr_hellcaller_shockwave.png b/public/assets/images/dota2/neutral_abilities/satyr_hellcaller_shockwave.png new file mode 100644 index 0000000000..2a9237d025 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/satyr_hellcaller_shockwave.png differ diff --git a/public/assets/images/dota2/neutral_abilities/satyr_soulstealer_mana_burn.png b/public/assets/images/dota2/neutral_abilities/satyr_soulstealer_mana_burn.png new file mode 100644 index 0000000000..0d047f03c1 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/satyr_soulstealer_mana_burn.png differ diff --git a/public/assets/images/dota2/neutral_abilities/satyr_trickster_purge.png b/public/assets/images/dota2/neutral_abilities/satyr_trickster_purge.png new file mode 100644 index 0000000000..1924de5cd1 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/satyr_trickster_purge.png differ diff --git a/public/assets/images/dota2/neutral_abilities/visage_summon_familiars_stone_form.png b/public/assets/images/dota2/neutral_abilities/visage_summon_familiars_stone_form.png new file mode 100644 index 0000000000..0b3dddbd18 Binary files /dev/null and b/public/assets/images/dota2/neutral_abilities/visage_summon_familiars_stone_form.png differ diff --git a/public/assets/images/dota2/players/100317750.png b/public/assets/images/dota2/players/100317750.png new file mode 100644 index 0000000000..41f448dded Binary files /dev/null and b/public/assets/images/dota2/players/100317750.png differ diff --git a/public/assets/images/dota2/players/100471531.png b/public/assets/images/dota2/players/100471531.png new file mode 100644 index 0000000000..72b8b40fcc Binary files /dev/null and b/public/assets/images/dota2/players/100471531.png differ diff --git a/public/assets/images/dota2/players/101356886.png b/public/assets/images/dota2/players/101356886.png new file mode 100644 index 0000000000..f778043004 Binary files /dev/null and b/public/assets/images/dota2/players/101356886.png differ diff --git a/public/assets/images/dota2/players/101375717.png b/public/assets/images/dota2/players/101375717.png new file mode 100644 index 0000000000..c6a41e7969 Binary files /dev/null and b/public/assets/images/dota2/players/101375717.png differ diff --git a/public/assets/images/dota2/players/101450083.png b/public/assets/images/dota2/players/101450083.png new file mode 100644 index 0000000000..92604f4dd6 Binary files /dev/null and b/public/assets/images/dota2/players/101450083.png differ diff --git a/public/assets/images/dota2/players/101495620.png b/public/assets/images/dota2/players/101495620.png new file mode 100644 index 0000000000..da645dc5f9 Binary files /dev/null and b/public/assets/images/dota2/players/101495620.png differ diff --git a/public/assets/images/dota2/players/101525357.png b/public/assets/images/dota2/players/101525357.png new file mode 100644 index 0000000000..c6df7ca25a Binary files /dev/null and b/public/assets/images/dota2/players/101525357.png differ diff --git a/public/assets/images/dota2/players/101586543.png b/public/assets/images/dota2/players/101586543.png new file mode 100644 index 0000000000..4f0022302c Binary files /dev/null and b/public/assets/images/dota2/players/101586543.png differ diff --git a/public/assets/images/dota2/players/101695162.png b/public/assets/images/dota2/players/101695162.png new file mode 100644 index 0000000000..2b33c6146c Binary files /dev/null and b/public/assets/images/dota2/players/101695162.png differ diff --git a/public/assets/images/dota2/players/102099826.png b/public/assets/images/dota2/players/102099826.png new file mode 100644 index 0000000000..928a7809f5 Binary files /dev/null and b/public/assets/images/dota2/players/102099826.png differ diff --git a/public/assets/images/dota2/players/102525542.png b/public/assets/images/dota2/players/102525542.png new file mode 100644 index 0000000000..8f52bbf384 Binary files /dev/null and b/public/assets/images/dota2/players/102525542.png differ diff --git a/public/assets/images/dota2/players/102644565.png b/public/assets/images/dota2/players/102644565.png new file mode 100644 index 0000000000..e4d59ceb28 Binary files /dev/null and b/public/assets/images/dota2/players/102644565.png differ diff --git a/public/assets/images/dota2/players/103039499.png b/public/assets/images/dota2/players/103039499.png new file mode 100644 index 0000000000..16eea7a4c3 Binary files /dev/null and b/public/assets/images/dota2/players/103039499.png differ diff --git a/public/assets/images/dota2/players/10366616.png b/public/assets/images/dota2/players/10366616.png new file mode 100644 index 0000000000..fdf95a60f8 Binary files /dev/null and b/public/assets/images/dota2/players/10366616.png differ diff --git a/public/assets/images/dota2/players/103735745.png b/public/assets/images/dota2/players/103735745.png new file mode 100644 index 0000000000..fea3f021c3 Binary files /dev/null and b/public/assets/images/dota2/players/103735745.png differ diff --git a/public/assets/images/dota2/players/103940975.png b/public/assets/images/dota2/players/103940975.png new file mode 100644 index 0000000000..e9c1e655b9 Binary files /dev/null and b/public/assets/images/dota2/players/103940975.png differ diff --git a/public/assets/images/dota2/players/105248644.png b/public/assets/images/dota2/players/105248644.png new file mode 100644 index 0000000000..b77d300a84 Binary files /dev/null and b/public/assets/images/dota2/players/105248644.png differ diff --git a/public/assets/images/dota2/players/106573901.png b/public/assets/images/dota2/players/106573901.png new file mode 100644 index 0000000000..8a4c6a5bc4 Binary files /dev/null and b/public/assets/images/dota2/players/106573901.png differ diff --git a/public/assets/images/dota2/players/106809101.png b/public/assets/images/dota2/players/106809101.png new file mode 100644 index 0000000000..06d031ba10 Binary files /dev/null and b/public/assets/images/dota2/players/106809101.png differ diff --git a/public/assets/images/dota2/players/106863163.png b/public/assets/images/dota2/players/106863163.png new file mode 100644 index 0000000000..db9b5aa384 Binary files /dev/null and b/public/assets/images/dota2/players/106863163.png differ diff --git a/public/assets/images/dota2/players/106940382.png b/public/assets/images/dota2/players/106940382.png new file mode 100644 index 0000000000..c414911f6a Binary files /dev/null and b/public/assets/images/dota2/players/106940382.png differ diff --git a/public/assets/images/dota2/players/107081378.png b/public/assets/images/dota2/players/107081378.png new file mode 100644 index 0000000000..e0351eade4 Binary files /dev/null and b/public/assets/images/dota2/players/107081378.png differ diff --git a/public/assets/images/dota2/players/107803494.png b/public/assets/images/dota2/players/107803494.png new file mode 100644 index 0000000000..00d2b7a7bd Binary files /dev/null and b/public/assets/images/dota2/players/107803494.png differ diff --git a/public/assets/images/dota2/players/107855479.png b/public/assets/images/dota2/players/107855479.png new file mode 100644 index 0000000000..56f67be27a Binary files /dev/null and b/public/assets/images/dota2/players/107855479.png differ diff --git a/public/assets/images/dota2/players/108376607.png b/public/assets/images/dota2/players/108376607.png new file mode 100644 index 0000000000..ad2df63d88 Binary files /dev/null and b/public/assets/images/dota2/players/108376607.png differ diff --git a/public/assets/images/dota2/players/108382060.png b/public/assets/images/dota2/players/108382060.png new file mode 100644 index 0000000000..a37db64c2d Binary files /dev/null and b/public/assets/images/dota2/players/108382060.png differ diff --git a/public/assets/images/dota2/players/108452107.png b/public/assets/images/dota2/players/108452107.png new file mode 100644 index 0000000000..b648e48df2 Binary files /dev/null and b/public/assets/images/dota2/players/108452107.png differ diff --git a/public/assets/images/dota2/players/108484186.png b/public/assets/images/dota2/players/108484186.png new file mode 100644 index 0000000000..b1f525ec43 Binary files /dev/null and b/public/assets/images/dota2/players/108484186.png differ diff --git a/public/assets/images/dota2/players/110539311.png b/public/assets/images/dota2/players/110539311.png new file mode 100644 index 0000000000..0532975235 Binary files /dev/null and b/public/assets/images/dota2/players/110539311.png differ diff --git a/public/assets/images/dota2/players/111030315.png b/public/assets/images/dota2/players/111030315.png new file mode 100644 index 0000000000..de14c19dfe Binary files /dev/null and b/public/assets/images/dota2/players/111030315.png differ diff --git a/public/assets/images/dota2/players/111034589.png b/public/assets/images/dota2/players/111034589.png new file mode 100644 index 0000000000..56342aa4f7 Binary files /dev/null and b/public/assets/images/dota2/players/111034589.png differ diff --git a/public/assets/images/dota2/players/111114687.png b/public/assets/images/dota2/players/111114687.png new file mode 100644 index 0000000000..468b2b5b18 Binary files /dev/null and b/public/assets/images/dota2/players/111114687.png differ diff --git a/public/assets/images/dota2/players/111189717.png b/public/assets/images/dota2/players/111189717.png new file mode 100644 index 0000000000..c8857374fb Binary files /dev/null and b/public/assets/images/dota2/players/111189717.png differ diff --git a/public/assets/images/dota2/players/111291593.png b/public/assets/images/dota2/players/111291593.png new file mode 100644 index 0000000000..b060e9983f Binary files /dev/null and b/public/assets/images/dota2/players/111291593.png differ diff --git a/public/assets/images/dota2/players/111620041.png b/public/assets/images/dota2/players/111620041.png new file mode 100644 index 0000000000..5788c660ba Binary files /dev/null and b/public/assets/images/dota2/players/111620041.png differ diff --git a/public/assets/images/dota2/players/112377459.png b/public/assets/images/dota2/players/112377459.png new file mode 100644 index 0000000000..9422d5bdbb Binary files /dev/null and b/public/assets/images/dota2/players/112377459.png differ diff --git a/public/assets/images/dota2/players/113331514.png b/public/assets/images/dota2/players/113331514.png new file mode 100644 index 0000000000..4c30667c88 Binary files /dev/null and b/public/assets/images/dota2/players/113331514.png differ diff --git a/public/assets/images/dota2/players/113457795.png b/public/assets/images/dota2/players/113457795.png new file mode 100644 index 0000000000..36f29e33a0 Binary files /dev/null and b/public/assets/images/dota2/players/113457795.png differ diff --git a/public/assets/images/dota2/players/113800818.png b/public/assets/images/dota2/players/113800818.png new file mode 100644 index 0000000000..644024e6be Binary files /dev/null and b/public/assets/images/dota2/players/113800818.png differ diff --git a/public/assets/images/dota2/players/113874152.png b/public/assets/images/dota2/players/113874152.png new file mode 100644 index 0000000000..3cf6c887c9 Binary files /dev/null and b/public/assets/images/dota2/players/113874152.png differ diff --git a/public/assets/images/dota2/players/114239371.png b/public/assets/images/dota2/players/114239371.png new file mode 100644 index 0000000000..5abdfca2dc Binary files /dev/null and b/public/assets/images/dota2/players/114239371.png differ diff --git a/public/assets/images/dota2/players/114619230.png b/public/assets/images/dota2/players/114619230.png new file mode 100644 index 0000000000..133c696ed4 Binary files /dev/null and b/public/assets/images/dota2/players/114619230.png differ diff --git a/public/assets/images/dota2/players/116525052.png b/public/assets/images/dota2/players/116525052.png new file mode 100644 index 0000000000..8ee38e9c57 Binary files /dev/null and b/public/assets/images/dota2/players/116525052.png differ diff --git a/public/assets/images/dota2/players/116585378.png b/public/assets/images/dota2/players/116585378.png new file mode 100644 index 0000000000..75094e9069 Binary files /dev/null and b/public/assets/images/dota2/players/116585378.png differ diff --git a/public/assets/images/dota2/players/117199412.png b/public/assets/images/dota2/players/117199412.png new file mode 100644 index 0000000000..1b93d5753b Binary files /dev/null and b/public/assets/images/dota2/players/117199412.png differ diff --git a/public/assets/images/dota2/players/117281554.png b/public/assets/images/dota2/players/117281554.png new file mode 100644 index 0000000000..7c3f0a95a8 Binary files /dev/null and b/public/assets/images/dota2/players/117281554.png differ diff --git a/public/assets/images/dota2/players/117421467.png b/public/assets/images/dota2/players/117421467.png new file mode 100644 index 0000000000..273ab7aac0 Binary files /dev/null and b/public/assets/images/dota2/players/117421467.png differ diff --git a/public/assets/images/dota2/players/117731777.png b/public/assets/images/dota2/players/117731777.png new file mode 100644 index 0000000000..0eec4a8f6e Binary files /dev/null and b/public/assets/images/dota2/players/117731777.png differ diff --git a/public/assets/images/dota2/players/117956848.png b/public/assets/images/dota2/players/117956848.png new file mode 100644 index 0000000000..71a6fd2109 Binary files /dev/null and b/public/assets/images/dota2/players/117956848.png differ diff --git a/public/assets/images/dota2/players/118134220.png b/public/assets/images/dota2/players/118134220.png new file mode 100644 index 0000000000..003f2b9ea9 Binary files /dev/null and b/public/assets/images/dota2/players/118134220.png differ diff --git a/public/assets/images/dota2/players/119576842.png b/public/assets/images/dota2/players/119576842.png new file mode 100644 index 0000000000..7813b44ffa Binary files /dev/null and b/public/assets/images/dota2/players/119576842.png differ diff --git a/public/assets/images/dota2/players/119631156.png b/public/assets/images/dota2/players/119631156.png new file mode 100644 index 0000000000..9522bdf714 Binary files /dev/null and b/public/assets/images/dota2/players/119631156.png differ diff --git a/public/assets/images/dota2/players/121769650.png b/public/assets/images/dota2/players/121769650.png new file mode 100644 index 0000000000..80713dd3ab Binary files /dev/null and b/public/assets/images/dota2/players/121769650.png differ diff --git a/public/assets/images/dota2/players/12231202.png b/public/assets/images/dota2/players/12231202.png new file mode 100644 index 0000000000..c27c8d6442 Binary files /dev/null and b/public/assets/images/dota2/players/12231202.png differ diff --git a/public/assets/images/dota2/players/122867857.png b/public/assets/images/dota2/players/122867857.png new file mode 100644 index 0000000000..aba83b70db Binary files /dev/null and b/public/assets/images/dota2/players/122867857.png differ diff --git a/public/assets/images/dota2/players/124936122.png b/public/assets/images/dota2/players/124936122.png new file mode 100644 index 0000000000..52a5e0cffc Binary files /dev/null and b/public/assets/images/dota2/players/124936122.png differ diff --git a/public/assets/images/dota2/players/125581247.png b/public/assets/images/dota2/players/125581247.png new file mode 100644 index 0000000000..36cc98ac7b Binary files /dev/null and b/public/assets/images/dota2/players/125581247.png differ diff --git a/public/assets/images/dota2/players/126417273.png b/public/assets/images/dota2/players/126417273.png new file mode 100644 index 0000000000..4e7395bd1f Binary files /dev/null and b/public/assets/images/dota2/players/126417273.png differ diff --git a/public/assets/images/dota2/players/129585121.png b/public/assets/images/dota2/players/129585121.png new file mode 100644 index 0000000000..fb32a42bb4 Binary files /dev/null and b/public/assets/images/dota2/players/129585121.png differ diff --git a/public/assets/images/dota2/players/129958758.png b/public/assets/images/dota2/players/129958758.png new file mode 100644 index 0000000000..bfb110d9e7 Binary files /dev/null and b/public/assets/images/dota2/players/129958758.png differ diff --git a/public/assets/images/dota2/players/130416036.png b/public/assets/images/dota2/players/130416036.png new file mode 100644 index 0000000000..543ed45d95 Binary files /dev/null and b/public/assets/images/dota2/players/130416036.png differ diff --git a/public/assets/images/dota2/players/130801103.png b/public/assets/images/dota2/players/130801103.png new file mode 100644 index 0000000000..998cb32152 Binary files /dev/null and b/public/assets/images/dota2/players/130801103.png differ diff --git a/public/assets/images/dota2/players/131237305.png b/public/assets/images/dota2/players/131237305.png new file mode 100644 index 0000000000..5c62530c8d Binary files /dev/null and b/public/assets/images/dota2/players/131237305.png differ diff --git a/public/assets/images/dota2/players/132309493.png b/public/assets/images/dota2/players/132309493.png new file mode 100644 index 0000000000..979a823352 Binary files /dev/null and b/public/assets/images/dota2/players/132309493.png differ diff --git a/public/assets/images/dota2/players/132851371.png b/public/assets/images/dota2/players/132851371.png new file mode 100644 index 0000000000..5bdc014881 Binary files /dev/null and b/public/assets/images/dota2/players/132851371.png differ diff --git a/public/assets/images/dota2/players/134276083.png b/public/assets/images/dota2/players/134276083.png new file mode 100644 index 0000000000..0958ae2215 Binary files /dev/null and b/public/assets/images/dota2/players/134276083.png differ diff --git a/public/assets/images/dota2/players/134556694.png b/public/assets/images/dota2/players/134556694.png new file mode 100644 index 0000000000..550440f692 Binary files /dev/null and b/public/assets/images/dota2/players/134556694.png differ diff --git a/public/assets/images/dota2/players/135878232.png b/public/assets/images/dota2/players/135878232.png new file mode 100644 index 0000000000..63dd5a526f Binary files /dev/null and b/public/assets/images/dota2/players/135878232.png differ diff --git a/public/assets/images/dota2/players/136186119.png b/public/assets/images/dota2/players/136186119.png new file mode 100644 index 0000000000..f9f81105f9 Binary files /dev/null and b/public/assets/images/dota2/players/136186119.png differ diff --git a/public/assets/images/dota2/players/137193239.png b/public/assets/images/dota2/players/137193239.png new file mode 100644 index 0000000000..1d4af49652 Binary files /dev/null and b/public/assets/images/dota2/players/137193239.png differ diff --git a/public/assets/images/dota2/players/137272985.png b/public/assets/images/dota2/players/137272985.png new file mode 100644 index 0000000000..4e7f687939 Binary files /dev/null and b/public/assets/images/dota2/players/137272985.png differ diff --git a/public/assets/images/dota2/players/138543123.png b/public/assets/images/dota2/players/138543123.png new file mode 100644 index 0000000000..4424682d89 Binary files /dev/null and b/public/assets/images/dota2/players/138543123.png differ diff --git a/public/assets/images/dota2/players/139280377.png b/public/assets/images/dota2/players/139280377.png new file mode 100644 index 0000000000..c25dbd82b1 Binary files /dev/null and b/public/assets/images/dota2/players/139280377.png differ diff --git a/public/assets/images/dota2/players/139822354.png b/public/assets/images/dota2/players/139822354.png new file mode 100644 index 0000000000..dcf642db14 Binary files /dev/null and b/public/assets/images/dota2/players/139822354.png differ diff --git a/public/assets/images/dota2/players/139876032.png b/public/assets/images/dota2/players/139876032.png new file mode 100644 index 0000000000..50bd6ad041 Binary files /dev/null and b/public/assets/images/dota2/players/139876032.png differ diff --git a/public/assets/images/dota2/players/139937922.png b/public/assets/images/dota2/players/139937922.png new file mode 100644 index 0000000000..f1e13acd76 Binary files /dev/null and b/public/assets/images/dota2/players/139937922.png differ diff --git a/public/assets/images/dota2/players/140153524.png b/public/assets/images/dota2/players/140153524.png new file mode 100644 index 0000000000..a46cf4b96c Binary files /dev/null and b/public/assets/images/dota2/players/140153524.png differ diff --git a/public/assets/images/dota2/players/142139318.png b/public/assets/images/dota2/players/142139318.png new file mode 100644 index 0000000000..93cb4abfd8 Binary files /dev/null and b/public/assets/images/dota2/players/142139318.png differ diff --git a/public/assets/images/dota2/players/142750189.png b/public/assets/images/dota2/players/142750189.png new file mode 100644 index 0000000000..02bff38ede Binary files /dev/null and b/public/assets/images/dota2/players/142750189.png differ diff --git a/public/assets/images/dota2/players/143693439.png b/public/assets/images/dota2/players/143693439.png new file mode 100644 index 0000000000..a5c6a5b8e6 Binary files /dev/null and b/public/assets/images/dota2/players/143693439.png differ diff --git a/public/assets/images/dota2/players/145550466.png b/public/assets/images/dota2/players/145550466.png new file mode 100644 index 0000000000..238d99b8e1 Binary files /dev/null and b/public/assets/images/dota2/players/145550466.png differ diff --git a/public/assets/images/dota2/players/148215639.png b/public/assets/images/dota2/players/148215639.png new file mode 100644 index 0000000000..efd61365d9 Binary files /dev/null and b/public/assets/images/dota2/players/148215639.png differ diff --git a/public/assets/images/dota2/players/149486894.png b/public/assets/images/dota2/players/149486894.png new file mode 100644 index 0000000000..6ba02c9102 Binary files /dev/null and b/public/assets/images/dota2/players/149486894.png differ diff --git a/public/assets/images/dota2/players/152545459.png b/public/assets/images/dota2/players/152545459.png new file mode 100644 index 0000000000..c99c79b857 Binary files /dev/null and b/public/assets/images/dota2/players/152545459.png differ diff --git a/public/assets/images/dota2/players/152962063.png b/public/assets/images/dota2/players/152962063.png new file mode 100644 index 0000000000..e7e6c4c229 Binary files /dev/null and b/public/assets/images/dota2/players/152962063.png differ diff --git a/public/assets/images/dota2/players/153836240.png b/public/assets/images/dota2/players/153836240.png new file mode 100644 index 0000000000..e2176dff4d Binary files /dev/null and b/public/assets/images/dota2/players/153836240.png differ diff --git a/public/assets/images/dota2/players/154715080.png b/public/assets/images/dota2/players/154715080.png new file mode 100644 index 0000000000..ce5b31fc91 Binary files /dev/null and b/public/assets/images/dota2/players/154715080.png differ diff --git a/public/assets/images/dota2/players/155332459.png b/public/assets/images/dota2/players/155332459.png new file mode 100644 index 0000000000..e61fee6dcc Binary files /dev/null and b/public/assets/images/dota2/players/155332459.png differ diff --git a/public/assets/images/dota2/players/155494381.png b/public/assets/images/dota2/players/155494381.png new file mode 100644 index 0000000000..00a8543305 Binary files /dev/null and b/public/assets/images/dota2/players/155494381.png differ diff --git a/public/assets/images/dota2/players/156662698.png b/public/assets/images/dota2/players/156662698.png new file mode 100644 index 0000000000..edc1dc506c Binary files /dev/null and b/public/assets/images/dota2/players/156662698.png differ diff --git a/public/assets/images/dota2/players/157475523.png b/public/assets/images/dota2/players/157475523.png new file mode 100644 index 0000000000..1b8d9e4e83 Binary files /dev/null and b/public/assets/images/dota2/players/157475523.png differ diff --git a/public/assets/images/dota2/players/157989498.png b/public/assets/images/dota2/players/157989498.png new file mode 100644 index 0000000000..12224f713a Binary files /dev/null and b/public/assets/images/dota2/players/157989498.png differ diff --git a/public/assets/images/dota2/players/159020918.png b/public/assets/images/dota2/players/159020918.png new file mode 100644 index 0000000000..1dddff3335 Binary files /dev/null and b/public/assets/images/dota2/players/159020918.png differ diff --git a/public/assets/images/dota2/players/164532005.png b/public/assets/images/dota2/players/164532005.png new file mode 100644 index 0000000000..f0080a2eed Binary files /dev/null and b/public/assets/images/dota2/players/164532005.png differ diff --git a/public/assets/images/dota2/players/164685175.png b/public/assets/images/dota2/players/164685175.png new file mode 100644 index 0000000000..a9372cb19f Binary files /dev/null and b/public/assets/images/dota2/players/164685175.png differ diff --git a/public/assets/images/dota2/players/168028715.png b/public/assets/images/dota2/players/168028715.png new file mode 100644 index 0000000000..7d430dc904 Binary files /dev/null and b/public/assets/images/dota2/players/168028715.png differ diff --git a/public/assets/images/dota2/players/169025618.png b/public/assets/images/dota2/players/169025618.png new file mode 100644 index 0000000000..29c94dede2 Binary files /dev/null and b/public/assets/images/dota2/players/169025618.png differ diff --git a/public/assets/images/dota2/players/169181898.png b/public/assets/images/dota2/players/169181898.png new file mode 100644 index 0000000000..8733048921 Binary files /dev/null and b/public/assets/images/dota2/players/169181898.png differ diff --git a/public/assets/images/dota2/players/171981096.png b/public/assets/images/dota2/players/171981096.png new file mode 100644 index 0000000000..bdb72023ca Binary files /dev/null and b/public/assets/images/dota2/players/171981096.png differ diff --git a/public/assets/images/dota2/players/172424257.png b/public/assets/images/dota2/players/172424257.png new file mode 100644 index 0000000000..a8df8162bf Binary files /dev/null and b/public/assets/images/dota2/players/172424257.png differ diff --git a/public/assets/images/dota2/players/173476224.png b/public/assets/images/dota2/players/173476224.png new file mode 100644 index 0000000000..9c002fce63 Binary files /dev/null and b/public/assets/images/dota2/players/173476224.png differ diff --git a/public/assets/images/dota2/players/173880329.png b/public/assets/images/dota2/players/173880329.png new file mode 100644 index 0000000000..2ee220e2c2 Binary files /dev/null and b/public/assets/images/dota2/players/173880329.png differ diff --git a/public/assets/images/dota2/players/176184718.png b/public/assets/images/dota2/players/176184718.png new file mode 100644 index 0000000000..d5e3de8a13 Binary files /dev/null and b/public/assets/images/dota2/players/176184718.png differ diff --git a/public/assets/images/dota2/players/177085220.png b/public/assets/images/dota2/players/177085220.png new file mode 100644 index 0000000000..25b8e1b519 Binary files /dev/null and b/public/assets/images/dota2/players/177085220.png differ diff --git a/public/assets/images/dota2/players/177416702.png b/public/assets/images/dota2/players/177416702.png new file mode 100644 index 0000000000..898d5e484d Binary files /dev/null and b/public/assets/images/dota2/players/177416702.png differ diff --git a/public/assets/images/dota2/players/180012313.png b/public/assets/images/dota2/players/180012313.png new file mode 100644 index 0000000000..82a1cf5441 Binary files /dev/null and b/public/assets/images/dota2/players/180012313.png differ diff --git a/public/assets/images/dota2/players/18180970.png b/public/assets/images/dota2/players/18180970.png new file mode 100644 index 0000000000..e096442a74 Binary files /dev/null and b/public/assets/images/dota2/players/18180970.png differ diff --git a/public/assets/images/dota2/players/182331313.png b/public/assets/images/dota2/players/182331313.png new file mode 100644 index 0000000000..44cf1311fa Binary files /dev/null and b/public/assets/images/dota2/players/182331313.png differ diff --git a/public/assets/images/dota2/players/182993582.png b/public/assets/images/dota2/players/182993582.png new file mode 100644 index 0000000000..58d6fc6c3c Binary files /dev/null and b/public/assets/images/dota2/players/182993582.png differ diff --git a/public/assets/images/dota2/players/184950344.png b/public/assets/images/dota2/players/184950344.png new file mode 100644 index 0000000000..2edb6140ba Binary files /dev/null and b/public/assets/images/dota2/players/184950344.png differ diff --git a/public/assets/images/dota2/players/186627166.png b/public/assets/images/dota2/players/186627166.png new file mode 100644 index 0000000000..d10d443e11 Binary files /dev/null and b/public/assets/images/dota2/players/186627166.png differ diff --git a/public/assets/images/dota2/players/187619311.png b/public/assets/images/dota2/players/187619311.png new file mode 100644 index 0000000000..4c3d461b5b Binary files /dev/null and b/public/assets/images/dota2/players/187619311.png differ diff --git a/public/assets/images/dota2/players/192914280.png b/public/assets/images/dota2/players/192914280.png new file mode 100644 index 0000000000..73978b9ad3 Binary files /dev/null and b/public/assets/images/dota2/players/192914280.png differ diff --git a/public/assets/images/dota2/players/194521913.png b/public/assets/images/dota2/players/194521913.png new file mode 100644 index 0000000000..30c50be7bc Binary files /dev/null and b/public/assets/images/dota2/players/194521913.png differ diff --git a/public/assets/images/dota2/players/19672354.png b/public/assets/images/dota2/players/19672354.png new file mode 100644 index 0000000000..448761f794 Binary files /dev/null and b/public/assets/images/dota2/players/19672354.png differ diff --git a/public/assets/images/dota2/players/205813150.png b/public/assets/images/dota2/players/205813150.png new file mode 100644 index 0000000000..152af916ab Binary files /dev/null and b/public/assets/images/dota2/players/205813150.png differ diff --git a/public/assets/images/dota2/players/207829314.png b/public/assets/images/dota2/players/207829314.png new file mode 100644 index 0000000000..2d74c8b50c Binary files /dev/null and b/public/assets/images/dota2/players/207829314.png differ diff --git a/public/assets/images/dota2/players/21289303.png b/public/assets/images/dota2/players/21289303.png new file mode 100644 index 0000000000..4c91262410 Binary files /dev/null and b/public/assets/images/dota2/players/21289303.png differ diff --git a/public/assets/images/dota2/players/21604967.png b/public/assets/images/dota2/players/21604967.png new file mode 100644 index 0000000000..e2d03b7b79 Binary files /dev/null and b/public/assets/images/dota2/players/21604967.png differ diff --git a/public/assets/images/dota2/players/221666230.png b/public/assets/images/dota2/players/221666230.png new file mode 100644 index 0000000000..848c96ecb9 Binary files /dev/null and b/public/assets/images/dota2/players/221666230.png differ diff --git a/public/assets/images/dota2/players/234699894.png b/public/assets/images/dota2/players/234699894.png new file mode 100644 index 0000000000..0cccd66b3b Binary files /dev/null and b/public/assets/images/dota2/players/234699894.png differ diff --git a/public/assets/images/dota2/players/242697694.png b/public/assets/images/dota2/players/242697694.png new file mode 100644 index 0000000000..e339fa8ccd Binary files /dev/null and b/public/assets/images/dota2/players/242697694.png differ diff --git a/public/assets/images/dota2/players/250114507.png b/public/assets/images/dota2/players/250114507.png new file mode 100644 index 0000000000..847bde36ab Binary files /dev/null and b/public/assets/images/dota2/players/250114507.png differ diff --git a/public/assets/images/dota2/players/255219872.png b/public/assets/images/dota2/players/255219872.png new file mode 100644 index 0000000000..8a6db65b7e Binary files /dev/null and b/public/assets/images/dota2/players/255219872.png differ diff --git a/public/assets/images/dota2/players/256269737.png b/public/assets/images/dota2/players/256269737.png new file mode 100644 index 0000000000..c03d26236c Binary files /dev/null and b/public/assets/images/dota2/players/256269737.png differ diff --git a/public/assets/images/dota2/players/25907144.png b/public/assets/images/dota2/players/25907144.png new file mode 100644 index 0000000000..77500fed2f Binary files /dev/null and b/public/assets/images/dota2/players/25907144.png differ diff --git a/public/assets/images/dota2/players/26771994.png b/public/assets/images/dota2/players/26771994.png new file mode 100644 index 0000000000..9f5d5f72c8 Binary files /dev/null and b/public/assets/images/dota2/players/26771994.png differ diff --git a/public/assets/images/dota2/players/27178898.png b/public/assets/images/dota2/players/27178898.png new file mode 100644 index 0000000000..78fc95d00a Binary files /dev/null and b/public/assets/images/dota2/players/27178898.png differ diff --git a/public/assets/images/dota2/players/28291366.png b/public/assets/images/dota2/players/28291366.png new file mode 100644 index 0000000000..a01c4292d3 Binary files /dev/null and b/public/assets/images/dota2/players/28291366.png differ diff --git a/public/assets/images/dota2/players/292921272.png b/public/assets/images/dota2/players/292921272.png new file mode 100644 index 0000000000..40e02a0e86 Binary files /dev/null and b/public/assets/images/dota2/players/292921272.png differ diff --git a/public/assets/images/dota2/players/30237211.png b/public/assets/images/dota2/players/30237211.png new file mode 100644 index 0000000000..1bb9dfe467 Binary files /dev/null and b/public/assets/images/dota2/players/30237211.png differ diff --git a/public/assets/images/dota2/players/311360822.png b/public/assets/images/dota2/players/311360822.png new file mode 100644 index 0000000000..c6f376f93f Binary files /dev/null and b/public/assets/images/dota2/players/311360822.png differ diff --git a/public/assets/images/dota2/players/315657960.png b/public/assets/images/dota2/players/315657960.png new file mode 100644 index 0000000000..dd32b4ed81 Binary files /dev/null and b/public/assets/images/dota2/players/315657960.png differ diff --git a/public/assets/images/dota2/players/323792491.png b/public/assets/images/dota2/players/323792491.png new file mode 100644 index 0000000000..717e965501 Binary files /dev/null and b/public/assets/images/dota2/players/323792491.png differ diff --git a/public/assets/images/dota2/players/34505203.png b/public/assets/images/dota2/players/34505203.png new file mode 100644 index 0000000000..3b5647dab0 Binary files /dev/null and b/public/assets/images/dota2/players/34505203.png differ diff --git a/public/assets/images/dota2/players/37658157.png b/public/assets/images/dota2/players/37658157.png new file mode 100644 index 0000000000..acc47c0b45 Binary files /dev/null and b/public/assets/images/dota2/players/37658157.png differ diff --git a/public/assets/images/dota2/players/38628747.png b/public/assets/images/dota2/players/38628747.png new file mode 100644 index 0000000000..d2dc8be762 Binary files /dev/null and b/public/assets/images/dota2/players/38628747.png differ diff --git a/public/assets/images/dota2/players/3916428.png b/public/assets/images/dota2/players/3916428.png new file mode 100644 index 0000000000..e7c201d1fc Binary files /dev/null and b/public/assets/images/dota2/players/3916428.png differ diff --git a/public/assets/images/dota2/players/3940262.png b/public/assets/images/dota2/players/3940262.png new file mode 100644 index 0000000000..78df9669af Binary files /dev/null and b/public/assets/images/dota2/players/3940262.png differ diff --git a/public/assets/images/dota2/players/397462905.png b/public/assets/images/dota2/players/397462905.png new file mode 100644 index 0000000000..73140cbe08 Binary files /dev/null and b/public/assets/images/dota2/players/397462905.png differ diff --git a/public/assets/images/dota2/players/401792574.png b/public/assets/images/dota2/players/401792574.png new file mode 100644 index 0000000000..2f7004d042 Binary files /dev/null and b/public/assets/images/dota2/players/401792574.png differ diff --git a/public/assets/images/dota2/players/40547474.png b/public/assets/images/dota2/players/40547474.png new file mode 100644 index 0000000000..69173583e6 Binary files /dev/null and b/public/assets/images/dota2/players/40547474.png differ diff --git a/public/assets/images/dota2/players/41231571.png b/public/assets/images/dota2/players/41231571.png new file mode 100644 index 0000000000..be540f50aa Binary files /dev/null and b/public/assets/images/dota2/players/41231571.png differ diff --git a/public/assets/images/dota2/players/412753955.png b/public/assets/images/dota2/players/412753955.png new file mode 100644 index 0000000000..e49971e11c Binary files /dev/null and b/public/assets/images/dota2/players/412753955.png differ diff --git a/public/assets/images/dota2/players/41288955.png b/public/assets/images/dota2/players/41288955.png new file mode 100644 index 0000000000..3d38f93389 Binary files /dev/null and b/public/assets/images/dota2/players/41288955.png differ diff --git a/public/assets/images/dota2/players/41470731.png b/public/assets/images/dota2/players/41470731.png new file mode 100644 index 0000000000..0da4a58fde Binary files /dev/null and b/public/assets/images/dota2/players/41470731.png differ diff --git a/public/assets/images/dota2/players/4281729.png b/public/assets/images/dota2/players/4281729.png new file mode 100644 index 0000000000..4c27063137 Binary files /dev/null and b/public/assets/images/dota2/players/4281729.png differ diff --git a/public/assets/images/dota2/players/43276219.png b/public/assets/images/dota2/players/43276219.png new file mode 100644 index 0000000000..f062f62eab Binary files /dev/null and b/public/assets/images/dota2/players/43276219.png differ diff --git a/public/assets/images/dota2/players/47434686.png b/public/assets/images/dota2/players/47434686.png new file mode 100644 index 0000000000..042de8f5f2 Binary files /dev/null and b/public/assets/images/dota2/players/47434686.png differ diff --git a/public/assets/images/dota2/players/49317728.png b/public/assets/images/dota2/players/49317728.png new file mode 100644 index 0000000000..60691d9232 Binary files /dev/null and b/public/assets/images/dota2/players/49317728.png differ diff --git a/public/assets/images/dota2/players/50828662.png b/public/assets/images/dota2/players/50828662.png new file mode 100644 index 0000000000..00aa911d24 Binary files /dev/null and b/public/assets/images/dota2/players/50828662.png differ diff --git a/public/assets/images/dota2/players/5150808.png b/public/assets/images/dota2/players/5150808.png new file mode 100644 index 0000000000..e3692b5142 Binary files /dev/null and b/public/assets/images/dota2/players/5150808.png differ diff --git a/public/assets/images/dota2/players/54580962.png b/public/assets/images/dota2/players/54580962.png new file mode 100644 index 0000000000..a7ffd873a9 Binary files /dev/null and b/public/assets/images/dota2/players/54580962.png differ diff --git a/public/assets/images/dota2/players/6922000.png b/public/assets/images/dota2/players/6922000.png new file mode 100644 index 0000000000..e1c5a19a05 Binary files /dev/null and b/public/assets/images/dota2/players/6922000.png differ diff --git a/public/assets/images/dota2/players/70388657.png b/public/assets/images/dota2/players/70388657.png new file mode 100644 index 0000000000..ec3b08ce6b Binary files /dev/null and b/public/assets/images/dota2/players/70388657.png differ diff --git a/public/assets/images/dota2/players/72312627.png b/public/assets/images/dota2/players/72312627.png new file mode 100644 index 0000000000..19d139db0e Binary files /dev/null and b/public/assets/images/dota2/players/72312627.png differ diff --git a/public/assets/images/dota2/players/73562326.png b/public/assets/images/dota2/players/73562326.png new file mode 100644 index 0000000000..dcf592e531 Binary files /dev/null and b/public/assets/images/dota2/players/73562326.png differ diff --git a/public/assets/images/dota2/players/75750590.png b/public/assets/images/dota2/players/75750590.png new file mode 100644 index 0000000000..b008f3b7f3 Binary files /dev/null and b/public/assets/images/dota2/players/75750590.png differ diff --git a/public/assets/images/dota2/players/76482434.png b/public/assets/images/dota2/players/76482434.png new file mode 100644 index 0000000000..76dfaf2bac Binary files /dev/null and b/public/assets/images/dota2/players/76482434.png differ diff --git a/public/assets/images/dota2/players/77490514.png b/public/assets/images/dota2/players/77490514.png new file mode 100644 index 0000000000..76b2e080c9 Binary files /dev/null and b/public/assets/images/dota2/players/77490514.png differ diff --git a/public/assets/images/dota2/players/80929738.png b/public/assets/images/dota2/players/80929738.png new file mode 100644 index 0000000000..b6a70a0c7f Binary files /dev/null and b/public/assets/images/dota2/players/80929738.png differ diff --git a/public/assets/images/dota2/players/82262664.png b/public/assets/images/dota2/players/82262664.png new file mode 100644 index 0000000000..bd778733ba Binary files /dev/null and b/public/assets/images/dota2/players/82262664.png differ diff --git a/public/assets/images/dota2/players/82327674.png b/public/assets/images/dota2/players/82327674.png new file mode 100644 index 0000000000..db43e84c78 Binary files /dev/null and b/public/assets/images/dota2/players/82327674.png differ diff --git a/public/assets/images/dota2/players/84429681.png b/public/assets/images/dota2/players/84429681.png new file mode 100644 index 0000000000..7cc721f1e9 Binary files /dev/null and b/public/assets/images/dota2/players/84429681.png differ diff --git a/public/assets/images/dota2/players/84772440.png b/public/assets/images/dota2/players/84772440.png new file mode 100644 index 0000000000..bee7ea1f9a Binary files /dev/null and b/public/assets/images/dota2/players/84772440.png differ diff --git a/public/assets/images/dota2/players/84853828.png b/public/assets/images/dota2/players/84853828.png new file mode 100644 index 0000000000..681dd2e738 Binary files /dev/null and b/public/assets/images/dota2/players/84853828.png differ diff --git a/public/assets/images/dota2/players/85417034.png b/public/assets/images/dota2/players/85417034.png new file mode 100644 index 0000000000..b80f3f94c3 Binary files /dev/null and b/public/assets/images/dota2/players/85417034.png differ diff --git a/public/assets/images/dota2/players/85805514.png b/public/assets/images/dota2/players/85805514.png new file mode 100644 index 0000000000..a482c83cb3 Binary files /dev/null and b/public/assets/images/dota2/players/85805514.png differ diff --git a/public/assets/images/dota2/players/85937380.png b/public/assets/images/dota2/players/85937380.png new file mode 100644 index 0000000000..4ac4e9dcc0 Binary files /dev/null and b/public/assets/images/dota2/players/85937380.png differ diff --git a/public/assets/images/dota2/players/86698277.png b/public/assets/images/dota2/players/86698277.png new file mode 100644 index 0000000000..7a8c84ab32 Binary files /dev/null and b/public/assets/images/dota2/players/86698277.png differ diff --git a/public/assets/images/dota2/players/86700461.png b/public/assets/images/dota2/players/86700461.png new file mode 100644 index 0000000000..bbf61a97e2 Binary files /dev/null and b/public/assets/images/dota2/players/86700461.png differ diff --git a/public/assets/images/dota2/players/86725175.png b/public/assets/images/dota2/players/86725175.png new file mode 100644 index 0000000000..12368420de Binary files /dev/null and b/public/assets/images/dota2/players/86725175.png differ diff --git a/public/assets/images/dota2/players/86726887.png b/public/assets/images/dota2/players/86726887.png new file mode 100644 index 0000000000..bb2a44f467 Binary files /dev/null and b/public/assets/images/dota2/players/86726887.png differ diff --git a/public/assets/images/dota2/players/86727555.png b/public/assets/images/dota2/players/86727555.png new file mode 100644 index 0000000000..79bbac3d59 Binary files /dev/null and b/public/assets/images/dota2/players/86727555.png differ diff --git a/public/assets/images/dota2/players/86738694.png b/public/assets/images/dota2/players/86738694.png new file mode 100644 index 0000000000..6813fc28e1 Binary files /dev/null and b/public/assets/images/dota2/players/86738694.png differ diff --git a/public/assets/images/dota2/players/86745912.png b/public/assets/images/dota2/players/86745912.png new file mode 100644 index 0000000000..27de60d98b Binary files /dev/null and b/public/assets/images/dota2/players/86745912.png differ diff --git a/public/assets/images/dota2/players/86750262.png b/public/assets/images/dota2/players/86750262.png new file mode 100644 index 0000000000..49ff119b3e Binary files /dev/null and b/public/assets/images/dota2/players/86750262.png differ diff --git a/public/assets/images/dota2/players/86751819.png b/public/assets/images/dota2/players/86751819.png new file mode 100644 index 0000000000..4b0d382930 Binary files /dev/null and b/public/assets/images/dota2/players/86751819.png differ diff --git a/public/assets/images/dota2/players/86761682.png b/public/assets/images/dota2/players/86761682.png new file mode 100644 index 0000000000..73b0e41abe Binary files /dev/null and b/public/assets/images/dota2/players/86761682.png differ diff --git a/public/assets/images/dota2/players/86785083.png b/public/assets/images/dota2/players/86785083.png new file mode 100644 index 0000000000..e6841519cd Binary files /dev/null and b/public/assets/images/dota2/players/86785083.png differ diff --git a/public/assets/images/dota2/players/86799300.png b/public/assets/images/dota2/players/86799300.png new file mode 100644 index 0000000000..8421a7924e Binary files /dev/null and b/public/assets/images/dota2/players/86799300.png differ diff --git a/public/assets/images/dota2/players/86953414.png b/public/assets/images/dota2/players/86953414.png new file mode 100644 index 0000000000..20bb962198 Binary files /dev/null and b/public/assets/images/dota2/players/86953414.png differ diff --git a/public/assets/images/dota2/players/87012746.png b/public/assets/images/dota2/players/87012746.png new file mode 100644 index 0000000000..14c369e111 Binary files /dev/null and b/public/assets/images/dota2/players/87012746.png differ diff --git a/public/assets/images/dota2/players/87177591.png b/public/assets/images/dota2/players/87177591.png new file mode 100644 index 0000000000..69c737331a Binary files /dev/null and b/public/assets/images/dota2/players/87177591.png differ diff --git a/public/assets/images/dota2/players/87196890.png b/public/assets/images/dota2/players/87196890.png new file mode 100644 index 0000000000..31d63e389f Binary files /dev/null and b/public/assets/images/dota2/players/87196890.png differ diff --git a/public/assets/images/dota2/players/87276347.png b/public/assets/images/dota2/players/87276347.png new file mode 100644 index 0000000000..b0e4234f84 Binary files /dev/null and b/public/assets/images/dota2/players/87276347.png differ diff --git a/public/assets/images/dota2/players/87278757.png b/public/assets/images/dota2/players/87278757.png new file mode 100644 index 0000000000..0e17cb485b Binary files /dev/null and b/public/assets/images/dota2/players/87278757.png differ diff --git a/public/assets/images/dota2/players/87285329.png b/public/assets/images/dota2/players/87285329.png new file mode 100644 index 0000000000..5e0ce73f4e Binary files /dev/null and b/public/assets/images/dota2/players/87285329.png differ diff --git a/public/assets/images/dota2/players/87382579.png b/public/assets/images/dota2/players/87382579.png new file mode 100644 index 0000000000..6d17ced184 Binary files /dev/null and b/public/assets/images/dota2/players/87382579.png differ diff --git a/public/assets/images/dota2/players/87586992.png b/public/assets/images/dota2/players/87586992.png new file mode 100644 index 0000000000..e110c7561f Binary files /dev/null and b/public/assets/images/dota2/players/87586992.png differ diff --git a/public/assets/images/dota2/players/88271237.png b/public/assets/images/dota2/players/88271237.png new file mode 100644 index 0000000000..cd72d53a96 Binary files /dev/null and b/public/assets/images/dota2/players/88271237.png differ diff --git a/public/assets/images/dota2/players/88508515.png b/public/assets/images/dota2/players/88508515.png new file mode 100644 index 0000000000..3d9ce0fcec Binary files /dev/null and b/public/assets/images/dota2/players/88508515.png differ diff --git a/public/assets/images/dota2/players/88553213.png b/public/assets/images/dota2/players/88553213.png new file mode 100644 index 0000000000..adb840a0aa Binary files /dev/null and b/public/assets/images/dota2/players/88553213.png differ diff --git a/public/assets/images/dota2/players/88933594.png b/public/assets/images/dota2/players/88933594.png new file mode 100644 index 0000000000..c2c43a603c Binary files /dev/null and b/public/assets/images/dota2/players/88933594.png differ diff --git a/public/assets/images/dota2/players/89117038.png b/public/assets/images/dota2/players/89117038.png new file mode 100644 index 0000000000..8c9777d06c Binary files /dev/null and b/public/assets/images/dota2/players/89117038.png differ diff --git a/public/assets/images/dota2/players/89157606.png b/public/assets/images/dota2/players/89157606.png new file mode 100644 index 0000000000..cbdb00c412 Binary files /dev/null and b/public/assets/images/dota2/players/89157606.png differ diff --git a/public/assets/images/dota2/players/89217927.png b/public/assets/images/dota2/players/89217927.png new file mode 100644 index 0000000000..9c59860853 Binary files /dev/null and b/public/assets/images/dota2/players/89217927.png differ diff --git a/public/assets/images/dota2/players/89249333.png b/public/assets/images/dota2/players/89249333.png new file mode 100644 index 0000000000..996ec57aba Binary files /dev/null and b/public/assets/images/dota2/players/89249333.png differ diff --git a/public/assets/images/dota2/players/89269794.png b/public/assets/images/dota2/players/89269794.png new file mode 100644 index 0000000000..66aadea814 Binary files /dev/null and b/public/assets/images/dota2/players/89269794.png differ diff --git a/public/assets/images/dota2/players/89407113.png b/public/assets/images/dota2/players/89407113.png new file mode 100644 index 0000000000..89bfee244e Binary files /dev/null and b/public/assets/images/dota2/players/89407113.png differ diff --git a/public/assets/images/dota2/players/89423756.png b/public/assets/images/dota2/players/89423756.png new file mode 100644 index 0000000000..a42c123735 Binary files /dev/null and b/public/assets/images/dota2/players/89423756.png differ diff --git a/public/assets/images/dota2/players/89550641.png b/public/assets/images/dota2/players/89550641.png new file mode 100644 index 0000000000..9ba6dde0b9 Binary files /dev/null and b/public/assets/images/dota2/players/89550641.png differ diff --git a/public/assets/images/dota2/players/89598554.png b/public/assets/images/dota2/players/89598554.png new file mode 100644 index 0000000000..caf797b6a3 Binary files /dev/null and b/public/assets/images/dota2/players/89598554.png differ diff --git a/public/assets/images/dota2/players/89603649.png b/public/assets/images/dota2/players/89603649.png new file mode 100644 index 0000000000..76e3f29fc1 Binary files /dev/null and b/public/assets/images/dota2/players/89603649.png differ diff --git a/public/assets/images/dota2/players/89871557.png b/public/assets/images/dota2/players/89871557.png new file mode 100644 index 0000000000..3b18a2f720 Binary files /dev/null and b/public/assets/images/dota2/players/89871557.png differ diff --git a/public/assets/images/dota2/players/90882159.png b/public/assets/images/dota2/players/90882159.png new file mode 100644 index 0000000000..11034ee15f Binary files /dev/null and b/public/assets/images/dota2/players/90882159.png differ diff --git a/public/assets/images/dota2/players/90892734.png b/public/assets/images/dota2/players/90892734.png new file mode 100644 index 0000000000..23cf1b250d Binary files /dev/null and b/public/assets/images/dota2/players/90892734.png differ diff --git a/public/assets/images/dota2/players/91064780.png b/public/assets/images/dota2/players/91064780.png new file mode 100644 index 0000000000..760372d4af Binary files /dev/null and b/public/assets/images/dota2/players/91064780.png differ diff --git a/public/assets/images/dota2/players/91162296.png b/public/assets/images/dota2/players/91162296.png new file mode 100644 index 0000000000..bba25c331f Binary files /dev/null and b/public/assets/images/dota2/players/91162296.png differ diff --git a/public/assets/images/dota2/players/91369376.png b/public/assets/images/dota2/players/91369376.png new file mode 100644 index 0000000000..c2107ff9c9 Binary files /dev/null and b/public/assets/images/dota2/players/91369376.png differ diff --git a/public/assets/images/dota2/players/91443418.png b/public/assets/images/dota2/players/91443418.png new file mode 100644 index 0000000000..8e9cf53e7c Binary files /dev/null and b/public/assets/images/dota2/players/91443418.png differ diff --git a/public/assets/images/dota2/players/91654584.png b/public/assets/images/dota2/players/91654584.png new file mode 100644 index 0000000000..56a47ac952 Binary files /dev/null and b/public/assets/images/dota2/players/91654584.png differ diff --git a/public/assets/images/dota2/players/91698091.png b/public/assets/images/dota2/players/91698091.png new file mode 100644 index 0000000000..f1126c73d7 Binary files /dev/null and b/public/assets/images/dota2/players/91698091.png differ diff --git a/public/assets/images/dota2/players/91981924.png b/public/assets/images/dota2/players/91981924.png new file mode 100644 index 0000000000..c40fd226af Binary files /dev/null and b/public/assets/images/dota2/players/91981924.png differ diff --git a/public/assets/images/dota2/players/92423451.png b/public/assets/images/dota2/players/92423451.png new file mode 100644 index 0000000000..047b5002d3 Binary files /dev/null and b/public/assets/images/dota2/players/92423451.png differ diff --git a/public/assets/images/dota2/players/92847434.png b/public/assets/images/dota2/players/92847434.png new file mode 100644 index 0000000000..8707a1d542 Binary files /dev/null and b/public/assets/images/dota2/players/92847434.png differ diff --git a/public/assets/images/dota2/players/92949094.png b/public/assets/images/dota2/players/92949094.png new file mode 100644 index 0000000000..ced2a9907e Binary files /dev/null and b/public/assets/images/dota2/players/92949094.png differ diff --git a/public/assets/images/dota2/players/93119769.png b/public/assets/images/dota2/players/93119769.png new file mode 100644 index 0000000000..1ea1f08d1e Binary files /dev/null and b/public/assets/images/dota2/players/93119769.png differ diff --git a/public/assets/images/dota2/players/93552791.png b/public/assets/images/dota2/players/93552791.png new file mode 100644 index 0000000000..fde5a7c1eb Binary files /dev/null and b/public/assets/images/dota2/players/93552791.png differ diff --git a/public/assets/images/dota2/players/93616251.png b/public/assets/images/dota2/players/93616251.png new file mode 100644 index 0000000000..fabe646541 Binary files /dev/null and b/public/assets/images/dota2/players/93616251.png differ diff --git a/public/assets/images/dota2/players/94004717.png b/public/assets/images/dota2/players/94004717.png new file mode 100644 index 0000000000..071328c9cb Binary files /dev/null and b/public/assets/images/dota2/players/94004717.png differ diff --git a/public/assets/images/dota2/players/94049589.png b/public/assets/images/dota2/players/94049589.png new file mode 100644 index 0000000000..6103f7ecb8 Binary files /dev/null and b/public/assets/images/dota2/players/94049589.png differ diff --git a/public/assets/images/dota2/players/94054712.png b/public/assets/images/dota2/players/94054712.png new file mode 100644 index 0000000000..5259d6b219 Binary files /dev/null and b/public/assets/images/dota2/players/94054712.png differ diff --git a/public/assets/images/dota2/players/94155156.png b/public/assets/images/dota2/players/94155156.png new file mode 100644 index 0000000000..10d9952187 Binary files /dev/null and b/public/assets/images/dota2/players/94155156.png differ diff --git a/public/assets/images/dota2/players/94296097.png b/public/assets/images/dota2/players/94296097.png new file mode 100644 index 0000000000..f05f8c3bff Binary files /dev/null and b/public/assets/images/dota2/players/94296097.png differ diff --git a/public/assets/images/dota2/players/94338967.png b/public/assets/images/dota2/players/94338967.png new file mode 100644 index 0000000000..f7cecc041a Binary files /dev/null and b/public/assets/images/dota2/players/94338967.png differ diff --git a/public/assets/images/dota2/players/94738847.png b/public/assets/images/dota2/players/94738847.png new file mode 100644 index 0000000000..1f4b3d78de Binary files /dev/null and b/public/assets/images/dota2/players/94738847.png differ diff --git a/public/assets/images/dota2/players/95430068.png b/public/assets/images/dota2/players/95430068.png new file mode 100644 index 0000000000..0016c76da1 Binary files /dev/null and b/public/assets/images/dota2/players/95430068.png differ diff --git a/public/assets/images/dota2/players/97590558.png b/public/assets/images/dota2/players/97590558.png new file mode 100644 index 0000000000..2059420ecf Binary files /dev/null and b/public/assets/images/dota2/players/97590558.png differ diff --git a/public/assets/images/dota2/players/97658618.png b/public/assets/images/dota2/players/97658618.png new file mode 100644 index 0000000000..6cc49cc206 Binary files /dev/null and b/public/assets/images/dota2/players/97658618.png differ diff --git a/public/assets/images/dota2/players/98172857.png b/public/assets/images/dota2/players/98172857.png new file mode 100644 index 0000000000..fb3660226a Binary files /dev/null and b/public/assets/images/dota2/players/98172857.png differ diff --git a/public/assets/images/dota2/players/98878010.png b/public/assets/images/dota2/players/98878010.png new file mode 100644 index 0000000000..8426441ab7 Binary files /dev/null and b/public/assets/images/dota2/players/98878010.png differ diff --git a/public/assets/images/dota2/players/98887913.png b/public/assets/images/dota2/players/98887913.png new file mode 100644 index 0000000000..2de57d16c8 Binary files /dev/null and b/public/assets/images/dota2/players/98887913.png differ diff --git a/public/assets/images/dota2/players/99796146.png b/public/assets/images/dota2/players/99796146.png new file mode 100644 index 0000000000..ef4ca8c3f7 Binary files /dev/null and b/public/assets/images/dota2/players/99796146.png differ diff --git a/public/assets/images/dota2/players/portrait.png b/public/assets/images/dota2/players/portrait.png new file mode 100644 index 0000000000..6b1510a6b1 Binary files /dev/null and b/public/assets/images/dota2/players/portrait.png differ diff --git a/public/assets/images/dota2/radiant_kill.png b/public/assets/images/dota2/radiant_kill.png new file mode 100644 index 0000000000..7ef7e65669 Binary files /dev/null and b/public/assets/images/dota2/radiant_kill.png differ diff --git a/public/assets/images/dota2/radiantcourier.png b/public/assets/images/dota2/radiantcourier.png new file mode 100644 index 0000000000..dfd534c40d Binary files /dev/null and b/public/assets/images/dota2/radiantcourier.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_0.png b/public/assets/images/dota2/rank_icons/rank_icon_0.png new file mode 100644 index 0000000000..1f2e8e4dd1 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_0.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_1.png b/public/assets/images/dota2/rank_icons/rank_icon_1.png new file mode 100644 index 0000000000..74190a01da Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_1.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_2.png b/public/assets/images/dota2/rank_icons/rank_icon_2.png new file mode 100644 index 0000000000..520a5ab8a2 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_2.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_3.png b/public/assets/images/dota2/rank_icons/rank_icon_3.png new file mode 100644 index 0000000000..ccb75a8098 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_3.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_4.png b/public/assets/images/dota2/rank_icons/rank_icon_4.png new file mode 100644 index 0000000000..b12bc98eef Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_4.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_5.png b/public/assets/images/dota2/rank_icons/rank_icon_5.png new file mode 100644 index 0000000000..921951a6cb Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_5.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_6.png b/public/assets/images/dota2/rank_icons/rank_icon_6.png new file mode 100644 index 0000000000..ff8fac905a Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_6.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_7.png b/public/assets/images/dota2/rank_icons/rank_icon_7.png new file mode 100644 index 0000000000..7b5b4de198 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_7.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_7a.png b/public/assets/images/dota2/rank_icons/rank_icon_7a.png new file mode 100644 index 0000000000..bccb8b3f6e Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_7a.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_7b.png b/public/assets/images/dota2/rank_icons/rank_icon_7b.png new file mode 100644 index 0000000000..da7bb1d6fd Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_7b.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_7c.png b/public/assets/images/dota2/rank_icons/rank_icon_7c.png new file mode 100644 index 0000000000..6521edc456 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_7c.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_8.png b/public/assets/images/dota2/rank_icons/rank_icon_8.png new file mode 100644 index 0000000000..9970e44cc0 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_8.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_8b.png b/public/assets/images/dota2/rank_icons/rank_icon_8b.png new file mode 100644 index 0000000000..c5541a2fc9 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_8b.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_icon_8c.png b/public/assets/images/dota2/rank_icons/rank_icon_8c.png new file mode 100644 index 0000000000..dd8c38923d Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_icon_8c.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_star_1.png b/public/assets/images/dota2/rank_icons/rank_star_1.png new file mode 100644 index 0000000000..0f5f555512 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_star_1.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_star_2.png b/public/assets/images/dota2/rank_icons/rank_star_2.png new file mode 100644 index 0000000000..3aa6f661b3 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_star_2.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_star_3.png b/public/assets/images/dota2/rank_icons/rank_star_3.png new file mode 100644 index 0000000000..9bbddd5b28 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_star_3.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_star_4.png b/public/assets/images/dota2/rank_icons/rank_star_4.png new file mode 100644 index 0000000000..9b1688e97b Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_star_4.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_star_5.png b/public/assets/images/dota2/rank_icons/rank_star_5.png new file mode 100644 index 0000000000..c6af804b71 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_star_5.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_star_6.png b/public/assets/images/dota2/rank_icons/rank_star_6.png new file mode 100644 index 0000000000..6f60edece9 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_star_6.png differ diff --git a/public/assets/images/dota2/rank_icons/rank_star_7.png b/public/assets/images/dota2/rank_icons/rank_star_7.png new file mode 100644 index 0000000000..2fbf563a24 Binary files /dev/null and b/public/assets/images/dota2/rank_icons/rank_star_7.png differ diff --git a/public/assets/images/dota2/refresher_shard.png b/public/assets/images/dota2/refresher_shard.png new file mode 100644 index 0000000000..cb268f5bf2 Binary files /dev/null and b/public/assets/images/dota2/refresher_shard.png differ diff --git a/public/assets/images/dota2/roshan.png b/public/assets/images/dota2/roshan.png new file mode 100644 index 0000000000..da3caf7522 Binary files /dev/null and b/public/assets/images/dota2/roshan.png differ diff --git a/public/assets/images/dota2/runes/0.png b/public/assets/images/dota2/runes/0.png new file mode 100644 index 0000000000..08106d91d6 Binary files /dev/null and b/public/assets/images/dota2/runes/0.png differ diff --git a/public/assets/images/dota2/runes/1.png b/public/assets/images/dota2/runes/1.png new file mode 100644 index 0000000000..643015e148 Binary files /dev/null and b/public/assets/images/dota2/runes/1.png differ diff --git a/public/assets/images/dota2/runes/2.png b/public/assets/images/dota2/runes/2.png new file mode 100644 index 0000000000..8967fd66d8 Binary files /dev/null and b/public/assets/images/dota2/runes/2.png differ diff --git a/public/assets/images/dota2/runes/3.png b/public/assets/images/dota2/runes/3.png new file mode 100644 index 0000000000..3b52f28fbc Binary files /dev/null and b/public/assets/images/dota2/runes/3.png differ diff --git a/public/assets/images/dota2/runes/4.png b/public/assets/images/dota2/runes/4.png new file mode 100644 index 0000000000..e3bbcc5a49 Binary files /dev/null and b/public/assets/images/dota2/runes/4.png differ diff --git a/public/assets/images/dota2/runes/5.png b/public/assets/images/dota2/runes/5.png new file mode 100644 index 0000000000..24d839268c Binary files /dev/null and b/public/assets/images/dota2/runes/5.png differ diff --git a/public/assets/images/dota2/runes/6.png b/public/assets/images/dota2/runes/6.png new file mode 100644 index 0000000000..fbcaac61e1 Binary files /dev/null and b/public/assets/images/dota2/runes/6.png differ diff --git a/public/assets/images/dota2/runes/7.png b/public/assets/images/dota2/runes/7.png new file mode 100644 index 0000000000..c250b6702c Binary files /dev/null and b/public/assets/images/dota2/runes/7.png differ diff --git a/public/assets/images/dota2/runes/8.png b/public/assets/images/dota2/runes/8.png new file mode 100644 index 0000000000..1bca0ba1a9 Binary files /dev/null and b/public/assets/images/dota2/runes/8.png differ diff --git a/public/assets/images/dota2/runes/9.png b/public/assets/images/dota2/runes/9.png new file mode 100644 index 0000000000..3ebe6f29b4 Binary files /dev/null and b/public/assets/images/dota2/runes/9.png differ diff --git a/public/assets/images/dota2/scepter_0.png b/public/assets/images/dota2/scepter_0.png new file mode 100644 index 0000000000..8861e9638c Binary files /dev/null and b/public/assets/images/dota2/scepter_0.png differ diff --git a/public/assets/images/dota2/scepter_1.png b/public/assets/images/dota2/scepter_1.png new file mode 100644 index 0000000000..27257f6e3e Binary files /dev/null and b/public/assets/images/dota2/scepter_1.png differ diff --git a/public/assets/images/dota2/shard_0.png b/public/assets/images/dota2/shard_0.png new file mode 100644 index 0000000000..2395ca42ad Binary files /dev/null and b/public/assets/images/dota2/shard_0.png differ diff --git a/public/assets/images/dota2/shard_1.png b/public/assets/images/dota2/shard_1.png new file mode 100644 index 0000000000..2a2eba90e2 Binary files /dev/null and b/public/assets/images/dota2/shard_1.png differ diff --git a/public/assets/images/dota2/talent_tree.svg b/public/assets/images/dota2/talent_tree.svg new file mode 100644 index 0000000000..a3ac58abd6 --- /dev/null +++ b/public/assets/images/dota2/talent_tree.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/dotaCoachLogo.svg b/public/assets/images/dotaCoachLogo.svg new file mode 100644 index 0000000000..b35011fa81 --- /dev/null +++ b/public/assets/images/dotaCoachLogo.svg @@ -0,0 +1,26 @@ + + + + Group 2 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/images/flags/ad.svg b/public/assets/images/flags/ad.svg new file mode 100644 index 0000000000..07ae7e0c67 --- /dev/null +++ b/public/assets/images/flags/ad.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ae.svg b/public/assets/images/flags/ae.svg new file mode 100644 index 0000000000..ef6473002d --- /dev/null +++ b/public/assets/images/flags/ae.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/af.svg b/public/assets/images/flags/af.svg new file mode 100644 index 0000000000..95f38b76d7 --- /dev/null +++ b/public/assets/images/flags/af.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ag.svg b/public/assets/images/flags/ag.svg new file mode 100644 index 0000000000..f6a9ad4bca --- /dev/null +++ b/public/assets/images/flags/ag.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ai.svg b/public/assets/images/flags/ai.svg new file mode 100644 index 0000000000..8cbe796817 --- /dev/null +++ b/public/assets/images/flags/ai.svg @@ -0,0 +1,767 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/al.svg b/public/assets/images/flags/al.svg new file mode 100644 index 0000000000..8846696011 --- /dev/null +++ b/public/assets/images/flags/al.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/am.svg b/public/assets/images/flags/am.svg new file mode 100644 index 0000000000..046d22f9c8 --- /dev/null +++ b/public/assets/images/flags/am.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/ao.svg b/public/assets/images/flags/ao.svg new file mode 100644 index 0000000000..32b49ea9ef --- /dev/null +++ b/public/assets/images/flags/ao.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/aq.svg b/public/assets/images/flags/aq.svg new file mode 100644 index 0000000000..656c8b79bb --- /dev/null +++ b/public/assets/images/flags/aq.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/ar.svg b/public/assets/images/flags/ar.svg new file mode 100644 index 0000000000..6750068ed6 --- /dev/null +++ b/public/assets/images/flags/ar.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/as.svg b/public/assets/images/flags/as.svg new file mode 100644 index 0000000000..3bdc5bccd6 --- /dev/null +++ b/public/assets/images/flags/as.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/at.svg b/public/assets/images/flags/at.svg new file mode 100644 index 0000000000..0e45da94a3 --- /dev/null +++ b/public/assets/images/flags/at.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/au.svg b/public/assets/images/flags/au.svg new file mode 100644 index 0000000000..cd823e1e48 --- /dev/null +++ b/public/assets/images/flags/au.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/aw.svg b/public/assets/images/flags/aw.svg new file mode 100644 index 0000000000..7e7087dcd6 --- /dev/null +++ b/public/assets/images/flags/aw.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ax.svg b/public/assets/images/flags/ax.svg new file mode 100644 index 0000000000..fa9417eab3 --- /dev/null +++ b/public/assets/images/flags/ax.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/az.svg b/public/assets/images/flags/az.svg new file mode 100644 index 0000000000..f563b60325 --- /dev/null +++ b/public/assets/images/flags/az.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/ba.svg b/public/assets/images/flags/ba.svg new file mode 100644 index 0000000000..32ad8ea229 --- /dev/null +++ b/public/assets/images/flags/ba.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/bb.svg b/public/assets/images/flags/bb.svg new file mode 100644 index 0000000000..da8972eb4f --- /dev/null +++ b/public/assets/images/flags/bb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/bd.svg b/public/assets/images/flags/bd.svg new file mode 100644 index 0000000000..df9a6d8181 --- /dev/null +++ b/public/assets/images/flags/bd.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/flags/be.svg b/public/assets/images/flags/be.svg new file mode 100644 index 0000000000..4fd48dff5e --- /dev/null +++ b/public/assets/images/flags/be.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/bf.svg b/public/assets/images/flags/bf.svg new file mode 100644 index 0000000000..46061b9bb5 --- /dev/null +++ b/public/assets/images/flags/bf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/bg.svg b/public/assets/images/flags/bg.svg new file mode 100644 index 0000000000..bad27bb72c --- /dev/null +++ b/public/assets/images/flags/bg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/bh.svg b/public/assets/images/flags/bh.svg new file mode 100644 index 0000000000..42dda2ce25 --- /dev/null +++ b/public/assets/images/flags/bh.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/images/flags/bi.svg b/public/assets/images/flags/bi.svg new file mode 100644 index 0000000000..dc0e0e75a6 --- /dev/null +++ b/public/assets/images/flags/bi.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bj.svg b/public/assets/images/flags/bj.svg new file mode 100644 index 0000000000..a626289718 --- /dev/null +++ b/public/assets/images/flags/bj.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bl.svg b/public/assets/images/flags/bl.svg new file mode 100644 index 0000000000..db651fc39a --- /dev/null +++ b/public/assets/images/flags/bl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/bm.svg b/public/assets/images/flags/bm.svg new file mode 100644 index 0000000000..b7c79f261d --- /dev/null +++ b/public/assets/images/flags/bm.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bn.svg b/public/assets/images/flags/bn.svg new file mode 100644 index 0000000000..109576c57c --- /dev/null +++ b/public/assets/images/flags/bn.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bo.svg b/public/assets/images/flags/bo.svg new file mode 100644 index 0000000000..c443ec5142 --- /dev/null +++ b/public/assets/images/flags/bo.svg @@ -0,0 +1,686 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bq.svg b/public/assets/images/flags/bq.svg new file mode 100644 index 0000000000..0a7b5f829b --- /dev/null +++ b/public/assets/images/flags/bq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/br.svg b/public/assets/images/flags/br.svg new file mode 100644 index 0000000000..c0445bad53 --- /dev/null +++ b/public/assets/images/flags/br.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bs.svg b/public/assets/images/flags/bs.svg new file mode 100644 index 0000000000..321eb19abb --- /dev/null +++ b/public/assets/images/flags/bs.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bt.svg b/public/assets/images/flags/bt.svg new file mode 100644 index 0000000000..05df9c898d --- /dev/null +++ b/public/assets/images/flags/bt.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bv.svg b/public/assets/images/flags/bv.svg new file mode 100644 index 0000000000..a62e60dc7d --- /dev/null +++ b/public/assets/images/flags/bv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bw.svg b/public/assets/images/flags/bw.svg new file mode 100644 index 0000000000..ed161bf7af --- /dev/null +++ b/public/assets/images/flags/bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/by.svg b/public/assets/images/flags/by.svg new file mode 100644 index 0000000000..bfb0f64f8c --- /dev/null +++ b/public/assets/images/flags/by.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/bz.svg b/public/assets/images/flags/bz.svg new file mode 100644 index 0000000000..440fd9d405 --- /dev/null +++ b/public/assets/images/flags/bz.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ca.svg b/public/assets/images/flags/ca.svg new file mode 100644 index 0000000000..fb542b029f --- /dev/null +++ b/public/assets/images/flags/ca.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/cc.svg b/public/assets/images/flags/cc.svg new file mode 100644 index 0000000000..0e44596522 --- /dev/null +++ b/public/assets/images/flags/cc.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cd.svg b/public/assets/images/flags/cd.svg new file mode 100644 index 0000000000..d8931c247c --- /dev/null +++ b/public/assets/images/flags/cd.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/cf.svg b/public/assets/images/flags/cf.svg new file mode 100644 index 0000000000..8a67616ea8 --- /dev/null +++ b/public/assets/images/flags/cf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cg.svg b/public/assets/images/flags/cg.svg new file mode 100644 index 0000000000..f37bff8096 --- /dev/null +++ b/public/assets/images/flags/cg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/ch.svg b/public/assets/images/flags/ch.svg new file mode 100644 index 0000000000..6157702968 --- /dev/null +++ b/public/assets/images/flags/ch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/ci.svg b/public/assets/images/flags/ci.svg new file mode 100644 index 0000000000..6b4f66e50c --- /dev/null +++ b/public/assets/images/flags/ci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/ck.svg b/public/assets/images/flags/ck.svg new file mode 100644 index 0000000000..f3ce1afaa5 --- /dev/null +++ b/public/assets/images/flags/ck.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/cl.svg b/public/assets/images/flags/cl.svg new file mode 100644 index 0000000000..63ee47c09b --- /dev/null +++ b/public/assets/images/flags/cl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cm.svg b/public/assets/images/flags/cm.svg new file mode 100644 index 0000000000..1bef2f8382 --- /dev/null +++ b/public/assets/images/flags/cm.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cn.svg b/public/assets/images/flags/cn.svg new file mode 100644 index 0000000000..43814764a5 --- /dev/null +++ b/public/assets/images/flags/cn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/images/flags/co.svg b/public/assets/images/flags/co.svg new file mode 100644 index 0000000000..671f0a3628 --- /dev/null +++ b/public/assets/images/flags/co.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/cr.svg b/public/assets/images/flags/cr.svg new file mode 100644 index 0000000000..ca6d24fdae --- /dev/null +++ b/public/assets/images/flags/cr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/cu.svg b/public/assets/images/flags/cu.svg new file mode 100644 index 0000000000..0e7c32365d --- /dev/null +++ b/public/assets/images/flags/cu.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cv.svg b/public/assets/images/flags/cv.svg new file mode 100644 index 0000000000..bf9427ba97 --- /dev/null +++ b/public/assets/images/flags/cv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cw.svg b/public/assets/images/flags/cw.svg new file mode 100644 index 0000000000..dce07cf36a --- /dev/null +++ b/public/assets/images/flags/cw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cx.svg b/public/assets/images/flags/cx.svg new file mode 100644 index 0000000000..53f0ee818c --- /dev/null +++ b/public/assets/images/flags/cx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/cy.svg b/public/assets/images/flags/cy.svg new file mode 100644 index 0000000000..aa46cda2ce --- /dev/null +++ b/public/assets/images/flags/cy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/cz.svg b/public/assets/images/flags/cz.svg new file mode 100644 index 0000000000..236c4ba61a --- /dev/null +++ b/public/assets/images/flags/cz.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/de.svg b/public/assets/images/flags/de.svg new file mode 100644 index 0000000000..344d6c9381 --- /dev/null +++ b/public/assets/images/flags/de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/dj.svg b/public/assets/images/flags/dj.svg new file mode 100644 index 0000000000..eb23800ef9 --- /dev/null +++ b/public/assets/images/flags/dj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/dk.svg b/public/assets/images/flags/dk.svg new file mode 100644 index 0000000000..b29f33168d --- /dev/null +++ b/public/assets/images/flags/dk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/dm.svg b/public/assets/images/flags/dm.svg new file mode 100644 index 0000000000..b060f6fc1d --- /dev/null +++ b/public/assets/images/flags/dm.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/do.svg b/public/assets/images/flags/do.svg new file mode 100644 index 0000000000..2923855bc6 --- /dev/null +++ b/public/assets/images/flags/do.svg @@ -0,0 +1,6745 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/dz.svg b/public/assets/images/flags/dz.svg new file mode 100644 index 0000000000..9971ec60f9 --- /dev/null +++ b/public/assets/images/flags/dz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/ec.svg b/public/assets/images/flags/ec.svg new file mode 100644 index 0000000000..01ef340566 --- /dev/null +++ b/public/assets/images/flags/ec.svg @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ee.svg b/public/assets/images/flags/ee.svg new file mode 100644 index 0000000000..e4eead4b3d --- /dev/null +++ b/public/assets/images/flags/ee.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/eg.svg b/public/assets/images/flags/eg.svg new file mode 100644 index 0000000000..d4bed74b22 --- /dev/null +++ b/public/assets/images/flags/eg.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/eh.svg b/public/assets/images/flags/eh.svg new file mode 100644 index 0000000000..efdd83b07e --- /dev/null +++ b/public/assets/images/flags/eh.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/er.svg b/public/assets/images/flags/er.svg new file mode 100644 index 0000000000..4a2b17c965 --- /dev/null +++ b/public/assets/images/flags/er.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/es.svg b/public/assets/images/flags/es.svg new file mode 100644 index 0000000000..3a9dcd2a49 --- /dev/null +++ b/public/assets/images/flags/es.svg @@ -0,0 +1,581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/et.svg b/public/assets/images/flags/et.svg new file mode 100644 index 0000000000..09e5d3d090 --- /dev/null +++ b/public/assets/images/flags/et.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/eu.svg b/public/assets/images/flags/eu.svg new file mode 100644 index 0000000000..4cf8a666e6 --- /dev/null +++ b/public/assets/images/flags/eu.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/fi.svg b/public/assets/images/flags/fi.svg new file mode 100644 index 0000000000..a7b58e28a0 --- /dev/null +++ b/public/assets/images/flags/fi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/fj.svg b/public/assets/images/flags/fj.svg new file mode 100644 index 0000000000..9f5e2a57d3 --- /dev/null +++ b/public/assets/images/flags/fj.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/fk.svg b/public/assets/images/flags/fk.svg new file mode 100644 index 0000000000..7864f542e6 --- /dev/null +++ b/public/assets/images/flags/fk.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/fm.svg b/public/assets/images/flags/fm.svg new file mode 100644 index 0000000000..e9d1f666ab --- /dev/null +++ b/public/assets/images/flags/fm.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/images/flags/fo.svg b/public/assets/images/flags/fo.svg new file mode 100644 index 0000000000..d22c0cbf16 --- /dev/null +++ b/public/assets/images/flags/fo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/fr.svg b/public/assets/images/flags/fr.svg new file mode 100644 index 0000000000..b17c8ad7c3 --- /dev/null +++ b/public/assets/images/flags/fr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/fx.svg b/public/assets/images/flags/fx.svg new file mode 100644 index 0000000000..a4bded524b --- /dev/null +++ b/public/assets/images/flags/fx.svg @@ -0,0 +1,2 @@ + + diff --git a/public/assets/images/flags/ga.svg b/public/assets/images/flags/ga.svg new file mode 100644 index 0000000000..1c7fdd3373 --- /dev/null +++ b/public/assets/images/flags/ga.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/gb-eng.svg b/public/assets/images/flags/gb-eng.svg new file mode 100644 index 0000000000..7fa48fa847 --- /dev/null +++ b/public/assets/images/flags/gb-eng.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/gb-nir.svg b/public/assets/images/flags/gb-nir.svg new file mode 100644 index 0000000000..8c26551888 --- /dev/null +++ b/public/assets/images/flags/gb-nir.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gb-sct.svg b/public/assets/images/flags/gb-sct.svg new file mode 100644 index 0000000000..5e47f073b5 --- /dev/null +++ b/public/assets/images/flags/gb-sct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/flags/gb-wls.svg b/public/assets/images/flags/gb-wls.svg new file mode 100644 index 0000000000..59b418110d --- /dev/null +++ b/public/assets/images/flags/gb-wls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/gb.svg b/public/assets/images/flags/gb.svg new file mode 100644 index 0000000000..7296592e3f --- /dev/null +++ b/public/assets/images/flags/gb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gd.svg b/public/assets/images/flags/gd.svg new file mode 100644 index 0000000000..5b0cde17d6 --- /dev/null +++ b/public/assets/images/flags/gd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ge.svg b/public/assets/images/flags/ge.svg new file mode 100644 index 0000000000..0a9129ca21 --- /dev/null +++ b/public/assets/images/flags/ge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/gf.svg b/public/assets/images/flags/gf.svg new file mode 100644 index 0000000000..25d0159b88 --- /dev/null +++ b/public/assets/images/flags/gf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/gg.svg b/public/assets/images/flags/gg.svg new file mode 100644 index 0000000000..4869ed6f95 --- /dev/null +++ b/public/assets/images/flags/gg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/gh.svg b/public/assets/images/flags/gh.svg new file mode 100644 index 0000000000..56c18f66e5 --- /dev/null +++ b/public/assets/images/flags/gh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/gi.svg b/public/assets/images/flags/gi.svg new file mode 100644 index 0000000000..0715e01ad8 --- /dev/null +++ b/public/assets/images/flags/gi.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gl.svg b/public/assets/images/flags/gl.svg new file mode 100644 index 0000000000..38e9b5c3b7 --- /dev/null +++ b/public/assets/images/flags/gl.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/gm.svg b/public/assets/images/flags/gm.svg new file mode 100644 index 0000000000..9d2ce5c4bd --- /dev/null +++ b/public/assets/images/flags/gm.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gn.svg b/public/assets/images/flags/gn.svg new file mode 100644 index 0000000000..4a3adab4d5 --- /dev/null +++ b/public/assets/images/flags/gn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/gp.svg b/public/assets/images/flags/gp.svg new file mode 100644 index 0000000000..b17c8ad7c3 --- /dev/null +++ b/public/assets/images/flags/gp.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/gq.svg b/public/assets/images/flags/gq.svg new file mode 100644 index 0000000000..9e3c9000c7 --- /dev/null +++ b/public/assets/images/flags/gq.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gr.svg b/public/assets/images/flags/gr.svg new file mode 100644 index 0000000000..5126e38675 --- /dev/null +++ b/public/assets/images/flags/gr.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gs.svg b/public/assets/images/flags/gs.svg new file mode 100644 index 0000000000..43b8fd6805 --- /dev/null +++ b/public/assets/images/flags/gs.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + L + + + E + + + O + + + T + + + E + + + R + + + R + + + R + + + R + + + R + + + E + + + O + + + O + + + A + + + A + + + A + + + M + + + P + + + P + + + P + + + I + + + T + + + T + + + M + + + G + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gt.svg b/public/assets/images/flags/gt.svg new file mode 100644 index 0000000000..0fdaa1155e --- /dev/null +++ b/public/assets/images/flags/gt.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gu.svg b/public/assets/images/flags/gu.svg new file mode 100644 index 0000000000..b4885bd7b2 --- /dev/null +++ b/public/assets/images/flags/gu.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + G + + + U + + + A + + + M + + + + + + + + G + + + U + + + A + + + M + + diff --git a/public/assets/images/flags/gw.svg b/public/assets/images/flags/gw.svg new file mode 100644 index 0000000000..ee5b2aabe6 --- /dev/null +++ b/public/assets/images/flags/gw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/gy.svg b/public/assets/images/flags/gy.svg new file mode 100644 index 0000000000..218ecce175 --- /dev/null +++ b/public/assets/images/flags/gy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/hk.svg b/public/assets/images/flags/hk.svg new file mode 100644 index 0000000000..df8aefd98f --- /dev/null +++ b/public/assets/images/flags/hk.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/hm.svg b/public/assets/images/flags/hm.svg new file mode 100644 index 0000000000..67cec54c63 --- /dev/null +++ b/public/assets/images/flags/hm.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/hn.svg b/public/assets/images/flags/hn.svg new file mode 100644 index 0000000000..6e9bb25cb3 --- /dev/null +++ b/public/assets/images/flags/hn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/hr.svg b/public/assets/images/flags/hr.svg new file mode 100644 index 0000000000..bf33cbe768 --- /dev/null +++ b/public/assets/images/flags/hr.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ht.svg b/public/assets/images/flags/ht.svg new file mode 100644 index 0000000000..4cee31418b --- /dev/null +++ b/public/assets/images/flags/ht.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/hu.svg b/public/assets/images/flags/hu.svg new file mode 100644 index 0000000000..cb7e5eef6f --- /dev/null +++ b/public/assets/images/flags/hu.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/id.svg b/public/assets/images/flags/id.svg new file mode 100644 index 0000000000..4df97babce --- /dev/null +++ b/public/assets/images/flags/id.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/ie.svg b/public/assets/images/flags/ie.svg new file mode 100644 index 0000000000..b295b50c1a --- /dev/null +++ b/public/assets/images/flags/ie.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/il.svg b/public/assets/images/flags/il.svg new file mode 100644 index 0000000000..b22f792c8d --- /dev/null +++ b/public/assets/images/flags/il.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/im.svg b/public/assets/images/flags/im.svg new file mode 100644 index 0000000000..5864dc0b8e --- /dev/null +++ b/public/assets/images/flags/im.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/in.svg b/public/assets/images/flags/in.svg new file mode 100644 index 0000000000..7eeb5c3fa6 --- /dev/null +++ b/public/assets/images/flags/in.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/io.svg b/public/assets/images/flags/io.svg new file mode 100644 index 0000000000..d5c6db5f73 --- /dev/null +++ b/public/assets/images/flags/io.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/iq.svg b/public/assets/images/flags/iq.svg new file mode 100644 index 0000000000..c1fb19602e --- /dev/null +++ b/public/assets/images/flags/iq.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/assets/images/flags/ir.svg b/public/assets/images/flags/ir.svg new file mode 100644 index 0000000000..9a6feaffe6 --- /dev/null +++ b/public/assets/images/flags/ir.svg @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/is.svg b/public/assets/images/flags/is.svg new file mode 100644 index 0000000000..f5c5c9aeea --- /dev/null +++ b/public/assets/images/flags/is.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/it.svg b/public/assets/images/flags/it.svg new file mode 100644 index 0000000000..05d58eca3e --- /dev/null +++ b/public/assets/images/flags/it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/je.svg b/public/assets/images/flags/je.svg new file mode 100644 index 0000000000..c5c18772f8 --- /dev/null +++ b/public/assets/images/flags/je.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/jm.svg b/public/assets/images/flags/jm.svg new file mode 100644 index 0000000000..bda8cd3d42 --- /dev/null +++ b/public/assets/images/flags/jm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/jo.svg b/public/assets/images/flags/jo.svg new file mode 100644 index 0000000000..a321347522 --- /dev/null +++ b/public/assets/images/flags/jo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/jp.svg b/public/assets/images/flags/jp.svg new file mode 100644 index 0000000000..ed5fd4019a --- /dev/null +++ b/public/assets/images/flags/jp.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/images/flags/ke.svg b/public/assets/images/flags/ke.svg new file mode 100644 index 0000000000..fe8fd0c633 --- /dev/null +++ b/public/assets/images/flags/ke.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/kg.svg b/public/assets/images/flags/kg.svg new file mode 100644 index 0000000000..fba85f5343 --- /dev/null +++ b/public/assets/images/flags/kg.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/kh.svg b/public/assets/images/flags/kh.svg new file mode 100644 index 0000000000..e48f41ebf1 --- /dev/null +++ b/public/assets/images/flags/kh.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ki.svg b/public/assets/images/flags/ki.svg new file mode 100644 index 0000000000..11b0d402b0 --- /dev/null +++ b/public/assets/images/flags/ki.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/km.svg b/public/assets/images/flags/km.svg new file mode 100644 index 0000000000..b3dfb68f28 --- /dev/null +++ b/public/assets/images/flags/km.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/kn.svg b/public/assets/images/flags/kn.svg new file mode 100644 index 0000000000..d0781611ee --- /dev/null +++ b/public/assets/images/flags/kn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/kp.svg b/public/assets/images/flags/kp.svg new file mode 100644 index 0000000000..f9861416cb --- /dev/null +++ b/public/assets/images/flags/kp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/kr.svg b/public/assets/images/flags/kr.svg new file mode 100644 index 0000000000..ee84b6e855 --- /dev/null +++ b/public/assets/images/flags/kr.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/kw.svg b/public/assets/images/flags/kw.svg new file mode 100644 index 0000000000..3217d78b2f --- /dev/null +++ b/public/assets/images/flags/kw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ky.svg b/public/assets/images/flags/ky.svg new file mode 100644 index 0000000000..ac1d318717 --- /dev/null +++ b/public/assets/images/flags/ky.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/kz.svg b/public/assets/images/flags/kz.svg new file mode 100644 index 0000000000..7949bce58a --- /dev/null +++ b/public/assets/images/flags/kz.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/la.svg b/public/assets/images/flags/la.svg new file mode 100644 index 0000000000..72ba65fc41 --- /dev/null +++ b/public/assets/images/flags/la.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/lb.svg b/public/assets/images/flags/lb.svg new file mode 100644 index 0000000000..a6b1794fb1 --- /dev/null +++ b/public/assets/images/flags/lb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/lc.svg b/public/assets/images/flags/lc.svg new file mode 100644 index 0000000000..aacce3eaa6 --- /dev/null +++ b/public/assets/images/flags/lc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/li.svg b/public/assets/images/flags/li.svg new file mode 100644 index 0000000000..57ef479ac2 --- /dev/null +++ b/public/assets/images/flags/li.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/lk.svg b/public/assets/images/flags/lk.svg new file mode 100644 index 0000000000..13b55928da --- /dev/null +++ b/public/assets/images/flags/lk.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/lr.svg b/public/assets/images/flags/lr.svg new file mode 100644 index 0000000000..56fdc6209e --- /dev/null +++ b/public/assets/images/flags/lr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ls.svg b/public/assets/images/flags/ls.svg new file mode 100644 index 0000000000..e7bf1c2443 --- /dev/null +++ b/public/assets/images/flags/ls.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/lt.svg b/public/assets/images/flags/lt.svg new file mode 100644 index 0000000000..1ca1cd4bf7 --- /dev/null +++ b/public/assets/images/flags/lt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/lu.svg b/public/assets/images/flags/lu.svg new file mode 100644 index 0000000000..d7f4a7cf30 --- /dev/null +++ b/public/assets/images/flags/lu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/lv.svg b/public/assets/images/flags/lv.svg new file mode 100644 index 0000000000..338addd785 --- /dev/null +++ b/public/assets/images/flags/lv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/ly.svg b/public/assets/images/flags/ly.svg new file mode 100644 index 0000000000..96ab5adf64 --- /dev/null +++ b/public/assets/images/flags/ly.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ma.svg b/public/assets/images/flags/ma.svg new file mode 100644 index 0000000000..10447a4a2c --- /dev/null +++ b/public/assets/images/flags/ma.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/flags/mc.svg b/public/assets/images/flags/mc.svg new file mode 100644 index 0000000000..8a4e8278ab --- /dev/null +++ b/public/assets/images/flags/mc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/md.svg b/public/assets/images/flags/md.svg new file mode 100644 index 0000000000..8d51756369 --- /dev/null +++ b/public/assets/images/flags/md.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/me.svg b/public/assets/images/flags/me.svg new file mode 100644 index 0000000000..ed97b124db --- /dev/null +++ b/public/assets/images/flags/me.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/mf.svg b/public/assets/images/flags/mf.svg new file mode 100644 index 0000000000..b17c8ad7c3 --- /dev/null +++ b/public/assets/images/flags/mf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/mg.svg b/public/assets/images/flags/mg.svg new file mode 100644 index 0000000000..cce2bf1fdd --- /dev/null +++ b/public/assets/images/flags/mg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/mh.svg b/public/assets/images/flags/mh.svg new file mode 100644 index 0000000000..ed16809205 --- /dev/null +++ b/public/assets/images/flags/mh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/mk.svg b/public/assets/images/flags/mk.svg new file mode 100644 index 0000000000..1bbecc7750 --- /dev/null +++ b/public/assets/images/flags/mk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/ml.svg b/public/assets/images/flags/ml.svg new file mode 100644 index 0000000000..cb2484415f --- /dev/null +++ b/public/assets/images/flags/ml.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/mm.svg b/public/assets/images/flags/mm.svg new file mode 100644 index 0000000000..ce897c9527 --- /dev/null +++ b/public/assets/images/flags/mm.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/mn.svg b/public/assets/images/flags/mn.svg new file mode 100644 index 0000000000..766d2b139c --- /dev/null +++ b/public/assets/images/flags/mn.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/mo.svg b/public/assets/images/flags/mo.svg new file mode 100644 index 0000000000..074c2e9c3b --- /dev/null +++ b/public/assets/images/flags/mo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/mp.svg b/public/assets/images/flags/mp.svg new file mode 100644 index 0000000000..0dd4c3eda9 --- /dev/null +++ b/public/assets/images/flags/mp.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/mq.svg b/public/assets/images/flags/mq.svg new file mode 100644 index 0000000000..bde2166e5b --- /dev/null +++ b/public/assets/images/flags/mq.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/mr.svg b/public/assets/images/flags/mr.svg new file mode 100644 index 0000000000..372e864f05 --- /dev/null +++ b/public/assets/images/flags/mr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ms.svg b/public/assets/images/flags/ms.svg new file mode 100644 index 0000000000..2af2479f63 --- /dev/null +++ b/public/assets/images/flags/ms.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/mt.svg b/public/assets/images/flags/mt.svg new file mode 100644 index 0000000000..74554ce61f --- /dev/null +++ b/public/assets/images/flags/mt.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/mu.svg b/public/assets/images/flags/mu.svg new file mode 100644 index 0000000000..8178810418 --- /dev/null +++ b/public/assets/images/flags/mu.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/mv.svg b/public/assets/images/flags/mv.svg new file mode 100644 index 0000000000..7ca4f38ce2 --- /dev/null +++ b/public/assets/images/flags/mv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/mw.svg b/public/assets/images/flags/mw.svg new file mode 100644 index 0000000000..f4475eb9c8 --- /dev/null +++ b/public/assets/images/flags/mw.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/mx.svg b/public/assets/images/flags/mx.svg new file mode 100644 index 0000000000..30b8f6df60 --- /dev/null +++ b/public/assets/images/flags/mx.svg @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/my.svg b/public/assets/images/flags/my.svg new file mode 100644 index 0000000000..05800ff26b --- /dev/null +++ b/public/assets/images/flags/my.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/mz.svg b/public/assets/images/flags/mz.svg new file mode 100644 index 0000000000..e5458d9e68 --- /dev/null +++ b/public/assets/images/flags/mz.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/na.svg b/public/assets/images/flags/na.svg new file mode 100644 index 0000000000..215e648845 --- /dev/null +++ b/public/assets/images/flags/na.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/nc.svg b/public/assets/images/flags/nc.svg new file mode 100644 index 0000000000..c9abb971b2 --- /dev/null +++ b/public/assets/images/flags/nc.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/ne.svg b/public/assets/images/flags/ne.svg new file mode 100644 index 0000000000..5698fde6c9 --- /dev/null +++ b/public/assets/images/flags/ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/nf.svg b/public/assets/images/flags/nf.svg new file mode 100644 index 0000000000..30fca2583e --- /dev/null +++ b/public/assets/images/flags/nf.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/ng.svg b/public/assets/images/flags/ng.svg new file mode 100644 index 0000000000..3c4fa9747c --- /dev/null +++ b/public/assets/images/flags/ng.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/ni.svg b/public/assets/images/flags/ni.svg new file mode 100644 index 0000000000..74d2be8328 --- /dev/null +++ b/public/assets/images/flags/ni.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/nl.svg b/public/assets/images/flags/nl.svg new file mode 100644 index 0000000000..c9312567db --- /dev/null +++ b/public/assets/images/flags/nl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/no.svg b/public/assets/images/flags/no.svg new file mode 100644 index 0000000000..6f710de63e --- /dev/null +++ b/public/assets/images/flags/no.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/np.svg b/public/assets/images/flags/np.svg new file mode 100644 index 0000000000..c0e3de692c --- /dev/null +++ b/public/assets/images/flags/np.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/nr.svg b/public/assets/images/flags/nr.svg new file mode 100644 index 0000000000..c473707bd8 --- /dev/null +++ b/public/assets/images/flags/nr.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/assets/images/flags/nu.svg b/public/assets/images/flags/nu.svg new file mode 100644 index 0000000000..99859af2d1 --- /dev/null +++ b/public/assets/images/flags/nu.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/nz.svg b/public/assets/images/flags/nz.svg new file mode 100644 index 0000000000..616df15157 --- /dev/null +++ b/public/assets/images/flags/nz.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/om.svg b/public/assets/images/flags/om.svg new file mode 100644 index 0000000000..707e5fc63e --- /dev/null +++ b/public/assets/images/flags/om.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pa.svg b/public/assets/images/flags/pa.svg new file mode 100644 index 0000000000..03e4605520 --- /dev/null +++ b/public/assets/images/flags/pa.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pe.svg b/public/assets/images/flags/pe.svg new file mode 100644 index 0000000000..5daade4245 --- /dev/null +++ b/public/assets/images/flags/pe.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/pf.svg b/public/assets/images/flags/pf.svg new file mode 100644 index 0000000000..efc4cbe204 --- /dev/null +++ b/public/assets/images/flags/pf.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pg.svg b/public/assets/images/flags/pg.svg new file mode 100644 index 0000000000..f24f6bdf71 --- /dev/null +++ b/public/assets/images/flags/pg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/ph.svg b/public/assets/images/flags/ph.svg new file mode 100644 index 0000000000..e8858d6529 --- /dev/null +++ b/public/assets/images/flags/ph.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pk.svg b/public/assets/images/flags/pk.svg new file mode 100644 index 0000000000..96539e8330 --- /dev/null +++ b/public/assets/images/flags/pk.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pl.svg b/public/assets/images/flags/pl.svg new file mode 100644 index 0000000000..84a59500f4 --- /dev/null +++ b/public/assets/images/flags/pl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/pm.svg b/public/assets/images/flags/pm.svg new file mode 100644 index 0000000000..c9abb971b2 --- /dev/null +++ b/public/assets/images/flags/pm.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/pn.svg b/public/assets/images/flags/pn.svg new file mode 100644 index 0000000000..3b80360299 --- /dev/null +++ b/public/assets/images/flags/pn.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pr.svg b/public/assets/images/flags/pr.svg new file mode 100644 index 0000000000..1e0205d5ba --- /dev/null +++ b/public/assets/images/flags/pr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ps.svg b/public/assets/images/flags/ps.svg new file mode 100644 index 0000000000..6076ef09ee --- /dev/null +++ b/public/assets/images/flags/ps.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pt.svg b/public/assets/images/flags/pt.svg new file mode 100644 index 0000000000..3a2f131147 --- /dev/null +++ b/public/assets/images/flags/pt.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/pw.svg b/public/assets/images/flags/pw.svg new file mode 100644 index 0000000000..43857564db --- /dev/null +++ b/public/assets/images/flags/pw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/images/flags/py.svg b/public/assets/images/flags/py.svg new file mode 100644 index 0000000000..d3ef7fafe1 --- /dev/null +++ b/public/assets/images/flags/py.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/qa.svg b/public/assets/images/flags/qa.svg new file mode 100644 index 0000000000..c7aab300d7 --- /dev/null +++ b/public/assets/images/flags/qa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/images/flags/re.svg b/public/assets/images/flags/re.svg new file mode 100644 index 0000000000..c9abb971b2 --- /dev/null +++ b/public/assets/images/flags/re.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/ro.svg b/public/assets/images/flags/ro.svg new file mode 100644 index 0000000000..c913ff3f6e --- /dev/null +++ b/public/assets/images/flags/ro.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/rs.svg b/public/assets/images/flags/rs.svg new file mode 100644 index 0000000000..6a5fac128a --- /dev/null +++ b/public/assets/images/flags/rs.svg @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ru.svg b/public/assets/images/flags/ru.svg new file mode 100644 index 0000000000..f7bb9828f6 --- /dev/null +++ b/public/assets/images/flags/ru.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/rw.svg b/public/assets/images/flags/rw.svg new file mode 100644 index 0000000000..872873dc3b --- /dev/null +++ b/public/assets/images/flags/rw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sa.svg b/public/assets/images/flags/sa.svg new file mode 100644 index 0000000000..28518e8a55 --- /dev/null +++ b/public/assets/images/flags/sa.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sb.svg b/public/assets/images/flags/sb.svg new file mode 100644 index 0000000000..27a9ed04bd --- /dev/null +++ b/public/assets/images/flags/sb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sc.svg b/public/assets/images/flags/sc.svg new file mode 100644 index 0000000000..43b4cdd3fd --- /dev/null +++ b/public/assets/images/flags/sc.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sd.svg b/public/assets/images/flags/sd.svg new file mode 100644 index 0000000000..bd2a4b4aa6 --- /dev/null +++ b/public/assets/images/flags/sd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/se.svg b/public/assets/images/flags/se.svg new file mode 100644 index 0000000000..c8ed16e9bc --- /dev/null +++ b/public/assets/images/flags/se.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sg.svg b/public/assets/images/flags/sg.svg new file mode 100644 index 0000000000..f2284a7355 --- /dev/null +++ b/public/assets/images/flags/sg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sh.svg b/public/assets/images/flags/sh.svg new file mode 100644 index 0000000000..737a4a3e84 --- /dev/null +++ b/public/assets/images/flags/sh.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/si.svg b/public/assets/images/flags/si.svg new file mode 100644 index 0000000000..9845d01e48 --- /dev/null +++ b/public/assets/images/flags/si.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sj.svg b/public/assets/images/flags/sj.svg new file mode 100644 index 0000000000..6f710de63e --- /dev/null +++ b/public/assets/images/flags/sj.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/sk.svg b/public/assets/images/flags/sk.svg new file mode 100644 index 0000000000..5d291f7a36 --- /dev/null +++ b/public/assets/images/flags/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/sl.svg b/public/assets/images/flags/sl.svg new file mode 100644 index 0000000000..4050254265 --- /dev/null +++ b/public/assets/images/flags/sl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/sm.svg b/public/assets/images/flags/sm.svg new file mode 100644 index 0000000000..6ba011664b --- /dev/null +++ b/public/assets/images/flags/sm.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + L + + + I + + + B + + + E + + + R + + + T + + + A + + + S + + + + diff --git a/public/assets/images/flags/sn.svg b/public/assets/images/flags/sn.svg new file mode 100644 index 0000000000..52b2d3670c --- /dev/null +++ b/public/assets/images/flags/sn.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/so.svg b/public/assets/images/flags/so.svg new file mode 100644 index 0000000000..89e2c080bb --- /dev/null +++ b/public/assets/images/flags/so.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/images/flags/sr.svg b/public/assets/images/flags/sr.svg new file mode 100644 index 0000000000..a3ebc235c7 --- /dev/null +++ b/public/assets/images/flags/sr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/ss.svg b/public/assets/images/flags/ss.svg new file mode 100644 index 0000000000..fd2875f946 --- /dev/null +++ b/public/assets/images/flags/ss.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/st.svg b/public/assets/images/flags/st.svg new file mode 100644 index 0000000000..d4b3601625 --- /dev/null +++ b/public/assets/images/flags/st.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sv.svg b/public/assets/images/flags/sv.svg new file mode 100644 index 0000000000..564d2e2d61 --- /dev/null +++ b/public/assets/images/flags/sv.svg @@ -0,0 +1,621 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sx.svg b/public/assets/images/flags/sx.svg new file mode 100644 index 0000000000..00736d8326 --- /dev/null +++ b/public/assets/images/flags/sx.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/sy.svg b/public/assets/images/flags/sy.svg new file mode 100644 index 0000000000..90038038c9 --- /dev/null +++ b/public/assets/images/flags/sy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/sz.svg b/public/assets/images/flags/sz.svg new file mode 100644 index 0000000000..dedaaf5329 --- /dev/null +++ b/public/assets/images/flags/sz.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/tc.svg b/public/assets/images/flags/tc.svg new file mode 100644 index 0000000000..fab2d91db2 --- /dev/null +++ b/public/assets/images/flags/tc.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/td.svg b/public/assets/images/flags/td.svg new file mode 100644 index 0000000000..c16453276b --- /dev/null +++ b/public/assets/images/flags/td.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/tf.svg b/public/assets/images/flags/tf.svg new file mode 100644 index 0000000000..d3253eca7b --- /dev/null +++ b/public/assets/images/flags/tf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/tg.svg b/public/assets/images/flags/tg.svg new file mode 100644 index 0000000000..85dfe935b3 --- /dev/null +++ b/public/assets/images/flags/tg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/th.svg b/public/assets/images/flags/th.svg new file mode 100644 index 0000000000..33d9b64df2 --- /dev/null +++ b/public/assets/images/flags/th.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/tj.svg b/public/assets/images/flags/tj.svg new file mode 100644 index 0000000000..d058b896a7 --- /dev/null +++ b/public/assets/images/flags/tj.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/tk.svg b/public/assets/images/flags/tk.svg new file mode 100644 index 0000000000..484d854750 --- /dev/null +++ b/public/assets/images/flags/tk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/tl.svg b/public/assets/images/flags/tl.svg new file mode 100644 index 0000000000..47b8491333 --- /dev/null +++ b/public/assets/images/flags/tl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/tm.svg b/public/assets/images/flags/tm.svg new file mode 100644 index 0000000000..e7b858ccb5 --- /dev/null +++ b/public/assets/images/flags/tm.svg @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/tn.svg b/public/assets/images/flags/tn.svg new file mode 100644 index 0000000000..55e4d5bb77 --- /dev/null +++ b/public/assets/images/flags/tn.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/to.svg b/public/assets/images/flags/to.svg new file mode 100644 index 0000000000..50a6fb943e --- /dev/null +++ b/public/assets/images/flags/to.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/assets/images/flags/tp.svg b/public/assets/images/flags/tp.svg new file mode 100644 index 0000000000..1c1b73d7e4 --- /dev/null +++ b/public/assets/images/flags/tp.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/images/flags/tr.svg b/public/assets/images/flags/tr.svg new file mode 100644 index 0000000000..5300199cbc --- /dev/null +++ b/public/assets/images/flags/tr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/tt.svg b/public/assets/images/flags/tt.svg new file mode 100644 index 0000000000..4aac6793bf --- /dev/null +++ b/public/assets/images/flags/tt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/assets/images/flags/tv.svg b/public/assets/images/flags/tv.svg new file mode 100644 index 0000000000..93ae8e57a0 --- /dev/null +++ b/public/assets/images/flags/tv.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/tw.svg b/public/assets/images/flags/tw.svg new file mode 100644 index 0000000000..6b7bd1106a --- /dev/null +++ b/public/assets/images/flags/tw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/tz.svg b/public/assets/images/flags/tz.svg new file mode 100644 index 0000000000..1a811af123 --- /dev/null +++ b/public/assets/images/flags/tz.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/assets/images/flags/ua.svg b/public/assets/images/flags/ua.svg new file mode 100644 index 0000000000..2f68876c6a --- /dev/null +++ b/public/assets/images/flags/ua.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/images/flags/ug.svg b/public/assets/images/flags/ug.svg new file mode 100644 index 0000000000..b44b45bce9 --- /dev/null +++ b/public/assets/images/flags/ug.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/um.svg b/public/assets/images/flags/um.svg new file mode 100644 index 0000000000..7aab3fd91a --- /dev/null +++ b/public/assets/images/flags/um.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/un.svg b/public/assets/images/flags/un.svg new file mode 100644 index 0000000000..bc555022af --- /dev/null +++ b/public/assets/images/flags/un.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/us.svg b/public/assets/images/flags/us.svg new file mode 100644 index 0000000000..95e707b410 --- /dev/null +++ b/public/assets/images/flags/us.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/uy.svg b/public/assets/images/flags/uy.svg new file mode 100644 index 0000000000..9fc3e5e55a --- /dev/null +++ b/public/assets/images/flags/uy.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/uz.svg b/public/assets/images/flags/uz.svg new file mode 100644 index 0000000000..6e0472b8ac --- /dev/null +++ b/public/assets/images/flags/uz.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/va.svg b/public/assets/images/flags/va.svg new file mode 100644 index 0000000000..b90ddf12cb --- /dev/null +++ b/public/assets/images/flags/va.svg @@ -0,0 +1,483 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/vc.svg b/public/assets/images/flags/vc.svg new file mode 100644 index 0000000000..ed4c1e45d3 --- /dev/null +++ b/public/assets/images/flags/vc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/assets/images/flags/ve.svg b/public/assets/images/flags/ve.svg new file mode 100644 index 0000000000..b71c77f1e4 --- /dev/null +++ b/public/assets/images/flags/ve.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/vg.svg b/public/assets/images/flags/vg.svg new file mode 100644 index 0000000000..4f103aee6f --- /dev/null +++ b/public/assets/images/flags/vg.svg @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/vi.svg b/public/assets/images/flags/vi.svg new file mode 100644 index 0000000000..0c91a255be --- /dev/null +++ b/public/assets/images/flags/vi.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/vn.svg b/public/assets/images/flags/vn.svg new file mode 100644 index 0000000000..fcfd7d1969 --- /dev/null +++ b/public/assets/images/flags/vn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/images/flags/vu.svg b/public/assets/images/flags/vu.svg new file mode 100644 index 0000000000..18dc459585 --- /dev/null +++ b/public/assets/images/flags/vu.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/wf.svg b/public/assets/images/flags/wf.svg new file mode 100644 index 0000000000..1b1e81cd19 --- /dev/null +++ b/public/assets/images/flags/wf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/ws.svg b/public/assets/images/flags/ws.svg new file mode 100644 index 0000000000..6e5963da0a --- /dev/null +++ b/public/assets/images/flags/ws.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/images/flags/xk.svg b/public/assets/images/flags/xk.svg new file mode 100644 index 0000000000..d5932e28ee --- /dev/null +++ b/public/assets/images/flags/xk.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/images/flags/ye.svg b/public/assets/images/flags/ye.svg new file mode 100644 index 0000000000..4a115e5115 --- /dev/null +++ b/public/assets/images/flags/ye.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/yt.svg b/public/assets/images/flags/yt.svg new file mode 100644 index 0000000000..c9abb971b2 --- /dev/null +++ b/public/assets/images/flags/yt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/assets/images/flags/yu.svg b/public/assets/images/flags/yu.svg new file mode 100644 index 0000000000..510a9d49cb --- /dev/null +++ b/public/assets/images/flags/yu.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/public/assets/images/flags/za.svg b/public/assets/images/flags/za.svg new file mode 100644 index 0000000000..e585fc2051 --- /dev/null +++ b/public/assets/images/flags/za.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/zm.svg b/public/assets/images/flags/zm.svg new file mode 100644 index 0000000000..2d4e3e729c --- /dev/null +++ b/public/assets/images/flags/zm.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/zr.svg b/public/assets/images/flags/zr.svg new file mode 100644 index 0000000000..4e5a6228ff --- /dev/null +++ b/public/assets/images/flags/zr.svg @@ -0,0 +1,157 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/flags/zw.svg b/public/assets/images/flags/zw.svg new file mode 100644 index 0000000000..903afd38d1 --- /dev/null +++ b/public/assets/images/flags/zw.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/images/google_play_store.png b/public/assets/images/google_play_store.png new file mode 100644 index 0000000000..c77b7464b0 Binary files /dev/null and b/public/assets/images/google_play_store.png differ diff --git a/public/assets/images/gosu-24px.png b/public/assets/images/gosu-24px.png new file mode 100644 index 0000000000..43ddaa6068 Binary files /dev/null and b/public/assets/images/gosu-24px.png differ diff --git a/public/assets/images/gosu-logo.png b/public/assets/images/gosu-logo.png new file mode 100644 index 0000000000..7e1e88de20 Binary files /dev/null and b/public/assets/images/gosu-logo.png differ diff --git a/public/assets/images/home-background.png b/public/assets/images/home-background.png new file mode 100644 index 0000000000..c508fc5f9d Binary files /dev/null and b/public/assets/images/home-background.png differ diff --git a/public/assets/images/icons/icon-128x128.png b/public/assets/images/icons/icon-128x128.png new file mode 100755 index 0000000000..7a56e997ea Binary files /dev/null and b/public/assets/images/icons/icon-128x128.png differ diff --git a/public/assets/images/icons/icon-144x144.png b/public/assets/images/icons/icon-144x144.png new file mode 100755 index 0000000000..6e539c6056 Binary files /dev/null and b/public/assets/images/icons/icon-144x144.png differ diff --git a/public/assets/images/icons/icon-152x152.png b/public/assets/images/icons/icon-152x152.png new file mode 100755 index 0000000000..6a880b228f Binary files /dev/null and b/public/assets/images/icons/icon-152x152.png differ diff --git a/public/assets/images/icons/icon-192x192.png b/public/assets/images/icons/icon-192x192.png new file mode 100755 index 0000000000..f6a885f822 Binary files /dev/null and b/public/assets/images/icons/icon-192x192.png differ diff --git a/public/assets/images/icons/icon-384x384.png b/public/assets/images/icons/icon-384x384.png new file mode 100755 index 0000000000..b1f9e4d31c Binary files /dev/null and b/public/assets/images/icons/icon-384x384.png differ diff --git a/public/assets/images/icons/icon-512x512.png b/public/assets/images/icons/icon-512x512.png new file mode 100755 index 0000000000..6edc49cc4b Binary files /dev/null and b/public/assets/images/icons/icon-512x512.png differ diff --git a/public/assets/images/icons/icon-72x72.png b/public/assets/images/icons/icon-72x72.png new file mode 100755 index 0000000000..63e0cf487e Binary files /dev/null and b/public/assets/images/icons/icon-72x72.png differ diff --git a/public/assets/images/icons/icon-96x96.png b/public/assets/images/icons/icon-96x96.png new file mode 100755 index 0000000000..8daca78d15 Binary files /dev/null and b/public/assets/images/icons/icon-96x96.png differ diff --git a/public/assets/images/logo-1024.png b/public/assets/images/logo-1024.png new file mode 100644 index 0000000000..26608ec5fe Binary files /dev/null and b/public/assets/images/logo-1024.png differ diff --git a/public/assets/images/logo-preview.jpg b/public/assets/images/logo-preview.jpg new file mode 100644 index 0000000000..7d0584388f Binary files /dev/null and b/public/assets/images/logo-preview.jpg differ diff --git a/public/assets/images/logo.png b/public/assets/images/logo.png new file mode 100644 index 0000000000..8fe0dd9eaf Binary files /dev/null and b/public/assets/images/logo.png differ diff --git a/public/assets/images/loot.svg b/public/assets/images/loot.svg new file mode 100644 index 0000000000..3329b48bb3 --- /dev/null +++ b/public/assets/images/loot.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff --git a/public/assets/images/netlify.svg b/public/assets/images/netlify.svg new file mode 100644 index 0000000000..a6f5a13137 --- /dev/null +++ b/public/assets/images/netlify.svg @@ -0,0 +1,38 @@ + + + + logo-text-dark_jm + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/images/openai-logo.png b/public/assets/images/openai-logo.png new file mode 100644 index 0000000000..900326ccea Binary files /dev/null and b/public/assets/images/openai-logo.png differ diff --git a/public/assets/images/player_death.png b/public/assets/images/player_death.png new file mode 100644 index 0000000000..ca6802034f Binary files /dev/null and b/public/assets/images/player_death.png differ diff --git a/public/assets/images/radiant.png b/public/assets/images/radiant.png new file mode 100644 index 0000000000..f48e4ac9fb Binary files /dev/null and b/public/assets/images/radiant.png differ diff --git a/public/assets/images/rivalry-banner.gif b/public/assets/images/rivalry-banner.gif new file mode 100644 index 0000000000..7aa95178ce Binary files /dev/null and b/public/assets/images/rivalry-banner.gif differ diff --git a/public/assets/images/rivalry-icon.png b/public/assets/images/rivalry-icon.png new file mode 100644 index 0000000000..d177a7dd3d Binary files /dev/null and b/public/assets/images/rivalry-icon.png differ diff --git a/public/assets/images/rivalry-logo.png b/public/assets/images/rivalry-logo.png new file mode 100644 index 0000000000..36554ae342 Binary files /dev/null and b/public/assets/images/rivalry-logo.png differ diff --git a/public/assets/images/sad.gif b/public/assets/images/sad.gif new file mode 100644 index 0000000000..2dbc5b66eb Binary files /dev/null and b/public/assets/images/sad.gif differ diff --git a/public/assets/images/stats.png b/public/assets/images/stats.png new file mode 100644 index 0000000000..06d7dbc8af Binary files /dev/null and b/public/assets/images/stats.png differ diff --git a/public/assets/images/vp-banner.jpg b/public/assets/images/vp-banner.jpg new file mode 100644 index 0000000000..94e2631d67 Binary files /dev/null and b/public/assets/images/vp-banner.jpg differ diff --git a/public/assets/images/vp-logo.png b/public/assets/images/vp-logo.png new file mode 100644 index 0000000000..474c2c8512 Binary files /dev/null and b/public/assets/images/vp-logo.png differ diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000000..8350a5f252 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /matches diff --git a/reducers/appBar.js b/reducers/appBar.js deleted file mode 100644 index c7c22cb520..0000000000 --- a/reducers/appBar.js +++ /dev/null @@ -1,17 +0,0 @@ -import { appBarActions } from '../actions'; - -const initialState = { - open: false, -}; - -export default (state = initialState, action) => { - switch (action.type) { - case appBarActions.OPEN: - return { - ...state, - open: !state.open, - }; - default: - return state; - } -}; diff --git a/reducers/gotConstants.js b/reducers/gotConstants.js deleted file mode 100644 index 86973b4ea8..0000000000 --- a/reducers/gotConstants.js +++ /dev/null @@ -1,32 +0,0 @@ -import { constantsActions } from '../actions'; - -const initialState = { - loading: true, - error: false, - links: [], -}; - -export default (state = initialState, action) => { - switch (action.type) { - case constantsActions.REQUEST: - return { - ...state, - loading: true, - }; - case constantsActions.OK: - return { - state, - ...action.payload, - loading: false, - donations: action.payload.cheese, - }; - case constantsActions.ERROR: - return { - ...state, - loading: false, - error: true, - }; - default: - return state; - } -}; diff --git a/reducers/gotMatch.js b/reducers/gotMatch.js deleted file mode 100644 index 63359e5712..0000000000 --- a/reducers/gotMatch.js +++ /dev/null @@ -1,63 +0,0 @@ -import { matchActions } from '../actions'; -import { SORT_ENUM } from './utility'; - -const initialState = { - loading: true, - error: false, - match: { - players: { - players: [], - sortState: '', - sortField: '', - sortFn: f => f, - }, - }, -}; - -export default (state = initialState, action) => { - switch (action.type) { - case matchActions.REQUEST: - return { - ...state, - loading: true, - }; - case matchActions.OK: { - const { players, ...rest } = action.payload; - return { - ...state, - loading: false, - match: { - ...rest, - players: { - players, - }, - }, - }; - } - case matchActions.ERROR: - return { - ...state, - loading: false, - error: true, - }; - case matchActions.SORT: { - const { match, ...rest } = state; - const { players, ...restMatch } = match; - return { - ...rest, - match: { - ...restMatch, - players: { - players: players.players, - sortState: action.sortField === players.sortField ? SORT_ENUM.next(SORT_ENUM[players.sortState]) : SORT_ENUM[0], - sortField: action.sortField, - sortFn: action.sortFn, - }, - }, - - }; - } - default: - return state; - } -}; diff --git a/reducers/gotMetadata.js b/reducers/gotMetadata.js deleted file mode 100644 index 2d946f3c7a..0000000000 --- a/reducers/gotMetadata.js +++ /dev/null @@ -1,33 +0,0 @@ -import { metadataActions } from '../actions'; - -const initialState = { - loading: true, - error: false, - links: [], - donations: {}, -}; - -export default (state = initialState, action) => { - switch (action.type) { - case metadataActions.REQUEST: - return { - ...state, - loading: true, - }; - case metadataActions.OK: - return { - state, - ...action.payload, - loading: false, - donations: action.payload.cheese, - }; - case metadataActions.ERROR: - return { - ...state, - loading: false, - error: true, - }; - default: - return state; - } -}; diff --git a/reducers/gotPlayer/index.js b/reducers/gotPlayer/index.js deleted file mode 100644 index 0791da857b..0000000000 --- a/reducers/gotPlayer/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import playerReducer, { player } from './player'; -import matches from './matches'; -import { combineReducers } from 'redux'; - -export default combineReducers({ - playerReducer, - matches, -}); - -export { player }; diff --git a/reducers/gotPlayer/matches.js b/reducers/gotPlayer/matches.js deleted file mode 100644 index 4db3a2f7bd..0000000000 --- a/reducers/gotPlayer/matches.js +++ /dev/null @@ -1,42 +0,0 @@ -import { playerMatchesActions } from '../../actions'; -import { SORT_ENUM } from '../utility'; - -const initialState = { - loading: true, - error: false, - matches: [], - sortState: '', - sortField: '', - sortFn: f => f, -}; - -export default (state = initialState, action) => { - switch (action.type) { - case playerMatchesActions.REQUEST: - return { - ...state, - loading: true, - }; - case playerMatchesActions.OK: - return { - ...state, - loading: false, - matches: [...action.payload], - }; - case playerMatchesActions.ERROR: - return { - ...state, - loading: false, - error: true, - }; - case playerMatchesActions.SORT: - return { - ...state, - sortState: action.sortField === state.sortField ? SORT_ENUM.next(SORT_ENUM[state.sortState]) : SORT_ENUM[0], - sortField: action.sortField, - sortFn: action.sortFn, - }; - default: - return state; - } -}; diff --git a/reducers/gotPlayer/player.js b/reducers/gotPlayer/player.js deleted file mode 100644 index 519676ce35..0000000000 --- a/reducers/gotPlayer/player.js +++ /dev/null @@ -1,50 +0,0 @@ -import { playerActions } from '../../actions'; - -const initialState = { - loading: true, - error: false, - player: { - profile: {}, - }, -}; - -export default (state = initialState, action) => { - switch (action.type) { - case playerActions.REQUEST: - return { - ...state, - loading: true, - }; - case playerActions.OK: - return { - ...state, - loading: false, - player: action.payload, - }; - case playerActions.ERROR: - return { - ...state, - loading: false, - error: true, - }; - default: - return state; - } -}; - -export const player = { - getError: state => state.yaspReducer.gotPlayer.playerReducer.error, - getLoading: state => state.yaspReducer.gotPlayer.playerReducer.loading, - getPlayer: state => state.yaspReducer.gotPlayer.playerReducer.player, - getProfile: state => player.getPlayer(state).profile, - getPlayerName: state => player.getPlayer(state).profile.personaname, - getLastLogin: state => player.getPlayer(state).profile.last_login, - getWins: state => player.getPlayer(state).win, - getLosses: state => player.getPlayer(state).lose, - getMmrEstimate: state => player.getPlayer(state).mmr_estimate, - getSoloMmrEstimate: state => player.getPlayer(state).solo_competitive_rank, - getCompetitiveRank: state => player.getPlayer(state).competitive_rank, - getPicture: state => player.getProfile(state).avatarmedium, - getSteamLink: state => player.getProfile(state).profileurl, - getCheese: state => player.getProfile(state).cheese, -}; diff --git a/reducers/gotSearch.js b/reducers/gotSearch.js deleted file mode 100644 index cd0e886b9b..0000000000 --- a/reducers/gotSearch.js +++ /dev/null @@ -1,35 +0,0 @@ -import { searchActions } from '../actions'; - -const initialState = { - loading: false, - error: false, - done: false, - searchResults: [], -}; - -export default (state = initialState, action) => { - switch (action.type) { - case searchActions.START: - return { - ...state, - done: false, - loading: true, - }; - case searchActions.DONE: - return { - ...state, - loading: false, - done: true, - searchResults: action.payload, - }; - case searchActions.ERROR: - return { - ...state, - done: false, - loading: false, - error: true, - }; - default: - return state; - } -}; diff --git a/reducers/index.js b/reducers/index.js deleted file mode 100644 index 8dd4354faa..0000000000 --- a/reducers/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import gotMetadata from './gotMetadata'; -import gotConstants from './gotConstants'; -import gotMatch from './gotMatch'; -import gotPlayer, { player } from './gotPlayer'; -import gotSearch from './gotSearch'; -import appBar from './appBar'; -import { combineReducers } from 'redux'; - -const REDUCER_KEY = 'yaspReducer'; - -export { REDUCER_KEY }; - -// This is where we will export all our state retrieval functions (better encapsulation) -export { - player, -}; - -export default combineReducers({ - gotMetadata, - gotPlayer, - gotMatch, - gotConstants, - gotSearch, - appBar, -}); diff --git a/reducers/utility.js b/reducers/utility.js deleted file mode 100644 index 420bf061db..0000000000 --- a/reducers/utility.js +++ /dev/null @@ -1,8 +0,0 @@ - -export const SORT_ENUM = { - 0: 'asc', - 1: 'desc', - asc: 0, - desc: 1, - next: (state) => SORT_ENUM[(state >= 1 ? 0 : state + 1)], -}; diff --git a/selectors/getAlphabetizedLinks.js b/selectors/getAlphabetizedLinks.js deleted file mode 100644 index 2d5f63cd41..0000000000 --- a/selectors/getAlphabetizedLinks.js +++ /dev/null @@ -1,15 +0,0 @@ -import { createSelector } from 'reselect'; -import { REDUCER_KEY } from '../reducers'; - -const getLinks = (state) => state[REDUCER_KEY].gotConstants.links; - -const getAlphabetizedLinks = createSelector( - [getLinks], - (links) => links.sort((a, b) => { - if (a.name < b.name) return -1; - if (a.name > b.name) return 1; - return 0; - }) -); - -export default getAlphabetizedLinks; diff --git a/selectors/index.js b/selectors/index.js deleted file mode 100644 index 65daec6aa8..0000000000 --- a/selectors/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import getAlphabetizedLinks from './getAlphabetizedLinks'; -import sortPlayerMatches from './sortPlayerMatches'; -import sortMatch from './sortMatch'; -import transformPlayerMatches from './transformPlayerMatches'; -import transformMatch from './transformMatch'; - -export { - getAlphabetizedLinks, - sortPlayerMatches, - sortMatch, - transformPlayerMatches, - transformMatch, -}; diff --git a/selectors/sortMatch.js b/selectors/sortMatch.js deleted file mode 100644 index 905de84623..0000000000 --- a/selectors/sortMatch.js +++ /dev/null @@ -1,20 +0,0 @@ -import { createSelector } from 'reselect'; -import { REDUCER_KEY } from '../reducers'; -import transformMatch from './transformMatch'; - -const getSortState = (state) => state[REDUCER_KEY].gotMatch.match.players.sortState; -const getSortField = (state) => state[REDUCER_KEY].gotMatch.match.players.sortField; -const getSortFn = (state) => state[REDUCER_KEY].gotMatch.match.players.sortFn; - -const sortPlayerMatches = createSelector( - [transformMatch, getSortState, getSortField, getSortFn], - (matches, sortState, sortField, sortFn) => { - if (sortState === 'desc') { - return matches.reverse(); - } - return sortFn(matches, sortField); - // return (sortState === 'desc' ? matches.reverse() : sortFn(matches, sortField)) - } -); - -export default sortPlayerMatches; diff --git a/selectors/sortPlayerMatches.js b/selectors/sortPlayerMatches.js deleted file mode 100644 index 7d4a69abfa..0000000000 --- a/selectors/sortPlayerMatches.js +++ /dev/null @@ -1,15 +0,0 @@ -import { createSelector } from 'reselect'; -import { REDUCER_KEY } from '../reducers'; -import transformPlayerMatches from './transformPlayerMatches'; - -const getSortState = (state) => state[REDUCER_KEY].gotPlayer.matches.sortState; -const getSortField = (state) => state[REDUCER_KEY].gotPlayer.matches.sortField; -const getSortFn = (state) => state[REDUCER_KEY].gotPlayer.matches.sortFn; - -const sortPlayerMatches = createSelector( - [transformPlayerMatches, getSortState, getSortField, getSortFn], - (matches, sortState, sortField, sortFn) => - (sortState === 'desc' ? matches.reverse() : sortFn(matches, sortField)) -); - -export default sortPlayerMatches; diff --git a/selectors/transformMatch.js b/selectors/transformMatch.js deleted file mode 100644 index d3d3f9ed68..0000000000 --- a/selectors/transformMatch.js +++ /dev/null @@ -1,22 +0,0 @@ -import { createSelector } from 'reselect'; -import { REDUCER_KEY } from '../reducers'; -import transform from '../transformations'; - -const getMatch = (state) => state[REDUCER_KEY].gotMatch.match.players.players; -const getConstants = (state) => state[REDUCER_KEY].gotConstants; - -const transformMatchTable = createSelector( - [getMatch, getConstants], - (players, constants) => players.map(player => { - const transformedMatch = {}; - Object.keys(player).forEach((field) => { - transformedMatch[`${field}`] = { - display: transform(player, field, constants), - value: player[field], - }; - }); - return transformedMatch; - }) -); - -export default transformMatchTable; diff --git a/selectors/transformPlayerMatches.js b/selectors/transformPlayerMatches.js deleted file mode 100644 index 2d08566314..0000000000 --- a/selectors/transformPlayerMatches.js +++ /dev/null @@ -1,22 +0,0 @@ -import { createSelector } from 'reselect'; -import { REDUCER_KEY } from '../reducers'; -import transform from '../transformations'; - -const getMatches = (state) => state[REDUCER_KEY].gotPlayer.matches.matches; -const getConstants = (state) => state[REDUCER_KEY].gotConstants; - -const transformPlayerMatches = createSelector( - [getMatches, getConstants], - (matches, constants) => matches.map(match => { - const transformedMatch = {}; - Object.keys(match).forEach((field) => { - transformedMatch[`${field}`] = { - display: transform(match, field, constants), - value: match[field], - }; - }); - return transformedMatch; - }) -); - -export default transformPlayerMatches; diff --git a/src/actions/action.ts b/src/actions/action.ts new file mode 100644 index 0000000000..3840b62810 --- /dev/null +++ b/src/actions/action.ts @@ -0,0 +1,59 @@ +import querystring from "querystring"; +import config from "../config"; + +export default function action( + type: string, + host: string, + path: string, + params = {}, + transform?: (value: any) => any, +) { + return (dispatch: Function) => { + const url = `${host}/${path}?${typeof params === "string" ? params.substring(1) : querystring.stringify(params)}`; + const getDataStart = () => ({ + type: `REQUEST/${type}`, + }); + const getDataOk = (payload: any) => ({ + type: `OK/${type}`, + payload, + }); + const getError = (error: string | number) => ({ + type: `ERROR/${type}`, + error, + }); + const fetchDataWithRetry = (delay: number) => + fetch( + url, + url.startsWith(config.VITE_API_HOST) ? { credentials: "include" } : {}, + ) + .then((response) => { + if (!response.ok || !response.status) { + const err: any = new Error(); + err.fetchError = true; + dispatch(getError(response.status)); + if (response.status >= 400 && response.status < 500) { + err.clientError = true; + err.message = "fetch failed - client error"; + } else { + err.message = "fetch failed - retrying"; + } + throw err; + } + return response.json(); + }) + .then(transform || ((json) => json)) + .then((json) => dispatch(getDataOk(json))) + .catch((e) => { + // eslint-disable-next-line no-console + console.error(e); + if (e.fetchError && !e.clientError) { + setTimeout(() => fetchDataWithRetry(delay + 3000), delay); + } + if (!e.fetchError) { + throw e; + } + }); + dispatch(getDataStart()); + return fetchDataWithRetry(1000); + }; +} diff --git a/src/actions/analyzeMatch.ts b/src/actions/analyzeMatch.ts new file mode 100644 index 0000000000..e9a1fef21e --- /dev/null +++ b/src/actions/analyzeMatch.ts @@ -0,0 +1,161 @@ +import { skillshots } from "dotaconstants"; +import { isSupport, getObsWardsPlaced, isRoshHero } from "../utility"; +import store from "../store"; + +export default function analyzeMatch(match: any, _pm: any) { + const { strings } = store.getState().app; + // define condition check for each advice point + const advice: Record = {}; + const checks = { + // EFF@10 + eff(m: any, pm: any) { + const eff = pm.lane_efficiency ? pm.lane_efficiency : undefined; + let top = 0.6; + if (pm.lane_role === 3) { + top = 0.4; + } + if (isSupport(pm)) { + top = 0.3; + } + return { + grade: true, + name: strings.analysis_eff, + value: eff, + top, + valid: eff !== undefined, + score(raw: number) { + return raw; + }, + }; + }, + // farming drought (low gold earned delta over an interval) + farm_drought(m: any, pm: any) { + let delta = Number.MAX_VALUE; + const interval = 5; + let start = 0; + if (pm.gold_t) { + const goldT = pm.gold_t.slice(0, Math.floor(m.duration / 60) + 1); + for (let i = 0; i < goldT.length - interval; i += 1) { + const diff = goldT[i + interval] - goldT[i]; + if (i > 5 && diff < delta) { + delta = diff; + start = i; + } + } + } + return { + grade: true, + name: strings.analysis_farm_drought, + value: delta / interval, + top: isSupport(pm) ? 150 : 300, + valid: Boolean(start), + score(raw: number) { + return raw; + }, + }; + }, + // low ability accuracy (custom list of skillshots) + skillshot(m: any, pm: any) { + let acc; + if (pm.ability_uses && pm.hero_hits) { + Object.keys(pm.ability_uses).forEach((key) => { + if (key in skillshots) { + acc = pm.hero_hits[key] / pm.ability_uses[key]; + } + }); + } + return { + grade: true, + name: strings.analysis_skillshot, + value: acc, + valid: acc !== undefined, + score(raw: number) { + return raw || 0; + }, + top: 0.5, + }; + }, + // courier buy delay (3 minute flying) + late_courier(m: any, pm: any) { + const flyingAvailable = 180; + let time; + if ( + pm.purchase && + pm.first_purchase_time && + pm.first_purchase_time.flying_courier + ) { + time = pm.first_purchase_time.flying_courier; + } + return { + grade: true, + name: strings.analysis_late_courier, + value: time - flyingAvailable, + valid: time !== undefined, + score(raw: number) { + return 180 - raw; + }, + top: 30, + }; + }, + // low obs wards/min + wards(m: any, pm: any) { + const wardCooldown = 60 * 7; + const wards = getObsWardsPlaced(pm); + // divide game length by ward cooldown + // 2 wards respawn every interval + // split responsibility between 2 supports + const maxPlaced = ((m.duration / wardCooldown) * 2) / 2; + return { + grade: true, + name: strings.analysis_wards, + value: wards, + valid: isSupport(pm), + score(raw: number) { + return raw / maxPlaced; + }, + top: maxPlaced, + }; + }, + // roshan opportunities (specific heroes) + roshan(m: any, pm: any) { + let roshTaken = 0; + if (isRoshHero(pm) && pm.killed) { + roshTaken = pm.killed.npc_dota_roshan || 0; + } + return { + name: strings.analysis_roshan, + value: roshTaken, + valid: isRoshHero(pm), + score(raw: number) { + return raw; + }, + top: 1, + }; + }, + // rune control (mid player) + rune_control(m: any, pm: any) { + let runes: number | undefined = undefined; + if (pm.runes) { + runes = 0; + Object.keys(pm.runes).forEach((key) => { + runes += pm.runes[key]; + }); + } + const target = match.duration / 60 / 4; + return { + grade: true, + name: strings.analysis_rune_control, + value: runes, + valid: runes !== undefined && pm.lane_role === 2, + score(raw: number) { + return raw / target; + }, + top: target, + }; + }, + }; + Object.keys(checks).forEach((key) => { + advice[key] = checks[key as keyof typeof checks](match, _pm); + }); + return advice; +} diff --git a/src/actions/formActions.ts b/src/actions/formActions.ts new file mode 100644 index 0000000000..a48423b6a3 --- /dev/null +++ b/src/actions/formActions.ts @@ -0,0 +1,10 @@ +const TOGGLE_SHOW_FORM = "form/TOGGLE_SHOW_FORM"; + +export const formActions = { + TOGGLE_SHOW_FORM, +}; + +export const toggleShowForm = (formName?: string) => ({ + type: TOGGLE_SHOW_FORM, + formName, +}); diff --git a/src/actions/index.ts b/src/actions/index.ts new file mode 100644 index 0000000000..682699af38 --- /dev/null +++ b/src/actions/index.ts @@ -0,0 +1,298 @@ +import querystring from "querystring"; +import transformMatch from "./transformMatch"; +import transformBenchmarks from "./transformBenchmarks"; +import transformCounts from "./transformCounts"; +import transformHistograms from "./transformHistograms"; +import transformTrends from "./transformTrends"; +import transformRankings from "./transformRankings"; +import transformPlayerMatches from "./transformPlayerMatches"; +import action from "./action"; +import { langs } from "../lang"; +import config from "../config"; +import { paramsWithTurbo } from "../utility"; +import transformHeroItemSuggestion from "./transformHeroItemSuggestion"; + +export const getMetadata = () => + action("metadata", config.VITE_API_HOST, "api/metadata"); +export const getMatch = (matchId: string) => + action( + "match", + config.VITE_API_HOST, + `api/matches/${matchId}`, + {}, + transformMatch, + ); +export const getRanking = (heroId: string) => + action("heroRanking", config.VITE_API_HOST, "api/rankings", { + hero_id: heroId, + }); +export const getBenchmark = (heroId: string) => + action( + "heroBenchmark", + config.VITE_API_HOST, + "api/benchmarks", + { hero_id: heroId }, + transformBenchmarks, + ); +export const getHeroRecentGames = (heroId: string) => + action( + "heroRecentGames", + config.VITE_API_HOST, + `api/heroes/${heroId}/matches`, + ); +export const getHeroMatchups = (heroId: string) => + action("heroMatchups", config.VITE_API_HOST, `api/heroes/${heroId}/matchups`); +export const getHeroDurations = (heroId: string) => + action( + "heroDurations", + config.VITE_API_HOST, + `api/heroes/${heroId}/durations`, + ); +export const getHeroPlayers = (heroId: string) => + action("heroPlayers", config.VITE_API_HOST, `api/heroes/${heroId}/players`); +export const getHeroItemSuggestions = (heroId: string) => + action( + "heroItemSuggestions", + config.VITE_API_HOST, + `api/heroes/${heroId}/itemPopularity`, + {}, + transformHeroItemSuggestion, + ); +export const getProPlayers = () => + action("proPlayers", config.VITE_API_HOST, "api/proPlayers"); +export const getProMatches = () => + action("proMatches", config.VITE_API_HOST, "api/proMatches"); +export const getPublicMatches = (params: any) => + action("publicMatches", config.VITE_API_HOST, "api/publicMatches", params); +export const setSearchQuery = (query: string) => (dispatch: Function) => + dispatch({ + type: "QUERY/search", + query, + }); +export const getSearchResult = (query: string) => + action("search", config.VITE_API_HOST, "api/search", { q: query }); +export const getSearchResultAndPros = (query: string) => (dispatch: Function) => + Promise.all([ + dispatch(setSearchQuery(query)), + dispatch(getSearchResult(query)), + dispatch(getProPlayers()), + ...(/^\d+$/.test(query) ? [dispatch(getMatch(query))] : []), + ]); +export const getDistributions = () => + action("distributions", config.VITE_API_HOST, "api/distributions"); +export const getHeroStats = (params: any) => + action("heroStats", config.VITE_API_HOST, "api/heroStats", params); +export const getLeagues = () => + action("leagues", config.VITE_API_HOST, "api/leagues"); +export const getPlayers = () => + action("players", config.VITE_API_HOST, "api/topPlayers"); +export const getPlayersTurbo = () => + action("playersTurbo", config.VITE_API_HOST, "api/topPlayers", { turbo: 1 }); +export const getTeams = () => + action("teams", config.VITE_API_HOST, "api/teams"); +export const getTeam = (teamId: string) => + action("team", config.VITE_API_HOST, `api/teams/${teamId}`); +export const getTeamMatches = (teamId: string) => + action("teamMatches", config.VITE_API_HOST, `api/teams/${teamId}/matches`); +export const getTeamPlayers = (teamId: string) => + action("teamPlayers", config.VITE_API_HOST, `api/teams/${teamId}/players`); +export const getTeamHeroes = (teamId: string) => + action("teamHeroes", config.VITE_API_HOST, `api/teams/${teamId}/heroes`); +export const getRecords = (field: string) => + action("records", config.VITE_API_HOST, `api/records/${field}`); +export const getGithubPulls = (merged: string) => + action("ghPulls", "https://api.github.com", "search/issues", { + q: `repo:${config.GITHUB_REPO} type:pr base:production label:release merged:>${merged}`, + order: "desc", + page: 1, + per_page: 1, + }); +export const getPlayer = (accountId: string) => + action("player", config.VITE_API_HOST, `api/players/${accountId}`); +export const getPlayerWinLoss = (accountId: string, params: any) => + action( + "playerWinLoss", + config.VITE_API_HOST, + `api/players/${accountId}/wl`, + paramsWithTurbo(params), + ); +export const getPlayerRecentMatches = (accountId: string, params: any) => + action( + "playerRecentMatches", + config.VITE_API_HOST, + `api/players/${accountId}/recentMatches`, + paramsWithTurbo(params), + ); +export const getPlayerMatches = (accountId: string, params: any) => + action( + "playerMatches", + config.VITE_API_HOST, + `api/players/${accountId}/matches`, + { + ...paramsWithTurbo(params), + significant: 0, + project: [ + "duration", + "game_mode", + "lobby_type", + "start_time", + "hero_id", + "version", + "kills", + "deaths", + "assists", + "leaver_status", + "party_size", + "average_rank", + "hero_variant", // default fields when querying without project field + "item_0", + "item_1", + "item_2", + "item_3", + "item_4", + "item_5", // additional fields required for items + ], + }, + transformPlayerMatches({ ...querystring.parse(params.substring(1)) }), + ); +export const getPlayerPeers = (accountId: string, params: any) => + action( + "playerPeers", + config.VITE_API_HOST, + `api/players/${accountId}/peers`, + paramsWithTurbo(params), + ); +export const getPlayerHeroes = (accountId: string, params: any) => + action( + "playerHeroes", + config.VITE_API_HOST, + `api/players/${accountId}/heroes`, + paramsWithTurbo(params), + ); +export const getPlayerPros = (accountId: string, params: any) => + action( + "playerPros", + config.VITE_API_HOST, + `api/players/${accountId}/pros`, + paramsWithTurbo(params), + ); +export const getPlayerHistograms = ( + accountId: string, + params: any, + field: string, +) => + action( + "playerHistograms", + config.VITE_API_HOST, + `api/players/${accountId}/histograms/${field}`, + paramsWithTurbo(params), + transformHistograms, + ); +export const getPlayerRecords = ( + accountId: string, + params: any, + field: string, +) => + action( + "playerRecords", + config.VITE_API_HOST, + `api/players/${accountId}/matches`, + { ...paramsWithTurbo(params), sort: field, limit: 20 }, + ); +export const getPlayerTrends = ( + accountId: string, + params: any, + field: string, +) => + action( + "playerTrends", + config.VITE_API_HOST, + `api/players/${accountId}/matches`, + { + ...paramsWithTurbo(params), + limit: 1000, + project: [field, "hero_id", "start_time"], + }, + transformTrends(field), + ); +export const getPlayerCounts = (accountId: string, params: any) => + action( + "playerCounts", + config.VITE_API_HOST, + `api/players/${accountId}/counts`, + paramsWithTurbo(params), + transformCounts, + ); +export const getPlayerItems = (accountId: string, params: any) => + action( + "playerItems", + config.VITE_API_HOST, + `api/players/${accountId}/items`, + paramsWithTurbo(params), + ); +export const getPlayerWardmap = (accountId: string, params: any) => + action( + "playerWardmap", + config.VITE_API_HOST, + `api/players/${accountId}/wardmap`, + paramsWithTurbo(params), + ); +export const getPlayerWordcloud = (accountId: string, params: any) => + action( + "playerWordcloud", + config.VITE_API_HOST, + `api/players/${accountId}/wordcloud`, + paramsWithTurbo(params), + ); +export const getPlayerTotals = (accountId: string, params: any) => + action( + "playerTotals", + config.VITE_API_HOST, + `api/players/${accountId}/totals`, + paramsWithTurbo(params), + ); +export const getPlayerMmr = (accountId: string, params: any) => + action( + "playerMmr", + config.VITE_API_HOST, + `api/players/${accountId}/ratings`, + paramsWithTurbo(params), + ); +export const getPlayerRankings = (accountId: string, params: any) => + action( + "playerRankings", + config.VITE_API_HOST, + `api/players/${accountId}/rankings`, + paramsWithTurbo(params), + transformRankings, + ); +export const getStrings = () => async (dispatch: Function) => { + const getLang = (lang: string | null) => + langs.find((item) => item.value === lang); + const savedLang = + window.localStorage && window.localStorage.getItem("localization"); + const userLang = window.navigator.language; + const defaultLang = langs[0]; + const lang = getLang(savedLang) || getLang(userLang) || defaultLang; + + const defData = await import(`../lang/${defaultLang.value}.json`); + const selData = await import(`../lang/${lang.value}.json`); + + dispatch({ type: "strings", payload: { ...defData, ...selData } }); +}; +export const getScenariosItemTimings = (params: any) => + action( + "scenariosItemTimings", + config.VITE_API_HOST, + "api/scenarios/itemTimings", + params, + ); +export const getScenariosLaneRoles = (params: any) => + action( + "scenariosLaneRoles", + config.VITE_API_HOST, + "api/scenarios/laneRoles", + params, + ); +export const getScenariosMisc = (params: any) => + action("scenariosMisc", config.VITE_API_HOST, "api/scenarios/misc", params); diff --git a/src/actions/transformBenchmarks.ts b/src/actions/transformBenchmarks.ts new file mode 100644 index 0000000000..02862fab2f --- /dev/null +++ b/src/actions/transformBenchmarks.ts @@ -0,0 +1,18 @@ +export default function transformBenchmarks(data: any) { + const { result } = data; + const listStats = Object.keys(data.result); + const listPercentiles = result[listStats[0]].map((i: any) => i.percentile); + const benchmarks = []; + + for (let i = 0; i < listPercentiles.length; i += 1) { + const percentilePerStat: Record = { + percentile: listPercentiles[i], + }; + + listStats.forEach((stat) => { + percentilePerStat[stat] = result[stat][i].value; + }); + benchmarks.push(percentilePerStat); + } + return { result: benchmarks }; +} diff --git a/src/actions/transformCounts.ts b/src/actions/transformCounts.ts new file mode 100644 index 0000000000..39d5ebac55 --- /dev/null +++ b/src/actions/transformCounts.ts @@ -0,0 +1,44 @@ +import { patch } from "dotaconstants"; +import { region } from "dotaconstants"; +import { getPercentWin } from "../utility"; +import store from "../store"; + +const patchLookup: Record = {}; +patch.forEach((patchElement, index) => { + patchLookup[index] = patchElement.name; +}); + +export default function transformCounts(data: any) { + const { strings } = store.getState().app; + const countTypes = { + patch: patchLookup, + region, + is_radiant: { + 0: strings.general_dire, + 1: strings.general_radiant, + }, + }; + const result: Record = {}; + Object.keys(data).forEach((key) => { + // Translate each ID to a string + result[key] = { + name: key, + list: Object.keys(data[key]) + .map((innerKey) => ({ + category: + strings[`${key}_${innerKey}` as keyof Strings] || + (countTypes[key as keyof typeof countTypes] && + //@ts-expect-error + countTypes[key as keyof typeof countTypes][innerKey]) || + innerKey, + matches: data[key][innerKey].games, + winPercent: getPercentWin( + data[key][innerKey].win, + data[key][innerKey].games, + ), + })) + .sort((a, b) => b.category - a.category), + }; + }); + return result; +} diff --git a/src/actions/transformHeroItemSuggestion.ts b/src/actions/transformHeroItemSuggestion.ts new file mode 100644 index 0000000000..fe09eb15b8 --- /dev/null +++ b/src/actions/transformHeroItemSuggestion.ts @@ -0,0 +1,13 @@ +const transformHeroItemSuggestion = (data: any) => { + const res: Record = {}; + Object.entries(data).forEach(([gameStage, itemsAsJSON]) => { + res[gameStage] = {}; + Object.entries(itemsAsJSON) + .sort((a, b) => (a[1] > b[1] ? -1 : 1)) + .forEach(([itemId, quantity]) => { + res[gameStage][itemId] = quantity; + }); + }); + return [res]; +}; +export default transformHeroItemSuggestion; diff --git a/src/actions/transformHistograms.ts b/src/actions/transformHistograms.ts new file mode 100644 index 0000000000..3f2941d85f --- /dev/null +++ b/src/actions/transformHistograms.ts @@ -0,0 +1,14 @@ +const reduceArray = (backwards: boolean) => (array: any[], val: any) => { + if (array.length !== 0 || val.games !== 0) { + if (backwards) { + array.unshift(val); + } else { + array.push(val); + } + } + return array; +}; + +export default function transformHistograms(data: any[]) { + return data.reduceRight(reduceArray(true), []); +} diff --git a/src/actions/transformMatch.ts b/src/actions/transformMatch.ts new file mode 100644 index 0000000000..55bc54dd6c --- /dev/null +++ b/src/actions/transformMatch.ts @@ -0,0 +1,327 @@ +import { heroes } from "dotaconstants"; +import { + isRadiant, + isSupport, + getLevelFromXp, + unpackPositionData, +} from "../utility"; +import analyzeMatch from "./analyzeMatch"; +import store from "../store"; +import { ability_ids as abilityIds } from "dotaconstants"; + +let expandedUnitNames: Record | null = null; + +function generateExpandedUnitNames(strings: any) { + const expanded: Record = {}; + Object.keys(strings) + .filter((str) => str.indexOf("npc_dota_") === 0) + .forEach((key) => { + // Currently, no unit goes up higher than 4 + for (let i = 1; i < 5; i += 1) { + expanded[key.replace("#", String(i))] = strings[key]; + } + }); + return expanded; +} + +const getMaxKeyOfObject = (field: any) => + Number(Object.keys(field || {}).sort((a, b) => Number(b) - Number(a))[0]) || + 0; + +function generateTeamfights({ + players, + teamfights = [], +}: { + players: any[]; + teamfights: any[]; +}) { + const computeTfData = (tf: any) => { + const newtf = { + ...tf, + deaths_pos: [], + radiant_gold_advantage_delta: 0, + radiant_gold_delta: 0, + dire_gold_delta: 0, + radiant_xp_delta: 0, + radiant_participation: 0, + radiant_deaths: 0, + dire_participation: 0, + dire_deaths: 0, + }; + newtf.players = players + .map((player) => { + const tfplayer = tf.players[player.player_slot % (128 - 5)]; + if (!tfplayer) { + return null; + } + // compute team gold/xp deltas + if (isRadiant(player.player_slot)) { + newtf.radiant_gold_advantage_delta += tfplayer.gold_delta; + newtf.radiant_gold_delta += tfplayer.gold_delta; + newtf.radiant_xp_delta += tfplayer.xp_delta; + newtf.radiant_participation += tfplayer.participate ? 1 : 0; + newtf.radiant_deaths += tfplayer.deaths ? 1 : 0; + } else { + newtf.radiant_gold_advantage_delta -= tfplayer.gold_delta; + newtf.dire_gold_delta -= tfplayer.gold_delta; + newtf.radiant_xp_delta -= tfplayer.xp_delta; + newtf.dire_participation += tfplayer.participate ? 1 : 0; + newtf.dire_deaths += tfplayer.deaths ? 1 : 0; + } + const playerDeathsPos = unpackPositionData(tfplayer.deaths_pos).map( + (deathPos: any) => ({ + ...deathPos, + isRadiant: isRadiant(player.player_slot), + player, + }), + ); + newtf.deaths_pos = newtf.deaths_pos.concat(playerDeathsPos); + return { + ...player, + ...tfplayer, + participate: tfplayer.deaths > 0 || tfplayer.damage > 0, // || tfplayer.healing > 0, + level_start: getLevelFromXp(tfplayer.xp_start), + level_end: getLevelFromXp(tfplayer.xp_end), + deaths_pos: playerDeathsPos, + }; + }) + .filter((player) => player !== null); + + // We have to do this after we process the stuff so that we will have the player in + // the data instead of just the 'teamfight player' which doesn't have enough data. + newtf.deaths_pos = newtf.deaths_pos + .map((death: any) => [ + { + ...death, + killer: newtf.players.find( + (killer: any) => + heroes[death.player.hero_id as keyof Heroes] && + killer.killed[heroes[death.player.hero_id as keyof Heroes].name], + ), + }, + ]) + .reduce((newDeathsPos: any, death: any) => { + const copy = [...newDeathsPos]; + const samePosition = copy.findIndex((deathPos) => { + const cursor = deathPos[0]; + return cursor.x === death[0].x && cursor.y === death[0].y; + }); + if (samePosition !== -1) { + copy[samePosition] = copy[samePosition].concat(death); + } else { + copy.push(death); + } + return copy; + }, []); + return newtf; + }; + return (teamfights || []).map(computeTfData); +} + +// create a detailed history of each wards +function generateVisionLog(match: Match) { + const computeWardData = (player: MatchPlayer, i: number) => { + // let's coerce some value to be sure the structure is what we expect. + const safePlayer = { + ...player, + obs_log: player.obs_log || [], + sen_log: player.sen_log || [], + obs_left_log: player.obs_left_log || [], + sen_left_log: player.sen_left_log || [], + }; + + // let's zip the *_log and the *_left log in a 2-tuples + const extractVisionLog = ( + type: string, + enteredLog: any[], + leftLog: any[], + ) => + enteredLog.map((e) => { + const wards = [e, leftLog.find((l) => l.ehandle === e.ehandle)]; + return { + player: i, + key: wards[0].ehandle, + type, + entered: wards[0], + left: wards[1], + }; + }); + const observers = extractVisionLog( + "observer", + safePlayer.obs_log, + safePlayer.obs_left_log, + ); + const sentries = extractVisionLog( + "sentry", + safePlayer.sen_log, + safePlayer.sen_left_log, + ); + return observers.concat(sentries); + }; + + const temp: any[] = (match.players || []).map(computeWardData).flat(); + temp.sort((a, b) => a.entered.time - b.entered.time); + const result2 = temp.map((x, i) => ({ ...x, key: i })); + + return result2; +} + +function transformMatch(m: any) { + const { strings } = store.getState().app; + + // lane winning + const lineResults = m.players.reduce((res: any[], pl: any) => { + res[pl.isRadiant] = res[pl.isRadiant] || []; + res[pl.isRadiant][pl.lane] = res[pl.isRadiant][pl.lane] || 0; + + res[pl.isRadiant][pl.lane] += (pl.gold_t || [])[10]; + return res; + }, {}); + + const newPlayers = m.players.map((player: any) => { + const newPlayer = { + ...player, + desc: [ + strings[`lane_role_${player.lane_role}` as keyof Strings], + isSupport(player) ? "Support" : "Core", + ].join("/"), + multi_kills_max: getMaxKeyOfObject(player.multi_kills), + kill_streaks_max: getMaxKeyOfObject(player.kill_streaks), + lh_ten: (player.lh_t || [])[10], + dn_ten: (player.dn_t || [])[10], + line_win: + lineResults[player.isRadiant]?.[player.lane] > + //@ts-expect-error + lineResults[!player.isRadiant]?.[player.lane], + analysis: analyzeMatch(m, player), + }; + + // filter interval data to only be >= 0 + if (player.times) { + const intervals = ["lh_t", "gold_t", "xp_t", "times"]; + intervals.forEach((key) => { + newPlayer[key] = player[key].filter( + (el: number, i: number) => player.times[i] >= 0, + ); + }); + + // compute a cs_t as a sum of lh_t & dn_t + const csT = (player.lh_t || []).map( + (v: number, i: number) => v + ((player.dn_t || [])[i] || 0), + ); + newPlayer.cs_t = csT.filter( + (el: number, i: number) => player.times[i] >= 0, + ); + } + + // compute damage to towers/rax/roshan + if (player.damage) { + // npc_dota_goodguys_tower2_top + // npc_dota_goodguys_melee_rax_top + // npc_dota_roshan + // npc_dota_neutral_giant_wolf + // npc_dota_creep + newPlayer.objective_damage = {}; + Object.keys(player.damage).forEach((key) => { + let identifier = null; + if (key.indexOf("tower") !== -1) { + identifier = key.split("_").slice(3).join("_"); + } + if (key.indexOf("rax") !== -1) { + identifier = key.split("_").slice(4).join("_"); + } + if (key.indexOf("roshan") !== -1) { + identifier = "roshan"; + } + if (key.indexOf("fort") !== -1) { + identifier = "fort"; + } + if (key.indexOf("healers") !== -1) { + identifier = "shrine"; + } + if (identifier) { + newPlayer.objective_damage[identifier] = newPlayer.objective_damage[ + identifier + ] + ? newPlayer.objective_damage[identifier] + player.damage[key] + : player.damage[key]; + } + }); + } + if (player.killed) { + newPlayer.specific = {}; + // expand keys in specific by # (1-4) + // map to friendly name + // iterate through keys in killed + // if in expanded, put in pm.specific + if (!expandedUnitNames) { + expandedUnitNames = generateExpandedUnitNames(strings); + } + Object.keys(player.killed).forEach((key) => { + if (expandedUnitNames && key in expandedUnitNames) { + const name = expandedUnitNames[key]; + newPlayer.specific[name] = newPlayer.specific[name] + ? newPlayer.specific[name] + newPlayer.killed[key] + : newPlayer.killed[key]; + } + }); + } + if (player.purchase) { + newPlayer.purchase_tpscroll = player.purchase.tpscroll; + newPlayer.purchase_ward_observer = player.purchase.ward_observer; + newPlayer.purchase_ward_sentry = player.purchase.ward_sentry; + newPlayer.purchase_smoke_of_deceit = player.purchase.smoke_of_deceit; + newPlayer.purchase_dust = player.purchase.dust; + newPlayer.purchase_gem = player.purchase.gem; + } + newPlayer.buybacks = (player.buyback_log || []).length; + newPlayer.total_gold = (player.gold_per_min * m.duration) / 60; + if ( + m.game_mode === 18 && + Object.prototype.hasOwnProperty.call(player, "ability_upgrades_arr") + ) { + const arr: any[] = []; + if (player.ability_upgrades_arr) { + player.ability_upgrades_arr.forEach( + (ability: keyof typeof abilityIds) => { + if ( + !arr.includes(ability) && + abilityIds[ability] && + abilityIds[ability].indexOf("special_bonus") === -1 + ) { + arr.push(ability); + } + }, + ); + } + newPlayer.abilities = arr; + } + newPlayer.hero_name = + heroes[player.hero_id as keyof Heroes] && + heroes[player.hero_id as keyof Heroes].name; + + return newPlayer; + }); + + const newObjectives = (m.objectives || []).map((obj: any) => { + if (obj.slot > 0) { + return { + ...obj, + player_slot: obj.slot > 4 ? obj.slot + 123 : obj.slot, + }; + } + return { + ...obj, + }; + }); + + return { + ...m, + teamfights: generateTeamfights(m), + players: newPlayers, + wards_log: generateVisionLog(m), + objectives: newObjectives, + }; +} + +export default transformMatch; diff --git a/src/actions/transformPlayerMatches.ts b/src/actions/transformPlayerMatches.ts new file mode 100644 index 0000000000..ddf16b63fe --- /dev/null +++ b/src/actions/transformPlayerMatches.ts @@ -0,0 +1,30 @@ +import { isRadiant } from "../utility"; + +export default function transformPlayerMatches(fields: any) { + return (response: any[]) => { + // Check if player match parameters have an included account id, and add an extra variable which specifies if that player id is in the same team + if ( + fields.included_account_id && + !Array.isArray(fields.included_account_id) + ) { + return response.map((match) => { + let sameTeam = false; + const found = Object.entries(match.heroes).find( + ([key, val]: [key: string, val: any]) => + val.account_id && + val.account_id.toString() === fields.included_account_id, + ); + //@ts-expect-error + const partnerHero = { ...found?.[1], player_slot: Number(found?.[0]) }; + // console.log(partnerHero, match); + if ( + isRadiant(partnerHero.player_slot) === isRadiant(match.player_slot) + ) { + sameTeam = true; + } + return { ...match, sameTeam }; + }); + } + return response; + }; +} diff --git a/src/actions/transformRankings.ts b/src/actions/transformRankings.ts new file mode 100644 index 0000000000..abe02d0a36 --- /dev/null +++ b/src/actions/transformRankings.ts @@ -0,0 +1,3 @@ +export default function transformRankings(json: any) { + return json; +} diff --git a/src/actions/transformTrends.ts b/src/actions/transformTrends.ts new file mode 100644 index 0000000000..eeabb2dff6 --- /dev/null +++ b/src/actions/transformTrends.ts @@ -0,0 +1,52 @@ +export default function transformTrends(fieldName: string) { + return (response: any[]) => { + let cumulativeSum = 0; + const chunkSize = 20; + + // Compute sum of data (to act as in integral over data field) + // trends[i].value = sum(0 -> i, attribute) + const trends = response.reverse().reduce((dataList, match) => { + const win = match.player_slot < 128 === match.radiant_win; + const currentValue = + fieldName === "win_rate" + ? Number(win) * 100 // true -> 100 false -> 0 + : match[fieldName]; + + if (currentValue === undefined || currentValue === null) { + // filter + return dataList; + } + + cumulativeSum += currentValue; + + const nextIndex = dataList.length + 1; + dataList.push({ + x: nextIndex, + value: Number(cumulativeSum).toFixed(2), + independent_value: currentValue, + match_id: match.match_id, + hero_id: match.hero_id, + game_mode: match.game_mode, + duration: match.duration, + start_time: match.start_time, + win, + }); + return dataList; + }, []); + + // Compute in reverse order so that first n can be discarded + for (let i = trends.length - 1; i > chunkSize - 1; i -= 1) { + trends[i].value = + (trends[i].value - trends[i - chunkSize].value) / chunkSize; + + // Update graph index so it starts at 1 (since we only display 480 at a time) + trends[i].x -= chunkSize; + } + + // Discard first 20 elements + trends.splice(0, chunkSize); + + // Return 480 elements + return trends; + }; +} diff --git a/src/components/AbilityTooltip/AbilityBehaviour.tsx b/src/components/AbilityTooltip/AbilityBehaviour.tsx new file mode 100644 index 0000000000..2842d86df9 --- /dev/null +++ b/src/components/AbilityTooltip/AbilityBehaviour.tsx @@ -0,0 +1,86 @@ +import styled from "styled-components"; +import constants from "../constants"; +import { formatValues } from "../../utility"; +import React from "react"; + +const Behavior = styled.div` + position: relative; + padding: 13px; + color: #95a5a6; + + span { + &:nth-child(2) { + color: ${constants.primaryTextColor}; + font-weight: 500; + } + &[type="Yes"] { + color: ${constants.colorGreen}; + } + &[type="Strong Dispels Only"] { + color: darkred; + } + &[type="No"] { + color: ${constants.colorRed}; + } + &[type="Pure"] { + color: ${constants.colorDamageTypePure}; + } + &[type="Physical"] { + color: ${constants.colorDamageTypePhysical}; + } + &[type="Magical"] { + color: ${constants.colorDamageTypeMagical}; + } + } +`; + +const AbilityBehaviour = ({ + ability, +}: { + ability: { + behavior?: any; + dmg_type?: string; + bkbpierce?: boolean; + dispellable?: boolean; + }; +}) => ( + + {ability.behavior ? ( +
    + TARGET: + {formatValues(ability.behavior)} +
    + ) : ( + "" + )} + {ability.dmg_type ? ( +
    + DAMAGE TYPE: + {/* @ts-expect-error */} + {`${ability.dmg_type}`} +
    + ) : ( + "" + )} + {ability.bkbpierce ? ( +
    + PIERCES DEBUFF IMMUNITY: + {/* @ts-expect-error */} + {`${ability.bkbpierce}`} +
    + ) : ( + "" + )} + {ability.dispellable ? ( +
    + DISPELLABLE: + {/* @ts-expect-error */} + {`${ability.dispellable}`} +
    + ) : ( + "" + )} +
    +); + +export default AbilityBehaviour; diff --git a/src/components/AbilityTooltip/AbilityTooltip.tsx b/src/components/AbilityTooltip/AbilityTooltip.tsx new file mode 100644 index 0000000000..288142ee5a --- /dev/null +++ b/src/components/AbilityTooltip/AbilityTooltip.tsx @@ -0,0 +1,218 @@ +import React from "react"; +import styled from "styled-components"; +import constants from "../constants"; +import { styleValues, formatValues } from "../../utility"; +import AbilityBehaviour from "./AbilityBehaviour"; +import config from "../../config"; + +const Wrapper = styled.div` + position: relative; + width: 300px; + background: #131519; + background: linear-gradient(135deg, #131519, #1f2228); + overflow: hidden; + border: 2px solid #27292b; + + & > div:nth-child(2) { + position: relative; + border-top: 1px solid #080d15; + } +`; + +const Header = styled.div` + background: linear-gradient(to right, #51565f, #303338); + position: relative; +`; + +const HeaderContent = styled.div` + position: relative; + height: 50px; + padding: 13px; + white-space: nowrap; + + & img { + display: inline-block; + height: 100%; + border: 1px solid #080d15; + } + + & .name { + display: inline-block; + position: relative; + left: 15px; + bottom: 1px; + height: 50px; + width: 220px; + font-size: ${constants.fontSizeCommon}; + text-transform: uppercase; + color: ${constants.primaryTextColor}; + font-weight: bold; + text-shadow: 1px 1px black; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 50px; + letter-spacing: 1px; + } +`; + +const HeaderBgImg = styled.div<{ img?: string }>` + position: absolute; + left: -20px; + height: 100%; + width: 20%; + background: ${({ img }: any) => + `linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url('${config.VITE_IMAGE_CDN}${img}')`}; + background-color: transparent; + background-repeat: no-repeat; + transform: scale(4); + filter: blur(15px); +`; + +const Description = styled.div` + position: relative; + padding: 13px; + color: #95a5a6; + text-shadow: 1px 1px black; +`; + +const Attributes = styled.div` + position: relative; + padding: 13px; + + & .attribute { + text-shadow: 1px 1px black; + padding: 2px 0; + color: #95a5a6; + + & #value { + color: ${constants.primaryTextColor}; + font-weight: 500; + } + } +`; + +const Resources = styled.div` + padding: 6px 13px 13px 13px; + + & span { + margin-right: 7px; + } + + .values { + font-weight: 500; + } +`; + +const ResourceIcon = styled.img` + width: 16px; + height: 16px; + vertical-align: sub; + margin-right: 5px; +`; + +const Break = styled.div` + margin-left: 13px; + margin-right: 13px; + height: 1px; + background-color: #080d15; +`; + +const AbilityTooltip = ({ + ability, + inflictor, +}: { + ability: { + img?: string; + dname?: string; + behavior?: string; + dmg_type?: string; + bkbpierce?: boolean; + desc?: string; + attrib?: any[]; + dmg?: any; + mc?: string[]; + cd?: number[]; + }; + inflictor?: string; +}) => ( + +
    + + + {inflictor && inflictor.startsWith("special_") ? ( + Talent Tree + ) : ( + Talent Tree + )} +
    {ability.dname}
    +
    +
    + {(ability.behavior || ability.dmg_type || ability.bkbpierce) && ( +
    + + +
    + )} + {ability.desc && ( + styleValues(el)}> + {ability.desc} + + )} + {ability.attrib && ability.attrib.length > 0 && ( +
    + + +
    + {(ability.attrib || []).map((attrib: any) => ( +
    + {attrib.header} + {formatValues(attrib.value)} + {attrib.footer || ""} +
    + ))} + {ability.dmg ? ( +
    + DAMAGE: {formatValues(ability.dmg)} +
    + ) : ( + "" + )} +
    +
    +
    + )} + {(ability.mc || ability.cd) && ( + + {ability.mc && ( + + + {formatValues(ability.mc)} + + )} + {ability.cd && ( + + + {formatValues(ability.cd)} + + )} + + )} +
    +); + +export default AbilityTooltip; diff --git a/src/components/AccountWidget/AccountWidget.tsx b/src/components/AccountWidget/AccountWidget.tsx new file mode 100644 index 0000000000..791456c3bd --- /dev/null +++ b/src/components/AccountWidget/AccountWidget.tsx @@ -0,0 +1,59 @@ +import { Button } from "@mui/material"; +import React from "react"; +import { connect } from "react-redux"; +import styled from "styled-components"; + +import config from "../../config"; +import Error from "../Error/Error"; +import { IconSteam } from "../Icons"; +import LoggedIn from "./LoggedIn"; +import useStrings from "../../hooks/useStrings.hook"; + +const ButtonLabel = styled.span` + margin-left: 4px; +`; + +const AccountWidget = ({ + loading, + error, + user, + style, +}: { + loading: boolean; + error: string; + user: any; + style?: any; +}) => { + const strings = useStrings(); + if (loading) return null; + return ( +
    + {error && } + {!error && !loading && user ? ( + + ) : ( + + )} +
    + ); +}; + +const mapStateToProps = (state: any) => { + const { error, loading, data } = state.app.metadata; + return { + loading, + error, + user: data.user, + }; +}; + +export default connect(mapStateToProps)(AccountWidget); diff --git a/src/components/AccountWidget/LoggedIn.tsx b/src/components/AccountWidget/LoggedIn.tsx new file mode 100644 index 0000000000..6758b12b39 --- /dev/null +++ b/src/components/AccountWidget/LoggedIn.tsx @@ -0,0 +1,42 @@ +import React from "react"; +import { Link } from "react-router-dom"; +import styled from "styled-components"; +import { Button } from "@mui/material"; +import Spinner from "../Spinner/Spinner"; +import useStrings from "../../hooks/useStrings.hook"; + +const StyledButton = styled(Button)` + min-width: 30px !important; + & > div > span { + display: inline-block; + max-width: 90px; + overflow: hidden; + text-overflow: ellipsis; + text-transform: none !important; + white-space: nowrap; + font-size: 16px !important; + padding-right: 10px !important; + padding-left: 0 !important; + } + display: flex; +`; + +const LoggedIn = ({ + playerId, + style, +}: { + playerId: number; + style: React.CSSProperties; +}) => { + const strings = useStrings(); + if (!playerId) { + return ; + } + return ( + + {strings.app_my_profile} + + ); +}; + +export default LoggedIn; diff --git a/src/components/AghsTooltip/AghsTooltip.tsx b/src/components/AghsTooltip/AghsTooltip.tsx new file mode 100644 index 0000000000..53a77ddcf9 --- /dev/null +++ b/src/components/AghsTooltip/AghsTooltip.tsx @@ -0,0 +1,136 @@ +import React from "react"; +import styled from "styled-components"; +import ReactTooltip from "react-tooltip"; +import constants from "../constants"; +import AghanimsTooltipHeader from "./AghsTooltipHeader"; +import AghsTooltipBody from "./AghsTooltipBody"; +import config from "../../config"; + +const Wrapper = styled.div` + width: 340px; + background: rgb(21, 27, 29); + overflow: hidden; + border: 2px solid #27292b; +`; + +const CombinedWrapper = styled.div` + display: flex; + background-color: rgba(0, 0, 255, 0.01); + flex-direction: column; + gap: 10px; + margin: 0 -20px; +`; + +const AghanimsToolTip = ({ + upgrades, + skills, +}: { + upgrades: any; + skills: any[]; + type: string; +}) => { + let newScepterAbility = null; + let newShardAbility = null; + + const getAghsSkillObject = (skillName: string) => { + if (!skillName || skillName === "") return null; + const ability = skills.find((skill) => skill.data.dname === skillName); + return ability.data; + }; + + if (skills && upgrades) { + const newShardSkillName = upgrades.shard_skill_name; + const newShardSkillObject = getAghsSkillObject(newShardSkillName); + newShardAbility = ( + + + Aghanim‘s Shard + + + + ); + + const newScepterSkillName = upgrades.scepter_skill_name; + const newScepterSkillObject = getAghsSkillObject(newScepterSkillName); + newScepterAbility = ( + + + Aghanim‘s Scepter + + + + ); + } + + return ( + + {newScepterAbility} + {newShardAbility} + + ); +}; + +const TtWrapper = styled.div` + background: linear-gradient( + to bottom, + ${constants.colorBlueMuted}, + ${constants.primarySurfaceColor} + ); + border-radius: 4px; + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3); + position: relative; +`; + +export const StyledAghanimsBuffs = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + > img { + width: 65%; + } + + .__react_component_tooltip { + opacity: 1 !important; + padding: 0px !important; + } +`; +const AghsTooltipWrapper = ({ + upgrades, + skills, +}: { + upgrades: any; + skills: any[]; + heroName: string; +}) => ( + + + + + + + +); + +export default AghsTooltipWrapper; diff --git a/src/components/AghsTooltip/AghsTooltipBody.tsx b/src/components/AghsTooltip/AghsTooltipBody.tsx new file mode 100644 index 0000000000..a21c53598f --- /dev/null +++ b/src/components/AghsTooltip/AghsTooltipBody.tsx @@ -0,0 +1,164 @@ +import React from "react"; +import styled from "styled-components"; +import constants from "../constants"; +import { formatSkillOrAttributeValues } from "../../utility"; + +const Ability = styled.div` + margin-left: 8px; + color: rgb(176, 198, 212); + max-width: 85%; + + .ability-text { + padding: 6px; + font-weight: normal; + color: rgb(169, 181, 193); + text-shadow: 1px 1px black; + } +`; + +const AbilityDescription = styled.p` + line-height: 16px; + color: #c8dade; + margin: 0px; + padding: 0px; + font-weight: normal; +`; + +const AbilityIcon = styled.img` + border-radius: 4px; + flex-grow: 0; + flex-shrink: 0; + flex-basis: 15%; + opacity: 0.7; + overflow: hidden; + border: 1px black solid; + height: 42px; + transition: + opacity 0.2s, + box-shadow 0.4s, + transform 0.2s; + + &:hover { + opacity: 1; + box-shadow: 0 0 150px rgba(255, 255, 255, 0.4); + transform: scale(1.1); + } +`; + +const AbilityTitle = styled.span` + color: ${constants.textColorPrimary}; + text-transform: uppercase; + font-size: 1rem; +`; + +const Attributes = styled.div` + margin-top: 4px; + line-height: 16px; + + & #footer { + color: #95a5a6; + } + + & #value { + font-weight: 500; + } + + & #header { + color: #95a5a6; + } +`; + +const Body = styled.div` + display: flex; + margin: 10px 9px 10px 9px; + padding: 6px; + font-weight: bold; + color: ${constants.colorBlueGray}; +`; + +const Break = styled.div` + margin-left: 13px; + margin-right: 13px; + height: 1px; + background-color: #080d15; +`; + +const NewAbility = styled.div` + background-color: #335380; + text-transform: uppercase; + color: ${constants.textColorPrimary}; + text-align: center; + font-size: 10px; + padding: 0px 6px; + width: 40%; + margin: 4px 0px; +`; + +const getAghsAttributes = (skillObject: any) => { + const skills: any[] = skillObject.attrib || []; + const attributes = skills.map((attrib) => ( +
    + {attrib.header} + {formatSkillOrAttributeValues(attrib.value)} + {attrib.footer || ""} +
    + )); + return ( + <> + {attributes} + {skillObject.dmg ? ( +
    + DAMAGE:{" "} + + {formatSkillOrAttributeValues(skillObject.dmg)} + +
    + ) : ( + "" + )} + + ); +}; + +const AghsTooltipBody = ({ + icon, + skillName, + isNewSkill, + aghsDescription, + skillObject, + hasUpgrade, +}: { + icon: string; + skillName: string; + isNewSkill: boolean; + aghsDescription: string; + skillObject: any; + hasUpgrade: boolean; +}) => ( + + {hasUpgrade ? ( + <> + + + {skillName} + + {isNewSkill ? New ability : Upgrade} + + + {aghsDescription} + {skillObject.attrib && skillObject.attrib.length > 0 && ( +
    + + {getAghsAttributes(skillObject)} +
    + )} +
    +
    + + ) : ( + No Aghanim's upgrade found + )} + +); + +export default AghsTooltipBody; diff --git a/src/components/AghsTooltip/AghsTooltipHeader.tsx b/src/components/AghsTooltip/AghsTooltipHeader.tsx new file mode 100644 index 0000000000..c4946d1585 --- /dev/null +++ b/src/components/AghsTooltip/AghsTooltipHeader.tsx @@ -0,0 +1,63 @@ +import React from "react"; +import styled from "styled-components"; +import constants from "../constants"; + +const Header = styled.div` + font-size: ${constants.fontSizeCommon}; + color: ${constants.colorBlue}; + background-color: rgba(102, 187, 255, 0.2); + + .header-content { + height: 25px; + padding: 5px 13px 5px 13px; + white-space: nowrap; + display: flex; + } + + #scepter-img { + display: inline-block; + height: 32px; + width: 30px; + padding: 4px; + margin: -8px 6px 0px 6px; + vertical-align: middle; + } + + #shard-img { + display: inline-block; + height: 25px; + width: 35px; + margin: 2px 4px; + padding: 0 4px; + vertical-align: middle; + } +`; + +const HeaderText = styled.div` + height: 100%; + position: relative; + display: inline-block; + margin-left: 8px; + color: ${constants.colorBlue}; + font-weight: bold; + letter-spacing: 1px; +`; + +const AghanimsTooltipHeader = ({ + image, + type, + children, +}: { + image: string; + type: string; + children: React.ReactNode; +}) => ( +
    +
    + + {children} +
    +
    +); + +export default AghanimsTooltipHeader; diff --git a/src/components/Alerts/Info.tsx b/src/components/Alerts/Info.tsx new file mode 100644 index 0000000000..33a25b884b --- /dev/null +++ b/src/components/Alerts/Info.tsx @@ -0,0 +1,39 @@ +import React from "react"; +import InfoIcon from "@mui/icons-material/Info"; +import styled from "styled-components"; +import constants from "../constants"; + +const StyledDiv = styled.div` + & a { + color: ${constants.colorMutedLight}; + font-size: ${constants.fontSizeSmall}; + } + + & svg { + vertical-align: sub; + margin-right: 5px; + width: 15px !important; + height: 15px !important; + fill: ${constants.colorBlue} !important; + } +`; + +const Info = ({ + children, + className, + msg, +}: { + children: React.ReactNode; + className?: string; + msg?: string; +}) => ( + + + + {!children && msg} + {!msg && children} + + +); + +export default Info; diff --git a/src/components/Alerts/Warning.tsx b/src/components/Alerts/Warning.tsx new file mode 100644 index 0000000000..cf6935688c --- /dev/null +++ b/src/components/Alerts/Warning.tsx @@ -0,0 +1,39 @@ +import React from "react"; +import WarningIcon from "@mui/icons-material/Warning"; +import styled from "styled-components"; +import constants from "../constants"; + +const StyledDiv = styled.div` + font-weight: ${constants.fontWeightLight}; + font-size: ${constants.fontSizeMedium}; + letter-spacing: 0.1ex; + + & svg { + vertical-align: sub; + margin-right: 5px; + width: 20px !important; + height: 20px !important; + fill: ${constants.colorYelor} !important; + } + color: ${constants.colorYelor}; +`; + +const Warning = ({ + children, + className, + msg, +}: { + children: React.ReactNode; + className: string; + msg?: string; +}) => ( + + + + {!children && msg} + {!msg && children} + + +); + +export default Warning; diff --git a/src/components/Announce/Announce.tsx b/src/components/Announce/Announce.tsx new file mode 100644 index 0000000000..dacbae251b --- /dev/null +++ b/src/components/Announce/Announce.tsx @@ -0,0 +1,176 @@ +import React, { MouseEventHandler } from "react"; +import { Button } from "@mui/material"; +import { connect } from "react-redux"; +import styled from "styled-components"; +import ReactMarkdown from "react-markdown"; +import { getGithubPulls } from "../../actions"; +import constants from "../constants"; +import useStrings from "../../hooks/useStrings.hook"; + +const StyledDiv = styled.div` + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + background-color: #008eff; + + & main, + & aside { + padding: 8px 20px; + } + + & main { + flex-grow: 1; + + & > div, + & a, + & p { + font-size: ${constants.fontSizeMedium}; + margin: 0; + opacity: 0.85; + } + + & a { + color: ${constants.textColorPrimary}; + + &:hover { + text-decoration: underline; + } + } + + & h4 { + font-weight: ${constants.fontWeightMedium}; + font-size: ${constants.fontSizeCommon}; + line-height: ${constants.fontSizeCommon}; + margin: 0 0 2px; + + & svg { + height: 16px; + fill: ${constants.textColorPrimary}; + vertical-align: sub; + } + } + + & ul { + margin: 2px 0 0; + padding-left: 20px; + + & li { + list-style-type: circle; + + &::first-letter { + text-transform: capitalize; + } + } + } + } + + & aside { + flex-shrink: 0; + } +`; +const Announce = ({ + title, + body, + onClick, + link, +}: { + title: string; + body: string; + onClick: MouseEventHandler<{}>; + link: string; +}) => { + const strings = useStrings(); + return ( + +
    +

    {title}

    + {body && {body}} +
    + + +
    + ); +}; + +class AnnounceWrapper extends React.Component< + { + error: string; + getPulls: Function; + loading: boolean; + data: any; + }, + { dismissed?: boolean } +> { + constructor(props: any) { + super(props); + + this.state = {}; + } + + dismiss = (value: string) => { + if (localStorage) { + localStorage.setItem("dismiss", value); + } + this.setState({ dismissed: true }); + }; + + getDate = (days: number) => { + const msPerDay = 24 * 60 * 60 * 1000; + const date = new Date(Number(new Date()) - msPerDay * days); + return date.toISOString().split("T")[0]; + }; + + componentDidMount() { + this.props.getPulls(this.getDate(5)); + } + + render() { + const { error, loading, data } = this.props; + + if (!error && !loading && data) { + if (data.items && data.items[0]) { + const { title, body, number, html_url: link } = data.items[0]; + + if ( + localStorage && + !this.state.dismissed && + Number(localStorage.getItem("dismiss")) < number + ) { + return ( + this.dismiss(number)} + link={link} + /> + ); + } + } + } + + return null; + } +} + +const mapStateToProps = (state: any) => { + const { error, loading, data } = state.app.ghPulls; + + return { + error, + loading, + data, + }; +}; + +const mapDispatchToProps = (dispatch: any) => ({ + getPulls: (repo: string) => dispatch(getGithubPulls(repo)), +}); + +export default connect(mapStateToProps, mapDispatchToProps)(AnnounceWrapper); diff --git a/src/components/Api/Api.tsx b/src/components/Api/Api.tsx new file mode 100644 index 0000000000..6f95ef6fe9 --- /dev/null +++ b/src/components/Api/Api.tsx @@ -0,0 +1,434 @@ +import React from "react"; +import { connect } from "react-redux"; +import Helmet from "react-helmet"; +import { Alert, CircularProgress } from "@mui/material"; +import { Button } from "@mui/material"; +import styled from "styled-components"; +import StripeCheckout, { Token } from "react-stripe-checkout"; +import config from "../../config"; +import { IconSteam } from "../Icons"; + +const path = "/keys"; + +const ApiContainer = styled.div` + width: 80%; + margin: 0 auto; + + @media only screen and (max-width: 768px) { + width: 100%; + } + + & li { + list-style-type: initial; + } + + & h2 { + font-size: 1.17em; + } +`; + +const KeyContainer = styled.pre` + background: grey; + display: inline; + padding: 10px; +`; + +const TableContainer = styled.div` + table { + width: 80%; + margin: 0 auto; + background: rgba(255, 255, 255, 0.011); + } + + & table td, + table th { + white-space: inherit !important; + } + + th { + color: rgb(255, 128, 171); + } + + @media only screen and (max-width: 768px) { + width: 100%; + } +`; + +const DetailsContainer = styled.div` + text-align: left; + width: 80%; + margin: 0 auto; + + @media only screen and (max-width: 768px) { + width: 100%; + } +`; + +class KeyManagement extends React.Component< + { loading: boolean; metadata: any; strings: Strings }, + { + error: boolean; + loading: boolean; + usage?: any[]; + openInvoices?: { paymentLink: string }[]; + customer?: { + api_key: string; + current_period_end: number; + credit_brand: string; + credit_last4: string; + }; + } +> { + constructor(props: any) { + super(props); + + this.state = { + error: false, + loading: true, + }; + + this.handleSubmit = this.handleSubmit.bind(this); + this.handleUpdate = this.handleUpdate.bind(this); + this.handleDelete = this.handleDelete.bind(this); + } + + componentDidMount() { + fetch(`${config.VITE_API_HOST}${path}`, { + credentials: "include", + method: "GET", + }) + .then((res) => { + if (res.ok) { + return res.json(); + } else if (res.status === 403) { + return {}; + } + throw Error(); + }) + .then((json) => { + this.setState({ ...json, loading: false }); + }) + .catch(() => this.setState({ error: true })); + } + + handleSubmit(token: Token) { + this.setState({ loading: true }); + fetch(`${config.VITE_API_HOST}${path}`, { + credentials: "include", + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify({ + token, + }), + }) + .then((res) => { + if (res.ok) { + window.location.reload(); + } else { + throw Error(); + } + }) + .catch(() => this.setState({ error: true })); + } + + handleDelete() { + this.setState({ loading: true }); + fetch(`${config.VITE_API_HOST}${path}`, { + credentials: "include", + method: "DELETE", + }) + .then((res) => { + if (res.ok) { + window.location.reload(); + } else { + throw Error(); + } + }) + .catch(() => this.setState({ error: true })); + } + + handleUpdate(token: Token) { + this.setState({ loading: true }); + fetch(`${config.VITE_API_HOST}${path}`, { + credentials: "include", + method: "PUT", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify({ + token, + }), + }) + .then((res) => { + if (res.ok) { + window.location.reload(); + } else { + throw Error(); + } + }) + .catch(() => this.setState({ error: true })); + } + + render() { + const { loading, metadata, strings } = this.props; + const user = metadata?.user; + const showLoginButton = !user; + const showGetKeyButton = + user && !(this.state.customer && this.state.customer.api_key); + const premUnit = 100; + const freeCallLimit = metadata?.freeCallLimit; + const freeRateLimit = metadata?.freeRateLimit; + const premRateLimit = metadata?.premRateLimit; + const premPrice = 0.01; + + return ( +
    + + {strings.title_api} + + + + {this.state.error ?
    {strings.api_error}
    :
    } + {this.state.openInvoices?.length ? ( + + {strings.api_open_invoice}{" "} + + {strings.api_invoice_link} + + + ) : null} +

    {strings.api_title}

    +

    {strings.api_subtitle}

    + {loading || this.state.loading || !Object.keys(strings).length ? ( + + ) : ( +
    + {showLoginButton ? ( + + ) : ( +
    + )} + {showGetKeyButton ? ( + + + + ) : ( + + )} + + {this.state.customer ? ( +
    + {this.state.customer.api_key ? ( +
    +

    {strings.api_header_key}

    + {this.state.customer.api_key} +

    + {strings.api_key_usage.replace( + "$param", + "api_key=XXXX", + )} +

    + +

    + {`${strings.api_billing_cycle.replace( + "$date", + new Date( + this.state.customer.current_period_end * 1000, + ).toLocaleDateString(), + )} ${strings.api_billed_to + .replace("$brand", this.state.customer.credit_brand) + .replace( + "$last4", + this.state.customer.credit_last4, + )}`} +

    +

    + {strings.api_support.replace( + "$email", + "api@opendota.com", + )} +

    + + + + +
    + ) : ( +
    + )} + {this.state.usage ? ( +
    +

    {strings.api_header_usage}

    + + + + + + + + + + + {this.state.usage.map((e) => ( + + + + + + ))} + +
    {strings.api_month}{strings.api_usage_calls}{strings.api_usage_fees}
    {e.month}{e.usage_count}{`$${Number(premPrice * Math.ceil(e.usage_count / premUnit)).toFixed(2)}`}
    +
    +
    + ) : ( +
    + )} +
    + ) : ( +
    + )} +

    {strings.api_header_table}

    + + + + + {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {strings.api_details_free_tier}{strings.api_details_premium_tier}
    {strings.api_details_price}{strings.api_details_price_free} + {strings.api_details_price_prem + .replace("price", String(premPrice)) + .replace("$unit", String(premUnit))} +
    {strings.api_details_key_required}{strings.api_details_key_required_free}{strings.api_details_key_required_prem}
    {strings.api_details_call_limit} + {strings.api_details_call_limit_free_day.replace( + "$limit", + String(freeCallLimit), + )} + {strings.api_details_call_limit_prem}
    {strings.api_details_rate_limit} + {strings.api_details_rate_limit_val.replace( + "$num", + String(freeRateLimit), + )} + + {strings.api_details_rate_limit_val.replace( + "$num", + String(premRateLimit), + )} +
    {strings.api_details_support}{strings.api_details_support_free}{strings.api_details_support_prem}
    +
    + +

    {strings.api_header_details}

    + +
      +
    • + {strings.api_charging.replace( + "$cost", + `$${premPrice / premUnit}`, + )} +
    • +
    • {strings.api_credit_required}
    • +
    • {strings.api_failure}
    • +
    +
    +
    + )} + +
    + ); + } +} + +const mapStateToProps = (state: any) => { + const { error, loading, data } = state.app.metadata; + return { + loading, + error, + metadata: data, + strings: state.app.strings, + }; +}; + +export default connect(mapStateToProps, null)(KeyManagement); diff --git a/src/components/App/App.tsx b/src/components/App/App.tsx new file mode 100644 index 0000000000..32b4649252 --- /dev/null +++ b/src/components/App/App.tsx @@ -0,0 +1,253 @@ +import { ThemeProvider, createTheme } from "@mui/material/styles"; +import React, { Suspense } from "react"; +import Helmet from "react-helmet"; +import { Route, Switch, withRouter } from "react-router-dom"; +import styled from "styled-components"; + +import Combos from "../Combos/Combos"; +import Api from "../Api/Api"; +import Subscription from "../Subscription/Subscription"; +import constants from "../constants"; +import Distributions from "../Distributions/Distributions"; +import Footer from "../Footer/Footer"; +import FourOhFour from "../FourOhFour/FourOhFour"; +import Header from "../Header/Header"; +import Home from "../Home/Home"; +import Matches from "../Matches/Matches"; +import Player from "../Player/Player"; +import Records from "../Records/Records"; +import Request from "../Request/Request"; +import Scenarios from "../Scenarios/Scenarios"; +import Search from "../Search/Search"; +import Teams from "../Teams/Teams"; +import config from "../../config"; +import Spinner from "../Spinner/Spinner"; +import Players from "../Players/Players"; +import Heroes from "../Heroes/Heroes"; +import useStrings from "../../hooks/useStrings.hook"; + +const Status = React.lazy(() => import("../Status/Status")); +const Explorer = React.lazy(() => import("../Explorer/Explorer")); + +const darkTheme = createTheme({ + palette: { + mode: "dark", + }, +}); + +type AppStylesProps = { + open?: boolean; + location?: { + pathname?: string; + }; +}; + +type Back2TopStylesProps = { + open?: boolean; + location?: { + pathname: string; + }; +}; + +type AppProps = { + location?: any; +}; + +const StyledDiv = styled.div` + transition: ${constants.normalTransition}; + position: relative; + display: flex; + flex-direction: column; + height: 100%; + left: ${(props) => (props.open ? "256px" : "0px")}; + margin-top: 0px; + + background-image: ${(props) => + props.location?.pathname === "/" + ? `url("/assets/images/home-background.png")` + : ""}; + background-position: center top -8px; + background-repeat: ${(props) => + props.location?.pathname === "/" ? "no-repeat" : ""}; +`; + +const Back2Top = styled.button` + position: fixed; + left: auto; + right: 0px; + top: auto; + bottom: 20px; + outline: none; + color: rgb(196, 196, 196); + text-align: center; + outline: none; + border: none; + background-color: rgba(0, 0, 0, 0.3); + width: 40px; + font-size: 14px; + border-radius: 2px; + cursor: pointer; + z-index: 999999; + opacity: 0; + display: block; + pointer-events: none; + -webkit-transform: translate3d(0, 0, 0); + padding: 3px; + transition: opacity 0.3s ease-in-out; + + &:hover { + background-color: rgb(26, 108, 239); + } + + #back2TopTxt { + font-size: 10px; + line-height: 12px; + text-align: center; + margin-bottom: 3px; + } +`; + +const StyledBodyDiv = styled.div` + padding: 0px 25px 25px 25px; + flex-grow: 1; + + @media only screen and (min-width: ${constants.appWidth}px) { + width: ${constants.appWidth}px; + margin: auto; + } +`; + +const AdBannerDiv = styled.div` + text-align: center; + margin-bottom: 5px; + + img { + margin-top: 10px; + max-width: 100%; + } +`; + +declare let window: Window & { adsbygoogle: any }; + +const App = (props: AppProps) => { + const strings = useStrings(); + const { location } = props; + + const back2Top = React.useRef(); + + React.useEffect(() => { + const handleScroll = () => { + let wait = false; + const { current } = back2Top; + + if (!wait && current) { + if ( + document.body.scrollTop > 1000 || + document.documentElement.scrollTop > 1000 + ) { + current.style.opacity = "1"; + current.style.pointerEvents = "auto"; + } else { + current.style.opacity = "0"; + current.style.pointerEvents = "none"; + } + } + setTimeout(() => { + wait = !wait; + }, 300); + }; + + window.addEventListener("scroll", handleScroll); + + return () => { + window.removeEventListener("scroll", handleScroll); + }; + }); + + React.useLayoutEffect(() => { + window.scrollTo(0, 0); + }, [location]); + + const includeAds = !["/", "/api-keys", "/status"].includes(location.pathname); + + return ( + + }> + + +
    + + + + + + + + + + + + + + + + {/* */} + + {/* */} + + + + + + + {includeAds && config.VITE_ENABLE_RIVALRY && ( +
    + + Logo for Rivalry.com + +
    + {strings.home_sponsored_by}{" "} + Rivalry +
    +
    + )} +
    +