From 5f9875592d942e4bfbfc221d9c7bb481765df36e Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 21:53:46 +0200 Subject: [PATCH 01/78] feat: pointing to a new API --- package.json | 2 +- src/services/PriceService.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e8347b8..188f7ec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.1.2", + "version": "2.1.3", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index d303882..7306a94 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -2,7 +2,7 @@ import axios from "axios" import { format } from "date-fns" import { Price } from "models/Price" -const PRICES_API = "https://elec-api.daithiapp.com/api/v1/price" +const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" export const getPricesXDaysAgo = async (x: number): Promise => { const today = new Date() From 52f709394a05dfd72a0bf2091cf83675ebb4f0f9 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 22:30:23 +0200 Subject: [PATCH 02/78] feat: making port configurable --- Dockerfile | 8 ++++++-- docker-compose.yaml | 2 ++ nginx/default.conf | 2 +- nginx/entrypoint.sh | 7 +++++++ 4 files changed, 16 insertions(+), 3 deletions(-) create mode 100755 nginx/entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 83d4094..5cdd433 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,11 @@ RUN yarn build FROM nginx:1.19-alpine AS deployment COPY --from=builder /app/build /usr/share/nginx/html -COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf +COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf.template COPY ./nginx/nginx.conf /etc/nginx/nginx.conf +COPY ./nginx/entrypoint.sh /entrypoint.sh -CMD nginx -g 'daemon off;' +# Make our entrypoint script executable +RUN chmod +x /entrypoint.sh + +CMD ["/entrypoint.sh"] diff --git a/docker-compose.yaml b/docker-compose.yaml index ac8cd56..6480a33 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,6 +5,8 @@ services: image: electricity-prices-dashboard container_name: electricity-prices-dashboard restart: always + environment: + - PORT=80 ports: - 3000:80 networks: diff --git a/nginx/default.conf b/nginx/default.conf index 2154684..400ceec 100644 --- a/nginx/default.conf +++ b/nginx/default.conf @@ -1,5 +1,5 @@ server { - listen 80; + listen ${PORT}; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; diff --git a/nginx/entrypoint.sh b/nginx/entrypoint.sh new file mode 100755 index 0000000..cdc4487 --- /dev/null +++ b/nginx/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Substitute environment variables in the Nginx configuration file +envsubst '$PORT' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf + +# Start Nginx +exec nginx -g 'daemon off;' From 46113539cde9e900b67d0c129b672cd16effc5fc Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 22:30:34 +0200 Subject: [PATCH 03/78] feat: supporting more architectures --- .github/workflows/publish-to-dockerhub.yml | 46 +++++++++++----------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index a3151ef..ab4c601 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -1,29 +1,29 @@ name: Publish to Dockerhub on: - release: - types: [published] + release: + types: [published] jobs: - publish: - name: Build and Publish docker image to dockerhub - permissions: - contents: write - pull-requests: write - packages: read - runs-on: self-hosted + publish: + name: Build and Publish docker image to dockerhub + permissions: + contents: write + pull-requests: write + packages: read + runs-on: self-hosted - steps: - - name: Login to Dockerhub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - uses: actions/checkout@v2 - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Build and publish Docker image - run: | - docker buildx build --platform linux/amd64,linux/arm64/v8 -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . + steps: + - name: Login to Dockerhub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Build and publish Docker image + run: | + docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7,linux/ppc64le,windows/amd64,linux/s390x -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . From 3665c055f1908787e2b6bec3f237c013f948e2df Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 22:32:05 +0200 Subject: [PATCH 04/78] Updating version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 188f7ec..776da24 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.1.3", + "version": "2.1.4", "private": true, "dependencies": { "@emotion/react": "^11.11.1", From 87b18bb99f202858a31703b4efdc7850dec9eb35 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 22:42:39 +0200 Subject: [PATCH 05/78] bug: removing unsupported architecture --- .github/workflows/publish-to-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index ab4c601..8dbf646 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -26,4 +26,4 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Build and publish Docker image run: | - docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7,linux/ppc64le,windows/amd64,linux/s390x -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . + docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7,linux/ppc64le,linux/s390x -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . From e65cf2724598e71be186b50c6f948ba3a1c8ad43 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 22:43:44 +0200 Subject: [PATCH 06/78] bug: removing unsupported architecture --- .github/workflows/publish-to-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index 8dbf646..6cfc53e 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -26,4 +26,4 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Build and publish Docker image run: | - docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7,linux/ppc64le,linux/s390x -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . + docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7,linux/ppc64le -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . From cbd467ce459b6d37fdf41eb69bf770e8c2f31df1 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 22:48:48 +0200 Subject: [PATCH 07/78] bug: removing unsupported architecture --- .github/workflows/publish-to-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index 6cfc53e..748306b 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -26,4 +26,4 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Build and publish Docker image run: | - docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7,linux/ppc64le -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . + docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7 -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . From c1120592c4342eeadde36297922d8a3944c93529 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 25 Aug 2023 23:20:18 +0200 Subject: [PATCH 08/78] updating dependencies --- package.json | 26 +- yarn.lock | 1260 ++++++++++++++++++++++++++++---------------------- 2 files changed, 708 insertions(+), 578 deletions(-) diff --git a/package.json b/package.json index 776da24..1e1d260 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,29 @@ { "name": "daithi-dashboard", - "version": "2.1.4", + "version": "2.1.5", "private": true, "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.14.1", - "@mui/material": "^5.14.1", - "@testing-library/jest-dom": "^5.17.0", + "@mui/icons-material": "^5.14.6", + "@mui/material": "^5.14.6", + "@testing-library/jest-dom": "^6.1.2", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", - "@types/jest": "^29.5.3", - "@types/node": "^20.4.4", - "@types/react": "^18.2.15", + "@types/jest": "^29.5.4", + "@types/node": "^20.5.6", + "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", "axios": "^1.4.0", - "chart.js": "^4.3.0", + "chart.js": "^4.4.0", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", "date-fns": "^2.30.0", - "prettier": "^3.0.0", + "prettier": "^3.0.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", - "typescript": "^5.1.6", + "typescript": "^5.2.2", "web-vitals": "^3.4.0" }, "scripts": { @@ -59,9 +59,9 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.22.9", + "@babel/preset-env": "^7.22.10", "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "babel-jest": "^29.6.1" + "@babel/preset-typescript": "^7.22.11", + "babel-jest": "^29.6.4" } } diff --git a/yarn.lock b/yarn.lock index b213adf..9406eb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@adobe/css-tools@^4.0.1": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" - integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== +"@adobe/css-tools@^4.3.0": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" + integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== "@alloc/quick-lru@^5.2.0": version "5.2.0" @@ -34,54 +34,55 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" + integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.22.10" + chalk "^2.4.2" -"@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24" + integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" + "@babel/helpers" "^7.22.11" + "@babel/parser" "^7.22.11" "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.11" + "@babel/types" "^7.22.11" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" "@babel/eslint-parser@^7.16.3": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.9.tgz#75f8aa978d1e76c87cc6f26c1ea16ae58804d390" - integrity sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz#cceb8c7989c241a16dd14e12a6cd725618f3f58b" + integrity sha512-YjOYZ3j7TjV8OhLW6NCtyg8G04uStATEUe5eiLuCZaXz2VSDQ3dsAtm2D+TuQyAqNMUK2WacGo0/uma9Pein1w== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.22.10", "@babel/generator@^7.7.2": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" + integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -94,16 +95,16 @@ "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9" + integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" -"@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" + integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== dependencies: "@babel/compat-data" "^7.22.9" "@babel/helper-validator-option" "^7.22.5" @@ -111,10 +112,10 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.6", "@babel/helper-create-class-features-plugin@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" - integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.10", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" + integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" @@ -203,7 +204,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== @@ -258,36 +259,36 @@ integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== "@babel/helper-wrap-function@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9" - integrity sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" + integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== dependencies: "@babel/helper-function-name" "^7.22.5" "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helpers@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.11.tgz#b02f5d5f2d7abc21ab59eeed80de410ba70b056a" + integrity sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg== dependencies: "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.11" + "@babel/types" "^7.22.11" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/highlight@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" + integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== dependencies: "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.11", "@babel/parser@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.11.tgz#becf8ee33aad2a35ed5607f521fe6e72a615f905" + integrity sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" @@ -314,15 +315,15 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.7.tgz#9b5b73c2e404f0869ef8a8a53765f8203c5467a7" - integrity sha512-omXqPF7Onq4Bb7wHxXjM3jSMSJvUUbvDvmmds7KI5n9Cq6Ln5I05I1W2nRlRof1rGdiUxJrxwe285WF96XlBXQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.10.tgz#d6a8c3a9018e1b13e6647f869c5ea56ff2b585d4" + integrity sha512-KxN6TqZzcFi4uD3UifqXElBTBNLAEH1l3vzMQj6JwJZbL2sZlThxSViOKCYY+4Ah4V4JhQ95IVB7s/Y6SJSlMQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.6" + "@babel/helper-create-class-features-plugin" "^7.22.10" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/plugin-syntax-decorators" "^7.22.5" + "@babel/plugin-syntax-decorators" "^7.22.10" "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": version "7.18.6" @@ -372,14 +373,6 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -408,10 +401,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.5.tgz#329fe2907c73de184033775637dbbc507f09116a" - integrity sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA== +"@babel/plugin-syntax-decorators@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz#7d83ea04d893c442b78ebf4c3cbac59a7211deff" + integrity sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -549,14 +542,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" - integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== +"@babel/plugin-transform-async-generator-functions@^7.22.10": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz#dbe3b1ff5a52e2e5edc4b19a60d325a675ed2649" + integrity sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.22.5": @@ -575,10 +568,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== +"@babel/plugin-transform-block-scoping@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" + integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -591,11 +584,11 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" + integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -622,14 +615,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== +"@babel/plugin-transform-destructuring@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" + integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -645,9 +638,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-dynamic-import@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" - integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" + integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" @@ -661,9 +654,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" + integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" @@ -693,9 +686,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-json-strings@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" - integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" + integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -708,9 +701,9 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-logical-assignment-operators@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" - integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" + integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" @@ -730,22 +723,22 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== +"@babel/plugin-transform-modules-commonjs@^7.22.11", "@babel/plugin-transform-modules-commonjs@^7.22.5": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" + integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== dependencies: - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.9" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" "@babel/plugin-transform-modules-systemjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" - integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1" + integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA== dependencies: "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.22.9" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" @@ -773,28 +766,28 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" + integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" + integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz#dbbb06ce783cd994a8f430d8cefa553e9b42ca62" + integrity sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw== dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" + "@babel/compat-data" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.5" @@ -808,17 +801,17 @@ "@babel/helper-replace-supers" "^7.22.5" "@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" + integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" - integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== +"@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.5": + version "7.22.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz#d7ebf6a88cd2f4d307b0e000ab630acd8124b333" + integrity sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -840,12 +833,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" + integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" @@ -896,13 +889,13 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" + regenerator-transform "^0.15.2" "@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" @@ -912,15 +905,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.16.4": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" - integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz#89eda6daf1d3af6f36fb368766553054c8d7cd46" + integrity sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA== dependencies: "@babel/helper-module-imports" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.22.5": @@ -959,20 +952,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234" - integrity sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg== +"@babel/plugin-transform-typescript@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.11.tgz#9f27fb5e51585729374bb767ab6a6d9005a23329" + integrity sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.9" + "@babel/helper-create-class-features-plugin" "^7.22.11" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -1000,13 +993,13 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" - integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f" + integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" @@ -1031,15 +1024,15 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-generator-functions" "^7.22.10" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.10" "@babel/plugin-transform-class-properties" "^7.22.5" "@babel/plugin-transform-class-static-block" "^7.22.5" "@babel/plugin-transform-classes" "^7.22.6" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.10" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" "@babel/plugin-transform-dynamic-import" "^7.22.5" @@ -1062,38 +1055,36 @@ "@babel/plugin-transform-object-rest-spread" "^7.22.5" "@babel/plugin-transform-object-super" "^7.22.5" "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.6" + "@babel/plugin-transform-optional-chaining" "^7.22.10" "@babel/plugin-transform-parameters" "^7.22.5" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.5" "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" "@babel/plugin-transform-reserved-words" "^7.22.5" "@babel/plugin-transform-shorthand-properties" "^7.22.5" "@babel/plugin-transform-spread" "^7.22.5" "@babel/plugin-transform-sticky-regex" "^7.22.5" "@babel/plugin-transform-template-literals" "^7.22.5" "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" "@babel/plugin-transform-unicode-property-regex" "^7.22.5" "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.10" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" core-js-compat "^3.31.0" semver "^6.3.1" -"@babel/preset-modules@^0.1.5": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458" - integrity sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" @@ -1109,28 +1100,28 @@ "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.22.5" -"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" - integrity sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ== +"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.22.11": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.11.tgz#f218cd0345524ac888aa3dc32f029de5b064b575" + integrity sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.5" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-typescript" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.11" + "@babel/plugin-transform-typescript" "^7.22.11" "@babel/regjsgen@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.22.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.10", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" + integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" @@ -1141,26 +1132,26 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.7.2": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.22.11", "@babel/traverse@^7.7.2": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c" + integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.22.11" + "@babel/types" "^7.22.11" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2" + integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.5" @@ -1396,15 +1387,15 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.0.tgz#5b63f0df5528a44e28aa8578d393de908cc3d4d0" - integrity sha512-uiPeRISaglZnaZk8vwrjQZ1CxogZeY/4IYft6gBOTqu1WhVXWmCmZMWxUv2Q/pxSvPdp1JPaO62kLOcOkMqWrw== +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" + integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== -"@eslint/eslintrc@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" - integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1416,10 +1407,37 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== +"@eslint/js@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" + integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== + +"@floating-ui/core@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17" + integrity sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ== + dependencies: + "@floating-ui/utils" "^0.1.1" + +"@floating-ui/dom@^1.3.0": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.1.tgz#88b70defd002fe851f17b4a25efb2d3c04d7a8d7" + integrity sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw== + dependencies: + "@floating-ui/core" "^1.4.1" + "@floating-ui/utils" "^0.1.1" + +"@floating-ui/react-dom@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.1.tgz#7972a4fc488a8c746cded3cfe603b6057c308a91" + integrity sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA== + dependencies: + "@floating-ui/dom" "^1.3.0" + +"@floating-ui/utils@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83" + integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw== "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -1524,12 +1542,12 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/expect-utils@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.1.tgz#ab83b27a15cdd203fe5f68230ea22767d5c3acc5" - integrity sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw== +"@jest/expect-utils@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.4.tgz#17c7dfe6cec106441f218b0aff4b295f98346679" + integrity sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg== dependencies: - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" "@jest/fake-timers@^27.5.1": version "27.5.1" @@ -1590,10 +1608,10 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/schemas@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: "@sinclair/typebox" "^0.27.8" @@ -1657,22 +1675,22 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.1.tgz#acb5606019a197cb99beda3c05404b851f441c92" - integrity sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg== +"@jest/transform@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.4.tgz#a6bc799ef597c5d85b2e65a11fd96b6b239bab5a" + integrity sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" - jest-regex-util "^29.4.3" - jest-util "^29.6.1" + jest-haste-map "^29.6.4" + jest-regex-util "^29.6.3" + jest-util "^29.6.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1701,12 +1719,12 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" - integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1722,10 +1740,10 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/set-array@^1.0.1": version "1.1.2" @@ -1740,23 +1758,18 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@kurkle/color@^0.3.0": version "0.3.2" @@ -1768,80 +1781,81 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/base@5.0.0-beta.8": - version "5.0.0-beta.8" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.8.tgz#a0a9531ae9147be92d17e4f0e3b9accc57916841" - integrity sha512-b4vVjMZx5KzzEMf4arXKoeV5ZegAMOoPwoy1vfUBwhvXc2QtaaAyBp50U7OA2L06Leubc1A+lEp3eqwZoFn87g== +"@mui/base@5.0.0-beta.12": + version "5.0.0-beta.12" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.12.tgz#131882930bdbe236dd835867bf6222a993b8d219" + integrity sha512-tZjjXNAyUpwSDT1uRliZMhRQkWYzELJ8Qi61EuOMRpi36HIwnK2T7Nr4RI423Sv8G2EEikDAZj7je33eNd73NQ== dependencies: - "@babel/runtime" "^7.22.6" + "@babel/runtime" "^7.22.10" "@emotion/is-prop-valid" "^1.2.1" + "@floating-ui/react-dom" "^2.0.1" "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.1" + "@mui/utils" "^5.14.6" "@popperjs/core" "^2.11.8" - clsx "^1.2.1" + clsx "^2.0.0" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.1.tgz#af156cb3e15b202f5c09f66e7d8b71ca86aef525" - integrity sha512-mIa1WmDmNr1LoupV1Rbxt9bTFKMbIn10RHG1bnZ/FJCkAYpuU/D4n+R+ttiycgcZNngU++zyh/OQeJblzbQPzg== +"@mui/core-downloads-tracker@^5.14.6": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.6.tgz#8cbc3441a630e1810a945e408e5025bdc99ea2f7" + integrity sha512-QZEU3pyGWLuaHbxvOlShol7U1FVgzWBR0OH9H8D7L8w4/vto5N5jJVvlqFQS3T0zbR6YGHxFaiL6Ky87jQg7aw== -"@mui/icons-material@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.1.tgz#2f145c15047a0c7f01353ce620cb88276dadba9e" - integrity sha512-xV/f26muQqtWzerzOIdGPrXoxp/OKaE2G2Wp9gnmG47mHua5Slup/tMc3fA4ZYUreGGrK6+tT81TEvt1Wsng8Q== +"@mui/icons-material@^5.14.6": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.6.tgz#0efdcba2c30d6b22e6ead787b67247da173bd11a" + integrity sha512-7Cujy7lRGTj2T3SvY9C9ZOTFDtrXJogeNnRcU/ODyNoxwskMNPFOcc15F+98MAdJenBVLJPYu+vPP6DUvEpNrA== dependencies: - "@babel/runtime" "^7.22.6" + "@babel/runtime" "^7.22.10" -"@mui/material@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.1.tgz#2711e4ca5c9bdc67b916d01faee650a7a5260bb8" - integrity sha512-WtsgYuageTunLfxH3Ri+o1RuQTFImtRHxMcVNyD0Hhd2/znjW6KODNz0XfjvLRnNCAynBxZNiflcoIBW40h9PQ== +"@mui/material@^5.14.6": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.6.tgz#12cbb716a7f70859764be310bb9b2f5ffc0da818" + integrity sha512-C3UgGrmtvcGkQkm0ONBU7bTdapTjQc2Se3b2354xMmU7lgSgW7VM6EP9wIH5XqqoJ60m9l/s9kbTWX0Y+EaWvA== dependencies: - "@babel/runtime" "^7.22.6" - "@mui/base" "5.0.0-beta.8" - "@mui/core-downloads-tracker" "^5.14.1" - "@mui/system" "^5.14.1" + "@babel/runtime" "^7.22.10" + "@mui/base" "5.0.0-beta.12" + "@mui/core-downloads-tracker" "^5.14.6" + "@mui/system" "^5.14.6" "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.1" + "@mui/utils" "^5.14.6" "@types/react-transition-group" "^4.4.6" - clsx "^1.2.1" + clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.13.7": - version "5.13.7" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.13.7.tgz#2f8ef5da066f3c6c6423bd4260d003a28d10b099" - integrity sha512-qbSr+udcij5F9dKhGX7fEdx2drXchq7htLNr2Qg2Ma+WJ6q0ERlEqGSBiPiVDJkptcjeVL4DGmcf1wl5+vD4EA== +"@mui/private-theming@^5.14.6": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.6.tgz#bd80c91bea94b6e54a74764f8d3fb0d4ec418acb" + integrity sha512-3VBLFGizBXfofyk33bwRg6t9L648aKnLmOKPfY1wFuiXq3AEYwobK65iDci/tHKxm/VKbZ6A7PFjLejvB3EvRQ== dependencies: - "@babel/runtime" "^7.22.5" - "@mui/utils" "^5.13.7" + "@babel/runtime" "^7.22.10" + "@mui/utils" "^5.14.6" prop-types "^15.8.1" -"@mui/styled-engine@^5.13.2": - version "5.13.2" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.13.2.tgz#c87bd61c0ab8086d34828b6defe97c02bcd642ef" - integrity sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw== +"@mui/styled-engine@^5.14.6": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.6.tgz#a4034ab51981ecf673275b2c1d1da71deb94317f" + integrity sha512-I6zeu/OP1Hk4NsX1Oj85TiYl1dER0JMsLJVn76J1Ihl24A5EbiZQKJp3Mn+ufA79ypkdAvM9aQCAQyiVBFcUHg== dependencies: - "@babel/runtime" "^7.21.0" + "@babel/runtime" "^7.22.10" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.1.tgz#ec8ae69f63963b5916dad4bca2f8a86a001a2392" - integrity sha512-u+xlsU34Jdkgx1CxmBnIC4Y08uPdVX5iEd3S/1dggDFtOGp+Lj8xmKRJAQ8PJOOJLOh8pDwaZx4AwXikL4l1QA== +"@mui/system@^5.14.6": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.6.tgz#621eae10c4dde0a2ab566ac09c26f7becfb7ba80" + integrity sha512-/n0ae1MegWjiV1BpRU8jgg4E0zBjeB2VYsT/68ag/xaDuq3/TaDKJeT9REIvyBvwlG3CI3S2O+tRELktxCD1kg== dependencies: - "@babel/runtime" "^7.22.6" - "@mui/private-theming" "^5.13.7" - "@mui/styled-engine" "^5.13.2" + "@babel/runtime" "^7.22.10" + "@mui/private-theming" "^5.14.6" + "@mui/styled-engine" "^5.14.6" "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.1" - clsx "^1.2.1" + "@mui/utils" "^5.14.6" + clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" @@ -1850,12 +1864,12 @@ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.4.tgz#b6fade19323b754c5c6de679a38f068fd50b9328" integrity sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA== -"@mui/utils@^5.13.7", "@mui/utils@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.1.tgz#29696371016552a6eb3af975bc7af429ec88b29a" - integrity sha512-39KHKK2JeqRmuUcLDLwM+c2XfVC136C5/yUyQXmO2PVbOb2Bol4KxtkssEqCbTwg87PSCG3f1Tb0keRsK7cVGw== +"@mui/utils@^5.14.6": + version "5.14.6" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.6.tgz#614338f781faf21535fbf1094b6691aaee1ff472" + integrity sha512-AznpqLu6hrFnpHgcvsSSMCG+cDbkcCYfo+daUwBVReNYv4l+NQ8+wvBAF4aUMi155N7xWbbgh0cyKs6Wdsm3aA== dependencies: - "@babel/runtime" "^7.22.6" + "@babel/runtime" "^7.22.10" "@types/prop-types" "^15.7.5" "@types/react-is" "^18.2.1" prop-types "^15.8.1" @@ -1890,9 +1904,9 @@ fastq "^1.6.0" "@pmmmwh/react-refresh-webpack-plugin@^0.5.3": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz#2eba163b8e7dbabb4ce3609ab5e32ab63dda3ef8" - integrity sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA== + version "0.5.11" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz#7c2268cedaa0644d677e8c4f377bc8fb304f714a" + integrity sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ== dependencies: ansi-html-community "^0.0.8" common-path-prefix "^3.0.0" @@ -1947,9 +1961,9 @@ picomatch "^2.2.2" "@rushstack/eslint-patch@^1.1.0": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.2.tgz#31b9c510d8cada9683549e1dbb4284cca5001faf" - integrity sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw== + version "1.3.3" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz#16ab6c727d8c2020a5b6e4a176a243ecd88d8d69" + integrity sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw== "@sinclair/typebox@^0.24.1": version "0.24.51" @@ -2102,14 +2116,13 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" - integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== +"@testing-library/jest-dom@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.2.tgz#3e7422904349223cb1e04968adada63f65f40d5b" + integrity sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ== dependencies: - "@adobe/css-tools" "^4.0.1" + "@adobe/css-tools" "^4.3.0" "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" aria-query "^5.0.0" chalk "^3.0.0" css.escape "^1.5.1" @@ -2218,9 +2231,9 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.0.tgz#55818eabb376e2272f77fbf5c96c43137c3c1e53" - integrity sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw== + version "8.44.2" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" + integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -2236,9 +2249,9 @@ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.35" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" - integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + version "4.17.36" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.36.tgz#baa9022119bdc05a4adfe740ffc97b5f9360e545" + integrity sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2298,10 +2311,10 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*", "@types/jest@^29.5.3": - version "29.5.3" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.3.tgz#7a35dc0044ffb8b56325c6802a4781a626b05777" - integrity sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA== +"@types/jest@^29.5.4": + version "29.5.4" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.4.tgz#9d0a16edaa009a71e6a71a999acd582514dab566" + integrity sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -2326,10 +2339,10 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/node@*", "@types/node@^20.4.4": - version "20.4.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.4.tgz#c79c7cc22c9d0e97a7944954c9e663bcbd92b0cb" - integrity sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew== +"@types/node@*", "@types/node@^20.5.6": + version "20.5.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.6.tgz#5e9aaa86be03a09decafd61b128d6cec64a5fe40" + integrity sha512-Gi5wRGPbbyOTX+4Y2iULQ27oUPrefaB0PxGQJnfyWN3kvEDGM3mIB5M/gQLmitZf7A9FmLeaqxD3L1CXpm3VKQ== "@types/parse-json@^4.0.0": version "4.0.0" @@ -2382,10 +2395,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.15": - version "18.2.15" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" - integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA== +"@types/react@*", "@types/react@^18.2.21": + version "18.2.21" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" + integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2449,13 +2462,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== -"@types/testing-library__jest-dom@^5.9.1": - version "5.14.8" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.8.tgz#b32090a01c29040461fb7fa10a82400f216a4b93" - integrity sha512-NRfJE9Cgpmu4fx716q9SYmU4jxxhYRU1BQo239Txt/9N3EC745XZX1Yl7h/SBIDlo1ANVOCRB4YDXjaQdoKCHQ== - dependencies: - "@types/jest" "*" - "@types/trusted-types@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" @@ -2794,7 +2800,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2933,6 +2939,17 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array.prototype.findlastindex@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" + integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" @@ -3002,6 +3019,13 @@ async@^3.2.3: resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -3013,12 +3037,12 @@ at-least-node@^1.0.0: integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== autoprefixer@^10.4.13: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + version "10.4.15" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" + integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001520" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -3064,15 +3088,15 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.1.tgz#a7141ad1ed5ec50238f3cd36127636823111233a" - integrity sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A== +babel-jest@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.4.tgz#98dbc45d1c93319c82a8ab4a478b670655dd2585" + integrity sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw== dependencies: - "@jest/transform" "^29.6.1" + "@jest/transform" "^29.6.4" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -3108,10 +3132,10 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -3132,7 +3156,7 @@ babel-plugin-named-asset-import@^0.3.8: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== -babel-plugin-polyfill-corejs2@^0.4.4: +babel-plugin-polyfill-corejs2@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== @@ -3141,7 +3165,7 @@ babel-plugin-polyfill-corejs2@^0.4.4: "@babel/helper-define-polyfill-provider" "^0.4.2" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.2: +babel-plugin-polyfill-corejs3@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== @@ -3149,7 +3173,7 @@ babel-plugin-polyfill-corejs3@^0.8.2: "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" -babel-plugin-polyfill-regenerator@^0.5.1: +babel-plugin-polyfill-regenerator@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== @@ -3187,12 +3211,12 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== dependencies: - babel-plugin-jest-hoist "^29.5.0" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" babel-preset-react-app@^10.0.1: @@ -3312,14 +3336,14 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.21.5, browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" update-browserslist-db "^1.0.11" bser@2.1.1: @@ -3395,17 +3419,17 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: - version "1.0.30001517" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8" - integrity sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: + version "1.0.30001523" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001523.tgz#b838f70b1a98c556776b998fafb47d2b64146d4f" + integrity sha512-I5q5cisATTPZ1mc588Z//pj/Ox80ERYDfR71YnvY7raS/NOk8xXlZcB0sF7JdqaV//kOaa6aus7lRfpdnt1eBA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== -chalk@^2.0.0, chalk@^2.4.1: +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3440,10 +3464,10 @@ char-regex@^2.0.0: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== -chart.js@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.3.0.tgz#ac363030ab3fec572850d2d872956f32a46326a1" - integrity sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g== +chart.js@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.0.tgz#df843fdd9ec6bd88d7f07e2b95348d221bd2698c" + integrity sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ== dependencies: "@kurkle/color" "^0.3.0" @@ -3508,10 +3532,10 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clsx@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" - integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== +clsx@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== co@^4.6.0: version "4.6.0" @@ -3676,21 +3700,21 @@ cookie@0.5.0: integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js-compat@^3.31.0: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" - integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== + version "3.32.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964" + integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA== dependencies: - browserslist "^4.21.9" + browserslist "^4.21.10" core-js-pure@^3.23.3: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.31.1.tgz#73d154958881873bc19381df80bddb20c8d0cdb5" - integrity sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw== + version "3.32.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.32.1.tgz#5775b88f9062885f67b6d7edce59984e89d276f3" + integrity sha512-f52QZwkFVDPf7UEQZGHKx6NYxsxmVGJe5DIvbzOdRMJlmT6yv0KDjR8rmy3ngr/t5wU54c7Sp/qIJH0ppbhVpQ== core-js@^3.19.2: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.31.1.tgz#f2b0eea9be9da0def2c5fece71064a7e5d687653" - integrity sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ== + version "3.32.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.1.tgz#a7d8736a3ed9dd05940c3c4ff32c591bb735be77" + integrity sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ== core-util-is@~1.0.0: version "1.0.3" @@ -3841,9 +3865,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" - integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== + version "7.7.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.7.1.tgz#759e333f516e47f26dd2c7be06147d4f4716356d" + integrity sha512-kM+Fs0BFyhJNeE6wbOrlnRsugRdL6vn7QcON0aBDZ7XRd7RI2pMlk+nxoHuTb4Et+aBobXgK0I+6NGLA0LLgTw== cssesc@^3.0.0: version "3.0.0" @@ -4087,10 +4111,10 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== dir-glob@^3.0.1: version "3.0.1" @@ -4110,9 +4134,9 @@ dns-equal@^1.0.0: integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== dns-packet@^5.2.2: - version "5.6.0" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d" - integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ== + version "5.6.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" + integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" @@ -4243,10 +4267,10 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.431: - version "1.4.468" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.468.tgz#3cbf64ad67d9f12bfe69fefe5eb1935ec4f6ab7a" - integrity sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag== +electron-to-chromium@^1.4.477: + version "1.4.502" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.502.tgz#531cda8774813d97d6cfa2fb9d8ee3e2c75851fa" + integrity sha512-xqeGw3Gr6o3uyHy/yKjdnDQHY2RQvXcGC2cfHjccK1IGkH6cX1WQBN8EeC/YpwPhGkBaikDTecJ8+ssxSVRQlw== emittery@^0.10.2: version "0.10.2" @@ -4305,7 +4329,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.21.3: version "1.22.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== @@ -4370,6 +4394,26 @@ es-get-iterator@^1.1.3: isarray "^2.0.5" stop-iteration-iterator "^1.0.0" +es-iterator-helpers@^1.0.12: + version "1.0.13" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.13.tgz#72101046ffc19baf9996adc70e6177a26e6e8084" + integrity sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA== + dependencies: + asynciterator.prototype "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.3" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + iterator.prototype "^1.1.0" + safe-array-concat "^1.0.0" + es-module-lexer@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" @@ -4457,15 +4501,15 @@ eslint-config-react-app@^7.0.1: eslint-plugin-testing-library "^5.0.1" eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" + is-core-module "^2.13.0" + resolve "^1.22.4" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== @@ -4481,25 +4525,27 @@ eslint-plugin-flowtype@^8.0.3: string-natural-compare "^3.0.1" eslint-plugin-import@^2.25.3: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== + version "2.28.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" + integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== dependencies: array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" array.prototype.flat "^1.3.1" array.prototype.flatmap "^1.3.1" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.11.0" + is-core-module "^2.13.0" is-glob "^4.0.3" minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jest@^25.3.0: version "25.7.0" @@ -4536,14 +4582,15 @@ eslint-plugin-react-hooks@^4.3.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.27.1: - version "7.33.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz#6c356fb0862fec2cd1b04426c669ea746e9b6eb3" - integrity sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw== + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" @@ -4557,9 +4604,9 @@ eslint-plugin-react@^7.27.1: string.prototype.matchall "^4.0.8" eslint-plugin-testing-library@^5.0.1: - version "5.11.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.0.tgz#0bad7668e216e20dd12f8c3652ca353009163121" - integrity sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q== + version "5.11.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz#5b46cdae96d4a78918711c0b4792f90088e62d20" + integrity sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw== dependencies: "@typescript-eslint/utils" "^5.58.0" @@ -4571,10 +4618,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.1.tgz#936821d3462675f25a18ac5fd88a67cc15b393bd" - integrity sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -4584,10 +4631,10 @@ eslint-visitor-keys@^2.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint-webpack-plugin@^3.1.1: version "3.2.0" @@ -4601,26 +4648,26 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.45.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== + version "8.48.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" + integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.48.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -4643,7 +4690,7 @@ eslint@^8.3.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0: +espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -4737,16 +4784,15 @@ expect@^27.5.1: jest-message-util "^27.5.1" expect@^29.0.0: - version "29.6.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.1.tgz#64dd1c8f75e2c0b209418f2b8d36a07921adfdf1" - integrity sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g== + version "29.6.4" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.4.tgz#a6e6f66d4613717859b2fe3da98a739437b6f4b8" + integrity sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA== dependencies: - "@jest/expect-utils" "^29.6.1" - "@types/node" "*" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.1" - jest-message-util "^29.6.1" - jest-util "^29.6.1" + "@jest/expect-utils" "^29.6.4" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.6.4" + jest-message-util "^29.6.3" + jest-util "^29.6.3" express@^4.17.3: version "4.18.2" @@ -4984,9 +5030,9 @@ forwarded@0.2.0: integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== + version "4.2.1" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.1.tgz#14b4cc886575a5684f8d5fd5759c5db376bb7bb8" + integrity sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q== fresh@0.5.2: version "0.5.2" @@ -5023,9 +5069,9 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: version "1.1.1" @@ -5155,9 +5201,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.21.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" + integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== dependencies: type-fest "^0.20.2" @@ -5542,6 +5588,13 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -5569,10 +5622,10 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.9.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-core-module@^2.13.0, is-core-module@^2.9.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" @@ -5593,6 +5646,13 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -5603,6 +5663,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -5777,12 +5844,12 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: semver "^6.3.0" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -5795,13 +5862,24 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +iterator.prototype@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.0.tgz#690c88b043d821f783843aaf725d7ac3b62e3b46" + integrity sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw== + dependencies: + define-properties "^1.1.4" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + has-tostringtag "^1.0.0" + reflect.getprototypeof "^1.0.3" + jake@^10.8.5: version "10.8.7" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" @@ -5904,15 +5982,15 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.1.tgz#13df6db0a89ee6ad93c747c75c85c70ba941e545" - integrity sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg== +jest-diff@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.4.tgz#85aaa6c92a79ae8cd9a54ebae8d5b6d9a513314a" + integrity sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw== dependencies: chalk "^4.0.0" - diff-sequences "^29.4.3" - jest-get-type "^29.4.3" - pretty-format "^29.6.1" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.6.3" jest-docblock@^27.5.1: version "27.5.1" @@ -5962,10 +6040,10 @@ jest-get-type@^27.5.1: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-get-type@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" - integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== jest-haste-map@^27.5.1: version "27.5.1" @@ -5987,20 +6065,20 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.1.tgz#62655c7a1c1b349a3206441330fb2dbdb4b63803" - integrity sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig== +jest-haste-map@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.4.tgz#97143ce833829157ea7025204b08f9ace609b96a" + integrity sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.6.1" - jest-worker "^29.6.1" + jest-regex-util "^29.6.3" + jest-util "^29.6.3" + jest-worker "^29.6.4" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -6047,15 +6125,15 @@ jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz#6c60075d84655d6300c5d5128f46531848160b53" - integrity sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA== +jest-matcher-utils@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz#327db7ababea49455df3b23e5d6109fe0c709d24" + integrity sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ== dependencies: chalk "^4.0.0" - jest-diff "^29.6.1" - jest-get-type "^29.4.3" - pretty-format "^29.6.1" + jest-diff "^29.6.4" + jest-get-type "^29.6.3" + pretty-format "^29.6.3" jest-message-util@^27.5.1: version "27.5.1" @@ -6087,18 +6165,18 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.1.tgz#d0b21d87f117e1b9e165e24f245befd2ff34ff8d" - integrity sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ== +jest-message-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.3.tgz#bce16050d86801b165f20cfde34dc01d3cf85fbf" + integrity sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.6.1" + pretty-format "^29.6.3" slash "^3.0.0" stack-utils "^2.0.3" @@ -6125,10 +6203,10 @@ jest-regex-util@^28.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== jest-resolve-dependencies@^27.5.1: version "27.5.1" @@ -6270,12 +6348,12 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.1.tgz#c9e29a87a6edbf1e39e6dee2b4689b8a146679cb" - integrity sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg== +jest-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.3.tgz#e15c3eac8716440d1ed076f09bc63ace1aebca63" + integrity sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -6361,13 +6439,13 @@ jest-worker@^28.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.1.tgz#64b015f0e985ef3a8ad049b61fe92b3db74a5319" - integrity sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA== +jest-worker@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.4.tgz#f34279f4afc33c872b470d4af21b281ac616abd3" + integrity sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q== dependencies: "@types/node" "*" - jest-util "^29.6.1" + jest-util "^29.6.3" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -6381,9 +6459,9 @@ jest@^27.4.3: jest-cli "^27.5.1" jiti@^1.18.2: - version "1.19.1" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1" - integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== + version "1.19.3" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569" + integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -6480,7 +6558,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -6500,9 +6578,9 @@ jsonpointer@^5.0.0: integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" - integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: array-includes "^3.1.6" array.prototype.flat "^1.3.1" @@ -6678,13 +6756,20 @@ magic-string@^0.25.0, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -6882,7 +6967,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.12: +node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== @@ -6995,6 +7080,16 @@ object.getownpropertydescriptors@^2.1.0: es-abstract "^1.21.2" safe-array-concat "^1.0.0" +object.groupby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" + integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + get-intrinsic "^1.2.1" + object.hasown@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" @@ -7778,9 +7873,9 @@ postcss@^7.0.35: source-map "^0.6.1" postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: - version "8.4.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" - integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== + version "8.4.28" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5" + integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -7791,10 +7886,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" - integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== +prettier@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.2.tgz#78fcecd6d870551aa5547437cdae39d4701dca5b" + integrity sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -7828,12 +7923,12 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" - integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== +pretty-format@^29.0.0, pretty-format@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" + integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -8138,6 +8233,18 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +reflect.getprototypeof@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz#2738fd896fcc3477ffbd4190b40c2458026b6928" + integrity sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + regenerate-unicode-properties@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" @@ -8150,15 +8257,20 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.9: +regenerator-runtime@^0.13.9: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" @@ -8259,12 +8371,12 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.2: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== +resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -8438,7 +8550,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -9105,7 +9217,7 @@ ts-interface-checker@^0.1.9: resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== @@ -9121,9 +9233,9 @@ tslib@^1.8.1: integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsutils@^3.21.0: version "3.21.0" @@ -9213,10 +9325,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" - integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== +typescript@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== unbox-primitive@^1.0.2: version "1.0.2" @@ -9572,6 +9684,24 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + which-collection@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" From a2c8dcd7aae6cb4f7735ca26d77f07c0aad07444 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 31 Aug 2023 09:05:25 +0200 Subject: [PATCH 09/78] feat: using backend to calculate price info --- package.json | 14 +- src/components/PriceChart.tsx | 48 ++-- src/models/DailyPriceInfo.ts | 14 ++ src/models/DayRating.ts | 5 + src/pages/Dashboard.tsx | 120 ++++++---- src/services/PriceService.ts | 18 +- src/utils/PriceUtils.ts | 16 +- yarn.lock | 430 +++++++++++++++++----------------- 8 files changed, 361 insertions(+), 304 deletions(-) create mode 100644 src/models/DailyPriceInfo.ts create mode 100644 src/models/DayRating.ts diff --git a/package.json b/package.json index 1e1d260..432aaed 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,25 @@ { "name": "daithi-dashboard", - "version": "2.1.5", + "version": "2.2.0", "private": true, "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.14.6", - "@mui/material": "^5.14.6", + "@mui/icons-material": "^5.14.7", + "@mui/material": "^5.14.7", "@testing-library/jest-dom": "^6.1.2", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", "@types/jest": "^29.5.4", - "@types/node": "^20.5.6", + "@types/node": "^20.5.7", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "axios": "^1.4.0", + "axios": "^1.5.0", "chart.js": "^4.4.0", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", "date-fns": "^2.30.0", - "prettier": "^3.0.2", + "prettier": "^3.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", @@ -59,7 +59,7 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.22.10", + "@babel/preset-env": "^7.22.14", "@babel/preset-react": "^7.22.5", "@babel/preset-typescript": "^7.22.11", "babel-jest": "^29.6.4" diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index fa1d65d..8e98518 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -1,10 +1,11 @@ import React, { useEffect, useMemo, useRef, useState } from "react" -import { filterAndPadPrices, getMostExpensivePeriod, getTwoCheapestPeriods } from "utils/PriceUtils" import { format } from "date-fns" import { Chart, ChartData, ChartOptions } from "chart.js/auto" import Annotation, { LineAnnotationOptions } from "chartjs-plugin-annotation" import { Price } from "models/Price" import { useTheme } from "@mui/material/styles" +import { Pair } from "models/DailyPriceInfo" +import { filterAndPadPrices } from "utils/PriceUtils" Chart.register(Annotation) @@ -24,8 +25,8 @@ export interface DailyChartProps { chartId: string dateFormat: string showCurrentPrice: boolean - showCheapPeriod: boolean - showExpensivePeriod: boolean + cheapestPeriods: Pair + expensivePeriod: Price[] } const DailyChart: React.FC = ({ @@ -34,8 +35,8 @@ const DailyChart: React.FC = ({ chartId, dateFormat, showCurrentPrice, - showCheapPeriod, - showExpensivePeriod, + cheapestPeriods, + expensivePeriod, }) => { const theme = useTheme() const [currentPriceLocation, setCurrentPriceLocation] = useState(-1) @@ -161,23 +162,18 @@ const DailyChart: React.FC = ({ return chartOptions }, [currentPriceLocation, theme]) - const cheapPeriods = useMemo(() => { - if (!showCheapPeriod || prices.length <= 1) return [[], []] - - const cp = getTwoCheapestPeriods(prices, 3) - + const cheapestPeriodsPadded = useMemo(() => { return [ - filterAndPadPrices(cp[0]), - filterAndPadPrices(cp[1]), + filterAndPadPrices(cheapestPeriods.first), + filterAndPadPrices(cheapestPeriods.second), ] - }, [prices, showCheapPeriod]) + }, [cheapestPeriods]) - const expensivePeriod = useMemo(() => { - if (!showExpensivePeriod) return [] + const expensivePeriodPadded = useMemo( + () => filterAndPadPrices(expensivePeriod), - const ep = getMostExpensivePeriod(prices, 3) - return filterAndPadPrices(ep) - }, [prices, showExpensivePeriod]) + [expensivePeriod], + ) const paddedPrices = useMemo(() => { if (prices.length === 0) return [] @@ -203,7 +199,7 @@ const DailyChart: React.FC = ({ datasets: [ { label: "Hide", - data: cheapPeriods[0], + data: cheapestPeriodsPadded[0], backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), showLine: false, fill: "start", @@ -211,7 +207,7 @@ const DailyChart: React.FC = ({ }, { label: "Hide", - data: cheapPeriods[0], + data: cheapestPeriodsPadded[0], backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), showLine: false, fill: "end", @@ -219,7 +215,7 @@ const DailyChart: React.FC = ({ }, { label: "Hide", - data: cheapPeriods[1], + data: cheapestPeriodsPadded[1], backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), showLine: false, fill: "start", @@ -227,7 +223,7 @@ const DailyChart: React.FC = ({ }, { label: "Hide", - data: cheapPeriods[1], + data: cheapestPeriodsPadded[1], backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), showLine: false, fill: "end", @@ -235,7 +231,7 @@ const DailyChart: React.FC = ({ }, { label: "Hide", - data: expensivePeriod, + data: expensivePeriodPadded, backgroundColor: hexToRGBA(theme.palette.error.main, 0.2), showLine: false, fill: "start", @@ -243,7 +239,7 @@ const DailyChart: React.FC = ({ }, { label: "Hide", - data: expensivePeriod, + data: expensivePeriodPadded, backgroundColor: hexToRGBA(theme.palette.error.main, 0.2), showLine: false, fill: "end", @@ -270,9 +266,9 @@ const DailyChart: React.FC = ({ } }, [ averageDataset, - cheapPeriods, + cheapestPeriodsPadded, dateFormat, - expensivePeriod, + expensivePeriodPadded, paddedPrices, theme, ]) diff --git a/src/models/DailyPriceInfo.ts b/src/models/DailyPriceInfo.ts new file mode 100644 index 0000000..9c63c5e --- /dev/null +++ b/src/models/DailyPriceInfo.ts @@ -0,0 +1,14 @@ +import { DayRating } from "./DayRating" +import { Price } from "./Price" + +export interface Pair { + first: T + second: T +} + +export interface DailyPriceInfo { + dayRating: DayRating + prices: Price[] + cheapestPeriods: Pair + expensivePeriod: Price[] +} diff --git a/src/models/DayRating.ts b/src/models/DayRating.ts new file mode 100644 index 0000000..e061af3 --- /dev/null +++ b/src/models/DayRating.ts @@ -0,0 +1,5 @@ +export enum DayRating { + GOOD = "GOOD", + NORMAL = "NORMAL", + BAD = "BAD", +} diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index de2868a..940b3c7 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -5,21 +5,26 @@ import Paper from "@mui/material/Paper" import DailyChart from "components/PriceChart" import { Price } from "models/Price" import { format, isSameHour } from "date-fns" -import { getPrices } from "services/PriceService" -import { calculateAverage, calculateRating } from "utils/PriceUtils" +import { getDailyPriceInfo, getPrices } from "services/PriceService" +import { calculateAverage } from "utils/PriceUtils" import { Container, Grid } from "@mui/material" import Metric from "components/Metric" +import { DailyPriceInfo } from "models/DailyPriceInfo" +import { da } from "date-fns/locale" +import { DayRating } from "models/DayRating" const DashboardContent: React.FC = () => { const [currentDate, setCurrentDate] = useState(new Date()) - const [pricesToday, setPricesToday] = useState([]) - const [pricesTomorrow, setPricesTomorrow] = useState(null) + const [pricesToday, setPricesToday] = useState(null) + const [pricesTomorrow, setPricesTomorrow] = useState( + null, + ) const [pricesThirtyDays, setPricesThirtyDays] = useState([]) useEffect(() => { const fetchData = async () => { - const prices = await getPrices(currentDate, currentDate) - if (prices.length === 0) return + const prices = await getDailyPriceInfo(currentDate) + if (prices.prices.length === 0) return setPricesToday(prices) } fetchData() @@ -30,12 +35,12 @@ const DashboardContent: React.FC = () => { const tomorrow = new Date() tomorrow.setTime(currentDate.getTime() + 24 * 60 * 60 * 1000) - const prices = await getPrices(tomorrow, tomorrow) - if (prices.length === 0) { + const prices = await getDailyPriceInfo(tomorrow) + if (prices.prices.length === 0) { setPricesTomorrow(null) } else { - const last = prices[prices.length - 1] - prices.push({ + const last = prices.prices[prices.prices.length - 1] + prices.prices.push({ price: last.price, dateTime: last.dateTime.slice(0, -8) + "24:00:00", }) @@ -92,33 +97,35 @@ const DashboardContent: React.FC = () => { const currentPrice = useMemo( () => - pricesToday.find(price => + pricesToday?.prices.find(price => isSameHour(new Date(price.dateTime), currentDate), - ), + ) ?? null, [pricesToday, currentDate], ) const minPriceToday = useMemo(() => { - const min = Math.min(...pricesToday.map(price => price.price)) - return pricesToday.find(price => price.price === min) + if (!pricesToday) return null + const min = Math.min(...pricesToday.prices.map(price => price.price)) + return pricesToday.prices.find(price => price.price === min) }, [pricesToday]) const maxPriceToday = useMemo(() => { - const max = Math.max(...pricesToday.map(price => price.price)) - return pricesToday.find(price => price.price === max) + if (!pricesToday) return null + const max = Math.max(...pricesToday.prices.map(price => price.price)) + return pricesToday.prices.find(price => price.price === max) }, [pricesToday]) const minPriceTomorrow = useMemo(() => { if (!pricesTomorrow) return null - const min = Math.min(...pricesTomorrow.map(price => price.price)) - return pricesTomorrow.find(price => price.price === min) + const min = Math.min(...pricesTomorrow.prices.map(price => price.price)) + return pricesTomorrow.prices.find(price => price.price === min) }, [pricesTomorrow]) const maxPriceTomorrow = useMemo(() => { if (!pricesTomorrow) return null - const max = Math.max(...pricesTomorrow.map(price => price.price)) - return pricesTomorrow.find(price => price.price === max) + const max = Math.max(...pricesTomorrow.prices.map(price => price.price)) + return pricesTomorrow.prices.find(price => price.price === max) }, [pricesTomorrow]) const dailyMedians = useMemo(() => { @@ -138,15 +145,29 @@ const DashboardContent: React.FC = () => { return medians }, [pricesThirtyDays]) - const todayRating = useMemo( - () => calculateRating(pricesToday, median), - [pricesToday, median], - ) + const todayRating = useMemo(() => { + if (!pricesToday) return null + switch (pricesToday?.dayRating) { + case DayRating.BAD: + return "MALO" + case DayRating.GOOD: + return "BUENO" + default: + return "NORMAL" + } + }, [pricesToday]) - const tomorrowRating = useMemo( - () => (pricesTomorrow ? calculateRating(pricesTomorrow, median) : null), - [pricesTomorrow, median], - ) + const tomorrowRating = useMemo(() => { + if (!pricesTomorrow) return null + switch (pricesTomorrow?.dayRating) { + case DayRating.BAD: + return "MALO" + case DayRating.GOOD: + return "BUENO" + default: + return "NORMAL" + } + }, [pricesTomorrow]) return ( { align="left" gutterBottom> Hoy{" "} - {pricesToday.length > 0 - ? format(new Date(pricesToday[0].dateTime), "dd/MM") + {pricesToday && pricesToday.prices.length > 0 + ? format( + new Date(pricesToday.prices[0].dateTime), + "dd/MM", + ) : ""}{" "} es un día {todayRating} @@ -244,15 +268,17 @@ const DashboardContent: React.FC = () => { - + {pricesToday && ( + + )} @@ -261,11 +287,9 @@ const DashboardContent: React.FC = () => { component="h2" align="left" gutterBottom> - {pricesTomorrow && - tomorrowRating && - pricesTomorrow.length > 0 + {pricesTomorrow && pricesTomorrow.prices.length > 0 ? `Mañana ${format( - new Date(pricesTomorrow[0].dateTime), + new Date(pricesTomorrow.prices[0].dateTime), "dd/MM", )} es un día ${tomorrowRating}` : `Los precios de mañana aún no están disponibles - approx. 20:30`} @@ -332,13 +356,13 @@ const DashboardContent: React.FC = () => { {pricesTomorrow && ( )} @@ -359,8 +383,8 @@ const DashboardContent: React.FC = () => { chartId="DailyMedians" dateFormat="MMM dd" showCurrentPrice={false} - showCheapPeriod={false} - showExpensivePeriod={false} + cheapestPeriods={{ first: [], second: [] }} + expensivePeriod={[]} /> diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index 7306a94..1c0b4cf 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -1,16 +1,10 @@ import axios from "axios" import { format } from "date-fns" +import { DailyPriceInfo } from "models/DailyPriceInfo" import { Price } from "models/Price" const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" -export const getPricesXDaysAgo = async (x: number): Promise => { - const today = new Date() - const xDaysAgo = new Date() - xDaysAgo.setTime(today.getTime() - x * 24 * 60 * 60 * 1000) - return getPrices(xDaysAgo, xDaysAgo) -} - export const getPrices = async (start: Date, end: Date): Promise => { const start_day = format(start, "yyyy-MM-dd") const end_day = format(end, "yyyy-MM-dd") @@ -20,3 +14,13 @@ export const getPrices = async (start: Date, end: Date): Promise => { ) return response.data } + +export const getDailyPriceInfo = async ( + date: Date, +): Promise => { + const dateStr = format(date, "yyyy-MM-dd") + const response = await axios.get( + `${PRICES_API}/dailyinfo/${dateStr}`, + ) + return response.data +} diff --git a/src/utils/PriceUtils.ts b/src/utils/PriceUtils.ts index 0f2c7d9..2399ea6 100644 --- a/src/utils/PriceUtils.ts +++ b/src/utils/PriceUtils.ts @@ -148,17 +148,19 @@ export const filterAndPadPrices = ( return [] } - const paddedArray = Array.from({ length: 24 }, (_, i) => i).map(priceHour => { - return period.find(periodItem => { - const hour = new Date(periodItem.dateTime).getHours() - return hour === priceHour || hour + 1 === priceHour + const paddedArray = Array.from({ length: 24 }, (_, i) => i) + .map(priceHour => { + return period.find(periodItem => { + const hour = new Date(periodItem.dateTime).getHours() + return hour === priceHour || hour + 1 === priceHour + }) }) - }).map(price => price ? price.price : null) + .map(price => (price ? price.price : null)) // If the period ends at 23:00, duplicate the last item for 24:00 if (endOfPeriod.getHours() === 23) { - paddedArray.push(paddedArray[paddedArray.length - 1])} + paddedArray.push(paddedArray[paddedArray.length - 1]) + } - console.log(JSON.stringify(paddedArray)) return paddedArray } diff --git a/yarn.lock b/yarn.lock index 9406eb7..f8eb73c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35,11 +35,11 @@ leven "^3.1.0" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" - integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.22.10" + "@babel/highlight" "^7.22.13" chalk "^2.4.2" "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": @@ -276,19 +276,19 @@ "@babel/traverse" "^7.22.11" "@babel/types" "^7.22.11" -"@babel/highlight@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" - integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== +"@babel/highlight@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" + integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== dependencies: "@babel/helper-validator-identifier" "^7.22.5" chalk "^2.4.2" js-tokens "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.11", "@babel/parser@^7.22.5": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.11.tgz#becf8ee33aad2a35ed5607f521fe6e72a615f905" - integrity sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g== + version "7.22.14" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.14.tgz#c7de58e8de106e88efca42ce17f0033209dfd245" + integrity sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" @@ -542,7 +542,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.10": +"@babel/plugin-transform-async-generator-functions@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz#dbe3b1ff5a52e2e5edc4b19a60d325a675ed2649" integrity sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw== @@ -583,7 +583,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.22.5": +"@babel/plugin-transform-class-static-block@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== @@ -637,7 +637,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.22.5": +"@babel/plugin-transform-dynamic-import@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== @@ -653,7 +653,7 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.22.5": +"@babel/plugin-transform-export-namespace-from@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== @@ -685,7 +685,7 @@ "@babel/helper-function-name" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.22.5": +"@babel/plugin-transform-json-strings@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== @@ -700,7 +700,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.22.5": +"@babel/plugin-transform-logical-assignment-operators@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== @@ -723,7 +723,7 @@ "@babel/helper-module-transforms" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.11", "@babel/plugin-transform-modules-commonjs@^7.22.5": +"@babel/plugin-transform-modules-commonjs@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== @@ -732,7 +732,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.22.5": +"@babel/plugin-transform-modules-systemjs@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1" integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA== @@ -765,7 +765,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": +"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== @@ -773,7 +773,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.22.5": +"@babel/plugin-transform-numeric-separator@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== @@ -781,7 +781,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.5": +"@babel/plugin-transform-object-rest-spread@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz#dbbb06ce783cd994a8f430d8cefa553e9b42ca62" integrity sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw== @@ -800,7 +800,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.5" -"@babel/plugin-transform-optional-catch-binding@^7.22.5": +"@babel/plugin-transform-optional-catch-binding@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== @@ -808,7 +808,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.5": +"@babel/plugin-transform-optional-chaining@^7.22.12", "@babel/plugin-transform-optional-chaining@^7.22.5": version "7.22.12" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz#d7ebf6a88cd2f4d307b0e000ab630acd8124b333" integrity sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw== @@ -832,7 +832,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.22.5": +"@babel/plugin-transform-private-property-in-object@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== @@ -993,10 +993,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f" - integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.22.14": + version "7.22.14" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.14.tgz#1cbb468d899f64fa71c53446f13b7ff8c0005cc1" + integrity sha512-daodMIoVo+ol/g+//c/AH+szBkFj4STQUikvBijRGL72Ph+w+AMTSh55DUETe8KJlPlDT1k/mp7NBfOuiWmoig== dependencies: "@babel/compat-data" "^7.22.9" "@babel/helper-compilation-targets" "^7.22.10" @@ -1024,41 +1024,41 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.10" + "@babel/plugin-transform-async-generator-functions" "^7.22.11" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" "@babel/plugin-transform-block-scoping" "^7.22.10" "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" + "@babel/plugin-transform-class-static-block" "^7.22.11" "@babel/plugin-transform-classes" "^7.22.6" "@babel/plugin-transform-computed-properties" "^7.22.5" "@babel/plugin-transform-destructuring" "^7.22.10" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.5" + "@babel/plugin-transform-dynamic-import" "^7.22.11" "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.5" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" "@babel/plugin-transform-for-of" "^7.22.5" "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" + "@babel/plugin-transform-json-strings" "^7.22.11" "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" + "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" "@babel/plugin-transform-member-expression-literals" "^7.22.5" "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-modules-systemjs" "^7.22.5" + "@babel/plugin-transform-modules-commonjs" "^7.22.11" + "@babel/plugin-transform-modules-systemjs" "^7.22.11" "@babel/plugin-transform-modules-umd" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" - "@babel/plugin-transform-numeric-separator" "^7.22.5" - "@babel/plugin-transform-object-rest-spread" "^7.22.5" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" + "@babel/plugin-transform-numeric-separator" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.11" "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.10" + "@babel/plugin-transform-optional-catch-binding" "^7.22.11" + "@babel/plugin-transform-optional-chaining" "^7.22.12" "@babel/plugin-transform-parameters" "^7.22.5" "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" "@babel/plugin-transform-property-literals" "^7.22.5" "@babel/plugin-transform-regenerator" "^7.22.10" "@babel/plugin-transform-reserved-words" "^7.22.5" @@ -1072,7 +1072,7 @@ "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.22.10" + "@babel/types" "^7.22.11" babel-plugin-polyfill-corejs2 "^0.4.5" babel-plugin-polyfill-corejs3 "^0.8.3" babel-plugin-polyfill-regenerator "^0.5.2" @@ -1419,7 +1419,7 @@ dependencies: "@floating-ui/utils" "^0.1.1" -"@floating-ui/dom@^1.3.0": +"@floating-ui/dom@^1.5.1": version "1.5.1" resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.1.tgz#88b70defd002fe851f17b4a25efb2d3c04d7a8d7" integrity sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw== @@ -1428,11 +1428,11 @@ "@floating-ui/utils" "^0.1.1" "@floating-ui/react-dom@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.1.tgz#7972a4fc488a8c746cded3cfe603b6057c308a91" - integrity sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20" + integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ== dependencies: - "@floating-ui/dom" "^1.3.0" + "@floating-ui/dom" "^1.5.1" "@floating-ui/utils@^0.1.1": version "0.1.1" @@ -1440,9 +1440,9 @@ integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw== "@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== + version "0.11.11" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1781,44 +1781,44 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/base@5.0.0-beta.12": - version "5.0.0-beta.12" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.12.tgz#131882930bdbe236dd835867bf6222a993b8d219" - integrity sha512-tZjjXNAyUpwSDT1uRliZMhRQkWYzELJ8Qi61EuOMRpi36HIwnK2T7Nr4RI423Sv8G2EEikDAZj7je33eNd73NQ== +"@mui/base@5.0.0-beta.13": + version "5.0.0-beta.13" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.13.tgz#3bae94c39752546d84a67d4ca73486b7c4923a89" + integrity sha512-uC0l97pBspfDAp+iz2cJq8YZ8Sd9i73V77+WzUiOAckIVEyCm5dyVDZCCO2/phmzckVEeZCGcytybkjMQuhPQw== dependencies: "@babel/runtime" "^7.22.10" "@emotion/is-prop-valid" "^1.2.1" "@floating-ui/react-dom" "^2.0.1" "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.6" + "@mui/utils" "^5.14.7" "@popperjs/core" "^2.11.8" clsx "^2.0.0" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.6.tgz#8cbc3441a630e1810a945e408e5025bdc99ea2f7" - integrity sha512-QZEU3pyGWLuaHbxvOlShol7U1FVgzWBR0OH9H8D7L8w4/vto5N5jJVvlqFQS3T0zbR6YGHxFaiL6Ky87jQg7aw== +"@mui/core-downloads-tracker@^5.14.7": + version "5.14.7" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.7.tgz#95bed2487bf59632125a13b8eb8f4c21e460afec" + integrity sha512-sCWTUNElBPgB30iLvWe3PU7SIlTKZNf6/E/sko85iHVeHCM6WPkDw+y89CrZYjhFNmPqt2fIQM/pZu+rP2lFLA== -"@mui/icons-material@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.6.tgz#0efdcba2c30d6b22e6ead787b67247da173bd11a" - integrity sha512-7Cujy7lRGTj2T3SvY9C9ZOTFDtrXJogeNnRcU/ODyNoxwskMNPFOcc15F+98MAdJenBVLJPYu+vPP6DUvEpNrA== +"@mui/icons-material@^5.14.7": + version "5.14.7" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.7.tgz#d7f6bd188fe38adf35c89d9343b8a529c2306383" + integrity sha512-mWp4DwMa8c1Gx9yOEtPgxM4b+e6hAbtZyzfSubdBwrnEE6G5D2rbAJ5MB+If6kfI48JaYaJ5j8+zAdmZLuZc0A== dependencies: "@babel/runtime" "^7.22.10" -"@mui/material@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.6.tgz#12cbb716a7f70859764be310bb9b2f5ffc0da818" - integrity sha512-C3UgGrmtvcGkQkm0ONBU7bTdapTjQc2Se3b2354xMmU7lgSgW7VM6EP9wIH5XqqoJ60m9l/s9kbTWX0Y+EaWvA== +"@mui/material@^5.14.7": + version "5.14.7" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.7.tgz#6c2c0de8a625562f789e1bb33cb4cfc8cf20bdb0" + integrity sha512-jIZj9F7zMv6IlyaYDVv5M2Kp20jIX8c0kzuwteySHS/A0IvPVyomQEPtWc51MCbpDNCqzwoZUp3rQtA2lI8k7A== dependencies: "@babel/runtime" "^7.22.10" - "@mui/base" "5.0.0-beta.12" - "@mui/core-downloads-tracker" "^5.14.6" - "@mui/system" "^5.14.6" + "@mui/base" "5.0.0-beta.13" + "@mui/core-downloads-tracker" "^5.14.7" + "@mui/system" "^5.14.7" "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.6" + "@mui/utils" "^5.14.7" "@types/react-transition-group" "^4.4.6" clsx "^2.0.0" csstype "^3.1.2" @@ -1826,35 +1826,35 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.6.tgz#bd80c91bea94b6e54a74764f8d3fb0d4ec418acb" - integrity sha512-3VBLFGizBXfofyk33bwRg6t9L648aKnLmOKPfY1wFuiXq3AEYwobK65iDci/tHKxm/VKbZ6A7PFjLejvB3EvRQ== +"@mui/private-theming@^5.14.7": + version "5.14.7" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.7.tgz#c9fec31e59bf66b12959e724b0e8ec3bb4a3d923" + integrity sha512-Y86+hmDnJab2Ka42PgxKpK3oL7EiacbeeX3X/lG9LGO0wSc45wZjHeTfIlVSkkUCkexiMKEJp5NlSjZhr27NRQ== dependencies: "@babel/runtime" "^7.22.10" - "@mui/utils" "^5.14.6" + "@mui/utils" "^5.14.7" prop-types "^15.8.1" -"@mui/styled-engine@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.6.tgz#a4034ab51981ecf673275b2c1d1da71deb94317f" - integrity sha512-I6zeu/OP1Hk4NsX1Oj85TiYl1dER0JMsLJVn76J1Ihl24A5EbiZQKJp3Mn+ufA79ypkdAvM9aQCAQyiVBFcUHg== +"@mui/styled-engine@^5.14.7": + version "5.14.7" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.7.tgz#aaacec6c87bcc9a180b2da062c613213af10f2e3" + integrity sha512-hKBETEDsIAkL8/mBwPiQj/vw28OeIhMXC3Tvj4J2bb9snxAKpiZioR1PwqP+6P41twsC/GKBd0Vr9oaWYaHuMg== dependencies: "@babel/runtime" "^7.22.10" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.6.tgz#621eae10c4dde0a2ab566ac09c26f7becfb7ba80" - integrity sha512-/n0ae1MegWjiV1BpRU8jgg4E0zBjeB2VYsT/68ag/xaDuq3/TaDKJeT9REIvyBvwlG3CI3S2O+tRELktxCD1kg== +"@mui/system@^5.14.7": + version "5.14.7" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.7.tgz#b08e23f9151d38186ab12dd618906abd4d73d203" + integrity sha512-jeZtHglc+Pi6qjGoopT6O4RqYXVBMqHVOsjMGP0hxGSSPm1T4gsAu7jU8eqGx9YwwjvvJ0eotTjFqw7iJ6qE2Q== dependencies: "@babel/runtime" "^7.22.10" - "@mui/private-theming" "^5.14.6" - "@mui/styled-engine" "^5.14.6" + "@mui/private-theming" "^5.14.7" + "@mui/styled-engine" "^5.14.7" "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.6" + "@mui/utils" "^5.14.7" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" @@ -1864,10 +1864,10 @@ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.4.tgz#b6fade19323b754c5c6de679a38f068fd50b9328" integrity sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA== -"@mui/utils@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.6.tgz#614338f781faf21535fbf1094b6691aaee1ff472" - integrity sha512-AznpqLu6hrFnpHgcvsSSMCG+cDbkcCYfo+daUwBVReNYv4l+NQ8+wvBAF4aUMi155N7xWbbgh0cyKs6Wdsm3aA== +"@mui/utils@^5.14.7": + version "5.14.7" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.7.tgz#3677bcabe032f1185e151f57d8c1a166df3ae0a1" + integrity sha512-RtheP/aBoPogVdi8vj8Vo2IFnRa4mZVmnD0RGlVZ49yF60rZs+xP4/KbpIrTr83xVs34QmHQ2aQ+IX7I0a0dDw== dependencies: "@babel/runtime" "^7.22.10" "@types/prop-types" "^15.7.5" @@ -2339,10 +2339,10 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/node@*", "@types/node@^20.5.6": - version "20.5.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.6.tgz#5e9aaa86be03a09decafd61b128d6cec64a5fe40" - integrity sha512-Gi5wRGPbbyOTX+4Y2iULQ27oUPrefaB0PxGQJnfyWN3kvEDGM3mIB5M/gQLmitZf7A9FmLeaqxD3L1CXpm3VKQ== +"@types/node@*", "@types/node@^20.5.7": + version "20.5.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377" + integrity sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -2360,14 +2360,14 @@ integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== "@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== + version "1.5.6" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.6.tgz#a6edffe8283910e46dc7a573621f928e6b47fa56" + integrity sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ== "@types/qs@*": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + version "6.9.8" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" + integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== "@types/range-parser@*": version "1.2.4" @@ -2422,9 +2422,9 @@ integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== "@types/semver@^7.3.12": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + version "7.5.1" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" + integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== "@types/send@*": version "0.17.1" @@ -2940,15 +2940,15 @@ array-union@^2.1.0: integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.findlastindex@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" - integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" array.prototype.flat@^1.3.1: version "1.3.1" @@ -2971,13 +2971,13 @@ array.prototype.flatmap@^1.3.1: es-shim-unscopables "^1.0.0" array.prototype.reduce@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" - integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + version "1.0.6" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" + integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" @@ -3058,10 +3058,10 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== -axios@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" - integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== +axios@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267" + integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -3420,9 +3420,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: - version "1.0.30001523" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001523.tgz#b838f70b1a98c556776b998fafb47d2b64146d4f" - integrity sha512-I5q5cisATTPZ1mc588Z//pj/Ox80ERYDfR71YnvY7raS/NOk8xXlZcB0sF7JdqaV//kOaa6aus7lRfpdnt1eBA== + version "1.0.30001525" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz#d2e8fdec6116ffa36284ca2c33ef6d53612fe1c8" + integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -4268,9 +4268,9 @@ ejs@^3.1.6: jake "^10.8.5" electron-to-chromium@^1.4.477: - version "1.4.502" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.502.tgz#531cda8774813d97d6cfa2fb9d8ee3e2c75851fa" - integrity sha512-xqeGw3Gr6o3uyHy/yKjdnDQHY2RQvXcGC2cfHjccK1IGkH6cX1WQBN8EeC/YpwPhGkBaikDTecJ8+ssxSVRQlw== + version "1.4.506" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.506.tgz#59f64a211102db4c3ebae2f39cc0e8e1b12b3a07" + integrity sha512-xxGct4GPAKSRlrLBtJxJFYy74W11zX6PO9GyHgl/U+2s3Dp0ZEwAklDfNHXOWcvH7zWMpsmgbR0ggEuaYAVvHA== emittery@^0.10.2: version "0.10.2" @@ -4329,7 +4329,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.21.3: +es-abstract@^1.17.2, es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== @@ -4395,14 +4395,14 @@ es-get-iterator@^1.1.3: stop-iteration-iterator "^1.0.0" es-iterator-helpers@^1.0.12: - version "1.0.13" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.13.tgz#72101046ffc19baf9996adc70e6177a26e6e8084" - integrity sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA== + version "1.0.14" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.14.tgz#19cd7903697d97e21198f3293b55e8985791c365" + integrity sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw== dependencies: asynciterator.prototype "^1.0.0" call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.3" + es-abstract "^1.22.1" es-set-tostringtag "^2.0.1" function-bind "^1.1.1" get-intrinsic "^1.2.1" @@ -4963,14 +4963,15 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" + integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== dependencies: - flatted "^3.1.0" + flatted "^3.2.7" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: +flatted@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== @@ -5030,9 +5031,9 @@ forwarded@0.2.0: integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fraction.js@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.1.tgz#14b4cc886575a5684f8d5fd5759c5db376bb7bb8" - integrity sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q== + version "4.3.2" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.2.tgz#ea144a08ed23a284bf9067153075f212771a92d9" + integrity sha512-9VLF466MqX1OUP7/d9r7/Vsvu6Hpp+taXBLmiR5x6mEYfT0BDkGVBt5TyA1aDu1WzIE1sF8F66evOFaz7iAEGQ== fresh@0.5.2: version "0.5.2" @@ -5079,16 +5080,16 @@ function-bind@^1.1.1: integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" -functions-have-names@^1.2.2, functions-have-names@^1.2.3: +functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -5547,7 +5548,7 @@ ini@^1.3.5: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: +internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -5870,14 +5871,13 @@ istanbul-reports@^3.1.3: istanbul-lib-report "^3.0.0" iterator.prototype@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.0.tgz#690c88b043d821f783843aaf725d7ac3b62e3b46" - integrity sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.1.tgz#ab5b790e23ec00658f5974e032a2b05188bd3a5c" + integrity sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ== dependencies: - define-properties "^1.1.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - has-tostringtag "^1.0.0" reflect.getprototypeof "^1.0.3" jake@^10.8.5: @@ -6526,6 +6526,11 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -6587,6 +6592,13 @@ jsonpointer@^5.0.0: object.assign "^4.1.4" object.values "^1.1.6" +keyv@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" + integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -7052,22 +7064,22 @@ object.assign@^4.1.4: object-keys "^1.1.1" object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.getownpropertydescriptors@^2.1.0: version "2.1.6" @@ -7081,31 +7093,31 @@ object.getownpropertydescriptors@^2.1.0: safe-array-concat "^1.0.0" object.groupby@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" - integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.2" + es-abstract "^1.22.1" get-intrinsic "^1.2.1" object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" object.values@^1.1.0, object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" @@ -7873,9 +7885,9 @@ postcss@^7.0.35: source-map "^0.6.1" postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: - version "8.4.28" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5" - integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw== + version "8.4.29" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" + integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -7886,10 +7898,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.2.tgz#78fcecd6d870551aa5547437cdae39d4701dca5b" - integrity sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ== +prettier@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -8234,14 +8246,14 @@ redent@^3.0.0: strip-indent "^3.0.0" reflect.getprototypeof@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz#2738fd896fcc3477ffbd4190b40c2458026b6928" - integrity sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.1" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" globalthis "^1.0.3" which-builtin-type "^1.1.3" @@ -8279,7 +8291,7 @@ regex-parser@^2.2.11: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: +regexp.prototype.flags@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== @@ -8825,17 +8837,17 @@ string-width@^4.1.0, string-width@^4.2.0: strip-ansi "^6.0.1" string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== + version "4.0.9" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz#148779de0f75d36b13b15885fec5cadde994520d" + integrity sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" side-channel "^1.0.4" string.prototype.trim@^1.2.7: @@ -9114,9 +9126,9 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: - version "5.19.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.2.tgz#bdb8017a9a4a8de4663a7983f45c506534f9234e" - integrity sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA== + version "5.19.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.3.tgz#359baeba615aef13db4b8c4d77a2aa0d8814aa9e" + integrity sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -9646,9 +9658,9 @@ whatwg-encoding@^1.0.5: iconv-lite "0.4.24" whatwg-fetch@^3.6.2: - version "3.6.17" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.17.tgz#009bbbfc122b227b74ba1ff31536b3a1a0e0e212" - integrity sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ== + version "3.6.18" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.18.tgz#2f640cdee315abced7daeaed2309abd1e44e62d4" + integrity sha512-ltN7j66EneWn5TFDO4L9inYC1D+Czsxlrw2SalgjMmEMkLfA5SIZxEFdE6QtHFiiM6Q7WL32c7AkI3w6yxM84Q== whatwg-mimetype@^2.3.0: version "2.3.0" @@ -9979,9 +9991,9 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yaml@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== + version "2.3.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" + integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== yargs-parser@^20.2.2: version "20.2.9" From 0a1f71ee218b27348766a6f5384f52d5b12cd9d2 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 31 Aug 2023 09:21:50 +0200 Subject: [PATCH 10/78] removing import --- src/pages/Dashboard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 940b3c7..706c477 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -10,7 +10,6 @@ import { calculateAverage } from "utils/PriceUtils" import { Container, Grid } from "@mui/material" import Metric from "components/Metric" import { DailyPriceInfo } from "models/DailyPriceInfo" -import { da } from "date-fns/locale" import { DayRating } from "models/DayRating" const DashboardContent: React.FC = () => { @@ -65,6 +64,7 @@ const DashboardContent: React.FC = () => { }, [currentDate]) useEffect(() => { + // Set date to 3 days ago const fetchData = () => setCurrentDate(new Date()) // Calculate time remaining until the start of the next hour const now = new Date() From 4ca9bd62b22895e6f48badd825f734b883d0abd6 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sat, 2 Sep 2023 22:52:19 +0200 Subject: [PATCH 11/78] switching to a different API --- src/services/PriceService.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index 1c0b4cf..026ee8e 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -3,7 +3,8 @@ import { format } from "date-fns" import { DailyPriceInfo } from "models/DailyPriceInfo" import { Price } from "models/Price" -const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" +// const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" +const PRICES_API = "https://elec-api.daithiapp.com/api/v1/price" export const getPrices = async (start: Date, end: Date): Promise => { const start_day = format(start, "yyyy-MM-dd") From 091bf6f69b73945b8660dc18db5c9697f544f927 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sat, 2 Sep 2023 23:33:47 +0200 Subject: [PATCH 12/78] fix: using madrid timezone --- package.json | 3 +- src/components/PriceChart.tsx | 22 ++++++-- src/pages/Dashboard.tsx | 100 ++++++++++++++++++---------------- src/services/PriceService.ts | 16 ++++-- src/utils/PriceUtils.ts | 24 ++++++-- yarn.lock | 19 ++++--- 6 files changed, 111 insertions(+), 73 deletions(-) diff --git a/package.json b/package.json index 432aaed..e014481 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", "@types/jest": "^29.5.4", + "@types/luxon": "^3.3.2", "@types/node": "^20.5.7", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", @@ -18,7 +19,7 @@ "chart.js": "^4.4.0", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", - "date-fns": "^2.30.0", + "luxon": "^3.4.2", "prettier": "^3.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index 8e98518..ca923f3 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useMemo, useRef, useState } from "react" -import { format } from "date-fns" +import { DateTime } from "luxon" import { Chart, ChartData, ChartOptions } from "chart.js/auto" import Annotation, { LineAnnotationOptions } from "chartjs-plugin-annotation" import { Price } from "models/Price" @@ -47,12 +47,20 @@ const DailyChart: React.FC = ({ // Function to be executed every minute const updateData = () => { if (!showCurrentPrice || prices.length <= 1) return + const canvasWidth = prices.length - 1 - const startTime = new Date(prices[0].dateTime).getTime() - const endTime = new Date( + + // Use Luxon's DateTime objects with Europe/Madrid timezone + const startTime = DateTime.fromISO(prices[0].dateTime, { + zone: "Europe/Madrid", + }).toMillis() + const endTime = DateTime.fromISO( prices[prices.length - 1].dateTime, - ).getTime() - const currentTime = new Date().getTime() + { zone: "Europe/Madrid" }, + ).toMillis() + const currentTime = DateTime.now() + .setZone("Europe/Madrid") + .toMillis() if (currentTime < startTime || currentTime > endTime) return setCurrentPriceLocation(-1) @@ -194,7 +202,9 @@ const DailyChart: React.FC = ({ const chartData: ChartData<"line", (number | null)[]> = useMemo(() => { return { labels: paddedPrices.map(item => - format(new Date(item.dateTime), dateFormat), + DateTime.fromISO(item.dateTime, { + zone: "Europe/Madrid", + }).toFormat(dateFormat), ), datasets: [ { diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 706c477..be1ee1b 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -3,8 +3,8 @@ import Box from "@mui/material/Box" import Typography from "@mui/material/Typography" import Paper from "@mui/material/Paper" import DailyChart from "components/PriceChart" +import { DateTime } from "luxon" import { Price } from "models/Price" -import { format, isSameHour } from "date-fns" import { getDailyPriceInfo, getPrices } from "services/PriceService" import { calculateAverage } from "utils/PriceUtils" import { Container, Grid } from "@mui/material" @@ -13,7 +13,9 @@ import { DailyPriceInfo } from "models/DailyPriceInfo" import { DayRating } from "models/DayRating" const DashboardContent: React.FC = () => { - const [currentDate, setCurrentDate] = useState(new Date()) + const [currentDate, setCurrentDate] = useState( + DateTime.now().setZone("Europe/Madrid"), + ) const [pricesToday, setPricesToday] = useState(null) const [pricesTomorrow, setPricesTomorrow] = useState( null, @@ -31,8 +33,7 @@ const DashboardContent: React.FC = () => { useEffect(() => { const fetchData = async () => { - const tomorrow = new Date() - tomorrow.setTime(currentDate.getTime() + 24 * 60 * 60 * 1000) + const tomorrow = currentDate.plus({ days: 1 }) const prices = await getDailyPriceInfo(tomorrow) if (prices.prices.length === 0) { @@ -51,10 +52,7 @@ const DashboardContent: React.FC = () => { useEffect(() => { const fetchData = async () => { - const thirtyDaysAgo = new Date() - thirtyDaysAgo.setTime( - currentDate.getTime() - 30 * 24 * 60 * 60 * 1000, - ) + const thirtyDaysAgo = currentDate.minus({ days: 30 }) const prices = await getPrices(thirtyDaysAgo, currentDate) @@ -65,11 +63,15 @@ const DashboardContent: React.FC = () => { useEffect(() => { // Set date to 3 days ago - const fetchData = () => setCurrentDate(new Date()) + const fetchData = () => + setCurrentDate(DateTime.now().setZone("Europe/Madrid")) // Calculate time remaining until the start of the next hour - const now = new Date() - const millisecondsUntilNextHour = - (60 - now.getMinutes()) * 60 * 1000 - now.getSeconds() * 1000 + const now = DateTime.now().setZone("Europe/Madrid") + const nextHour = now.startOf("hour").plus({ hour: 1 }) + const millisecondsUntilNextHour = nextHour.diff( + now, + "milliseconds", + ).milliseconds // Set a timeout to execute the function when the next hour starts const timeoutId = setTimeout(() => { @@ -95,14 +97,17 @@ const DashboardContent: React.FC = () => { [pricesThirtyDays], ) - const currentPrice = useMemo( - () => - pricesToday?.prices.find(price => - isSameHour(new Date(price.dateTime), currentDate), - ) ?? null, + const currentPrice = useMemo(() => { + return ( + pricesToday?.prices.find(price => { + const priceDateTimeInMadrid = DateTime.fromISO( + price.dateTime, + ).setZone("Europe/Madrid") - [pricesToday, currentDate], - ) + return currentDate.hasSame(priceDateTimeInMadrid, "hour") + }) ?? null + ) + }, [pricesToday, currentDate]) const minPriceToday = useMemo(() => { if (!pricesToday) return null @@ -199,10 +204,9 @@ const DashboardContent: React.FC = () => { gutterBottom> Hoy{" "} {pricesToday && pricesToday.prices.length > 0 - ? format( - new Date(pricesToday.prices[0].dateTime), - "dd/MM", - ) + ? DateTime.fromISO(pricesToday.prices[0].dateTime) + .setZone("Europe/Madrid") + .toFormat("dd/MM") : ""}{" "} es un día {todayRating} @@ -213,10 +217,9 @@ const DashboardContent: React.FC = () => { {currentPrice ? ( @@ -228,10 +231,11 @@ const DashboardContent: React.FC = () => { { { align="left" gutterBottom> {pricesTomorrow && pricesTomorrow.prices.length > 0 - ? `Mañana ${format( - new Date(pricesTomorrow.prices[0].dateTime), - "dd/MM", - )} es un día ${tomorrowRating}` + ? `Mañana ${DateTime.fromISO( + pricesTomorrow.prices[0].dateTime, + ) + .setZone("Europe/Madrid") + .toFormat( + "dd/MM", + )} es un día ${tomorrowRating}` : `Los precios de mañana aún no están disponibles - approx. 20:30`} @@ -303,12 +311,11 @@ const DashboardContent: React.FC = () => { { => { - const start_day = format(start, "yyyy-MM-dd") - const end_day = format(end, "yyyy-MM-dd") +export const getPrices = async ( + start: DateTime, + end: DateTime, +): Promise => { + const start_day = start.toFormat("yyyy-MM-dd") + const end_day = end.toFormat("yyyy-MM-dd") const response = await axios.get( `${PRICES_API}?start=${start_day}&end=${end_day}`, @@ -17,9 +20,10 @@ export const getPrices = async (start: Date, end: Date): Promise => { } export const getDailyPriceInfo = async ( - date: Date, + date: DateTime, ): Promise => { - const dateStr = format(date, "yyyy-MM-dd") + const dateStr = date.toFormat("yyyy-MM-dd") + const response = await axios.get( `${PRICES_API}/dailyinfo/${dateStr}`, ) diff --git a/src/utils/PriceUtils.ts b/src/utils/PriceUtils.ts index 2399ea6..dd5a911 100644 --- a/src/utils/PriceUtils.ts +++ b/src/utils/PriceUtils.ts @@ -1,4 +1,5 @@ import { Price } from "models/Price" +import { DateTime } from "luxon" const VARIANCE = 0.02 @@ -7,7 +8,12 @@ export type DayRating = "BUENO" | "NORMAL" | "MALO" const sortPricesByDate = (prices: Price[]): Price[] => { return prices.sort( (a, b) => - new Date(a.dateTime).getTime() - new Date(b.dateTime).getTime(), + DateTime.fromISO(a.dateTime, { + zone: "Europe/Madrid", + }).toMillis() - + DateTime.fromISO(b.dateTime, { + zone: "Europe/Madrid", + }).toMillis(), ) } @@ -42,14 +48,22 @@ export const getTwoCheapestPeriods = ( const remainingPricesBefore = prices.filter( p => - new Date(p.dateTime).getTime() < - new Date(firstPeriod[0].dateTime).getTime(), + DateTime.fromISO(p.dateTime, { + zone: "Europe/Madrid", + }).toMillis() < + DateTime.fromISO(firstPeriod[0].dateTime, { + zone: "Europe/Madrid", + }).toMillis(), ) const remainingPricesAfter = prices.filter( p => - new Date(p.dateTime).getTime() > - new Date(firstPeriod[n - 1].dateTime).getTime(), + DateTime.fromISO(p.dateTime, { + zone: "Europe/Madrid", + }).toMillis() > + DateTime.fromISO(firstPeriod[n - 1].dateTime, { + zone: "Europe/Madrid", + }).toMillis(), ) const firstPeriodBefore = getCheapestPeriod(remainingPricesBefore, n) diff --git a/yarn.lock b/yarn.lock index f8eb73c..2843f33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1116,7 +1116,7 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.10", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.10", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== @@ -2329,6 +2329,11 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/luxon@^3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.2.tgz#f6e3524c2486b949a4db445e85d93c8e9886dfe2" + integrity sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ== + "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" @@ -3966,13 +3971,6 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -date-fns@^2.30.0: - version "2.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" - integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== - dependencies: - "@babel/runtime" "^7.21.0" - debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -6756,6 +6754,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +luxon@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" + integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== + lz-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" From e1524a74d20363f94265cf8b868a2ea5597a76b6 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sat, 2 Sep 2023 23:34:38 +0200 Subject: [PATCH 13/78] Updating version number in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e014481..ca1525b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.2.0", + "version": "2.2.1", "private": true, "dependencies": { "@emotion/react": "^11.11.1", From 9b5ee28cfba46ea5645795847a7498a51416b396 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 6 Sep 2023 00:48:52 +0200 Subject: [PATCH 14/78] feat: adding i18n support --- .typesafe-i18n.json | 4 ++ package.json | 1 + src/App.tsx | 9 ++- src/components/PriceChart.tsx | 7 ++- src/i18n/en/index.ts | 17 ++++++ src/i18n/es/index.ts | 17 ++++++ src/i18n/formatters.ts | 11 ++++ src/i18n/i18n-react.tsx | 16 +++++ src/i18n/i18n-types.ts | 109 ++++++++++++++++++++++++++++++++++ src/i18n/i18n-util.async.ts | 27 +++++++++ src/i18n/i18n-util.sync.ts | 26 ++++++++ src/i18n/i18n-util.ts | 38 ++++++++++++ src/pages/Dashboard.tsx | 94 +++++++++++++++-------------- yarn.lock | 5 ++ 14 files changed, 332 insertions(+), 49 deletions(-) create mode 100644 .typesafe-i18n.json create mode 100644 src/i18n/en/index.ts create mode 100644 src/i18n/es/index.ts create mode 100644 src/i18n/formatters.ts create mode 100644 src/i18n/i18n-react.tsx create mode 100644 src/i18n/i18n-types.ts create mode 100644 src/i18n/i18n-util.async.ts create mode 100644 src/i18n/i18n-util.sync.ts create mode 100644 src/i18n/i18n-util.ts diff --git a/.typesafe-i18n.json b/.typesafe-i18n.json new file mode 100644 index 0000000..c690218 --- /dev/null +++ b/.typesafe-i18n.json @@ -0,0 +1,4 @@ +{ + "adapter": "react", + "$schema": "https://unpkg.com/typesafe-i18n@5.26.2/schema/typesafe-i18n.json" +} diff --git a/package.json b/package.json index ca1525b..75cb9dc 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", + "typesafe-i18n": "^5.26.2", "typescript": "^5.2.2", "web-vitals": "^3.4.0" }, diff --git a/src/App.tsx b/src/App.tsx index 8a3ac50..c19a972 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,9 +3,13 @@ import { ThemeProvider } from "@mui/material/styles" import { lightTheme, darkTheme } from "Themes" import Dashboard from "pages/Dashboard" import { Box, CssBaseline, createTheme, useMediaQuery } from "@mui/material" +import TypesafeI18n from "i18n/i18n-react" +import { loadLocale } from "i18n/i18n-util.sync" +import { detectLocale } from "i18n/i18n-util" function App() { const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)") + const locale = detectLocale() const theme = React.useMemo( () => @@ -14,12 +18,15 @@ function App() { }), [prefersDarkMode], ) + loadLocale(locale) return ( <> - + + + diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index ca923f3..f668e53 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -6,6 +6,7 @@ import { Price } from "models/Price" import { useTheme } from "@mui/material/styles" import { Pair } from "models/DailyPriceInfo" import { filterAndPadPrices } from "utils/PriceUtils" +import { useI18nContext } from "i18n/i18n-react" Chart.register(Annotation) @@ -38,6 +39,7 @@ const DailyChart: React.FC = ({ cheapestPeriods, expensivePeriod, }) => { + const { LL } = useI18nContext() const theme = useTheme() const [currentPriceLocation, setCurrentPriceLocation] = useState(-1) const chartRef = useRef(null) @@ -256,14 +258,14 @@ const DailyChart: React.FC = ({ pointRadius: 0, }, { - label: "Precio", + label: LL.PRICE(), data: paddedPrices.map(item => item.price), borderColor: theme.palette.info.main, backgroundColor: hexToRGBA(theme.palette.info.main, 0.4), pointRadius: 0, }, { - label: "Precio Promedio (30 días)", + label: LL.THIRTY_DAY_AVG(), data: averageDataset, borderColor: theme.palette.secondary.main, backgroundColor: hexToRGBA( @@ -281,6 +283,7 @@ const DailyChart: React.FC = ({ expensivePeriodPadded, paddedPrices, theme, + LL, ]) useEffect(() => { diff --git a/src/i18n/en/index.ts b/src/i18n/en/index.ts new file mode 100644 index 0000000..ba21b99 --- /dev/null +++ b/src/i18n/en/index.ts @@ -0,0 +1,17 @@ +import type { BaseTranslation } from "../i18n-types" + +const en = { + TITLE: "Electricity prices", + TODAY_RATING: "Today {currentDate:string} is a {rating:string} day", + CURRENT_PRICE: "Current price - {currentTime:string}", + MIN_PRICE: "Min price - {minPrice:string}", + MAX_PRICE: "Max price - {maxPrice:string}", + THIRTY_DAY_AVG: "30 day average", + TOMORROW_RATING: "Tomorrow {currentDate:string} is a {rating:string} day", + TOMORROW_NO_DATA: + "Tomorrow's prices are not available yet. Prices are usually available after 20:30", + LAST_THIRTY_DAYS: "Last 30 days", + PRICE: "Price", +} satisfies BaseTranslation + +export default en diff --git a/src/i18n/es/index.ts b/src/i18n/es/index.ts new file mode 100644 index 0000000..c8e96a0 --- /dev/null +++ b/src/i18n/es/index.ts @@ -0,0 +1,17 @@ +import type { Translation } from "../i18n-types" + +const es = { + TITLE: "Precios de la electricidad", + TODAY_RATING: "Hoy {currentDate} es un día {rating}", + CURRENT_PRICE: "Precio actual - {currentTime}", + MIN_PRICE: "Precio min - {minPrice}", + MAX_PRICE: "Precio max - {maxPrice}", + THIRTY_DAY_AVG: "Precio promedio de 30 días", + TOMORROW_RATING: "Mañana {currentDate} es un día {rating}", + TOMORROW_NO_DATA: + "Los datos de mañana aún no están disponibles. Los precios suelen estar disponibles después de las 20:30", + LAST_THIRTY_DAYS: "Últimos 30 días", + PRICE: "Precio", +} satisfies Translation + +export default es diff --git a/src/i18n/formatters.ts b/src/i18n/formatters.ts new file mode 100644 index 0000000..78734f9 --- /dev/null +++ b/src/i18n/formatters.ts @@ -0,0 +1,11 @@ +import type { FormattersInitializer } from 'typesafe-i18n' +import type { Locales, Formatters } from './i18n-types' + +export const initFormatters: FormattersInitializer = (locale: Locales) => { + + const formatters: Formatters = { + // add your formatter functions here + } + + return formatters +} diff --git a/src/i18n/i18n-react.tsx b/src/i18n/i18n-react.tsx new file mode 100644 index 0000000..f113051 --- /dev/null +++ b/src/i18n/i18n-react.tsx @@ -0,0 +1,16 @@ +// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. +/* eslint-disable */ + +import { useContext } from 'react' +import { initI18nReact } from 'typesafe-i18n/react' +import type { I18nContextType } from 'typesafe-i18n/react' +import type { Formatters, Locales, TranslationFunctions, Translations } from './i18n-types' +import { loadedFormatters, loadedLocales } from './i18n-util' + +const { component: TypesafeI18n, context: I18nContext } = initI18nReact(loadedLocales, loadedFormatters) + +const useI18nContext = (): I18nContextType => useContext(I18nContext) + +export { I18nContext, useI18nContext } + +export default TypesafeI18n diff --git a/src/i18n/i18n-types.ts b/src/i18n/i18n-types.ts new file mode 100644 index 0000000..52e54a8 --- /dev/null +++ b/src/i18n/i18n-types.ts @@ -0,0 +1,109 @@ +// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. +/* eslint-disable */ +import type { BaseTranslation as BaseTranslationType, LocalizedString, RequiredParams } from 'typesafe-i18n' + +export type BaseTranslation = BaseTranslationType +export type BaseLocale = 'en' + +export type Locales = + | 'en' + | 'es' + +export type Translation = RootTranslation + +export type Translations = RootTranslation + +type RootTranslation = { + /** + * E​l​e​c​t​r​i​c​i​t​y​ ​p​r​i​c​e​s + */ + TITLE: string + /** + * T​o​d​a​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​i​s​ ​a​ ​{​r​a​t​i​n​g​}​ ​d​a​y + * @param {string} currentDate + * @param {string} rating + */ + TODAY_RATING: RequiredParams<'currentDate' | 'rating'> + /** + * C​u​r​r​e​n​t​ ​p​r​i​c​e​ ​-​ ​{​c​u​r​r​e​n​t​T​i​m​e​} + * @param {string} currentTime + */ + CURRENT_PRICE: RequiredParams<'currentTime'> + /** + * M​i​n​ ​p​r​i​c​e​ ​-​ ​{​m​i​n​P​r​i​c​e​} + * @param {string} minPrice + */ + MIN_PRICE: RequiredParams<'minPrice'> + /** + * M​a​x​ ​p​r​i​c​e​ ​-​ ​{​m​a​x​P​r​i​c​e​} + * @param {string} maxPrice + */ + MAX_PRICE: RequiredParams<'maxPrice'> + /** + * 3​0​ ​d​a​y​ ​a​v​e​r​a​g​e + */ + THIRTY_DAY_AVG: string + /** + * T​o​m​o​r​r​o​w​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​i​s​ ​a​ ​{​r​a​t​i​n​g​}​ ​d​a​y + * @param {string} currentDate + * @param {string} rating + */ + TOMORROW_RATING: RequiredParams<'currentDate' | 'rating'> + /** + * T​o​m​o​r​r​o​w​'​s​ ​p​r​i​c​e​s​ ​a​r​e​ ​n​o​t​ ​a​v​a​i​l​a​b​l​e​ ​y​e​t​.​ ​P​r​i​c​e​s​ ​a​r​e​ ​u​s​u​a​l​l​y​ ​a​v​a​i​l​a​b​l​e​ ​a​f​t​e​r​ ​2​0​:​3​0 + */ + TOMORROW_NO_DATA: string + /** + * L​a​s​t​ ​3​0​ ​d​a​y​s + */ + LAST_THIRTY_DAYS: string + /** + * P​r​i​c​e + */ + PRICE: string +} + +export type TranslationFunctions = { + /** + * Electricity prices + */ + TITLE: () => LocalizedString + /** + * Today {currentDate} is a {rating} day + */ + TODAY_RATING: (arg: { currentDate: string, rating: string }) => LocalizedString + /** + * Current price - {currentTime} + */ + CURRENT_PRICE: (arg: { currentTime: string }) => LocalizedString + /** + * Min price - {minPrice} + */ + MIN_PRICE: (arg: { minPrice: string }) => LocalizedString + /** + * Max price - {maxPrice} + */ + MAX_PRICE: (arg: { maxPrice: string }) => LocalizedString + /** + * 30 day average + */ + THIRTY_DAY_AVG: () => LocalizedString + /** + * Tomorrow {currentDate} is a {rating} day + */ + TOMORROW_RATING: (arg: { currentDate: string, rating: string }) => LocalizedString + /** + * Tomorrow's prices are not available yet. Prices are usually available after 20:30 + */ + TOMORROW_NO_DATA: () => LocalizedString + /** + * Last 30 days + */ + LAST_THIRTY_DAYS: () => LocalizedString + /** + * Price + */ + PRICE: () => LocalizedString +} + +export type Formatters = {} diff --git a/src/i18n/i18n-util.async.ts b/src/i18n/i18n-util.async.ts new file mode 100644 index 0000000..ed2f270 --- /dev/null +++ b/src/i18n/i18n-util.async.ts @@ -0,0 +1,27 @@ +// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. +/* eslint-disable */ + +import { initFormatters } from './formatters' +import type { Locales, Translations } from './i18n-types' +import { loadedFormatters, loadedLocales, locales } from './i18n-util' + +const localeTranslationLoaders = { + en: () => import('./en'), + es: () => import('./es'), +} + +const updateDictionary = (locale: Locales, dictionary: Partial): Translations => + loadedLocales[locale] = { ...loadedLocales[locale], ...dictionary } + +export const importLocaleAsync = async (locale: Locales): Promise => + (await localeTranslationLoaders[locale]()).default as unknown as Translations + +export const loadLocaleAsync = async (locale: Locales): Promise => { + updateDictionary(locale, await importLocaleAsync(locale)) + loadFormatters(locale) +} + +export const loadAllLocalesAsync = (): Promise => Promise.all(locales.map(loadLocaleAsync)) + +export const loadFormatters = (locale: Locales): void => + void (loadedFormatters[locale] = initFormatters(locale)) diff --git a/src/i18n/i18n-util.sync.ts b/src/i18n/i18n-util.sync.ts new file mode 100644 index 0000000..35079af --- /dev/null +++ b/src/i18n/i18n-util.sync.ts @@ -0,0 +1,26 @@ +// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. +/* eslint-disable */ + +import { initFormatters } from './formatters' +import type { Locales, Translations } from './i18n-types' +import { loadedFormatters, loadedLocales, locales } from './i18n-util' + +import en from './en' +import es from './es' + +const localeTranslations = { + en, + es, +} + +export const loadLocale = (locale: Locales): void => { + if (loadedLocales[locale]) return + + loadedLocales[locale] = localeTranslations[locale] as unknown as Translations + loadFormatters(locale) +} + +export const loadAllLocales = (): void => locales.forEach(loadLocale) + +export const loadFormatters = (locale: Locales): void => + void (loadedFormatters[locale] = initFormatters(locale)) diff --git a/src/i18n/i18n-util.ts b/src/i18n/i18n-util.ts new file mode 100644 index 0000000..9664c14 --- /dev/null +++ b/src/i18n/i18n-util.ts @@ -0,0 +1,38 @@ +// This file was auto-generated by 'typesafe-i18n'. Any manual changes will be overwritten. +/* eslint-disable */ + +import { i18n as initI18n, i18nObject as initI18nObject, i18nString as initI18nString } from 'typesafe-i18n' +import type { LocaleDetector } from 'typesafe-i18n/detectors' +import type { LocaleTranslationFunctions, TranslateByString } from 'typesafe-i18n' +import { detectLocale as detectLocaleFn } from 'typesafe-i18n/detectors' +import { initExtendDictionary } from 'typesafe-i18n/utils' +import type { Formatters, Locales, Translations, TranslationFunctions } from './i18n-types' + +export const baseLocale: Locales = 'en' + +export const locales: Locales[] = [ + 'en', + 'es' +] + +export const isLocale = (locale: string): locale is Locales => locales.includes(locale as Locales) + +export const loadedLocales: Record = {} as Record + +export const loadedFormatters: Record = {} as Record + +export const extendDictionary = initExtendDictionary() + +export const i18nString = (locale: Locales): TranslateByString => initI18nString(locale, loadedFormatters[locale]) + +export const i18nObject = (locale: Locales): TranslationFunctions => + initI18nObject( + locale, + loadedLocales[locale], + loadedFormatters[locale] + ) + +export const i18n = (): LocaleTranslationFunctions => + initI18n(loadedLocales, loadedFormatters) + +export const detectLocale = (...detectors: LocaleDetector[]): Locales => detectLocaleFn(baseLocale, locales, ...detectors) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index be1ee1b..8cf2a0c 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -11,8 +11,10 @@ import { Container, Grid } from "@mui/material" import Metric from "components/Metric" import { DailyPriceInfo } from "models/DailyPriceInfo" import { DayRating } from "models/DayRating" +import { useI18nContext } from "i18n/i18n-react" const DashboardContent: React.FC = () => { + const { LL } = useI18nContext() const [currentDate, setCurrentDate] = useState( DateTime.now().setZone("Europe/Madrid"), ) @@ -151,7 +153,6 @@ const DashboardContent: React.FC = () => { }, [pricesThirtyDays]) const todayRating = useMemo(() => { - if (!pricesToday) return null switch (pricesToday?.dayRating) { case DayRating.BAD: return "MALO" @@ -163,7 +164,6 @@ const DashboardContent: React.FC = () => { }, [pricesToday]) const tomorrowRating = useMemo(() => { - if (!pricesTomorrow) return null switch (pricesTomorrow?.dayRating) { case DayRating.BAD: return "MALO" @@ -194,7 +194,7 @@ const DashboardContent: React.FC = () => { component="h1" align="left" gutterBottom> - Precios de la electricidad + {LL.TITLE()} { component="h2" align="left" gutterBottom> - Hoy{" "} - {pricesToday && pricesToday.prices.length > 0 - ? DateTime.fromISO(pricesToday.prices[0].dateTime) - .setZone("Europe/Madrid") - .toFormat("dd/MM") - : ""}{" "} - es un día {todayRating} + {LL.TODAY_RATING({ + currentDate: currentDate + .setZone("Europe/Madrid") + .toFormat("dd/MM"), + rating: todayRating, + })} - {currentPrice ? ( - - ) : ( - - )} + .toFormat("HH:mm"), + })} + value={currentPrice?.price ?? 0} + delta={ + currentPrice + ? median - currentPrice.price + : 0 + } + /> { { @@ -293,14 +294,15 @@ const DashboardContent: React.FC = () => { align="left" gutterBottom> {pricesTomorrow && pricesTomorrow.prices.length > 0 - ? `Mañana ${DateTime.fromISO( - pricesTomorrow.prices[0].dateTime, - ) - .setZone("Europe/Madrid") - .toFormat( - "dd/MM", - )} es un día ${tomorrowRating}` - : `Los precios de mañana aún no están disponibles - approx. 20:30`} + ? LL.TOMORROW_RATING({ + currentDate: DateTime.fromISO( + pricesTomorrow.prices[0].dateTime, + ) + .setZone("Europe/Madrid") + .toFormat("dd/MM"), + rating: tomorrowRating, + }) + : LL.TOMORROW_NO_DATA()} @@ -309,15 +311,15 @@ const DashboardContent: React.FC = () => { { { component="h2" align="left" gutterBottom> - Últimos 30 días + {LL.LAST_THIRTY_DAYS()} diff --git a/yarn.lock b/yarn.lock index 2843f33..effe3aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9340,6 +9340,11 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typesafe-i18n@^5.26.2: + version "5.26.2" + resolved "https://registry.yarnpkg.com/typesafe-i18n/-/typesafe-i18n-5.26.2.tgz#d8e2ef67197c837cdd11ea2ec17f73af2591e9b4" + integrity sha512-2QAriFmiY5JwUAJtG7yufoE/XZ1aFBY++wj7YFS2yo89a3jLBfKoWSdq5JfQYk1V2BS7V2c/u+KEcaCQoE65hw== + typescript@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" From a08e700fa6edde1ca2e141ad9232e562b99cfa67 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 6 Sep 2023 00:49:47 +0200 Subject: [PATCH 15/78] feat: updating version to 2.3.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 75cb9dc..0b73dbf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.2.1", + "version": "2.3.0", "private": true, "dependencies": { "@emotion/react": "^11.11.1", From 19cbf6cc9f58041a26f3327d866cb2aabf700fd7 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 6 Sep 2023 21:42:24 +0200 Subject: [PATCH 16/78] feat: auto detect locale --- .typesafe-i18n.json | 1 + package.json | 2 +- src/App.tsx | 4 ++-- src/i18n/en/index.ts | 14 +++++++------- src/i18n/es/index.ts | 14 +++++++------- src/i18n/i18n-types.ts | 42 +++++++++++++++++++++--------------------- src/i18n/i18n-util.ts | 2 +- 7 files changed, 40 insertions(+), 39 deletions(-) diff --git a/.typesafe-i18n.json b/.typesafe-i18n.json index c690218..58b3185 100644 --- a/.typesafe-i18n.json +++ b/.typesafe-i18n.json @@ -1,4 +1,5 @@ { "adapter": "react", + "baseLocale": "es", "$schema": "https://unpkg.com/typesafe-i18n@5.26.2/schema/typesafe-i18n.json" } diff --git a/package.json b/package.json index 0b73dbf..52bacfb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.3.0", + "version": "2.3.1", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/src/App.tsx b/src/App.tsx index c19a972..e711aa8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -5,11 +5,11 @@ import Dashboard from "pages/Dashboard" import { Box, CssBaseline, createTheme, useMediaQuery } from "@mui/material" import TypesafeI18n from "i18n/i18n-react" import { loadLocale } from "i18n/i18n-util.sync" -import { detectLocale } from "i18n/i18n-util" +import { Locales } from "i18n/i18n-types" function App() { const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)") - const locale = detectLocale() + const locale: Locales = navigator?.language.startsWith("en") ? "en" : "es" const theme = React.useMemo( () => diff --git a/src/i18n/en/index.ts b/src/i18n/en/index.ts index ba21b99..a36dc6d 100644 --- a/src/i18n/en/index.ts +++ b/src/i18n/en/index.ts @@ -1,17 +1,17 @@ -import type { BaseTranslation } from "../i18n-types" +import type { Translation } from "../i18n-types" const en = { TITLE: "Electricity prices", - TODAY_RATING: "Today {currentDate:string} is a {rating:string} day", - CURRENT_PRICE: "Current price - {currentTime:string}", - MIN_PRICE: "Min price - {minPrice:string}", - MAX_PRICE: "Max price - {maxPrice:string}", + TODAY_RATING: "Today {currentDate} is a {rating} day", + CURRENT_PRICE: "Current price - {currentTime}", + MIN_PRICE: "Min price - {minPrice}", + MAX_PRICE: "Max price - {maxPrice}", THIRTY_DAY_AVG: "30 day average", - TOMORROW_RATING: "Tomorrow {currentDate:string} is a {rating:string} day", + TOMORROW_RATING: "Tomorrow {currentDate} is a {rating} day", TOMORROW_NO_DATA: "Tomorrow's prices are not available yet. Prices are usually available after 20:30", LAST_THIRTY_DAYS: "Last 30 days", PRICE: "Price", -} satisfies BaseTranslation +} satisfies Translation export default en diff --git a/src/i18n/es/index.ts b/src/i18n/es/index.ts index c8e96a0..0745378 100644 --- a/src/i18n/es/index.ts +++ b/src/i18n/es/index.ts @@ -1,17 +1,17 @@ -import type { Translation } from "../i18n-types" +import type { BaseTranslation } from "../i18n-types" const es = { TITLE: "Precios de la electricidad", - TODAY_RATING: "Hoy {currentDate} es un día {rating}", - CURRENT_PRICE: "Precio actual - {currentTime}", - MIN_PRICE: "Precio min - {minPrice}", - MAX_PRICE: "Precio max - {maxPrice}", + TODAY_RATING: "Hoy {currentDate:string} es un día {rating:string}", + CURRENT_PRICE: "Precio actual - {currentTime:string}", + MIN_PRICE: "Precio min - {minPrice:string}", + MAX_PRICE: "Precio max - {maxPrice:string}", THIRTY_DAY_AVG: "Precio promedio de 30 días", - TOMORROW_RATING: "Mañana {currentDate} es un día {rating}", + TOMORROW_RATING: "Mañana {currentDate:string} es un día {rating:string}", TOMORROW_NO_DATA: "Los datos de mañana aún no están disponibles. Los precios suelen estar disponibles después de las 20:30", LAST_THIRTY_DAYS: "Últimos 30 días", PRICE: "Precio", -} satisfies Translation +} satisfies BaseTranslation export default es diff --git a/src/i18n/i18n-types.ts b/src/i18n/i18n-types.ts index 52e54a8..4dee3d9 100644 --- a/src/i18n/i18n-types.ts +++ b/src/i18n/i18n-types.ts @@ -3,7 +3,7 @@ import type { BaseTranslation as BaseTranslationType, LocalizedString, RequiredParams } from 'typesafe-i18n' export type BaseTranslation = BaseTranslationType -export type BaseLocale = 'en' +export type BaseLocale = 'es' export type Locales = | 'en' @@ -15,93 +15,93 @@ export type Translations = RootTranslation type RootTranslation = { /** - * E​l​e​c​t​r​i​c​i​t​y​ ​p​r​i​c​e​s + * P​r​e​c​i​o​s​ ​d​e​ ​l​a​ ​e​l​e​c​t​r​i​c​i​d​a​d */ TITLE: string /** - * T​o​d​a​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​i​s​ ​a​ ​{​r​a​t​i​n​g​}​ ​d​a​y + * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​{​r​a​t​i​n​g​} * @param {string} currentDate * @param {string} rating */ TODAY_RATING: RequiredParams<'currentDate' | 'rating'> /** - * C​u​r​r​e​n​t​ ​p​r​i​c​e​ ​-​ ​{​c​u​r​r​e​n​t​T​i​m​e​} + * P​r​e​c​i​o​ ​a​c​t​u​a​l​ ​-​ ​{​c​u​r​r​e​n​t​T​i​m​e​} * @param {string} currentTime */ CURRENT_PRICE: RequiredParams<'currentTime'> /** - * M​i​n​ ​p​r​i​c​e​ ​-​ ​{​m​i​n​P​r​i​c​e​} + * P​r​e​c​i​o​ ​m​i​n​ ​-​ ​{​m​i​n​P​r​i​c​e​} * @param {string} minPrice */ MIN_PRICE: RequiredParams<'minPrice'> /** - * M​a​x​ ​p​r​i​c​e​ ​-​ ​{​m​a​x​P​r​i​c​e​} + * P​r​e​c​i​o​ ​m​a​x​ ​-​ ​{​m​a​x​P​r​i​c​e​} * @param {string} maxPrice */ MAX_PRICE: RequiredParams<'maxPrice'> /** - * 3​0​ ​d​a​y​ ​a​v​e​r​a​g​e + * P​r​e​c​i​o​ ​p​r​o​m​e​d​i​o​ ​d​e​ ​3​0​ ​d​í​a​s */ THIRTY_DAY_AVG: string /** - * T​o​m​o​r​r​o​w​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​i​s​ ​a​ ​{​r​a​t​i​n​g​}​ ​d​a​y + * M​a​ñ​a​n​a​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​{​r​a​t​i​n​g​} * @param {string} currentDate * @param {string} rating */ TOMORROW_RATING: RequiredParams<'currentDate' | 'rating'> /** - * T​o​m​o​r​r​o​w​'​s​ ​p​r​i​c​e​s​ ​a​r​e​ ​n​o​t​ ​a​v​a​i​l​a​b​l​e​ ​y​e​t​.​ ​P​r​i​c​e​s​ ​a​r​e​ ​u​s​u​a​l​l​y​ ​a​v​a​i​l​a​b​l​e​ ​a​f​t​e​r​ ​2​0​:​3​0 + * L​o​s​ ​d​a​t​o​s​ ​d​e​ ​m​a​ñ​a​n​a​ ​a​ú​n​ ​n​o​ ​e​s​t​á​n​ ​d​i​s​p​o​n​i​b​l​e​s​.​ ​L​o​s​ ​p​r​e​c​i​o​s​ ​s​u​e​l​e​n​ ​e​s​t​a​r​ ​d​i​s​p​o​n​i​b​l​e​s​ ​d​e​s​p​u​é​s​ ​d​e​ ​l​a​s​ ​2​0​:​3​0 */ TOMORROW_NO_DATA: string /** - * L​a​s​t​ ​3​0​ ​d​a​y​s + * Ú​l​t​i​m​o​s​ ​3​0​ ​d​í​a​s */ LAST_THIRTY_DAYS: string /** - * P​r​i​c​e + * P​r​e​c​i​o */ PRICE: string } export type TranslationFunctions = { /** - * Electricity prices + * Precios de la electricidad */ TITLE: () => LocalizedString /** - * Today {currentDate} is a {rating} day + * Hoy {currentDate} es un día {rating} */ TODAY_RATING: (arg: { currentDate: string, rating: string }) => LocalizedString /** - * Current price - {currentTime} + * Precio actual - {currentTime} */ CURRENT_PRICE: (arg: { currentTime: string }) => LocalizedString /** - * Min price - {minPrice} + * Precio min - {minPrice} */ MIN_PRICE: (arg: { minPrice: string }) => LocalizedString /** - * Max price - {maxPrice} + * Precio max - {maxPrice} */ MAX_PRICE: (arg: { maxPrice: string }) => LocalizedString /** - * 30 day average + * Precio promedio de 30 días */ THIRTY_DAY_AVG: () => LocalizedString /** - * Tomorrow {currentDate} is a {rating} day + * Mañana {currentDate} es un día {rating} */ TOMORROW_RATING: (arg: { currentDate: string, rating: string }) => LocalizedString /** - * Tomorrow's prices are not available yet. Prices are usually available after 20:30 + * Los datos de mañana aún no están disponibles. Los precios suelen estar disponibles después de las 20:30 */ TOMORROW_NO_DATA: () => LocalizedString /** - * Last 30 days + * Últimos 30 días */ LAST_THIRTY_DAYS: () => LocalizedString /** - * Price + * Precio */ PRICE: () => LocalizedString } diff --git a/src/i18n/i18n-util.ts b/src/i18n/i18n-util.ts index 9664c14..ea269f0 100644 --- a/src/i18n/i18n-util.ts +++ b/src/i18n/i18n-util.ts @@ -8,7 +8,7 @@ import { detectLocale as detectLocaleFn } from 'typesafe-i18n/detectors' import { initExtendDictionary } from 'typesafe-i18n/utils' import type { Formatters, Locales, Translations, TranslationFunctions } from './i18n-types' -export const baseLocale: Locales = 'en' +export const baseLocale: Locales = 'es' export const locales: Locales[] = [ 'en', From 768dd4d940f294b94da19d5591b918fbb83fdbc7 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 6 Sep 2023 22:54:59 +0200 Subject: [PATCH 17/78] fix: max was coming before min on mobile --- package.json | 2 +- src/pages/Dashboard.tsx | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 52bacfb..391f95d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.3.1", + "version": "2.3.2", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 8cf2a0c..ba95e81 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -308,51 +308,51 @@ const DashboardContent: React.FC = () => { {minPriceTomorrow && maxPriceTomorrow && ( - + From aaea0b09f51c4aaa638644c2544393d8c8374e90 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sat, 9 Sep 2023 00:32:06 +0200 Subject: [PATCH 18/78] fix: translating day rating --- package.json | 2 +- src/i18n/en/index.ts | 8 ++++-- src/i18n/es/index.ts | 8 ++++-- src/i18n/i18n-types.ts | 54 ++++++++++++++++++++++++++++++------- src/pages/Dashboard.tsx | 59 +++++++++++++++++++++++------------------ 5 files changed, 90 insertions(+), 41 deletions(-) diff --git a/package.json b/package.json index 391f95d..bfc8f51 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.3.2", + "version": "2.3.3", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/src/i18n/en/index.ts b/src/i18n/en/index.ts index a36dc6d..64dee72 100644 --- a/src/i18n/en/index.ts +++ b/src/i18n/en/index.ts @@ -2,12 +2,16 @@ import type { Translation } from "../i18n-types" const en = { TITLE: "Electricity prices", - TODAY_RATING: "Today {currentDate} is a {rating} day", + TODAY_RATING_GOOD: "Today {currentDate} is a GOOD day", + TODAY_RATING_BAD: "Today {currentDate} is a BAD day", + TODAY_RATING_NORMAL: "Today {currentDate} is a NORMAL day", CURRENT_PRICE: "Current price - {currentTime}", MIN_PRICE: "Min price - {minPrice}", MAX_PRICE: "Max price - {maxPrice}", THIRTY_DAY_AVG: "30 day average", - TOMORROW_RATING: "Tomorrow {currentDate} is a {rating} day", + TOMORROW_RATING_GOOD: "Tomorrow {currentDate} is a GOOD day", + TOMORROW_RATING_BAD: "Tomorrow {currentDate} is a BAD day", + TOMORROW_RATING_NORMAL: "Tomorrow {currentDate} is a NORMAL day", TOMORROW_NO_DATA: "Tomorrow's prices are not available yet. Prices are usually available after 20:30", LAST_THIRTY_DAYS: "Last 30 days", diff --git a/src/i18n/es/index.ts b/src/i18n/es/index.ts index 0745378..edbbbc7 100644 --- a/src/i18n/es/index.ts +++ b/src/i18n/es/index.ts @@ -2,12 +2,16 @@ import type { BaseTranslation } from "../i18n-types" const es = { TITLE: "Precios de la electricidad", - TODAY_RATING: "Hoy {currentDate:string} es un día {rating:string}", + TODAY_RATING_GOOD: "Hoy {currentDate:string} es un día BUENO", + TODAY_RATING_BAD: "Hoy {currentDate:string} es un día MALO", + TODAY_RATING_NORMAL: "Hoy {currentDate:string} es un día NORMAL", CURRENT_PRICE: "Precio actual - {currentTime:string}", MIN_PRICE: "Precio min - {minPrice:string}", MAX_PRICE: "Precio max - {maxPrice:string}", THIRTY_DAY_AVG: "Precio promedio de 30 días", - TOMORROW_RATING: "Mañana {currentDate:string} es un día {rating:string}", + TOMORROW_RATING_GOOD: "Mañana {currentDate:string} es un día BUENO", + TOMORROW_RATING_BAD: "Mañana {currentDate:string} es un día MALO", + TOMORROW_RATING_NORMAL: "Mañana {currentDate:string} es un día NORMAL", TOMORROW_NO_DATA: "Los datos de mañana aún no están disponibles. Los precios suelen estar disponibles después de las 20:30", LAST_THIRTY_DAYS: "Últimos 30 días", diff --git a/src/i18n/i18n-types.ts b/src/i18n/i18n-types.ts index 4dee3d9..c27565c 100644 --- a/src/i18n/i18n-types.ts +++ b/src/i18n/i18n-types.ts @@ -19,11 +19,20 @@ type RootTranslation = { */ TITLE: string /** - * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​{​r​a​t​i​n​g​} + * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​B​U​E​N​O * @param {string} currentDate - * @param {string} rating */ - TODAY_RATING: RequiredParams<'currentDate' | 'rating'> + TODAY_RATING_GOOD: RequiredParams<'currentDate'> + /** + * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​M​A​L​O + * @param {string} currentDate + */ + TODAY_RATING_BAD: RequiredParams<'currentDate'> + /** + * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​N​O​R​M​A​L + * @param {string} currentDate + */ + TODAY_RATING_NORMAL: RequiredParams<'currentDate'> /** * P​r​e​c​i​o​ ​a​c​t​u​a​l​ ​-​ ​{​c​u​r​r​e​n​t​T​i​m​e​} * @param {string} currentTime @@ -44,11 +53,20 @@ type RootTranslation = { */ THIRTY_DAY_AVG: string /** - * M​a​ñ​a​n​a​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​{​r​a​t​i​n​g​} + * M​a​ñ​a​n​a​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​B​U​E​N​O + * @param {string} currentDate + */ + TOMORROW_RATING_GOOD: RequiredParams<'currentDate'> + /** + * M​a​ñ​a​n​a​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​M​A​L​O + * @param {string} currentDate + */ + TOMORROW_RATING_BAD: RequiredParams<'currentDate'> + /** + * M​a​ñ​a​n​a​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​N​O​R​M​A​L * @param {string} currentDate - * @param {string} rating */ - TOMORROW_RATING: RequiredParams<'currentDate' | 'rating'> + TOMORROW_RATING_NORMAL: RequiredParams<'currentDate'> /** * L​o​s​ ​d​a​t​o​s​ ​d​e​ ​m​a​ñ​a​n​a​ ​a​ú​n​ ​n​o​ ​e​s​t​á​n​ ​d​i​s​p​o​n​i​b​l​e​s​.​ ​L​o​s​ ​p​r​e​c​i​o​s​ ​s​u​e​l​e​n​ ​e​s​t​a​r​ ​d​i​s​p​o​n​i​b​l​e​s​ ​d​e​s​p​u​é​s​ ​d​e​ ​l​a​s​ ​2​0​:​3​0 */ @@ -69,9 +87,17 @@ export type TranslationFunctions = { */ TITLE: () => LocalizedString /** - * Hoy {currentDate} es un día {rating} + * Hoy {currentDate} es un día BUENO + */ + TODAY_RATING_GOOD: (arg: { currentDate: string }) => LocalizedString + /** + * Hoy {currentDate} es un día MALO + */ + TODAY_RATING_BAD: (arg: { currentDate: string }) => LocalizedString + /** + * Hoy {currentDate} es un día NORMAL */ - TODAY_RATING: (arg: { currentDate: string, rating: string }) => LocalizedString + TODAY_RATING_NORMAL: (arg: { currentDate: string }) => LocalizedString /** * Precio actual - {currentTime} */ @@ -89,9 +115,17 @@ export type TranslationFunctions = { */ THIRTY_DAY_AVG: () => LocalizedString /** - * Mañana {currentDate} es un día {rating} + * Mañana {currentDate} es un día BUENO + */ + TOMORROW_RATING_GOOD: (arg: { currentDate: string }) => LocalizedString + /** + * Mañana {currentDate} es un día MALO + */ + TOMORROW_RATING_BAD: (arg: { currentDate: string }) => LocalizedString + /** + * Mañana {currentDate} es un día NORMAL */ - TOMORROW_RATING: (arg: { currentDate: string, rating: string }) => LocalizedString + TOMORROW_RATING_NORMAL: (arg: { currentDate: string }) => LocalizedString /** * Los datos de mañana aún no están disponibles. Los precios suelen estar disponibles después de las 20:30 */ diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index ba95e81..2bdee45 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -152,27 +152,48 @@ const DashboardContent: React.FC = () => { return medians }, [pricesThirtyDays]) - const todayRating = useMemo(() => { + const todayRatingText = useMemo(() => { + const date = currentDate.setZone("Europe/Madrid").toFormat("dd/MM") + switch (pricesToday?.dayRating) { case DayRating.BAD: - return "MALO" + return LL.TODAY_RATING_BAD({ + currentDate: date, + }) case DayRating.GOOD: - return "BUENO" + return LL.TODAY_RATING_GOOD({ + currentDate: date, + }) default: - return "NORMAL" + return LL.TODAY_RATING_NORMAL({ + currentDate: date, + }) } - }, [pricesToday]) + }, [pricesToday, currentDate, LL]) + + const tomorrowRatingText = useMemo(() => { + if (!pricesTomorrow || pricesTomorrow.prices.length === 0) + return LL.TOMORROW_NO_DATA() + + const date = DateTime.fromISO(pricesTomorrow.prices[0].dateTime) + .setZone("Europe/Madrid") + .toFormat("dd/MM") - const tomorrowRating = useMemo(() => { switch (pricesTomorrow?.dayRating) { case DayRating.BAD: - return "MALO" + return LL.TOMORROW_RATING_BAD({ + currentDate: date, + }) case DayRating.GOOD: - return "BUENO" + return LL.TOMORROW_RATING_GOOD({ + currentDate: date, + }) default: - return "NORMAL" + return LL.TOMORROW_RATING_NORMAL({ + currentDate: date, + }) } - }, [pricesTomorrow]) + }, [pricesTomorrow, LL]) return ( { component="h2" align="left" gutterBottom> - {LL.TODAY_RATING({ - currentDate: currentDate - .setZone("Europe/Madrid") - .toFormat("dd/MM"), - rating: todayRating, - })} + {todayRatingText} @@ -293,16 +309,7 @@ const DashboardContent: React.FC = () => { component="h2" align="left" gutterBottom> - {pricesTomorrow && pricesTomorrow.prices.length > 0 - ? LL.TOMORROW_RATING({ - currentDate: DateTime.fromISO( - pricesTomorrow.prices[0].dateTime, - ) - .setZone("Europe/Madrid") - .toFormat("dd/MM"), - rating: tomorrowRating, - }) - : LL.TOMORROW_NO_DATA()} + {tomorrowRatingText} From c4f9d9bad442e63fd8ce0581605525dade31010c Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sun, 10 Sep 2023 12:59:26 +0200 Subject: [PATCH 19/78] fix: api change --- package.json | 2 +- src/pages/Dashboard.tsx | 4 ++-- src/services/PriceService.ts | 29 +++++++++++++++++++++-------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index bfc8f51..70d3b55 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.3.3", + "version": "2.3.4", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 2bdee45..597f0ad 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -27,7 +27,7 @@ const DashboardContent: React.FC = () => { useEffect(() => { const fetchData = async () => { const prices = await getDailyPriceInfo(currentDate) - if (prices.prices.length === 0) return + if (prices === null) return setPricesToday(prices) } fetchData() @@ -38,7 +38,7 @@ const DashboardContent: React.FC = () => { const tomorrow = currentDate.plus({ days: 1 }) const prices = await getDailyPriceInfo(tomorrow) - if (prices.prices.length === 0) { + if (prices === null) { setPricesTomorrow(null) } else { const last = prices.prices[prices.prices.length - 1] diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index 4465e8e..d0229c1 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -10,22 +10,35 @@ export const getPrices = async ( start: DateTime, end: DateTime, ): Promise => { - const start_day = start.toFormat("yyyy-MM-dd") - const end_day = end.toFormat("yyyy-MM-dd") + const startDay = start.toFormat("yyyy-MM-dd") + const endDay = end.toFormat("yyyy-MM-dd") const response = await axios.get( - `${PRICES_API}?start=${start_day}&end=${end_day}`, + `${PRICES_API}?start=${startDay}&end=${endDay}`, ) return response.data } export const getDailyPriceInfo = async ( date: DateTime, -): Promise => { +): Promise => { const dateStr = date.toFormat("yyyy-MM-dd") - const response = await axios.get( - `${PRICES_API}/dailyinfo/${dateStr}`, - ) - return response.data + try { + const response = await axios.get( + `${PRICES_API}/dailyinfo?date=${dateStr}`, + ) + return response.data + } catch (error) { + if (axios.isAxiosError(error)) { + if (error.response?.status === 404) { + console.error("Resource not found.") + } else { + console.error(`An error occurred: ${error.response?.status}`) + } + } else { + console.error("An unknown error occurred.") + } + return null + } } From 988a56a19e0623cf47a28b748f4da8bd08239ab2 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sat, 23 Sep 2023 14:30:25 +0200 Subject: [PATCH 20/78] feat: adding mixpanel --- package.json | 4 +++- src/App.tsx | 9 ++++++++- yarn.lock | 10 ++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 70d3b55..45351f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.3.4", + "version": "2.4.0", "private": true, "dependencies": { "@emotion/react": "^11.11.1", @@ -20,6 +20,7 @@ "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", "luxon": "^3.4.2", + "mixpanel-browser": "^2.47.0", "prettier": "^3.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -64,6 +65,7 @@ "@babel/preset-env": "^7.22.14", "@babel/preset-react": "^7.22.5", "@babel/preset-typescript": "^7.22.11", + "@types/mixpanel-browser": "^2.47.1", "babel-jest": "^29.6.4" } } diff --git a/src/App.tsx b/src/App.tsx index e711aa8..626f808 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import React from "react" +import React, { useEffect } from "react" import { ThemeProvider } from "@mui/material/styles" import { lightTheme, darkTheme } from "Themes" import Dashboard from "pages/Dashboard" @@ -6,11 +6,18 @@ import { Box, CssBaseline, createTheme, useMediaQuery } from "@mui/material" import TypesafeI18n from "i18n/i18n-react" import { loadLocale } from "i18n/i18n-util.sync" import { Locales } from "i18n/i18n-types" +import mixpanel from "mixpanel-browser" + +mixpanel.init("c22c74cac287fb74387b7ce250f1548f") function App() { const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)") const locale: Locales = navigator?.language.startsWith("en") ? "en" : "es" + useEffect(() => { + mixpanel.track("Website Accessed") + }, []) + const theme = React.useMemo( () => createTheme({ diff --git a/yarn.lock b/yarn.lock index effe3aa..3927a14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2344,6 +2344,11 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +"@types/mixpanel-browser@^2.47.1": + version "2.47.1" + resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.1.tgz#9f06b3ebf109f89dcd69288f9326dd0297c5b689" + integrity sha512-4Oif1hbjmStA6KI1OLer19rbKjlPd67ujp5Wipfa7rIskA/lOFZbp6kYsPjXD0f5AiiCQTbf0R/SnnzgOaKrbA== + "@types/node@*", "@types/node@^20.5.7": version "20.5.7" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377" @@ -6900,6 +6905,11 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +mixpanel-browser@^2.47.0: + version "2.47.0" + resolved "https://registry.yarnpkg.com/mixpanel-browser/-/mixpanel-browser-2.47.0.tgz#4e7fd3bb660c6f63443efbd169d1cd327db71ed4" + integrity sha512-Ldrva0fRBEIFWmEibBQO1PulfpJVF3pf28Guk09lDirDaSQqqU/xs9zQLwN2rL5VwVtsP1aD3JaCgaa98EjojQ== + mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" From 8a2fbb3e9b510195dac2604aeec973de74c3795c Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sat, 23 Sep 2023 14:50:35 +0200 Subject: [PATCH 21/78] fix: tag name --- .github/workflows/publish-to-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index 748306b..66ffd80 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -26,4 +26,4 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Build and publish Docker image run: | - docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7 -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.ref_name }} --push . + docker buildx build --platform linux/amd64,linux/arm64/v8,linux/arm/v7 -t daithihearn/electricity-prices-dashboard:latest -t daithihearn/electricity-prices-dashboard:${{ github.event.release.tag_name }} --push . From 76f5a75ad7101f6414056fdbd50ce201a401ae3e Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 21:09:24 +0200 Subject: [PATCH 22/78] chore: updating to node 18.18 --- .nvmrc | 1 + Dockerfile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..6aab9b4 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v18.18.0 diff --git a/Dockerfile b/Dockerfile index 5cdd433..5756ea3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # build -FROM node:16 AS builder +FROM node:18.18 AS builder WORKDIR /app From 4ccefb46cf3a4ccf183e4f676abfa282132d49f4 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 21:09:57 +0200 Subject: [PATCH 23/78] chore: upgrading dependencies --- package.json | 32 +- yarn.lock | 1639 ++++++++++++++++++++++++++------------------------ 2 files changed, 882 insertions(+), 789 deletions(-) diff --git a/package.json b/package.json index 45351f2..3ffce3b 100644 --- a/package.json +++ b/package.json @@ -5,21 +5,21 @@ "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.14.7", - "@mui/material": "^5.14.7", - "@testing-library/jest-dom": "^6.1.2", + "@mui/icons-material": "^5.14.12", + "@mui/material": "^5.14.12", + "@testing-library/jest-dom": "^6.1.3", "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.4.3", - "@types/jest": "^29.5.4", + "@testing-library/user-event": "^14.5.1", + "@types/jest": "^29.5.5", "@types/luxon": "^3.3.2", - "@types/node": "^20.5.7", - "@types/react": "^18.2.21", - "@types/react-dom": "^18.2.7", - "axios": "^1.5.0", + "@types/node": "^20.8.4", + "@types/react": "^18.2.27", + "@types/react-dom": "^18.2.12", + "axios": "^1.5.1", "chart.js": "^4.4.0", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", - "luxon": "^3.4.2", + "luxon": "^3.4.3", "mixpanel-browser": "^2.47.0", "prettier": "^3.0.3", "react": "^18.2.0", @@ -27,7 +27,7 @@ "react-scripts": "5.0.1", "typesafe-i18n": "^5.26.2", "typescript": "^5.2.2", - "web-vitals": "^3.4.0" + "web-vitals": "^3.5.0" }, "scripts": { "start": "react-scripts start", @@ -62,10 +62,10 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.22.14", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.11", - "@types/mixpanel-browser": "^2.47.1", - "babel-jest": "^29.6.4" + "@babel/preset-env": "^7.22.20", + "@babel/preset-react": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@types/mixpanel-browser": "^2.47.3", + "babel-jest": "^29.7.0" } } diff --git a/yarn.lock b/yarn.lock index 3927a14..a243848 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,7 +34,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.8.3": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -42,47 +42,47 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== +"@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" + integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24" - integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" + integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-compilation-targets" "^7.22.10" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.11" - "@babel/parser" "^7.22.11" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + 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/eslint-parser@^7.16.3": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz#cceb8c7989c241a16dd14e12a6cd725618f3f58b" - integrity sha512-YjOYZ3j7TjV8OhLW6NCtyg8G04uStATEUe5eiLuCZaXz2VSDQ3dsAtm2D+TuQyAqNMUK2WacGo0/uma9Pein1w== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" + integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.22.10", "@babel/generator@^7.7.2": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" - integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== +"@babel/generator@^7.23.0", "@babel/generator@^7.7.2": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== dependencies: - "@babel/types" "^7.22.10" + "@babel/types" "^7.23.0" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -95,32 +95,32 @@ "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9" - integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: - "@babel/types" "^7.22.10" + "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" - integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.10", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" - integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -128,9 +128,9 @@ semver "^6.3.1" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" - integrity sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" regexpu-core "^5.3.1" @@ -147,18 +147,18 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -167,30 +167,30 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== +"@babel/helper-member-expression-to-functions@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@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.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" @@ -205,21 +205,21 @@ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== "@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" - integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.9" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" - integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== +"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-simple-access@^7.22.5": @@ -248,63 +248,63 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== -"@babel/helper-wrap-function@^7.22.9": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" - integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== dependencies: "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.10" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" -"@babel/helpers@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.11.tgz#b02f5d5f2d7abc21ab59eeed80de410ba70b056a" - integrity sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg== +"@babel/helpers@^7.23.0": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" + integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.11" - "@babel/types" "^7.22.11" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" "@babel/highlight@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" - integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ== + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== dependencies: - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.11", "@babel/parser@^7.22.5": - version "7.22.14" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.14.tgz#c7de58e8de106e88efca42ce17f0033209dfd245" - integrity sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" + integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" + integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" "@babel/plugin-proposal-class-properties@^7.16.0": version "7.18.6" @@ -315,13 +315,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.10.tgz#d6a8c3a9018e1b13e6647f869c5ea56ff2b585d4" - integrity sha512-KxN6TqZzcFi4uD3UifqXElBTBNLAEH1l3vzMQj6JwJZbL2sZlThxSViOKCYY+4Ah4V4JhQ95IVB7s/Y6SJSlMQ== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.0.tgz#66d9014173b3267a9ced3e69935138bc64ffb5c8" + integrity sha512-kYsT+f5ARWF6AdFmqoEEp+hpqxEB8vGmRWfw2aj78M2vTwS2uHW91EF58iFm1Z9U8Y/RrLu2XKJn46P9ca1b0w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.10" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" "@babel/plugin-syntax-decorators" "^7.22.10" @@ -542,10 +542,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.11.tgz#dbe3b1ff5a52e2e5edc4b19a60d325a675ed2649" - integrity sha512-0pAlmeRJn6wU84zzZsEOx1JV1Jf8fqO9ok7wofIJwUnplYo247dcd24P+cMJht7ts9xkzdtB0EPHmOb7F+KzXw== +"@babel/plugin-transform-async-generator-functions@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" + integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" @@ -568,10 +568,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" - integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== +"@babel/plugin-transform-block-scoping@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" + integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -592,18 +592,18 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== +"@babel/plugin-transform-classes@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" + integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" @@ -615,10 +615,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" - integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== +"@babel/plugin-transform-destructuring@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" + integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -669,10 +669,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== +"@babel/plugin-transform-for-of@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" + integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -716,31 +716,31 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-modules-amd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" - integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" + integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== dependencies: - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" - integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== +"@babel/plugin-transform-modules-commonjs@^7.22.15", "@babel/plugin-transform-modules-commonjs@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" + integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== dependencies: - "@babel/helper-module-transforms" "^7.22.9" + "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" "@babel/plugin-transform-modules-systemjs@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1" - integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA== + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" + integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== dependencies: "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.9" + "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/plugin-transform-modules-umd@^7.22.5": version "7.22.5" @@ -781,16 +781,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.11.tgz#dbbb06ce783cd994a8f430d8cefa553e9b42ca62" - integrity sha512-nX8cPFa6+UmbepISvlf5jhQyaC7ASs/7UxHmMkuJ/k5xSHvDPPaibMo+v3TXwU/Pjqhep/nFNpd3zn4YR59pnw== +"@babel/plugin-transform-object-rest-spread@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" + integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" @@ -808,19 +808,19 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.12", "@babel/plugin-transform-optional-chaining@^7.22.5": - version "7.22.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.12.tgz#d7ebf6a88cd2f4d307b0e000ab630acd8124b333" - integrity sha512-7XXCVqZtyFWqjDsYDY4T45w4mlx1rf7aOgkc/Ww76xkgBiOlmjPkx36PBLHa1k1rwWvVgYMPsbuVnIamx2ZQJw== +"@babel/plugin-transform-optional-chaining@^7.22.15": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" + integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== 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" -"@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== +"@babel/plugin-transform-parameters@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" + integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -870,16 +870,16 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" - integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== +"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" + integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" "@babel/plugin-transform-react-pure-annotations@^7.22.5": version "7.22.5" @@ -905,11 +905,11 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.16.4": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz#89eda6daf1d3af6f36fb368766553054c8d7cd46" - integrity sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA== + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9" + integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g== dependencies: - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" babel-plugin-polyfill-corejs2 "^0.4.5" babel-plugin-polyfill-corejs3 "^0.8.3" @@ -952,13 +952,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.11.tgz#9f27fb5e51585729374bb767ab6a6d9005a23329" - integrity sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA== +"@babel/plugin-transform-typescript@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" + integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" @@ -993,17 +993,17 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.22.14": - version "7.22.14" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.14.tgz#1cbb468d899f64fa71c53446f13b7ff8c0005cc1" - integrity sha512-daodMIoVo+ol/g+//c/AH+szBkFj4STQUikvBijRGL72Ph+w+AMTSh55DUETe8KJlPlDT1k/mp7NBfOuiWmoig== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.20.tgz#de9e9b57e1127ce0a2f580831717f7fb677ceedb" + integrity sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.10" + "@babel/compat-data" "^7.22.20" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" "@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" @@ -1024,39 +1024,39 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.11" + "@babel/plugin-transform-async-generator-functions" "^7.22.15" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.10" + "@babel/plugin-transform-block-scoping" "^7.22.15" "@babel/plugin-transform-class-properties" "^7.22.5" "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.6" + "@babel/plugin-transform-classes" "^7.22.15" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.10" + "@babel/plugin-transform-destructuring" "^7.22.15" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" "@babel/plugin-transform-dynamic-import" "^7.22.11" "@babel/plugin-transform-exponentiation-operator" "^7.22.5" "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.5" + "@babel/plugin-transform-for-of" "^7.22.15" "@babel/plugin-transform-function-name" "^7.22.5" "@babel/plugin-transform-json-strings" "^7.22.11" "@babel/plugin-transform-literals" "^7.22.5" "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" "@babel/plugin-transform-member-expression-literals" "^7.22.5" "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.11" + "@babel/plugin-transform-modules-commonjs" "^7.22.15" "@babel/plugin-transform-modules-systemjs" "^7.22.11" "@babel/plugin-transform-modules-umd" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.22.5" "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.22.15" "@babel/plugin-transform-object-super" "^7.22.5" "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.22.12" - "@babel/plugin-transform-parameters" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.11" "@babel/plugin-transform-property-literals" "^7.22.5" @@ -1072,7 +1072,7 @@ "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.22.11" + "@babel/types" "^7.22.19" babel-plugin-polyfill-corejs2 "^0.4.5" babel-plugin-polyfill-corejs3 "^0.8.3" babel-plugin-polyfill-regenerator "^0.5.2" @@ -1088,73 +1088,73 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0", "@babel/preset-react@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.5.tgz#c4d6058fbf80bccad02dd8c313a9aaa67e3c3dd6" - integrity sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ== +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0", "@babel/preset-react@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.15.tgz#9a776892b648e13cc8ca2edf5ed1264eea6b6afc" + integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" "@babel/plugin-transform-react-display-name" "^7.22.5" - "@babel/plugin-transform-react-jsx" "^7.22.5" + "@babel/plugin-transform-react-jsx" "^7.22.15" "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.22.5" -"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.11.tgz#f218cd0345524ac888aa3dc32f029de5b064b575" - integrity sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg== +"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz#cc6602d13e7e5b2087c811912b87cf937a9129d9" + integrity sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.11" - "@babel/plugin-transform-typescript" "^7.22.11" + "@babel/plugin-transform-modules-commonjs" "^7.23.0" + "@babel/plugin-transform-typescript" "^7.22.15" "@babel/regjsgen@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.10", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" - integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.23.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.5", "@babel/template@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.3.3": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.11", "@babel/traverse@^7.7.2": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c" - integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ== +"@babel/traverse@^7.23.0", "@babel/traverse@^7.7.2": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" + integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== dependencies: - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.11" - "@babel/types" "^7.22.11" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2" - integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== dependencies: "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1388,9 +1388,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005" - integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg== + version "4.9.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" + integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== "@eslint/eslintrc@^2.1.2": version "2.1.2" @@ -1407,39 +1407,39 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" - integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== +"@eslint/js@8.51.0": + version "8.51.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" + integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== -"@floating-ui/core@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17" - integrity sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ== +"@floating-ui/core@^1.4.2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" + integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== dependencies: - "@floating-ui/utils" "^0.1.1" + "@floating-ui/utils" "^0.1.3" "@floating-ui/dom@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.1.tgz#88b70defd002fe851f17b4a25efb2d3c04d7a8d7" - integrity sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw== + version "1.5.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" + integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== dependencies: - "@floating-ui/core" "^1.4.1" - "@floating-ui/utils" "^0.1.1" + "@floating-ui/core" "^1.4.2" + "@floating-ui/utils" "^0.1.3" -"@floating-ui/react-dom@^2.0.1": +"@floating-ui/react-dom@^2.0.2": version "2.0.2" resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20" integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ== dependencies: "@floating-ui/dom" "^1.5.1" -"@floating-ui/utils@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83" - integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw== +"@floating-ui/utils@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" + integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== -"@humanwhocodes/config-array@^0.11.10": +"@humanwhocodes/config-array@^0.11.11": version "0.11.11" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== @@ -1542,10 +1542,10 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/expect-utils@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.4.tgz#17c7dfe6cec106441f218b0aff4b295f98346679" - integrity sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: jest-get-type "^29.6.3" @@ -1675,10 +1675,10 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.4.tgz#a6bc799ef597c5d85b2e65a11fd96b6b239bab5a" - integrity sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA== +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.6.3" @@ -1688,9 +1688,9 @@ convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.4" + jest-haste-map "^29.7.0" jest-regex-util "^29.6.3" - jest-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1781,44 +1781,42 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/base@5.0.0-beta.13": - version "5.0.0-beta.13" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.13.tgz#3bae94c39752546d84a67d4ca73486b7c4923a89" - integrity sha512-uC0l97pBspfDAp+iz2cJq8YZ8Sd9i73V77+WzUiOAckIVEyCm5dyVDZCCO2/phmzckVEeZCGcytybkjMQuhPQw== +"@mui/base@5.0.0-beta.18": + version "5.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.18.tgz#f95d393cf80974e77c0823170cc15c854d5af84b" + integrity sha512-e9ZCy/ndhyt5MTshAS3qAUy/40UiO0jX+kAo6a+XirrPJE+rrQW+mKPSI0uyp+5z4Vh+z0pvNoJ2S2gSrNz3BQ== dependencies: - "@babel/runtime" "^7.22.10" - "@emotion/is-prop-valid" "^1.2.1" - "@floating-ui/react-dom" "^2.0.1" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.7" + "@babel/runtime" "^7.23.1" + "@floating-ui/react-dom" "^2.0.2" + "@mui/types" "^7.2.5" + "@mui/utils" "^5.14.12" "@popperjs/core" "^2.11.8" clsx "^2.0.0" prop-types "^15.8.1" - react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.14.7": - version "5.14.7" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.7.tgz#95bed2487bf59632125a13b8eb8f4c21e460afec" - integrity sha512-sCWTUNElBPgB30iLvWe3PU7SIlTKZNf6/E/sko85iHVeHCM6WPkDw+y89CrZYjhFNmPqt2fIQM/pZu+rP2lFLA== - -"@mui/icons-material@^5.14.7": - version "5.14.7" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.7.tgz#d7f6bd188fe38adf35c89d9343b8a529c2306383" - integrity sha512-mWp4DwMa8c1Gx9yOEtPgxM4b+e6hAbtZyzfSubdBwrnEE6G5D2rbAJ5MB+If6kfI48JaYaJ5j8+zAdmZLuZc0A== - dependencies: - "@babel/runtime" "^7.22.10" - -"@mui/material@^5.14.7": - version "5.14.7" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.7.tgz#6c2c0de8a625562f789e1bb33cb4cfc8cf20bdb0" - integrity sha512-jIZj9F7zMv6IlyaYDVv5M2Kp20jIX8c0kzuwteySHS/A0IvPVyomQEPtWc51MCbpDNCqzwoZUp3rQtA2lI8k7A== - dependencies: - "@babel/runtime" "^7.22.10" - "@mui/base" "5.0.0-beta.13" - "@mui/core-downloads-tracker" "^5.14.7" - "@mui/system" "^5.14.7" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.7" +"@mui/core-downloads-tracker@^5.14.12": + version "5.14.12" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.12.tgz#7be13094ef0c2fc7c3854da2b90a7eae456ebefd" + integrity sha512-WZhCkKqhrXaSVBzoC6LNcVkIawS000OOt7gmnp4g9HhyvN0PSclRXc/JrkC7EwfzUAZJh+hiK2LaVsbtOpNuOg== + +"@mui/icons-material@^5.14.12": + version "5.14.12" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.12.tgz#6634cdc3198bc438e8d38ce591c96d63d5df99a0" + integrity sha512-aFm6g/AIB3RQN9h/4MKoBoBybLZXeR3aDHWNx6KzemEpIlElUxv5uXRX5Qk1VC6v/YPkhbaPsiLLjsRSTiZF3w== + dependencies: + "@babel/runtime" "^7.23.1" + +"@mui/material@^5.14.12": + version "5.14.12" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.12.tgz#8fa5bebd1a096796a288b548f1ba867e068601c8" + integrity sha512-EelF2L46VcVqhg3KjzIGBBpOtcBgRh0MMy9Efuk6Do81QdcZsFC9RebCVAflo5jIdbHiBmxBs5/l5Q9NjONozg== + dependencies: + "@babel/runtime" "^7.23.1" + "@mui/base" "5.0.0-beta.18" + "@mui/core-downloads-tracker" "^5.14.12" + "@mui/system" "^5.14.12" + "@mui/types" "^7.2.5" + "@mui/utils" "^5.14.12" "@types/react-transition-group" "^4.4.6" clsx "^2.0.0" csstype "^3.1.2" @@ -1826,52 +1824,51 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.14.7": - version "5.14.7" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.7.tgz#c9fec31e59bf66b12959e724b0e8ec3bb4a3d923" - integrity sha512-Y86+hmDnJab2Ka42PgxKpK3oL7EiacbeeX3X/lG9LGO0wSc45wZjHeTfIlVSkkUCkexiMKEJp5NlSjZhr27NRQ== +"@mui/private-theming@^5.14.12": + version "5.14.12" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.12.tgz#b07f710b9794c928052ee4c91bf67fc3e0a442ea" + integrity sha512-TWwm+9+BgHFpoR3w04FG+IqID4ALa74A27RuKq2CEaWgxliBZB24EVeI6djfjFt5t4FYmIb8BMw2ZJEir7YjLQ== dependencies: - "@babel/runtime" "^7.22.10" - "@mui/utils" "^5.14.7" + "@babel/runtime" "^7.23.1" + "@mui/utils" "^5.14.12" prop-types "^15.8.1" -"@mui/styled-engine@^5.14.7": - version "5.14.7" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.7.tgz#aaacec6c87bcc9a180b2da062c613213af10f2e3" - integrity sha512-hKBETEDsIAkL8/mBwPiQj/vw28OeIhMXC3Tvj4J2bb9snxAKpiZioR1PwqP+6P41twsC/GKBd0Vr9oaWYaHuMg== +"@mui/styled-engine@^5.14.12": + version "5.14.12" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.12.tgz#bfacc045f14f8f8bef735c76ecfd90bc99427c43" + integrity sha512-bocxt1nDmXfB3gpLfCCmFCyJ7sVmscFs+PuheO210QagZwHVp47UIRT1AiswLDYSQo1ZqmVGn7KLEJEYK0d4Xw== dependencies: - "@babel/runtime" "^7.22.10" + "@babel/runtime" "^7.23.1" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.14.7": - version "5.14.7" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.7.tgz#b08e23f9151d38186ab12dd618906abd4d73d203" - integrity sha512-jeZtHglc+Pi6qjGoopT6O4RqYXVBMqHVOsjMGP0hxGSSPm1T4gsAu7jU8eqGx9YwwjvvJ0eotTjFqw7iJ6qE2Q== +"@mui/system@^5.14.12": + version "5.14.12" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.12.tgz#da5b32c2a10bbe58f8b4839c5d5de449dc35e425" + integrity sha512-6DXfjjLhW0/ia5qU3Crke7j+MnfDbMBOHlLIrqbrEqNs0AuSBv8pXniEGb+kqO0H804NJreRTEJRjCngwOX5CA== dependencies: - "@babel/runtime" "^7.22.10" - "@mui/private-theming" "^5.14.7" - "@mui/styled-engine" "^5.14.7" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.7" + "@babel/runtime" "^7.23.1" + "@mui/private-theming" "^5.14.12" + "@mui/styled-engine" "^5.14.12" + "@mui/types" "^7.2.5" + "@mui/utils" "^5.14.12" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/types@^7.2.4": - version "7.2.4" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.4.tgz#b6fade19323b754c5c6de679a38f068fd50b9328" - integrity sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA== +"@mui/types@^7.2.5": + version "7.2.5" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.5.tgz#cd62a1fc5eb1044137ccab2053b431dd7cfc3cb8" + integrity sha512-S2BwfNczr7VwS6ki8GoAXJyARoeSJDLuxOEPs3vEMyTALlf9PrdHv+sluX7kk3iKrCg/ML2mIWwapZvWbkMCQA== -"@mui/utils@^5.14.7": - version "5.14.7" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.7.tgz#3677bcabe032f1185e151f57d8c1a166df3ae0a1" - integrity sha512-RtheP/aBoPogVdi8vj8Vo2IFnRa4mZVmnD0RGlVZ49yF60rZs+xP4/KbpIrTr83xVs34QmHQ2aQ+IX7I0a0dDw== +"@mui/utils@^5.14.12": + version "5.14.12" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.12.tgz#58b570839e22e0fba71e17d37d9c083fe233704d" + integrity sha512-RFNXnhKQlzIkIUig6mmv0r5VbtjPdWoaBPYicq25LETdZux59HAqoRdWw15T7lp3c7gXOoE8y67+hTB8C64m2g== dependencies: - "@babel/runtime" "^7.22.10" - "@types/prop-types" "^15.7.5" - "@types/react-is" "^18.2.1" + "@babel/runtime" "^7.23.1" + "@types/prop-types" "^15.7.7" prop-types "^15.8.1" react-is "^18.2.0" @@ -1961,9 +1958,9 @@ picomatch "^2.2.2" "@rushstack/eslint-patch@^1.1.0": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz#16ab6c727d8c2020a5b6e4a176a243ecd88d8d69" - integrity sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw== + version "1.5.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" + integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== "@sinclair/typebox@^0.24.1": version "0.24.51" @@ -2103,9 +2100,9 @@ loader-utils "^2.0.0" "@testing-library/dom@^9.0.0": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.1.tgz#8094f560e9389fb973fe957af41bf766937a9ee9" - integrity sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w== + version "9.3.3" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5" + integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -2116,10 +2113,10 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.2.tgz#3e7422904349223cb1e04968adada63f65f40d5b" - integrity sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ== +"@testing-library/jest-dom@^6.1.3": + version "6.1.3" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz#443118c9e4043f96396f120de2c7122504a079c5" + integrity sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ== dependencies: "@adobe/css-tools" "^4.3.0" "@babel/runtime" "^7.9.2" @@ -2139,10 +2136,10 @@ "@testing-library/dom" "^9.0.0" "@types/react-dom" "^18.0.0" -"@testing-library/user-event@^14.4.3": - version "14.4.3" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.4.3.tgz#af975e367743fa91989cd666666aec31a8f50591" - integrity sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q== +"@testing-library/user-event@^14.5.1": + version "14.5.1" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.1.tgz#27337d72046d5236b32fd977edee3f74c71d332f" + integrity sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg== "@tootallnate/once@1": version "1.1.2" @@ -2155,14 +2152,14 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@types/aria-query@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" - integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== + version "5.0.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.2.tgz#6f1225829d89794fd9f891989c9ce667422d7f64" + integrity sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" + integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -2171,77 +2168,77 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.5" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.5.tgz#281f4764bcbbbc51fdded0f25aa587b4ce14da95" + integrity sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.2.tgz#843e9f1f47c957553b0c374481dc4772921d6a6b" + integrity sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.2.tgz#4ddf99d95cfdd946ff35d2b65c978d9c9bf2645d" + integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw== dependencies: "@babel/types" "^7.20.7" "@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + version "1.19.3" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.3.tgz#fb558014374f7d9e56c8f34bab2042a3a07d25cd" + integrity sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ== dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.10" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" - integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + version "3.5.11" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.11.tgz#fbaa46a1529ea5c5e46cde36e4be6a880db55b84" + integrity sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" - integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== + version "1.5.1" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz#6e5e3602d93bda975cebc3449e1a318340af9e20" + integrity sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + version "3.4.36" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" + integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== dependencies: "@types/node" "*" "@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + version "3.7.5" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz#e28b09dbb1d9d35fdfa8a884225f00440dfc5a3e" + integrity sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.44.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" - integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== + version "8.44.4" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.4.tgz#28eaff82e1ca0a96554ec5bb0188f10ae1a74c2f" + integrity sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" + integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== "@types/estree@0.0.39": version "0.0.39" @@ -2249,9 +2246,9 @@ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.36" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.36.tgz#baa9022119bdc05a4adfe740ffc97b5f9360e545" - integrity sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q== + version "4.17.37" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz#7e4b7b59da9142138a2aaa7621f5abedce8c7320" + integrity sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2259,9 +2256,9 @@ "@types/send" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== + version "4.17.19" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.19.tgz#6ff9b4851fda132c5d3dcd2f89fdb6a7a0031ced" + integrity sha512-UtOfBtzN9OvpZPPbnnYunfjM7XCI4jyk1NvnFhTVz5krYAnW4o5DCoIekvms+8ApqhB4+9wSge1kBijdfTSmfg== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -2269,9 +2266,9 @@ "@types/serve-static" "*" "@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.7.tgz#30443a2e64fd51113bc3e2ba0914d47109695e2a" + integrity sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw== dependencies: "@types/node" "*" @@ -2281,14 +2278,14 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-errors@*": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" - integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.2.tgz#a86e00bbde8950364f8e7846687259ffcd96e8c2" + integrity sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg== "@types/http-proxy@^1.17.8": - version "1.17.11" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" - integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== + version "1.17.12" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.12.tgz#86e849e9eeae0362548803c37a0a1afc616bd96b" + integrity sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw== dependencies: "@types/node" "*" @@ -2298,31 +2295,31 @@ integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#412e0725ef41cde73bfa03e0e833eaff41e0fd63" + integrity sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz#edc8e421991a3b4df875036d381fc0a5a982f549" + integrity sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.4": - version "29.5.4" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.4.tgz#9d0a16edaa009a71e6a71a999acd582514dab566" - integrity sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A== +"@types/jest@^29.5.5": + version "29.5.5" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.5.tgz#727204e06228fe24373df9bae76b90f3e8236a2a" + integrity sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg== dependencies: expect "^29.0.0" pretty-format "^29.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + version "7.0.13" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" + integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== "@types/json5@^0.0.29": version "0.0.29" @@ -2335,24 +2332,26 @@ integrity sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ== "@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.2.tgz#c1ae807f13d308ee7511a5b81c74f327028e66e8" + integrity sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ== "@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + version "1.3.3" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.3.tgz#bbe64987e0eb05de150c305005055c7ad784a9ce" + integrity sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg== -"@types/mixpanel-browser@^2.47.1": - version "2.47.1" - resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.1.tgz#9f06b3ebf109f89dcd69288f9326dd0297c5b689" - integrity sha512-4Oif1hbjmStA6KI1OLer19rbKjlPd67ujp5Wipfa7rIskA/lOFZbp6kYsPjXD0f5AiiCQTbf0R/SnnzgOaKrbA== +"@types/mixpanel-browser@^2.47.3": + version "2.47.3" + resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.3.tgz#1c4c96c946aac102e8a4ed941a9ebaae9ff04f8a" + integrity sha512-lum9ZdfLihJ89XoCrBjB8le/Vg6ohYSR2/3AdfLWGZdhUBEgftncDO9+0uW08FSN6SLqy2s9zCf55YV5sNLNYA== -"@types/node@*", "@types/node@^20.5.7": - version "20.5.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377" - integrity sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA== +"@types/node@*", "@types/node@^20.8.4": + version "20.8.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.4.tgz#0e9ebb2ff29d5c3302fc84477d066fa7c6b441aa" + integrity sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A== + dependencies: + undici-types "~5.25.1" "@types/parse-json@^4.0.0": version "4.0.0" @@ -2364,10 +2363,10 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/prop-types@*", "@types/prop-types@^15.7.5": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== +"@types/prop-types@*", "@types/prop-types@^15.7.7": + version "15.7.8" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.8.tgz#805eae6e8f41bd19e88917d2ea200dc992f405d3" + integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ== "@types/q@^1.5.1": version "1.5.6" @@ -2380,35 +2379,28 @@ integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.5.tgz#38bd1733ae299620771bd414837ade2e57757498" + integrity sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.7": - version "18.2.7" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" - integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== - dependencies: - "@types/react" "*" - -"@types/react-is@^18.2.1": - version "18.2.1" - resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-18.2.1.tgz#61d01c2a6fc089a53520c0b66996d458fdc46863" - integrity sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw== +"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.12": + version "18.2.12" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.12.tgz#58479c463d1e0b7f1ee7cd80e09186189f9ec32d" + integrity sha512-QWZuiA/7J/hPIGocXreCRbx7wyoeet9ooxfbSA+zbIWqyQEE7GMtRn4A37BdYyksnN+/NDnWgfxZH9UVGDw1hg== dependencies: "@types/react" "*" "@types/react-transition-group@^4.4.6": - version "4.4.6" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" - integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + version "4.4.7" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.7.tgz#bf69f269d74aa78b99097673ca6dd6824a68ef1c" + integrity sha512-ICCyBl5mvyqYp8Qeq9B5G/fyBSRC0zx3XM3sCC6KkcMsNeAHqXBKkmat4GqdJET5jtYUpZXrxI5flve5qhi2Eg== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.21": - version "18.2.21" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" - integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA== +"@types/react@*", "@types/react@^18.2.27": + version "18.2.27" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.27.tgz#746e52b06f3ccd5d7a724fd53769b70792601440" + integrity sha512-Wfv7B7FZiR2r3MIqbAlXoY1+tXm4bOqfz4oRr+nyXdBqapDBZ0l/IGcSlAfvxIHEEJjkPU0MYAc/BlFPOcrgLw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2427,43 +2419,43 @@ integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + version "0.16.4" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.4.tgz#fedc3e5b15c26dc18faae96bf1317487cb3658cf" + integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ== "@types/semver@^7.3.12": - version "7.5.1" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" - integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== + version "7.5.3" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04" + integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== "@types/send@*": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" - integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== + version "0.17.2" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.2.tgz#af78a4495e3c2b79bfbdac3955fdd50e03cc98f2" + integrity sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/serve-index@^1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" - integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + version "1.9.2" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.2.tgz#cb26e775678a8526b73a5d980a147518740aaecd" + integrity sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.2.tgz#3e5419ecd1e40e7405d34093f10befb43f63381a" - integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw== + version "1.15.3" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.3.tgz#2cfacfd1fd4520bbc3e292cca432d5e8e2e3ee61" + integrity sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg== dependencies: "@types/http-errors" "*" "@types/mime" "*" "@types/node" "*" "@types/sockjs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" - integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + version "0.3.34" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.34.tgz#43e10e549b36d2ba2589278f00f81b5d7ccda167" + integrity sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g== dependencies: "@types/node" "*" @@ -2473,33 +2465,33 @@ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/trusted-types@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" - integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.4.tgz#2b38784cd16957d3782e8e2b31c03bc1d13b4d65" + integrity sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ== "@types/ws@^8.5.5": - version "8.5.5" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" - integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg== + version "8.5.6" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.6.tgz#e9ad51f0ab79b9110c50916c9fcbddc36d373065" + integrity sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + version "21.0.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.1.tgz#07773d7160494d56aa882d7531aac7319ea67c3b" + integrity sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ== "@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" - integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== + version "16.0.6" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.6.tgz#cc0c63684d68d23498cf0b5f32aa4c3fb437c638" + integrity sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A== dependencies: "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + version "17.0.28" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.28.tgz#d106e4301fbacde3d1796ab27374dd16588ec851" + integrity sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw== dependencies: "@types/yargs-parser" "*" @@ -2934,14 +2926,14 @@ array-flatten@^2.1.2: integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" is-string "^1.0.7" array-union@^2.1.0: @@ -2961,26 +2953,26 @@ array.prototype.findlastindex@^1.2.2: get-intrinsic "^1.2.1" array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.reduce@^1.0.5: +array.prototype.reduce@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz#63149931808c5fc1e1354814923d92d45f7d96d5" integrity sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg== @@ -2992,24 +2984,25 @@ array.prototype.reduce@^1.0.5: is-string "^1.0.7" array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.1" -arraybuffer.prototype.slice@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz#9b5ea3868a6eebc30273da577eb888381c0044bb" - integrity sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw== +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: array-buffer-byte-length "^1.0.0" call-bind "^1.0.2" define-properties "^1.2.0" + es-abstract "^1.22.1" get-intrinsic "^1.2.1" is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" @@ -3047,13 +3040,13 @@ at-least-node@^1.0.0: integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== autoprefixer@^10.4.13: - version "10.4.15" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" - integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== dependencies: browserslist "^4.21.10" - caniuse-lite "^1.0.30001520" - fraction.js "^4.2.0" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" @@ -3064,14 +3057,14 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axe-core@^4.6.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" - integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== + version "4.8.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.2.tgz#2f6f3cde40935825cf4465e3c1c9e77b240ff6ae" + integrity sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g== -axios@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267" - integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ== +axios@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f" + integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -3098,12 +3091,12 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.4.tgz#98dbc45d1c93319c82a8ab4a478b670655dd2585" - integrity sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw== +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== dependencies: - "@jest/transform" "^29.6.4" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.6.3" @@ -3176,12 +3169,12 @@ babel-plugin-polyfill-corejs2@^0.4.5: semver "^6.3.1" babel-plugin-polyfill-corejs3@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" - integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== + version "0.8.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz#1fac2b1dcef6274e72b3c72977ed8325cb330591" + integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" - core-js-compat "^3.31.0" + core-js-compat "^3.32.2" babel-plugin-polyfill-regenerator@^0.5.2: version "0.5.2" @@ -3262,13 +3255,14 @@ batch@0.6.1: integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== bfj@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" - integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + version "7.1.0" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" + integrity sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw== dependencies: - bluebird "^3.5.5" - check-types "^11.1.1" + bluebird "^3.7.2" + check-types "^11.2.3" hoopy "^0.1.4" + jsonpath "^1.1.1" tryer "^1.0.1" big.js@^5.2.2: @@ -3281,7 +3275,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bluebird@^3.5.5: +bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -3346,15 +3340,15 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9, browserslist@^4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" node-releases "^2.0.13" - update-browserslist-db "^1.0.11" + update-browserslist-db "^1.0.13" bser@2.1.1: version "2.1.1" @@ -3429,10 +3423,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: - version "1.0.30001525" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz#d2e8fdec6116ffa36284ca2c33ef6d53612fe1c8" - integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: + version "1.0.30001547" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz#d4f92efc488aab3c7f92c738d3977c2a3180472b" + integrity sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -3491,10 +3485,10 @@ chartjs-plugin-annotation@^3.0.1: resolved "https://registry.yarnpkg.com/chartjs-plugin-annotation/-/chartjs-plugin-annotation-3.0.1.tgz#4cf51d9797bf3202788ca0beae8694404621ad19" integrity sha512-hlIrXXKqSDgb+ZjVYHefmlZUXK8KbkCPiynSVrTb/HjTMkT62cOInaT1NTQCKtxKKOm9oHp958DY3RTAFKtkHg== -check-types@^11.1.1: - version "11.2.2" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.2.tgz#7afc0b6a860d686885062f2dba888ba5710335b4" - integrity sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA== +check-types@^11.2.3: + version "11.2.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.3.tgz#1ffdf68faae4e941fce252840b1787b8edc93b71" + integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== chokidar@^3.4.2, chokidar@^3.5.3: version "3.5.3" @@ -3517,9 +3511,9 @@ chrome-trace-event@^1.0.2: integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: version "1.2.3" @@ -3709,22 +3703,22 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -core-js-compat@^3.31.0: - version "3.32.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964" - integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA== +core-js-compat@^3.31.0, core-js-compat@^3.32.2: + version "3.33.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.0.tgz#24aa230b228406450b2277b7c8bfebae932df966" + integrity sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw== dependencies: - browserslist "^4.21.10" + browserslist "^4.22.1" core-js-pure@^3.23.3: - version "3.32.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.32.1.tgz#5775b88f9062885f67b6d7edce59984e89d276f3" - integrity sha512-f52QZwkFVDPf7UEQZGHKx6NYxsxmVGJe5DIvbzOdRMJlmT6yv0KDjR8rmy3ngr/t5wU54c7Sp/qIJH0ppbhVpQ== + version "3.33.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.0.tgz#938a28754b4d82017a7a8cbd2727b1abecc63591" + integrity sha512-FKSIDtJnds/YFIEaZ4HszRX7hkxGpNKM7FC9aJ9WLJbSd3lD4vOltFuVIBLR8asSx9frkTSqL0dw90SKQxgKrg== core-js@^3.19.2: - version "3.32.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.1.tgz#a7d8736a3ed9dd05940c3c4ff32c591bb735be77" - integrity sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ== + version "3.33.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.0.tgz#70366dbf737134761edb017990cf5ce6c6369c40" + integrity sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw== core-util-is@~1.0.0: version "1.0.3" @@ -3875,9 +3869,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.7.1" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.7.1.tgz#759e333f516e47f26dd2c7be06147d4f4716356d" - integrity sha512-kM+Fs0BFyhJNeE6wbOrlnRsugRdL6vn7QcON0aBDZ7XRd7RI2pMlk+nxoHuTb4Et+aBobXgK0I+6NGLA0LLgTw== + version "7.8.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.8.0.tgz#ac41fa025371b74eb2ccfe3d41f5c4dbd444fbe3" + integrity sha512-SkeezZOQr5AHt9MgJgSFNyiuJwg1p8AwoVln6JwaQJsyxduRW9QJ+HP/gAQzbsz8SIqINtYvpJKjxTRI67zxLg== cssesc@^3.0.0: version "3.0.0" @@ -4031,7 +4025,7 @@ deep-equal@^2.0.5: which-collection "^1.0.1" which-typed-array "^1.1.9" -deep-is@^0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -4048,16 +4042,26 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" +define-data-property@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" + integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: + define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -4270,10 +4274,10 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.477: - version "1.4.506" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.506.tgz#59f64a211102db4c3ebae2f39cc0e8e1b12b3a07" - integrity sha512-xxGct4GPAKSRlrLBtJxJFYy74W11zX6PO9GyHgl/U+2s3Dp0ZEwAklDfNHXOWcvH7zWMpsmgbR0ggEuaYAVvHA== +electron-to-chromium@^1.4.535: + version "1.4.549" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.549.tgz#ab223f5d85c55a9def358db163bc8cacba72df69" + integrity sha512-gpXfJslSi4hYDkA0mTLEpYKRv9siAgSUgZ+UWyk+J5Cttpd1ThCVwdclzIwQSclz3hYn049+M2fgrP1WpvF8xg== emittery@^0.10.2: version "0.10.2" @@ -4332,18 +4336,18 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.17.2, es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.22.1: - version "1.22.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.1.tgz#8b4e5fc5cefd7f1660f0f8e1a52900dfbc9d9ccc" - integrity sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw== +es-abstract@^1.17.2, es-abstract@^1.22.1: + version "1.22.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.1" + arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" call-bind "^1.0.2" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" + function.prototype.name "^1.1.6" get-intrinsic "^1.2.1" get-symbol-description "^1.0.0" globalthis "^1.0.3" @@ -4359,23 +4363,23 @@ es-abstract@^1.17.2, es-abstract@^1.20.4, es-abstract@^1.21.2, es-abstract@^1.22 is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-typed-array "^1.1.10" + is-typed-array "^1.1.12" is-weakref "^1.0.2" object-inspect "^1.12.3" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - safe-array-concat "^1.0.0" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" typed-array-buffer "^1.0.0" typed-array-byte-length "^1.0.0" typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.10" + which-typed-array "^1.1.11" es-array-method-boxes-properly@^1.0.0: version "1.0.0" @@ -4398,13 +4402,13 @@ es-get-iterator@^1.1.3: stop-iteration-iterator "^1.0.0" es-iterator-helpers@^1.0.12: - version "1.0.14" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.14.tgz#19cd7903697d97e21198f3293b55e8985791c365" - integrity sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw== + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== dependencies: asynciterator.prototype "^1.0.0" call-bind "^1.0.2" - define-properties "^1.2.0" + define-properties "^1.2.1" es-abstract "^1.22.1" es-set-tostringtag "^2.0.1" function-bind "^1.1.1" @@ -4414,13 +4418,13 @@ es-iterator-helpers@^1.0.12: has-proto "^1.0.1" has-symbols "^1.0.3" internal-slot "^1.0.5" - iterator.prototype "^1.1.0" - safe-array-concat "^1.0.0" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" es-module-lexer@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" - integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" + integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== es-set-tostringtag@^2.0.1: version "2.0.1" @@ -4472,6 +4476,18 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -4651,15 +4667,15 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.48.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" - integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== + version "8.51.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" + integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.48.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint/js" "8.51.0" + "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.12.4" @@ -4702,6 +4718,11 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -4721,7 +4742,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -4787,15 +4808,15 @@ expect@^27.5.1: jest-message-util "^27.5.1" expect@^29.0.0: - version "29.6.4" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.4.tgz#a6e6f66d4613717859b2fe3da98a739437b6f4b8" - integrity sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA== + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== dependencies: - "@jest/expect-utils" "^29.6.4" + "@jest/expect-utils" "^29.7.0" jest-get-type "^29.6.3" - jest-matcher-utils "^29.6.4" - jest-message-util "^29.6.3" - jest-util "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" express@^4.17.3: version "4.18.2" @@ -4855,7 +4876,7 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -4966,23 +4987,23 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.1.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f" - integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew== + version "3.1.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" + integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== dependencies: - flatted "^3.2.7" + flatted "^3.2.9" keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== follow-redirects@^1.0.0, follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" @@ -5033,10 +5054,10 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.2.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.2.tgz#ea144a08ed23a284bf9067153075f212771a92d9" - integrity sha512-9VLF466MqX1OUP7/d9r7/Vsvu6Hpp+taXBLmiR5x6mEYfT0BDkGVBt5TyA1aDu1WzIE1sF8F66evOFaz7iAEGQ== +fraction.js@^4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" + integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== fresh@0.5.2: version "0.5.2" @@ -5063,9 +5084,9 @@ fs-extra@^9.0.0, fs-extra@^9.0.1: universalify "^2.0.0" fs-monkey@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" - integrity sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788" + integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew== fs.realpath@^1.0.0: version "1.0.0" @@ -5082,7 +5103,7 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.5: +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== @@ -5205,9 +5226,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.21.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571" - integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -5304,11 +5325,9 @@ has-tostringtag@^1.0.0: has-symbols "^1.0.2" has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" + version "1.0.4" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== he@^1.2.0: version "1.2.0" @@ -5777,7 +5796,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.9: +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: version "1.1.12" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== @@ -5873,15 +5892,16 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterator.prototype@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.1.tgz#ab5b790e23ec00658f5974e032a2b05188bd3a5c" - integrity sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ== +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== dependencies: - define-properties "^1.2.0" + define-properties "^1.2.1" get-intrinsic "^1.2.1" has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" jake@^10.8.5: version "10.8.7" @@ -5985,15 +6005,15 @@ jest-diff@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-diff@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.4.tgz#85aaa6c92a79ae8cd9a54ebae8d5b6d9a513314a" - integrity sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw== +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== dependencies: chalk "^4.0.0" diff-sequences "^29.6.3" jest-get-type "^29.6.3" - pretty-format "^29.6.3" + pretty-format "^29.7.0" jest-docblock@^27.5.1: version "27.5.1" @@ -6068,10 +6088,10 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.4.tgz#97143ce833829157ea7025204b08f9ace609b96a" - integrity sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog== +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== dependencies: "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" @@ -6080,8 +6100,8 @@ jest-haste-map@^29.6.4: fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.6.3" - jest-util "^29.6.3" - jest-worker "^29.6.4" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -6128,15 +6148,15 @@ jest-matcher-utils@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz#327db7ababea49455df3b23e5d6109fe0c709d24" - integrity sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ== +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== dependencies: chalk "^4.0.0" - jest-diff "^29.6.4" + jest-diff "^29.7.0" jest-get-type "^29.6.3" - pretty-format "^29.6.3" + pretty-format "^29.7.0" jest-message-util@^27.5.1: version "27.5.1" @@ -6168,10 +6188,10 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.3.tgz#bce16050d86801b165f20cfde34dc01d3cf85fbf" - integrity sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA== +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== dependencies: "@babel/code-frame" "^7.12.13" "@jest/types" "^29.6.3" @@ -6179,7 +6199,7 @@ jest-message-util@^29.6.3: chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.6.3" + pretty-format "^29.7.0" slash "^3.0.0" stack-utils "^2.0.3" @@ -6351,10 +6371,10 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.3.tgz#e15c3eac8716440d1ed076f09bc63ace1aebca63" - integrity sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA== +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: "@jest/types" "^29.6.3" "@types/node" "*" @@ -6442,13 +6462,13 @@ jest-worker@^28.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.4.tgz#f34279f4afc33c872b470d4af21b281ac616abd3" - integrity sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q== +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" - jest-util "^29.6.3" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" @@ -6462,9 +6482,9 @@ jest@^27.4.3: jest-cli "^27.5.1" jiti@^1.18.2: - version "1.19.3" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.3.tgz#ef554f76465b3c2b222dc077834a71f0d4a37569" - integrity sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w== + version "1.20.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" + integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -6580,6 +6600,15 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonpath@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== + dependencies: + esprima "1.2.2" + static-eval "2.0.2" + underscore "1.12.1" + jsonpointer@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" @@ -6596,9 +6625,9 @@ jsonpointer@^5.0.0: object.values "^1.1.6" keyv@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" - integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug== + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" @@ -6630,12 +6659,12 @@ language-tags@=1.0.5: language-subtag-registry "~0.3.2" launch-editor@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7" - integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ== + version "2.6.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.1.tgz#f259c9ef95cbc9425620bbbd14b468fcdb4ffe3c" + integrity sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== dependencies: picocolors "^1.0.0" - shell-quote "^1.7.3" + shell-quote "^1.8.1" leven@^3.1.0: version "3.1.0" @@ -6650,6 +6679,14 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -6759,10 +6796,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -luxon@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.2.tgz#f5bcab779f3d6a943ee7c8621c2b416bc10abd24" - integrity sha512-uBoAVCVcajsrqy3pv7eo5jEUz1oeLmCcnMv8n4AJpT5hbpN9lUssAXibNElpbLce3Mhm9dyBzwYLs9zctM/0tA== +luxon@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.3.tgz#8ddf0358a9492267ffec6a13675fbaab5551315d" + integrity sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg== lz-string@^1.5.0: version "1.5.0" @@ -7095,14 +7132,14 @@ object.fromentries@^2.0.6: es-abstract "^1.22.1" object.getownpropertydescriptors@^2.1.0: - version "2.1.6" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" - integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== + version "2.1.7" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz#7a466a356cd7da4ba8b9e94ff6d35c3eeab5d56a" + integrity sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g== dependencies: - array.prototype.reduce "^1.0.5" + array.prototype.reduce "^1.0.6" call-bind "^1.0.2" define-properties "^1.2.0" - es-abstract "^1.21.2" + es-abstract "^1.22.1" safe-array-concat "^1.0.0" object.groupby@^1.0.0: @@ -7172,6 +7209,18 @@ open@^8.0.9, open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -7898,9 +7947,9 @@ postcss@^7.0.35: source-map "^0.6.1" postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: - version "8.4.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" - integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" @@ -7911,6 +7960,11 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + prettier@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" @@ -7948,10 +8002,10 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" - integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== dependencies: "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" @@ -8258,7 +8312,7 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -reflect.getprototypeof@^1.0.3: +reflect.getprototypeof@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== @@ -8271,9 +8325,9 @@ reflect.getprototypeof@^1.0.3: which-builtin-type "^1.1.3" regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: regenerate "^1.4.2" @@ -8304,14 +8358,14 @@ regex-parser@^2.2.11: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== -regexp.prototype.flags@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" - functions-have-names "^1.2.3" + set-function-name "^2.0.0" regexpu-core@^5.3.1: version "5.3.2" @@ -8397,9 +8451,9 @@ resolve.exports@^1.1.0: integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + version "1.22.6" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" + integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" @@ -8455,13 +8509,13 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-array-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" - integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== +safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: call-bind "^1.0.2" - get-intrinsic "^1.2.0" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" isarray "^2.0.5" @@ -8638,6 +8692,15 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -8660,7 +8723,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3: +shell-quote@^1.7.3, shell-quote@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== @@ -8802,6 +8865,13 @@ stackframe@^1.3.4: resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== +static-eval@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== + dependencies: + escodegen "^1.8.1" + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -8850,9 +8920,9 @@ string-width@^4.1.0, string-width@^4.2.0: strip-ansi "^6.0.1" string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: - version "4.0.9" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz#148779de0f75d36b13b15885fec5cadde994520d" - integrity sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA== + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" @@ -8861,34 +8931,35 @@ string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: has-symbols "^1.0.3" internal-slot "^1.0.5" regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" side-channel "^1.0.4" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.22.1" string_decoder@^1.1.1: version "1.3.0" @@ -9139,9 +9210,9 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: - version "5.19.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.3.tgz#359baeba615aef13db4b8c4d77a2aa0d8814aa9e" - integrity sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg== + version "5.21.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.21.0.tgz#d2b27e92b5e56650bc83b6defa00a110f0b124b2" + integrity sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -9276,6 +9347,13 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -9370,6 +9448,16 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + +undici-types@~5.25.1: + version "5.25.3" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" + integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -9425,10 +9513,10 @@ upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -9528,10 +9616,10 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web-vitals@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.4.0.tgz#45ed33a3a2e029dc38d36547eb5d71d1c7e2552d" - integrity sha512-n9fZ5/bG1oeDkyxLWyep0eahrNcPDF6bFqoyispt7xkW0xhDzpUBTgyDKqWDi1twT0MgH4HvvqzpUyh0ZxZV4A== +web-vitals@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.0.tgz#3a5571f00743ecd059394b61e0adceec7fac2634" + integrity sha512-f5YnCHVG9Y6uLCePD4tY8bO/Ge15NPEQWtvm3tPzDKygloiqtb4SVqRHBcrIAqo2ztqX5XueqDn97zHF0LdT6w== webidl-conversions@^4.0.2: version "4.0.2" @@ -9676,9 +9764,9 @@ whatwg-encoding@^1.0.5: iconv-lite "0.4.24" whatwg-fetch@^3.6.2: - version "3.6.18" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.18.tgz#2f640cdee315abced7daeaed2309abd1e44e62d4" - integrity sha512-ltN7j66EneWn5TFDO4L9inYC1D+Czsxlrw2SalgjMmEMkLfA5SIZxEFdE6QtHFiiM6Q7WL32c7AkI3w6yxM84Q== + version "3.6.19" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973" + integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw== whatwg-mimetype@^2.3.0: version "2.3.0" @@ -9742,7 +9830,7 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" -which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.9: +which-typed-array@^1.1.11, which-typed-array@^1.1.9: version "1.1.11" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== @@ -9767,6 +9855,11 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + workbox-background-sync@6.6.1: version "6.6.1" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" @@ -9974,9 +10067,9 @@ ws@^7.4.6: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== xml-name-validator@^3.0.0: version "3.0.0" From 8ca4a70be022cf66dddded718b4f62931f8db7cb Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 21:10:40 +0200 Subject: [PATCH 24/78] chore: updating git ignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 4d29575..53a0468 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +.vscode From eb180e1cc840526277783e584f918450bd13b9e4 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 21:12:19 +0200 Subject: [PATCH 25/78] refactor: removing unused code --- src/utils/PriceUtils.spec.ts | 203 +---------------------------------- src/utils/PriceUtils.ts | 133 ----------------------- 2 files changed, 1 insertion(+), 335 deletions(-) diff --git a/src/utils/PriceUtils.spec.ts b/src/utils/PriceUtils.spec.ts index a0eacac..d0a833b 100644 --- a/src/utils/PriceUtils.spec.ts +++ b/src/utils/PriceUtils.spec.ts @@ -1,208 +1,8 @@ -import { - getCheapestPeriod, - getTwoCheapestPeriods, - getMostExpensivePeriod, - filterAndPadPrices, -} from "./PriceUtils" +import { filterAndPadPrices } from "./PriceUtils" import prices20230512 from "test/data/prices20230512.json" import prices20230513 from "test/data/prices20230513.json" import prices20230723 from "test/data/prices20230723.json" -describe("getCheapestPeriod", () => { - test("should return empty array if prices is empty", () => { - expect(getCheapestPeriod([], 3)).toEqual([]) - }) - - test("should return empty array if prices is smaller than n", () => { - expect( - getCheapestPeriod( - [ - { - dateTime: "2021-01-01T00:00:00", - price: 1, - }, - ], - 3, - ), - ).toEqual([]) - }) - - test("should return the cheapest period", () => { - expect(getCheapestPeriod(prices20230513, 3)).toEqual([ - { - id: "bdb87b7cea79b91f1c3b8c8b07790f52", - dateTime: "2023-05-13T12:00:00", - price: 0.032979999999999995, - }, - { - id: "d967f370e156eecf15eb74f7f19a003b", - dateTime: "2023-05-13T13:00:00", - price: 0.03258, - }, - { - id: "f42c091e495f0a505e1d74d33adeda5e", - dateTime: "2023-05-13T14:00:00", - price: 0.032240000000000005, - }, - ]) - }) - - test("should return the cheapest period when n is 1", () => { - expect(getCheapestPeriod(prices20230513, 1)).toEqual([ - { - id: "f42c091e495f0a505e1d74d33adeda5e", - dateTime: "2023-05-13T14:00:00", - price: 0.032240000000000005, - }, - ]) - }) - - test("should return the cheapest period when n is 24", () => { - expect(getCheapestPeriod(prices20230513, 24)).toEqual(prices20230513) - }) -}) - -describe("getTwoCheapestPeriods", () => { - test("should return empty array if prices is empty", () => { - expect(getTwoCheapestPeriods([], 3)).toEqual([[], []]) - }) - - test("should return empty array if prices is smaller than n", () => { - expect( - getTwoCheapestPeriods( - [ - { - dateTime: "2021-01-01T00:00:00", - price: 1, - }, - ], - 3, - ), - ).toEqual([[], []]) - }) - - test("should return the two cheapest periods 2023-05-12", () => { - expect(getTwoCheapestPeriods(prices20230512, 3)).toEqual([ - [ - { - id: "ae993073443a1bb44d5d8d5f7f9bb325", - dateTime: "2023-05-12T15:00:00", - price: 0.08502, - }, - { - id: "c70f72673a5969afa7e346c8ccadfe51", - dateTime: "2023-05-12T16:00:00", - price: 0.05947, - }, - { - id: "87dc0bd4efd7f496d63bb23fe743bd38", - dateTime: "2023-05-12T17:00:00", - price: 0.06605, - }, - ], - [], - ]) - }) - - test("should return the two cheapest periods 2023-05-13", () => { - expect(getTwoCheapestPeriods(prices20230513, 3)).toEqual([ - [ - { - id: "bdb87b7cea79b91f1c3b8c8b07790f52", - dateTime: "2023-05-13T12:00:00", - price: 0.032979999999999995, - }, - { - id: "d967f370e156eecf15eb74f7f19a003b", - dateTime: "2023-05-13T13:00:00", - price: 0.03258, - }, - { - id: "f42c091e495f0a505e1d74d33adeda5e", - dateTime: "2023-05-13T14:00:00", - price: 0.032240000000000005, - }, - ], - [ - { - id: "3a6127f54bafd29e4b775e2e0e703c19", - dateTime: "2023-05-13T15:00:00", - price: 0.03533, - }, - { - id: "370521bc0f501b5ac3a5969c35ecbabc", - dateTime: "2023-05-13T16:00:00", - price: 0.03728, - }, - { - id: "13c8a4ab57274db4fa9f7f05ce77a947", - dateTime: "2023-05-13T17:00:00", - price: 0.038869999999999995, - }, - ], - ]) - }) -}) - -describe("getMostExpensivePeriod", () => { - test("should return empty array if prices is empty", () => { - expect(getMostExpensivePeriod([], 3)).toEqual([]) - }) - - test("should return empty array if prices is smaller than n", () => { - expect( - getMostExpensivePeriod( - [ - { - dateTime: "2023-05-13T01:00:00", - price: 1, - }, - ], - 3, - ), - ).toEqual([]) - }) - - test("should return the most expensive period", () => { - expect(getMostExpensivePeriod(prices20230513, 3)).toEqual([ - { - id: "3bdc0728eb8cc5665b767c206b2dc82d", - dateTime: "2023-05-13T21:00:00", - price: 0.14053, - }, - { - id: "88bfd766c37939aad7360972af3707f9", - dateTime: "2023-05-13T22:00:00", - price: 0.13826, - }, - { - id: "7085e6975e811d4c06a33c443fafe05d", - dateTime: "2023-05-13T23:00:00", - price: 0.1333, - }, - ]) - }) - - test("Expensive period straddles midnight", () => { - expect(getMostExpensivePeriod(prices20230723, 3)).toEqual([ - { - "id": "b14a7bf97c418986c5af55ad79b157f1", - "dateTime": "2023-07-23T21:00:00", - "price": 0.14206 - }, - { - "id": "b2bccb7fb13ae214973eb4909e353c1f", - "dateTime": "2023-07-23T22:00:00", - "price": 0.157 - }, - { - "id": "83d26efb860b6bff36b06481189983f9", - "dateTime": "2023-07-23T23:00:00", - "price": 0.15965000000000001 - }]) - }) -}) - describe("filterAndPadPrices", () => { test("should return empty array if prices is empty", () => { expect(filterAndPadPrices([])).toEqual([]) @@ -211,5 +11,4 @@ describe("filterAndPadPrices", () => { test("If the period has passed return null array", () => { expect(filterAndPadPrices(prices20230513)).toEqual([]) }) - }) diff --git a/src/utils/PriceUtils.ts b/src/utils/PriceUtils.ts index dd5a911..042232e 100644 --- a/src/utils/PriceUtils.ts +++ b/src/utils/PriceUtils.ts @@ -1,123 +1,4 @@ import { Price } from "models/Price" -import { DateTime } from "luxon" - -const VARIANCE = 0.02 - -export type DayRating = "BUENO" | "NORMAL" | "MALO" - -const sortPricesByDate = (prices: Price[]): Price[] => { - return prices.sort( - (a, b) => - DateTime.fromISO(a.dateTime, { - zone: "Europe/Madrid", - }).toMillis() - - DateTime.fromISO(b.dateTime, { - zone: "Europe/Madrid", - }).toMillis(), - ) -} - -export const getCheapestPeriod = (prices: Price[], n: number): Price[] => { - if (prices.length < n) return [] - - const prices_sorted = sortPricesByDate(prices) - - let min_sum = Number.POSITIVE_INFINITY - let min_window: Price[] = [] - - for (let i = 0; i <= prices_sorted.length - n; i++) { - const window_sum = prices_sorted - .slice(i, i + n) - .reduce((sum, p) => sum + p.price, 0) - if (window_sum < min_sum) { - min_sum = window_sum - min_window = prices_sorted.slice(i, i + n) - } - } - - return min_window -} - -export const getTwoCheapestPeriods = ( - prices: Price[], - n: number, -): Price[][] => { - if (prices.length < n) return [[], []] - - let firstPeriod = getCheapestPeriod(prices, n) - - const remainingPricesBefore = prices.filter( - p => - DateTime.fromISO(p.dateTime, { - zone: "Europe/Madrid", - }).toMillis() < - DateTime.fromISO(firstPeriod[0].dateTime, { - zone: "Europe/Madrid", - }).toMillis(), - ) - - const remainingPricesAfter = prices.filter( - p => - DateTime.fromISO(p.dateTime, { - zone: "Europe/Madrid", - }).toMillis() > - DateTime.fromISO(firstPeriod[n - 1].dateTime, { - zone: "Europe/Madrid", - }).toMillis(), - ) - - const firstPeriodBefore = getCheapestPeriod(remainingPricesBefore, n) - const firstPeriodAfter = getCheapestPeriod(remainingPricesAfter, n) - - let secondPeriod: Price[] = [] - - if (firstPeriodBefore.length === n && firstPeriodAfter.length === n) { - const firstPeriodBeforeAverage = calculateAverage(firstPeriodBefore) - const firstPeriodAfterAverage = calculateAverage(firstPeriodAfter) - - secondPeriod = - firstPeriodBeforeAverage < firstPeriodAfterAverage - ? firstPeriodBefore - : firstPeriodAfter - } else { - secondPeriod = - firstPeriodBefore.length === n - ? firstPeriodBefore - : firstPeriodAfter - } - - // Only show the second period if it is in the future and the average is within the variance of the first period - if ( - Math.abs( - calculateAverage(firstPeriod) - calculateAverage(secondPeriod), - ) > VARIANCE - ) { - secondPeriod = [] - } - - return [firstPeriod, secondPeriod] -} - -export const getMostExpensivePeriod = (prices: Price[], n: number): Price[] => { - if (prices.length < n) return [] - - const prices_sorted = sortPricesByDate(prices) - - let max_sum = Number.NEGATIVE_INFINITY - let max_window: Price[] = [] - - for (let i = 0; i <= prices_sorted.length - n; i++) { - const window_sum = prices_sorted - .slice(i, i + n) - .reduce((sum, p) => sum + p.price, 0) - if (window_sum > max_sum) { - max_sum = window_sum - max_window = prices_sorted.slice(i, i + n) - } - } - - return max_window -} export const calculateAverage = (prices: Price[]): number => { return ( @@ -126,20 +7,6 @@ export const calculateAverage = (prices: Price[]): number => { ) } -export const calculateRating = (prices: Price[], median: number): DayRating => { - const currMedian = calculateAverage(prices) - const lowLine = median - VARIANCE - const highLine = median + VARIANCE - - if (currMedian < lowLine) { - return "BUENO" - } else if (currMedian >= lowLine && currMedian <= highLine) { - return "NORMAL" - } else { - return "MALO" - } -} - // utils.ts export const formatEuro = (amount: number): string => { return new Intl.NumberFormat("es-ES", { From bc4616d27b3ad8ef9213c069883f4fd47a1c6ec5 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 21:46:37 +0200 Subject: [PATCH 26/78] refactor: created a hook for regional date times --- src/components/PriceChart.tsx | 32 ++++++++--------- src/hooks/RegionalDateTime.tsx | 22 ++++++++++++ src/pages/Dashboard.tsx | 63 +++++++++++++--------------------- src/utils/PriceUtils.spec.ts | 2 -- 4 files changed, 61 insertions(+), 58 deletions(-) create mode 100644 src/hooks/RegionalDateTime.tsx diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index f668e53..4396e66 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -1,5 +1,4 @@ import React, { useEffect, useMemo, useRef, useState } from "react" -import { DateTime } from "luxon" import { Chart, ChartData, ChartOptions } from "chart.js/auto" import Annotation, { LineAnnotationOptions } from "chartjs-plugin-annotation" import { Price } from "models/Price" @@ -7,6 +6,7 @@ import { useTheme } from "@mui/material/styles" import { Pair } from "models/DailyPriceInfo" import { filterAndPadPrices } from "utils/PriceUtils" import { useI18nContext } from "i18n/i18n-react" +import { useDateTime } from "hooks/RegionalDateTime" Chart.register(Annotation) @@ -40,6 +40,7 @@ const DailyChart: React.FC = ({ expensivePeriod, }) => { const { LL } = useI18nContext() + const { now, fromISO } = useDateTime() const theme = useTheme() const [currentPriceLocation, setCurrentPriceLocation] = useState(-1) const chartRef = useRef(null) @@ -53,16 +54,11 @@ const DailyChart: React.FC = ({ const canvasWidth = prices.length - 1 // Use Luxon's DateTime objects with Europe/Madrid timezone - const startTime = DateTime.fromISO(prices[0].dateTime, { - zone: "Europe/Madrid", - }).toMillis() - const endTime = DateTime.fromISO( + const startTime = fromISO(prices[0].dateTime).toMillis() + const endTime = fromISO( prices[prices.length - 1].dateTime, - { zone: "Europe/Madrid" }, ).toMillis() - const currentTime = DateTime.now() - .setZone("Europe/Madrid") - .toMillis() + const currentTime = now().toMillis() if (currentTime < startTime || currentTime > endTime) return setCurrentPriceLocation(-1) @@ -83,7 +79,7 @@ const DailyChart: React.FC = ({ return () => { clearInterval(intervalId) } - }, [prices, showCurrentPrice]) + }, [fromISO, now, prices, showCurrentPrice]) const chartOptions = useMemo(() => { const chartOptions: ChartOptions = { @@ -204,9 +200,7 @@ const DailyChart: React.FC = ({ const chartData: ChartData<"line", (number | null)[]> = useMemo(() => { return { labels: paddedPrices.map(item => - DateTime.fromISO(item.dateTime, { - zone: "Europe/Madrid", - }).toFormat(dateFormat), + fromISO(item.dateTime).toFormat(dateFormat), ), datasets: [ { @@ -277,13 +271,17 @@ const DailyChart: React.FC = ({ ], } }, [ - averageDataset, + paddedPrices, cheapestPeriodsPadded, - dateFormat, + theme.palette.success.main, + theme.palette.error.main, + theme.palette.info.main, + theme.palette.secondary.main, expensivePeriodPadded, - paddedPrices, - theme, LL, + averageDataset, + fromISO, + dateFormat, ]) useEffect(() => { diff --git a/src/hooks/RegionalDateTime.tsx b/src/hooks/RegionalDateTime.tsx new file mode 100644 index 0000000..26152da --- /dev/null +++ b/src/hooks/RegionalDateTime.tsx @@ -0,0 +1,22 @@ +import { DateTime } from "luxon" +import { useCallback } from "react" + +const DEFAULT_TIMEZONE = "Europe/Madrid" + +export const useDateTime = (timezone: string = DEFAULT_TIMEZONE) => { + const now = useCallback(() => { + return DateTime.local().setZone(timezone) + }, [timezone]) + + const fromISO = useCallback( + (iso: string) => { + return DateTime.fromISO(iso).setZone(timezone) + }, + [timezone], + ) + + return { + now, + fromISO, + } +} diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 597f0ad..0a7da46 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -3,7 +3,6 @@ import Box from "@mui/material/Box" import Typography from "@mui/material/Typography" import Paper from "@mui/material/Paper" import DailyChart from "components/PriceChart" -import { DateTime } from "luxon" import { Price } from "models/Price" import { getDailyPriceInfo, getPrices } from "services/PriceService" import { calculateAverage } from "utils/PriceUtils" @@ -12,12 +11,12 @@ import Metric from "components/Metric" import { DailyPriceInfo } from "models/DailyPriceInfo" import { DayRating } from "models/DayRating" import { useI18nContext } from "i18n/i18n-react" +import { useDateTime } from "hooks/RegionalDateTime" const DashboardContent: React.FC = () => { const { LL } = useI18nContext() - const [currentDate, setCurrentDate] = useState( - DateTime.now().setZone("Europe/Madrid"), - ) + const { now, fromISO } = useDateTime() + const [currentDate, setCurrentDate] = useState(now()) const [pricesToday, setPricesToday] = useState(null) const [pricesTomorrow, setPricesTomorrow] = useState( null, @@ -64,14 +63,12 @@ const DashboardContent: React.FC = () => { }, [currentDate]) useEffect(() => { - // Set date to 3 days ago - const fetchData = () => - setCurrentDate(DateTime.now().setZone("Europe/Madrid")) + const fetchData = () => setCurrentDate(now()) // Calculate time remaining until the start of the next hour - const now = DateTime.now().setZone("Europe/Madrid") - const nextHour = now.startOf("hour").plus({ hour: 1 }) + const currTime = now() + const nextHour = currTime.startOf("hour").plus({ hour: 1 }) const millisecondsUntilNextHour = nextHour.diff( - now, + currTime, "milliseconds", ).milliseconds @@ -92,7 +89,7 @@ const DashboardContent: React.FC = () => { return () => { clearTimeout(timeoutId) } - }, []) + }, [now]) const median = useMemo( () => calculateAverage(pricesThirtyDays), @@ -102,14 +99,12 @@ const DashboardContent: React.FC = () => { const currentPrice = useMemo(() => { return ( pricesToday?.prices.find(price => { - const priceDateTimeInMadrid = DateTime.fromISO( - price.dateTime, - ).setZone("Europe/Madrid") + const priceDateTimeInMadrid = fromISO(price.dateTime) return currentDate.hasSame(priceDateTimeInMadrid, "hour") }) ?? null ) - }, [pricesToday, currentDate]) + }, [pricesToday?.prices, fromISO, currentDate]) const minPriceToday = useMemo(() => { if (!pricesToday) return null @@ -153,7 +148,7 @@ const DashboardContent: React.FC = () => { }, [pricesThirtyDays]) const todayRatingText = useMemo(() => { - const date = currentDate.setZone("Europe/Madrid").toFormat("dd/MM") + const date = currentDate.toFormat("dd/MM") switch (pricesToday?.dayRating) { case DayRating.BAD: @@ -175,9 +170,9 @@ const DashboardContent: React.FC = () => { if (!pricesTomorrow || pricesTomorrow.prices.length === 0) return LL.TOMORROW_NO_DATA() - const date = DateTime.fromISO(pricesTomorrow.prices[0].dateTime) - .setZone("Europe/Madrid") - .toFormat("dd/MM") + const date = fromISO(pricesTomorrow.prices[0].dateTime).toFormat( + "dd/MM", + ) switch (pricesTomorrow?.dayRating) { case DayRating.BAD: @@ -193,7 +188,7 @@ const DashboardContent: React.FC = () => { currentDate: date, }) } - }, [pricesTomorrow, LL]) + }, [pricesTomorrow, LL, fromISO]) return ( { { { { { { test("should return empty array if prices is empty", () => { From e692d8b95ae5aac7ab1f5f20a6bb7bbe366a68c5 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 22:02:33 +0200 Subject: [PATCH 27/78] chore: updating version --- package.json | 2 +- public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3ffce3b..db5a2b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.4.0", + "version": "2.4.1", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index 5e96c94..502c211 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.1.2", + "version": "2.4.1", "start_url": ".", "display": "standalone", "theme_color": "#000000", From c229172788f17e8d5784639abe3179b0577ecaee Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 22:03:55 +0200 Subject: [PATCH 28/78] chore: updating version --- package.json | 2 +- public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index db5a2b5..2933495 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.4.1", + "version": "2.1.3", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index 502c211..365d7a9 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.4.1", + "version": "2.1.3", "start_url": ".", "display": "standalone", "theme_color": "#000000", From 8c27d418cdf5dbf3106b057d0ccd3097fc5b35e1 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 10 Oct 2023 22:09:58 +0200 Subject: [PATCH 29/78] chore: updating version --- package.json | 2 +- public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2933495..db5a2b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.1.3", + "version": "2.4.1", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index 365d7a9..502c211 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.1.3", + "version": "2.4.1", "start_url": ".", "display": "standalone", "theme_color": "#000000", From 32dbd4e2c3a2df08bbbb27c79a2b0a33a7c94a03 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 17 Oct 2023 16:34:34 +0200 Subject: [PATCH 30/78] feat: variable periods --- package.json | 2 +- public/manifest.json | 2 +- src/components/PriceChart.tsx | 106 ++++++++++++++++------------------ src/models/DailyPriceInfo.ts | 9 +-- src/pages/Dashboard.tsx | 8 +-- src/services/PriceService.ts | 2 +- 6 files changed, 58 insertions(+), 71 deletions(-) diff --git a/package.json b/package.json index db5a2b5..97b5c99 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.4.1", + "version": "2.5.0", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index 502c211..3eab7e6 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.4.1", + "version": "2.5.0", "start_url": ".", "display": "standalone", "theme_color": "#000000", diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index 4396e66..ad8ece4 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -3,7 +3,6 @@ import { Chart, ChartData, ChartOptions } from "chart.js/auto" import Annotation, { LineAnnotationOptions } from "chartjs-plugin-annotation" import { Price } from "models/Price" import { useTheme } from "@mui/material/styles" -import { Pair } from "models/DailyPriceInfo" import { filterAndPadPrices } from "utils/PriceUtils" import { useI18nContext } from "i18n/i18n-react" import { useDateTime } from "hooks/RegionalDateTime" @@ -26,8 +25,8 @@ export interface DailyChartProps { chartId: string dateFormat: string showCurrentPrice: boolean - cheapestPeriods: Pair - expensivePeriod: Price[] + cheapestPeriods: Price[][] + expensivePeriods: Price[][] } const DailyChart: React.FC = ({ @@ -37,7 +36,7 @@ const DailyChart: React.FC = ({ dateFormat, showCurrentPrice, cheapestPeriods, - expensivePeriod, + expensivePeriods, }) => { const { LL } = useI18nContext() const { now, fromISO } = useDateTime() @@ -168,17 +167,15 @@ const DailyChart: React.FC = ({ return chartOptions }, [currentPriceLocation, theme]) - const cheapestPeriodsPadded = useMemo(() => { - return [ - filterAndPadPrices(cheapestPeriods.first), - filterAndPadPrices(cheapestPeriods.second), - ] - }, [cheapestPeriods]) + const cheapestPeriodsPadded = useMemo( + () => cheapestPeriods.map(period => filterAndPadPrices(period)), + [cheapestPeriods], + ) - const expensivePeriodPadded = useMemo( - () => filterAndPadPrices(expensivePeriod), + const expensivePeriodsPadded = useMemo( + () => expensivePeriods.map(period => filterAndPadPrices(period)), - [expensivePeriod], + [expensivePeriods], ) const paddedPrices = useMemo(() => { @@ -198,30 +195,13 @@ const DailyChart: React.FC = ({ ) const chartData: ChartData<"line", (number | null)[]> = useMemo(() => { - return { - labels: paddedPrices.map(item => - fromISO(item.dateTime).toFormat(dateFormat), - ), - datasets: [ - { - label: "Hide", - data: cheapestPeriodsPadded[0], - backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), - showLine: false, - fill: "start", - pointRadius: 0, - }, - { - label: "Hide", - data: cheapestPeriodsPadded[0], - backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), - showLine: false, - fill: "end", - pointRadius: 0, - }, + const datasets = [] + + cheapestPeriodsPadded.forEach((period, index) => { + datasets.push( { label: "Hide", - data: cheapestPeriodsPadded[1], + data: period, backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), showLine: false, fill: "start", @@ -229,15 +209,20 @@ const DailyChart: React.FC = ({ }, { label: "Hide", - data: cheapestPeriodsPadded[1], + data: period, backgroundColor: hexToRGBA(theme.palette.success.main, 0.2), showLine: false, fill: "end", pointRadius: 0, }, + ) + }) + + expensivePeriodsPadded.forEach((period, index) => { + datasets.push( { label: "Hide", - data: expensivePeriodPadded, + data: period, backgroundColor: hexToRGBA(theme.palette.error.main, 0.2), showLine: false, fill: "start", @@ -245,30 +230,37 @@ const DailyChart: React.FC = ({ }, { label: "Hide", - data: expensivePeriodPadded, + data: period, backgroundColor: hexToRGBA(theme.palette.error.main, 0.2), showLine: false, fill: "end", pointRadius: 0, }, - { - label: LL.PRICE(), - data: paddedPrices.map(item => item.price), - borderColor: theme.palette.info.main, - backgroundColor: hexToRGBA(theme.palette.info.main, 0.4), - pointRadius: 0, - }, - { - label: LL.THIRTY_DAY_AVG(), - data: averageDataset, - borderColor: theme.palette.secondary.main, - backgroundColor: hexToRGBA( - theme.palette.secondary.main, - 0.2, - ), - pointRadius: 0, - }, - ], + ) + }) + + datasets.push( + { + label: LL.PRICE(), + data: paddedPrices.map(item => item.price), + borderColor: theme.palette.info.main, + backgroundColor: hexToRGBA(theme.palette.info.main, 0.4), + pointRadius: 0, + }, + { + label: LL.THIRTY_DAY_AVG(), + data: averageDataset, + borderColor: theme.palette.secondary.main, + backgroundColor: hexToRGBA(theme.palette.secondary.main, 0.2), + pointRadius: 0, + }, + ) + + return { + labels: paddedPrices.map(item => + fromISO(item.dateTime).toFormat(dateFormat), + ), + datasets: datasets, } }, [ paddedPrices, @@ -277,7 +269,7 @@ const DailyChart: React.FC = ({ theme.palette.error.main, theme.palette.info.main, theme.palette.secondary.main, - expensivePeriodPadded, + expensivePeriodsPadded, LL, averageDataset, fromISO, diff --git a/src/models/DailyPriceInfo.ts b/src/models/DailyPriceInfo.ts index 9c63c5e..4721c4a 100644 --- a/src/models/DailyPriceInfo.ts +++ b/src/models/DailyPriceInfo.ts @@ -1,14 +1,9 @@ import { DayRating } from "./DayRating" import { Price } from "./Price" -export interface Pair { - first: T - second: T -} - export interface DailyPriceInfo { dayRating: DayRating prices: Price[] - cheapestPeriods: Pair - expensivePeriod: Price[] + cheapestPeriods: Price[][] + expensivePeriods: Price[][] } diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 0a7da46..3e0925d 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -287,7 +287,7 @@ const DashboardContent: React.FC = () => { dateFormat="HH:mm" showCurrentPrice={true} cheapestPeriods={pricesToday.cheapestPeriods} - expensivePeriod={pricesToday.expensivePeriod} + expensivePeriods={pricesToday.expensivePeriods} /> )} @@ -362,7 +362,7 @@ const DashboardContent: React.FC = () => { dateFormat="HH:mm" showCurrentPrice={true} cheapestPeriods={pricesTomorrow.cheapestPeriods} - expensivePeriod={pricesTomorrow.expensivePeriod} + expensivePeriods={pricesTomorrow.expensivePeriods} /> )} @@ -383,8 +383,8 @@ const DashboardContent: React.FC = () => { chartId="DailyMedians" dateFormat="MMM dd" showCurrentPrice={false} - cheapestPeriods={{ first: [], second: [] }} - expensivePeriod={[]} + cheapestPeriods={[]} + expensivePeriods={[]} /> diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index d0229c1..890f0d9 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -4,7 +4,7 @@ import { DailyPriceInfo } from "models/DailyPriceInfo" import { Price } from "models/Price" // const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" -const PRICES_API = "https://elec-api.daithiapp.com/api/v1/price" +const PRICES_API = "http://localhost:8080/api/v1/price" export const getPrices = async ( start: DateTime, From 7103908088bbce762e15abed35db6b82affd8d04 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 17 Oct 2023 17:21:48 +0200 Subject: [PATCH 31/78] fix: api uri --- src/services/PriceService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index 890f0d9..f888eec 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -3,8 +3,8 @@ import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" import { Price } from "models/Price" -// const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" -const PRICES_API = "http://localhost:8080/api/v1/price" +const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" +// const PRICES_API = "http://localhost:8080/api/v1/price" export const getPrices = async ( start: DateTime, From c57382027eba9fd1171d49951994532e7ec4625a Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Tue, 17 Oct 2023 22:03:18 +0200 Subject: [PATCH 32/78] fix: api uri --- src/services/PriceService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index f888eec..68b98a4 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -3,7 +3,7 @@ import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" import { Price } from "models/Price" -const PRICES_API = "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" +const PRICES_API = "https://elec-api.daithiapp.com/api/v1/price" // const PRICES_API = "http://localhost:8080/api/v1/price" export const getPrices = async ( From 0fc7fe7fa42ef3b324270e99e001df2e5fb3416d Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 18 Oct 2023 15:53:59 +0200 Subject: [PATCH 33/78] feat: adding env variable for api url --- .dockerignore | 1 + .gitignore | 2 ++ package.json | 1 + src/services/PriceService.ts | 5 +++-- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index 8ab31f8..5f3c0cc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -8,3 +8,4 @@ gradle *.bat *.sh yarn.lock +.env diff --git a/.gitignore b/.gitignore index 53a0468..8774281 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ yarn-debug.log* yarn-error.log* .vscode + +.env diff --git a/package.json b/package.json index 97b5c99..8fca8bd 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "test": "react-scripts test", "eject": "react-scripts eject", "format": "yarn prettier --write src", + "i18n": "typesafe-i18n", "format:check": "yarn prettier --check src" }, "eslintConfig": { diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index 68b98a4..f684212 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -3,8 +3,9 @@ import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" import { Price } from "models/Price" -const PRICES_API = "https://elec-api.daithiapp.com/api/v1/price" -// const PRICES_API = "http://localhost:8080/api/v1/price" +const PRICES_API = + process.env.REACT_APP_API_URL ?? + "https://elec-api.daithiapp.com/api/v1/price" export const getPrices = async ( start: DateTime, From 94ff47008b2a1bedeb1c618931570ce1fa062681 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 18 Oct 2023 22:18:21 +0200 Subject: [PATCH 34/78] chore: updating logos --- package.json | 2 +- public/logo192.png | Bin 5347 -> 61977 bytes public/logo512.png | Bin 9664 -> 223322 bytes public/manifest.json | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8fca8bd..929c63c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.5.0", + "version": "2.5.2", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/logo192.png b/public/logo192.png index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..7aed1fb773841bef03bf3ecb8d89f59bab93a2af 100644 GIT binary patch literal 61977 zcmV(%K;plNP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O54?lI1v(W&6)j)DVa_F&uyZMeYoG_`Md6M`UGY zRY|wp4)<_#H#>Gn0;*g0)(7m`|LgzzuK)Ot{|GszeC5)f+H1Y}FZbNz;4jbp`)`~- z!=2Bc=fC&Qm-zQTeg69U3z1JHKBnJ4pZe$Ze|8>_bp*GVz%6w=L~DaGFnB>zuW8h+vY`S?P9`S;A9G1Wh7#)AA;>vX#_fA04B zrzcPU_`*N0$e;iEeSbb${`WV%{&jo*{#*EOKL0PfTgLD67oYg&U8#S6{4YNr%D;R* z{dGs~)qlEj{l}I6>GP~w{inx#{_+3!t>^mAL-Q0PSN5j#)j z{9pKcJHI-=o(ng4v7LqOPkz0jhsZX5A%_)4_`*IP-|%vaIqul_7~>n$`P`FQ?D0+a zb+(#c;fpQxw9>=2zsF8;ihtirIM?mxa&LIJ@Cv*#2Hq@aG}p15{|CSR+c)|?eJ6zb z`FpLnuc%#d8}6Kc@+vkYe1F+dISc&PuYdi|eNF6OIm`U;fa9LOx0ogTu`TT=osCYs zu<-Hcw4tp(Z@?09?ZVB3#17mwq!MblTZ}CP*70F~259x21^xntdqJwuHeD~l5W6U_y%(Kio+k9r9 zT2*;E`Kh@6#7+k$9kYtsd8!3#a0dSDka+`Pv;2+;gw|+_5nzkmt7DKxjc@}BKlEPwiX$&DNOT6+8FZ%(}yZlsmMqVOhfzZZ-D zl>I&Hdx@T0wT0S7&11DX--~V8t-iTGZ;L!l=e<4_dd$UlWbA3N!nJ(&J9F9lYy16J z$#1eY{j1z-c<=AI=DfY%cL~q)d-ee9zg%iwgEvaNk>4eY3Zr}_cHXJ`Rx|c7Lrpui z@7`BmaqpWw?p$K7x??0P^%=tUIk5noJMg=Yv}WAk){cu9u!s-EH>~^HX-R zdB{*EM)a%~Gc9A4M;cW2YGd%cd9smX@`d!K{jt|&?ze%5Z2#^LYa}Y}U0J1h^Y(qO z!nen?US8kc9C~HWf(dXkqaif{DD`?zjH=>3b>UTmO$63=TXC+~UP!`B zIQ_-9)|am4bXx|aD8{h0>PVDX8Z^e8{6hjZ1S0{yzI>b_^+BDmM>?V@a6Zn@FAe~ z(am|_498zz1;9GjTrnR0mEtTcWq~lfqs2Kc-ulf$RBdJ6PnoH)GWZ7T4H8TqbhXyU za&K;IzLfAKQLVwCxEyBxVNh4(jt7gg0a*Ul{=B*ppHq1c-vTFj^;@TF#J$#+__P*J z&jlwGeiK-((7fU^z6uCD8yDjJ_HH2a`0MH3TU=SCvitcXM6rnm>u3tphhwt29A0L-(O$ZFG2Ekv- z@q+VDEXE6XHoW=)(*uCDGp36L;P3;Pm3hQ(5@QDz_~Hqh1?O#Y1etjlZV{J-v_IVR z%EV|c=`G-MmAJq*^NG+e3=X0{8~Dz1LuNK41YR+p4)eg0k*DE>rNgrxB3+yjcka1K zP`H~i1FJC;Q6%6*1G}k&lS!mCVD_@(SD$?w4JKwtJmbmM#t6_D#sneaeL)bSbnOM^g1dud z`}rX0o4>>9LjM-Vj}PJRUz-=840T%BrG82{=VyD!AX)IRmgMYvT7j%cH`f|hf1-ORQ*dam% zdkn9{0Q)9TLt8pg3SI;jL*;OpWrCpcin^ar@xlZ%%V6@37vUr-aHKLb*JlJ2&IkSN zmzu*+JrsGmZ;yP9#gF{O+*yy^r4w>C0fIO^s#W8W}2X+o) zOAT`lu1$Z5r}^EZKuW-gT6==AAzZkT2nl)cwh3{=4wobxM}PZsuwq?LokSTN^qT}+ zOz~!q?gk;N2TmXjA8t;}d$?oh5hnM=#kYXZH;>$)ahU&gFSlY0X>tLl@qdKnPSK?V zq44%f^sgybmF^NMhH*iesm#7+Vw~Z-URso_1f=7A>@rcnhm91u>ZexxhYCsQCShg${TOksUDP34!1?=3RO( zxEc5Kwkz^2>;^^(XD7}W9UdHO4(J2k)G-ylaRAlYcX<_ASd8XP%;#~?TY2;HHaJ7XsC)xG`?s!0e5UWGDq#KB1`?2+v}Un=cO!Owya z|Et^;e$WxfY z^FrS^Yb(c$^A*SzJX*d$;6Tp6SO{bZ;(qlTX7%L&win%r07z(rtbIlmJknGOixo9+ z78MEve>dfgze35ESVQn9BfE2 zC6v1dP<8C1C`KLKUpF0rbwg=Z0LiBn(#fX~eU4=xmO7DYaCA;Kti+tH1sT@w0l5=RjQc-E3x zJTO}n|AuLNuo(m(CI@>aPC@zHB%_~TPACN)+01@{C4|k2o#M9W5KJF8N#-M2%N^bF z4`shWEiR6fn)3R|m0@`%iE&3b)rIouWw9^-n^D)<3BYh*nc;wOKC z*Sm4wb0iy4oQQh&ivW+}Ne~_hW4R}aE0&e+ncZUbZ936p7RuJR%5SudD{3 z+6{lPnoN2NSNd{EJV*8J#-R;+esY6}N+YoDxF$B!_PAjBZwD>WOWZN>vt>l_2NI7b z8g?~wSQVlJYK~rnM016KGFOe>6J|)vOcxC60fE6a1SlJx3gE`xFZLuLgRp)v6Se#i z^Z71NmL*B8KzWujE_u0r<&3uxe{T>%KMT4~QD?xkdNPwR6I2rQbrTm8GF#f)VJ!qb~ng@CGgtTfhO*B z5>3I`2b;^) zLuGwod5GT;Tp;Y3Z6`_vH!n7bT)Y*;50i!FvjNY?IcxQ|o$NuG~ z(l*4h^TbKic3jBX@7mv&q5N|N0}okbLNy-`_a_h!JlffRN;z8ACvw?VJ* zaPP_p&AoVr1ymM-Qb4b8r-WrV=DVLJL4xIN><5$>IR|(Hvi7QYH4>Z!uVb_52KNSw2f+kjzGF!{1xpvKC#G9mBD+H<61x5 zOYArEMNF^gwN_bEfbWkHauq+NM?k#<1HhX&f|G*z&X&95RmCo4<@;aWus)`anr2M^M}SMb_ED-RAgllbx!6Dme~g$TmxAf-J2n{mTcgq6 zynP%XM1!3rsTtAmvsS?l<7zu@*lViw;;pR?B9>v!yIE|Z ziD9ucka7@R`o)bwd=STg0N`0oF>#OiCTsz(Ulet2g&wAk?C!pz5$M1T!8QjUy~WA$&%QN3mW*;0iKy6G2>%D1}lcV3vjFL}GbAdCjh# zx)DhU>U@7?^SsM1;5JB%3&@8f6lk|HLw01bf;S8746YrEn)>VAbXO!e0YZ$@BNc*Mf?!=v6KkW0#Zhe z3nH2nZ|>2&B}7`EmXoU_OhNmCnnmQ@>>2F#k)$B+az%>b16VAs2Q!RNsYl+ALWnF_ zMR2^<;n`CwMv$rc5ym!#1w;Z)IPS+5eCY}=WCJ@Jcxg4#!Ld&*3;xq_{YB)C(lt=+ z^_Cx^8;XFqcPci|mk^z6T?v1BOJ)@_(BJm`)F>x`*c_pZ==g-ol`x5v2pLoVhz7I` zsu&Jn91EwdD*QKtU<8SNvi#_8Il%!2DWgfOU&70qd1e*8`uR$NjKD#^OHS-!^K4Kb zIN#E18aEY1Vlg_4-zz8?UQz5NKZX3;DuLeF0wEAx$? zk_Okc`e>mMnP^NVN?$~pAcqAuZ{J}9h{V_ax(s8&Z;})ST*U<7n&>CKVZR8Gc7%C0 zcW2rM1qN4S1(f}7+v%4Ro~Dipl+c@j!h>!ZV?~!FvoPPm^Bn{#ZmS0vTOMWvQbt)I z8Zl$STHW1L5Dxz|_NU{41k9;Jn_4j&<|?9#6lYz^=U-rgdutCwyy)M@oDdKbsqk?<@{tl{K3i zYhi_k^(1+D^E+YsR{@T)8ED8w24yqXNgpn!T*Pd@4iw#f54G!GD!WwbU*kte{`wos{D#Q%#0y`R5;aBe*!E%Cj zTPBo1X_*u18_|zSW|QUF+YAix0(3%Yb z9k3L0{;UgO9|T>M6@io`m}!B93h}G{>dYv3Fb(^?iPUU6L>k?VZR}q#VRx<*Oa3{O z;M)Ko`-jne-}pO>r2jgMoV)ujBFX<{Ah`?HlNYq+%W{T8luXC%yMt83 zVD|Ke!$3#zyO>t2+e(CgMgPELu}Otd_*v5hQouCKEG{?K)IYFH2pKoX!Yx3QX1-rQ z!koc_U1B4EmZUaVyn;D>D_(3-w39$=Pd)ycD4I;bq8(D|cvHbs^UMovdh2YVB5_*+ z((otcNxPs~w<#dq)&f1?XiB6_oMTrg1KOMT0|1%o1EksILki_iDS{6e9dCUh?Cqq0 zA8#axDdA-Cw>AXg0}Lsa?gemTz4K2kkT{p&HtTCY@%7~RK_Xt1Cmv6%W%U+V(xTB2 zI{DrKhkOLER#0>Gv1U&Y#D2ih7KnpSK{B)U*ACMb!XWwMZa_#g(I2*ohl3fzLLI;# zVE+hoyQ>JE#9-pMPup^M-fL=!ZNPOLBH|}MdcI5U8{*OhXt`L+w0ctP+ zd+0uRlEIFi{1jqEXgLWfNo8Xa*idic>&sq+Rlo%A3_fF z(f(9W+nQ?+_CY}ffEA+1bNwLjgCir#N^s9@dBNccxi^N~A*y$`fUq;bKcojN;s7*o zXc;7o56s3c0R=e*f5}khyh3~@TV0V_{Wf7CWTAkHwH)G&sf18(L@N9U;4GMVxwO5g zfE4)h_ZsG(jCI1W0n1@UM<#`}8eCy~Ja?4{b;C6%O>}ujxrp&V1OxyjIiCiNeX`xD z&@KqyV`|Uz&#F1!e968U$T+y~4fbsjodp4E;gJMv)B!f}sp>@!ybS7*CyoT&?RF}` z@fsWjW0*RNFH{3hjcyuwKay#(}bEZwG^(G6~t`vn*Oq$EHbE7M>M2#omE~Vn8S{)CQ5E z^KF^wU7?qL_hN zN?b>NtQxeAN9H<0Ox31bJLM{220OW-34rPI-g38YucVFW@glO9HnH5DY>NfC5>)w3 z*mE(b+KCk|l3Ral0D~4hYd|3F zw!yh_z$ygTn~xJ~GYOn9&8rYeA%T#ph9iyB-V}HP7I@oZnYj;eE5c zmR33;98$7w`$l5zfaB@~ivL-#l_K4sHb4;hA9_?OgflK!Xo5u{CO|f<5dD|LJNjTt{^8ienhMnw9p`UPXs!I zaXg_}L^Tl~4xT}b8;qg7*;JWkf)t&tX(++0>T{OPCO^A83K8TxQVJx5-d7?gJpZn! zQRFf)U6j6I?qCEGLL;&87OlzSiqZNKSc>I$Yk>1nqMV-0@5S1!jfvK#d;w`Rm%YFj z?kWdT=z#hNy2JZG{c@*!<6$=aS+D0|2`Uey4QR<`#P0mQ#5^;c{TH$WZuJG*u-MG? z*|L#QGl?+NhuM+mgVO0X-=VRr=*DyjnJ*AvH%CHdrFVc3-6F}mP93t?p~1%3uK6vj)74f$Jh+rUBGHE?E>&-!C&G$ZH=3}32h5Tiu zn$2UG%M^1=2!Ts$54H)_R$^BTzqsKWc#eTrU?S)y0@ozY+fxJ%!yJKF{M9DrU~4SsZyTn1FQ}EQLa_z{lb;+LwSPstzRtyDA52zNc{JE?S3qK`yW@ zsLb^RSiV_LlXCWFMH4@|0k2kxb+8F^cu$|@(dQ_v4i5wD#4@qeNhmve^>ev3Uq=o% zGnTND_wZmk?|OfY)EJ2Grspg2KL7P*%~p49}}d)81Qn zmDP@$aCfW-&-4yU838-avO4VJ+In@%pRH%y8qR-9Rg3l8YLWmjdQ2Cb4j;^;;96Es5%dk1+VEX$Bx z<;*s#*r|7(3&U_=E8a@_O^~%h3AuGt2Gi~Xt5Yq83VEJ9CjgV<1t2VR>Ga=R0!g%C zL7#AAP2QT6jeW&FtkC7)D58(h%2%FK3;qAC<7*os7(laO2^-G_`WAFnfn|-=RA6SV4a1^)M3cGJmc`x7( zWk>ZA_)#+el1=M~)Hzx$r=0>Oe4DvJZt?g~MVx886*vMt1 zy1Wyt)W|=k*{T~A@YyWFf<(OGcIUInb2E1^KztCv1_4B-ptIn?KEV|WZpLOusIyIC zc*4*`&HM(Cbs$^8g%j0bvdVmTw>?aD7em`%ltjgFnaVZ^`NKwnU~2HWoXuH3Ez6XC zr64SN*^6qWKG~oE=X>h+vD2`ha$({(1k^DF)CCcC!n6SZK4PJX7{~J4atWEn!mP60 zMV>i$2_YRpQDOJM2nIw1gPa88`GC$BlgF{cu#XY3G>43t#K^bH4T=EN|Q;e>)@Fv1>f2HAK0(6jSWbEaYGr!KAwKr2q%%cm zgVLXl`uNLDJD&dg2z^2Lu|!`FAP=E&uJ=!q<$~+MK3_YJ(8|g7I&3w5>Q~9KoSsOu z5;4>g)&=2(JQ4Xp*7lj@v9HJOV5qTU0Zxg$8=i~1+|@w>ODkG~Azd+~r`Qvb2iLN3 z=`nHkRlsGlBi6}&nH&`*Pk{UyPUBSPpT{DQFQ@MbEbB@2N_MlRKi$N3z;0g;m^|<4 z>kprMZO`?|RJ`K8TF_QL%rdhJqSFf-L23$ab_#>AiVx7Rp|l+fwSeh3>PZ*pK2DqE zYZp3{2XCoh)9Kv?{7nG-hU`!wzXpo-Yw`wb(A%GVcG57+0P}|Zytc1`-X^xB`IsES z&vO4MHvg;-b8&!gW{|@95-`4x*Xnv-n1qb#PHy!EHkV!Mq?^Gi<_Lm z;2%mNg2Cu9YTRhcyX+IKp!T|Uyyxv054dBqe5V3Y&C=X!A)|6HyjB+vi(S{YF`NDzuMvRen2BuzRoOJ_y06)0i z8!JcH5I*OCh9cDyBEtq3)m3}(w3nC(XXW*Il{6qdp(jghZzJ^Gw#KUa7m{SzKbij$ z-$a<35OTD)u>kGOuBp9O>308u6zRx)Y%(-zZhrHPi;_Ptf zs?>a1zt};0B9?Qb#ngqv1fPnN-LZKIsb(3Q?*UCDDNv${f^gy|*dp@F&vcaeRrg8I zI1_7v=7SNSMj#!me>Rg+=buDLfkv>%XVzNs1B|M5C&g-RWkdd?pbOpAa+c~Qp|VhQ%Voym}FBS1tQVFha9-kioTP4LFRbBv9N zAZP3w^c4n%)2Iro1z%B!+$zK_AZ!Ps!v=j24C(>-&vw-$OB7Buto@-}u-xIO4(g}E zAYcyhTIM!e%*2;HYB9eGKOcrcI{R9l{NAk=m^k$t#_GD#=ljU;i?~)nN)`!+zFShKtBx^6E^eG)3D!RNw`33>K_jTJ#V`$}M}=97&3 z1S-CmlnN;DgWB;eEIfAzb&)=6h|h5BtP{lH9wz!lcgMMekY6VY9Ch30(hiHq#BGgp zXwk3Q_BPX7=CHuh=4tUdEC{K*7SF&6*{3gSD#;T6VOC%$-}plCtq_JoOsx7VC$4H! zhODb(Ta388^#=G1m+H38*bwX#>T9t93v;vAoIv8O0&%(G8}MF8;&LeUwAhbN93-Wu3F zlS}Qy1F<)Z_j;Gj+z>bu`1U#xsU6l>+Gf}JPCn2HSo1WYqWH17Y}fVx_PwE)X1!iG z_%x`$H80QuL+Jl=q}{OFHvmcY$-)@$W3245Z@5@JL8J3_1RECVgUY_<<823Rr#q;< z!>KE)!r;rWu*LrDf>m*4$6)i`_PV{nWZ3KRChXA1O?d>h{q5z6>+xm0c+JI;P*iMY)awXYkf2-Z66O8L5XF|3I6!_x0 zUD5VBE6P&?01iUhmJU%d=^K9AimO1~>=h}^KI>uSW%eHKZDg&(wmZ8Ts-q_cfOT)= z2P@&s$9H*ZiY-E?nSuuf@t#xoJ$+Jlny2ualIjcV`wqRg8Q5;DB~G&E$eZhHhU{`z zE>#_Khz;*O)nx~Utu8C^g2x(&nojZJ$(CbLvxD6&+AAcYdMwBb$fJt@syOG9CDTCL z9bV7z5rLbLQC5jTKR2z!r`c)$`FIuoTtb9h#S-ZRs*F zTaq8A)5AEy5|l(HbJhDI%qN@O5_j)R`;$>f7#h@fKnnJ%l zLcn|o!1g|E_7wq}0GG9O3nD@Ybhr}Ou-@wdAxboe5Srq)y{$y2b$La_yKHSn9nI4P z!!3$L5)RhkRGQ2S!tlC%pSQEQ<}4ttw@$p+O*nxmE+X_APSmj{uO)__0z`3zInD5G z3)Rli@odqWeY?RwBtwBCKGM}FU~tdN<|M+=e&MPCX6`*W6BeBXeWYL9wo^alOh4Qr zG#n0ruN6et4eumH>GwqV*@`ur;jEqn5D;z?Yee?HP&)*uCARwh$jN;ss_hI!J=O6% z_Rs}(_*xd?b>y6#&6r2~L4ML1I&l;awrQ1A;t%`u9F2;{da%M&`QW-3LB594_MLxP zH!CkhfK)`^X_tq0cs@ix4Pkb{lr@>co>L6R;Ie)j% zUw{2Ye)SlOS-8-($tYu;p0ZCCmBJDXGp$og6;1)iQoXF>JfmfEFvU~=M zs!jtr^WPuo!{Z#3pZM%r*q=r5`yc^^!N=dd^g%|+a+y? zGrpV1CZ57zqeVfq2!8!Jz${WeWh78KA1~XDr*}EZ%XS(FF5V1gGg3 zvgz#nywhP=cFTtIhQ6}3@Imd9D-1*+p3P}<4CZmJVFTq*I{_AV zdTl2~t}M{blET+73pAcX$o0Avr2@-Fam;DAIPn`6?=+Hq%ioy?^o+MWT6_ay#dM-4 zPQ`ikeh!ebnV@^{0`U)@tRBt9z5nA#p_NuJpZ<7A5t}j`ys?^&Y~%rN&-L@5zl^+x z8kmx;6vpmGCy0A+-lAJbu?SS97`=g}Wrh6`Mt99sW9(G)L_<_Sec8gn$ zb--Ay?>w%mrsiRdF?zbwH1&XwS~ws3D*Y#zerFxjQ(8BfmmrAEiNAqaK2~pf$;tJ0 ztO#oa1lk5}?A|~FT#KNGRi%~!zj$+y#v{Fwa5@9>1|o#I(X#WjIor`JV&1YjFTNj! z=_tYF5jB8ET?_1HyMYX}juhE6@aKH;XEn&$Ay4@;?t$qRIGrjq#c%7|uKvhzi1S+1=t4ho?Dwpt8&5Y|uDO zW%5eL+~K#$ZV2=k1mHUTx6suPorYcZb3ONI+Ou1+7qb(;09;NR@vw0dFz$rl$U{v} zeQTZ*p{6K05Fs@-NU=u=*^`|e*23yQ4h!C%zIG5O+`nL%JOS!g$$8F1-RF>uVWWAD z0*0FHTp7UhK8eEgOFx5Z?_Xir41g6$3#oW!1oJMFGtvHox51IEJj~NSpUTkZi3 zz6&#(ig+vuTLkqjUY{9vVlnLzXDP%SR|e`lI|NPt;sG6YZP!?S9i1SIpl7qw3#YR_YfBzGg`%)T1ZS-41t|nT zc3^wZjUyiRjkou5gxfQl8p?&J?kvprVjt_1GwRZaq4L;fwF=5qL2HBb?_k#=J%2oY z?y_QCoEvPYPvnXv%T^vUS+;?kM}D8DqV*S4?3RVw=xV+a@CF5BAuu-Q;c7DJTpfRZ zAwTv{+lEn+O`yRJYcn2w@uvqJz?w5c^2b9=Olb)y$VgNr+S@cYEi-><-X;+rD|mz$ z0yotCccR+u{XX~sp$?@26E|ZQh+-Gw4!s05d4hvj=S;B4yXZLFu?5=PA@Iee|DF1k z(|ZF!4wg&Zavyu~X!Vn3WmQG>fGn%j_**)~AFG!N3A>*b6YW9uifu4NL|!ICZfhYMW-uPOh+qP+&+J0CW+IJu_hwrhx_AUAp7AFjgA~PV>Al zJH6@gck?$S7fxjlvO5fMJEwM81C?ZZ)D5b`G$uZHFtBEUD?>;7>0Ser0bKbPcXkIj z;b}FqlPm43n!*#NZ85UKfk~Q4_>H<*y|GaMeWDGUn1;T1h!30JamEeV!{|Po7F6lw zWX$nlL`1G<#O@TAqLz6(Rb0KdUTsm@3;qCCwSChZ@N})><(h>gqqpYnS!*mkdMa)r zg7XlFmc*K6TSr^v>za@NW)_-OUG< zvwVF#o`(jo_Hc&hd%K9zfaHTGm{|!wj1-)AQp@+`4ce-BS>Ln5UDrpniG@ zz(jf7$zJY(r%jJm0x1(T45=o5hIwkF5Ei8J-6cH`(`!siU6v^Pe0KmEI##XkpbKO8 zRRWvcXy?$W-$xt)T-d+_unKbT`|@C(!IkiRM;O1aWo4LEgLbNWP&fSrM1WfnVl_TY7< ztl{BUzsF61wNrLHQ#Cc?xhcP-ee`GvyD_=C&Bz~8G628vExg0%mqiATiSYoK($Tp= z8v~cO=V5Yfb6+6cCO8m{%uw0c4>3ll5RsrRcf+f$ke}f3zc!JYXo3zIV5}}C`$eJg zfN#Z`@PGXFF_8{ESTdLPvp}cvu4-si)!2pdom05%gc+y&4AOJ!aIlOqR?8lq9PZ+x zz6L7Vljxi_TlZBQ=zDDbco9eLjaBw-dB|U8DVLpN1S_JO-8Jgofu?Cz_6SJas5!O* zquQplrM|WvoTUxUx7UDA+Ej9m0QAtasuQ%?$7k=Xlpbie5hK+rtHy8^hiaCx)xj`` zb*vr{41K@Rp`LlbFpjfcbaXZO5B87~&&_}RNnR;AZd z3#`(e49?@=ACcG7hOCCHrzCaK%Ubl)J`LQ0N98j(<^5UMuy{2I8_r#3X(UnNmp&kh zoVv@OW{UMlh)nsk;N){LZuP&PG`u8`!HTO6<8nI>G0Eyux5gT0}Mo|Wh(PD4K5tNq5Fw*1*`1g&k318 z--3o$r|O_MR##8qM+(5T|yi@K;s&p>o;pq`%#0gzw?-P4j(RHhRb%CW=Ys{P`g zf!iG)#14>)4%pSl=EUV0gJwMfmhD;9P>v|(dRV|b4Z zJ}wVw0;Q*Q@zr3it$Bmttn=oMG_3=>eW=^%jT=6Fbf_F-}D=%heQ zg-*S;3D`Hnl4YY4khVPm@NKV2Qv4np@K3>^Ra6gx0uUPT8l0a;}4AJ1OgMF$_4~z!aUeEk8QCECbsIsp*E8+% zc^2_!(Dj(Y2=iQo2nb;VXB{evXW+S?#=Wb0q{;8Jdilg>V`hSMLSERF>>UEo9lwA?e9K0d)0ksp?pvHxL_0cO1^@JLuAb&Eg}aLlw;ny>aWjsA z;})aa)X^``hhp6vGwAj|v#K6Aos-9}B+$_ongzSU*?}|k6d)WVT2|?osvnm>ZsDgIVJ!E*HYonv z$AZD7GpBVb1gnai0Ze3Na(7{az9<4=A# zhZ@A?spZ!QuZLY4fphG5ZSse(Y@%Iy?YgrB__%HsRencDkJ)p-6D$rP|G-&oPrsb~ zwN}n+&%w@I&Om|9Mcgu~Wst<5p>)R2j zEVQK0ACZs@63{G|_;q_)S%!%=3)-IOgf$V)s$hyP*l7=(Qp%Y%ao_I`S$xYU(Yq{E-M z02o(K{Ez}obA1zT0`5qG$L;xkR-Qdy##uAv;p9@qvuGc-e|tttt2S;nPc^^oz4lw6 zF`mWy`<8wN{7t2&=onS6aLvy_pAVbiQu(r5;Pz;#P=f<#=Pkh{kM$fxHbvNHzq_5V z-p=qa+uvl+#C}f;8ZqqhWOJy4vj|S16P7$GPGKGj?~|O?wlM<~_VA>A#=L>xX>hSN z7#tWM@hY|p^%{N(>l{sL&9_Ip8sLfde9kGM{q_*_=O9t=+=j<M-1!Ra{D1)-GueH&SXUyr zWJNE*M{Y|ckWK|#FjFm_@1qQ=g2{QN*B`?16;J4NL<^7b6g>}MGe!DYH+1#_vF$oI zbshbo3y|5pTpXY$H~qlVJv^NhAMw;qPj^tsMMp%JCn(BtE82?{w^3(68SOon9NXho zJTEeBd$`+W6u{r&Yf$8&h?AO#x;mS~KdFOh*svrEG7=qbJ7!-GL+r7eVCE*Td?dL? zMx9>RZ=9dL5UplG8a(^}ifSX!2F1@oKYw+g`C}IT0mRq;h|vFr*Z_bhe@;6}(9*S? zA3^01AVkX^bbtQK6URJxKcE4GHaBF=V~!t6FV92@_#F2q$@!g{fXyJ+FtCe&Z@*Bo zhx79=gwF(Y^Sn%`c=aIe?MRVGtAJPOVt8}*d)V=UeY0@r{xe}?tKzgv(jN+Alf?PC zB%lUjGP8%E(YsEU1vud0Ix5U_0^T~wI5zT%(Vt^tGp|QXrc={@PJh=19iH35z4hqW zJ$4=>ofw{ z?ZjR7#T}hiLyv>Q$V0cucqd#DBjG}?^GOd1C6DJEer-b_zh93d))3GAeICUNex(70 zV?{@CWVN4TM?6SjDkmLLlx5wg@Y?|^k(4lC|A`w1IqtT5K+m!DyKhZ@Bu|Q3p_t}L zCv$0&@A-i|04NItG5(<9)43JR*I%ZJVhK;HJ$RgjK?bDEyh~8sx=tUWK>Z?88%|H>ZDjm(SF>=Kj`{Ja>?W>?7ekVTurw=*tolU zqrqw1gF6Iw2sF^RyL-@J!GgOaKyY^n8YDn)3liL28ix1%=BHF4(4~TJRf$YO@S4NMW?RXKU(XIE=*&XCbX!p()95W$N8V3|BPy9W-)F6%gBab{Uug2S((+tZXF&ie=qNsd1wb!5ozBaGH2lP~wh0L8C z*ufS~W)OC72j|z|1OR}Dn71?7+z#RnG=o^#IEvDows+G2Z7f7-ba_=kD$Y_6Ya4lA zSBR$XJ1uixJ99w`8nL&iBHlu;01gm$Fwon<-qB6STa@N+T%p(Be`Ryf0RI+ow-cq& zQ&9s-Ik`fBJnTH|AT}9q8&58px2Ql7R|`ua4QbhbLcFF#X{_DdorO3!yu7^Fy|~$( zT&*}b1qB5;KwKPLTx_orY;Hb|?qF{=M>pEPApU_N4RJGfwQ+X0adHIyg$Xuu@^BZW zp?NI_{>wfGXBCxy!#leDlZ974IK08m9GvVR4hIL0|I~1Em+^cB`KLkuM-4Zv*BA~Q z8W1-p4_9-Dj3>m=o%TN=EX@C{@9g1f|95jN%sC+T5QkS$x7S)Z|67%E3My*<*7%D8 zD;o#rzqMY;{%?}*HkSWI)_=3@uadu;^Ph&is{b4Jze)eA?SBiuN~x#_NjsT){AHek zv?$GA^$S@zncG+h{r!`lhu56fjE|pg~h8iU<)vt8N`y0&CC)cD8LN@a|wbh z|Aw+K7m{^ybpXG1r;P*H3c}&+X!Uo&UxW)us40ljaIu5_D@V;9>~8t0AWEYGHV3L| z{#S{XjRQo}9sC!aoP2`(e0(4fAHN{401p@Ue+lV8T-{z>@h?zL5IZ;5-z9(bi_mLp zUYP~|<*2U!f9Jn8Mo7vP0(N(D)pByO7p3{jCg5M1|1MT}9Zwcucd#_r9r6ka;^G$K z1PO5pXmN1~aqGS_4{nzLLiu|L`-YIP>mNf(6XNoZ z)IXB;Hh+&LAn@-|Ap|!6M-$w@o)C+_?R>@hN0GTT*wG5|I(_`pU;mYF^MCLKuqB@v zCyzNFo4F-Fh>ZutXU-k~i@Bh;EzjXbN82BFv|F3ub zFJ1p52L4CF|La}vg+S#4AAiy46B7Q<9Sgy!`de?<`Ax%|UUN z*LMQ|*k4Q8X<@ue#5`X!k=zwjWRP}Iaq%(9yr1@e0{}pPg0zH|_tKHES2p?gp8?vU z+*$1FOjamKDF|E=7D-_+WN?E~_V(t^3|7jBNN+!)G;x~N0dV4!@%4jU2_^N*yai8A zl)VCiu6~^4CR+4FnVLL$JyoK$*K=#HYFEGSgcZ`=Juu3taP#;!@vHU!DRI5tR(?rn zpT(>Gb~CmjFB!5cCck^?N}h8TOBHyFq5tbD#ebHk#0N6f)E2?%l!NxYr{-jFRHAd- z`rv>BTE;Wob)(DGTxQMElY{z@+^b!{Vsj@*6LG&--xp z{)DB|sj+pRa+j;^v}3uT(|jo^ecqC$^A9B2pF6*O?I`TCz=;Gz zN)&G}VWBYcH1L+y251M|7I{@ryap8e+DsL2(u#G%VeI-GRTM@>)&AI+b^56J;NN&D zRCp0FQ8x8j{iv@pA-%5hXQTb&rNdyamxret7R70E?#XcyBRu|{3bD^y1%hh#!b-3> z4_LV${Wm!m=keT?;Nj%ZF*H>6mjbtj*p9nKJGy5ww*HJ1F6qirxybj!%vLmB+IR@{ z1a&yt`et}4Uy*t)@62N{9UJ&~ANOgSule5|zyI7`fE*lLDeBpg13S!cn+nXkTPq8c zq`MJCeHL-8+_U;^C%k^J?tb>oe0~Vg%cq-d^=2ityVd)g?D^B{*&nQwiL%9gK%T7w ze)kyENmS&hU-0tg+j7l$P4lUbtGA`On^6OHaagO8H=KeHX(cuC&X2bjsH4za{}?|i z3JMAlWpP+!xpgLg7^Wvg7&X>t${h#4-1}oe29h9#J+ zGxo3bmTFG3iA;nZ;`A>ubD!5D1E8&TX8G3XaX06%cxzV^4!3A5lUs z{%{xuQNb>VbLZ2EgrU3KNx>l}lK$inHr?)_m(U*RY^U-#bBjFo+l#@oRx6!>d6t_W z^A%i8%P|nz=>4$!F7x6~L9B_l15qWK8DHh1J2z%dKCo1`fK4&b3o$BO12x(ry0|T+ zX?hKA4uh&GR;b3}(eaC(qE?@s=ji76*Woe6zMli}Qo-U#2F(wcOa2_z)*KT}R!Rrl zD!nObJB>4?U1d8}JEF^^S$M})@my@38EhU%L}hp`u%5n+9;GBb?~o`+rBk))D@GDxIV@_`JC2E3kyW&V;*0t zH1e{ku*`cIs&yBZy4=Kk-A(h~;ON-;q5+_c3cnaaKnaNg{4|_klgHWILUaAf0I=A1el0t3eb&`rAL5R;dd*7yp2qZ=Z-rq&-YJpJYfWbHmL0^Un|wl;u}ZDX5gA92$3cr;?BgyCot1%~n94ma^M4um zU>xamyS(O?km>HYNV)$G>5fA$QuUseztSkkb*nf-EYIsSmbP!NqzJ|yvlV6|m1t~O z6RY~|b^g|De7~%7`dTNH?mG**cyV<9uw0=43ZS@Wx&(L{$EC~EvRjvmWcrd;7%BbJ z3D2IGHtR{$<~JXGufeKT^H*Pl>d$XyI$sv$LJy*yZl~g^8X!oCp+;E%9MPLML*tab z+i!!IPkvoL8_MNc3sG#4wd5vwj69yUZ|#v(clteFpg6^+xT~G{&{N?>u4~pbGQosy zRp06N!yr+lQE>Xs+e7N=&;qzP??~BIf^lJniIVu_r!cpwZS+l=&-$^Mbe$DLz))PH;vl6Ht`|6Xw z`R#<1HL1??xJI6pnxYZXgkXontwHZ-4OIoUJ`Q%?u0)P$K$u|tXiTZO)*B+3_^iMf z`3Os@$#ZZ0y9;WYJeGu=W-f0<^@P0oV(F#thn4$UP)oO%l8y{4-`)LYiuDq+U5|~Y zPNSAqaEIMk$` z!wYjW9FNzTVcopncz)AsApQ^%In+Kmn-m7X&}=vj1c0(kmB@3w&}m@{L55|{k^EIK z#f!WoR0b$KPd90E&1>FYj%y7aPus7qZ8*izq6_>#2o@WMU&VsOM7$?l23JdfEX-(`CXz12%!BL9ecJ~AsI%(LdX7#HVv+!e(2I~6~g4Jl;c zXzd(_lYjdgJ8yxC2L>Ic0E59g;s!3bvK7z3fHcb_ z@J8YGX6#$#_70gy@>n4<>m0p(zO?J!$O|&x~i<_q8nd%ylBg@WMoSFu} z)WFRTb-ZL3f+k9(uo06C#m(f9VH`fXd=RkA-!zR@SZ^@LzV1BU!!kJgitFVftbQjGZ_KXRGfV3@^d9Vyvn@>9mV?Z!WzRJi>u6YESw@o*)XCGy zKLCxMi26VHAC&V}dU4Kk>FEj-D3)xqvJT0{Bjz^q>5b<$%W`y*M=WIQOd1f8QCvIW zh2JTDH{u|)yHLbc`KqhX6spul|GOld#+50`wM@dhFudSh%GX`*@&(_55I$n(b>v4rTge+6YJy=CEuo|Cg1%VLiu*YhN(a0KPV&# z5I1U^N0Vtd5UQ0Flzw@689qWK9z9PN>*b8+Vc^VG$G#R97xrCm5FTQ$6^6nybg+v{ zTcGiZjHOD!C@qKQ!(^d{ljU>2HAP>bM8ZCYHr)_0h%g2T?Ub$Ri{l0o=)E4Az?%^4 z>^k~UJG3VH@Pl8NVgv2{Or28u({qII9})MR)AkQXvWthsMTYFHJEajJqDb0IV1ypx zLgenGafax;WBlO)N%SOpzQbxq1H*Rb!J|T5hVJ6@ADJeCx6oT+UVZ+^yvPv$D~@|| zEZM@AEJU z_N|1+%b&AKuLFdrhP2o>(o#!w_4BxU*2M{#16mqK^y!pU{>Rl@0L7M8G^eS$Srj_F zy%+RMVvM1n-zu0$0zj%VHYmew={vLLGk@Rjh9%?;anv84u61vnQbvpGgzMa^_Y7AD zZ;7uFFy@IX-QmH&cfMPyzDcQF9~`drgAa?ulEa}NEe7hpG?XV{CgWq)|JLCw4S_Y0 zlJ4b%rGb+QY-)vULT_8WUY|y-d!V$NSb< zjx5NR7+R`G6kiZ0kpWj33Ur7UjZYxOkCVI2VcBAeo*|#;ELKFx`0y?97x&11c$*J1 zjjdtWQvEhOD}Tl&ij(3<*4%ui?O~atrQ_mt0k3EqnvAxHy7`sLBcoABGVTL>J0MP?m8c!HaH1LxQ%ZytumI#CVV0&hTmV=_mq z{XRMx>x&%wOTawn1F+U34113=LaMJmIDpYb0p1??8gJbu)TK{A9$)$+E~R@vPHb!h zZ-rh$U7J>nrZTQ3<0z_B7#AucI`ya`c7sJGSMP&zpK+e@ox_rGjX#9J+eRf-KQ~T+ z7GA#!P$cQaeS?qPG#eBNP{BNUdmM{Pqf)?z_{R7#tL>CBzzk%u7gZd3fr`Vqh;HA; z6jLlyo}t`CAbaSaMb4Bs($H-AeAAP674G(J|I2{YYDk5HS1uffpxaIUShv@}YP3{^ zFokJyKVsAK-4T_j$IX}BIotBfh8omln5B&H*8>;fkhAEl{Ft9)WtO!8-En(xEjV19!tF zpWhKNbB)MzljZDd0zpz5Vg`mW==h&`B~ro@K_v8&AW4H>cZ=>%71lp8hUT6xDore8 zN%_28_59?4jy3gU#z;Ass_3I|07Lh-- z4U#p`FJ-3i`zDx)&%nrpEkl{!vr>_MqkIoFfG{kZae9f==3g>!GlG7({y}wjKb^<*-J_%=WJj~r1K+E!f zmmNt?!1OadbScPt>+{Sz2NueDD?^tTiseq=`z1=W1{TG3o1F(vluU#9hHkHujLs~o zz><`>QW0gxu%_9&_iTQvU8kXX(R368{y^YJ>d$Z?X4&oQV0hVKSA$-)R*mcg^pYgL zYwMAwy&L=GPxgh!#>NJIlZB3VH6_RfLhkt=eqkSu7Wl@BZE)+y;O31=UL)Wm? zV>(5@>$q_JP%(!E9jA|zk-AB-P{7jJZqvtli$g~Jsi(0ffrv$?^G3AA#p8OqCAV`5 zk0vycfe%$0|A(zs#XKK@mvH_|gfy!&alD@1Pb~kM4?s?v=iz zsE=>tMBK?Z(y&ukhqJPh^66|-#7La=909iBghX;l08EJ~>DN&Sg6>BBPmA2EZIB9b zzjwif)AC~}3GISif*aFTr#|Q3vrZiz@`Pd1c&hhqhlHOmHjjyn+oeuAnstD%eKldX zj$Nl2Wn@Zb5bYiYvPD9?6gxwavrz@6;LOc>=bvtL{uUfadg)&DOt5yoj8Ya8jx77+t z2rEy)?6?ek=%Y&CN6abnD$u ze@Y+ztgi>u2kmf{-P#(wKTb--!Ikwk2=0SV5K$l(X@WF&Lrun~E;$TzTW5$Px0n>+ zW02wTa>ZGtD~)m2{Bck2;-wUJu0%IBFj(dSvS;gwzKfgU5+{8Q=DDnV(7QfJD;#x! z^0n1g?iL8xVb@6La2lEGS3Hr7n~?YLa^frCjHbl4SO5*^XTDlnyR_}yu^(J~5a zHThk+=q#e<)qIE30?1$vJ711opVZ&J)oWX`u_5QPwbc=KJ4gx1)|Jn$9&UsgSpE1s$UCOfO2KCgTiW^Hna)d==Be+oG*t#wKzn|q*ifyL z|JC)-+gNRMe>RCt9RF3KV8m=7#IG58Ul5tue!Hh>7OSlulG=o9_s61uRnJMnjjQ)a zUz6;e$ZpE!tz%FzYz}akGK5$IG*HN=%7RPi0{gmW_3))|HXYCWrKHiDjX)^@ko%0`-ZSuggy^)oRBEvf zhxkpG^Oyv_Qc`;FQXm-aO^twrIJz_LH)cs?1T~?s%IMa<^AP5lox4E0*=CLXv^0C% zSbqc>agsjTX$yp{PvsLM7a*&g-UHHj`1&N zVzb69im0h0h;_qwq$K?S{&B*r;G6N6BAN^OoC4T%SNkSx6bgpqq~`jhN1BSKX&>W03ik z4C5NUUm*kH;oDQs4{Om0RV1@+k?c!@Je%P=(imrR0&K8})LE{44RdoQzT+|{onqZ> zkv5Zw((nNbF<;E2HcORX4%rR5$EX5LR_$i>-o(>EIxA~j7&BZ_7`gf)(BUFrVUudq z2QmpldJCHv9SKxf<^^QKfXL*N(ZVZ!-7Xl1^Q@jvi?O&Mv*9+Lke=R3!ZI5vKZR-+ zs4ZMI)5IBiK>QV}q%*-VNXy$tpAfVuuf`cOBCbSw%(v$jtRBK>O|7GII zYW-`Cs`BDO1fV$oH0NsNQ_}MB5*~WLG(v#ajlgl#O*m@<$diWV9H3uk>(VdyCR^{} zCQLPb$y)~JLzT8#8il^+Sy#p?RhQpL@YdiXvvy^af*qJXrV&KvTp)Z#*AJT-@R24B zwP9zHM4%ua9!FXt3_n{sraf-C8ho9ZfM+>prn{gR8zI5lsAA{*^gjBA(wx~pv`EVE z;Ro*ttZ@`bzLq-bd)ntu@&cITHgbHRvkV+GEk(DVfzfH(A)<%VW6Mfcbq#jcFe%YJ zC?TH?Y}}GLI`1?2{Z}0Ad{b}bWggSb71SynPO*sTD0^VA;jy_)H8v6jAT1r0e*SxF zMd_-(cOkA5$Z|ilv60D^H)%U4hlCjm3;9h8*pV&oD zo5Y(qrzjVhkN!i{*a(WTA!q5eSZY0vpJKC5kd7N&_A~W4xve}z=Fb?h?>0Q=zD`mH zkVSXjp^dKVMxaH;s7aC(e~-j6Ou+v1xms~3ZT|Z$>qS=SJid96r)dgiUY4l*;nFNO zmWYuSue;i1VooG#4>R4HPoo}ss7zVkoe5>hu=PDK2*p45>^1hAPIqcHUgr7mq9Bxk zN{t?tu3((B=H{EaxSU4$*I>ToxKBRUpLm}<$Jxz&0i9qa01AtOe0|60ySt{rZwUFN zrLpZtU|b6ls*ccl6B&-hu4m01x*txk+BBBRv-25n@KEH*5BQ$_s@lb#(jf%GAJwOF z?T8Us3ysa~UGx=xSfS1~AyA3rksl)tUMjAvncrCJiSF+xeyLEWiJ%@0{;>SETTqO%QYN>VP%F0A9L-+EhFc#y3n!e3_~;QTJkkInjYJgshe`q0eDt1)VQShR2W=jDd>%R? z=&ZEM;t7b9UJu6U9ndw}}FgJ_Ss^~58wC{32P&JE6 zYP#OmOEY}4k$LQg4Y-$(HH?!Ja-&Tt5QUOq$>cG`UKzG25d~#jmP^{)5*wSmnB(}hu?j1PvA7>S}v5; zU+~GtsR^}oQ>4+F{)u;fr%QKp71iEVzsOeltc;sI;oek? z-X31ebe?<-^gZA^WL&ni3IfiokiGa0(L1f4ds9iLkp;9Bv+%FEsTwD2e$!_72!o8U zx|?;a#RWEngWFnvyn|*O#=n3G76;Mf<7LIwXwD?2#%(%0CpZv!0z_z6B||C{`U!>r zgq&VH$#(MiO#zral9HP!oJfnGPj7|yhLu5<)=RF6AMA@#v#OxF9{gboeDZ+H(CE_q zDC8Qgg4hG(=`rPhodt-XbWXgWFMF4yE&pJ<@c~Z9qccdYQDI5>S0T(4K5Ew!v|$YK z>4YlC9u>PmhQ|#7*I`}82s@_0?Bd5Y3;gwxw?1IlcTsY=~$Yk?ZBzITI?zRGzH~z`G%=1CDz@* zoD=JD?q@o0-%aylUCJO?B5Yz**dqTL^)%1?21YP0k|K|SM_j$dK~@R$cGb-|dZt2z zY^I9^HR2<3NOmxJzeN)-Q#dlnA_^l}9oy5KwUO6x+%8#j?)pRT(ul?M^l5PjujA-_ zDF2%!Ndb$nQ#!NwP^+aW(rM;CE#mm_WA$7d$)M{-dg2mI-?QJ4HY@OVf6;DpAYc`o+52EBfHDBp)}Y$sRqNL zFm#@|FMoKGJx72eCtwN}iX9M@U9I{2xnJ*GYH1nb?}JG@M9jQd>1H>6=*g1m@72GL_(+4w z-g#dtn;xUse09qpVvH7J1STsQ_H$c%53Q%|HbgkqWVf%`Ay(05?R-zw1@ci(AOuK` z>O?uzoNC@cOKQ_qNyJ)g7Ju-)G3BBet^*GZd^{zE(hC6OYAI0w{VR2vu4mu2iqN;=A>2)&v+zG^hrE-eu3Uzcc0v$cei|Ang-+3dW3z>0yr~c#gkFRP? zW?O~hd&d?nn=>vP^bnAc`JGgQAE^&S2j-#3@8a44@kplKwZHp^~% zL?XmQ10#jcD@WQ?GupKoo}M+W5Ccwyltc!|M5etoefhKCvRLde`(uY5Ngp1Wn)I+%*a0oNt`CFaaYAb54Ux*fDa><=}QMWXUn)g9*- z1E0J~2ahq->6+Xb@9>Nd;|@Q(Pv}{KEwY}a)n*`p+JBgmcOA$KWff7 zut3Alimtnil&M`(r0KBw+_YszSClJ)iO`B*S2pg((Y?w4zI}aeG?*#8nIf^+UMdiY zYzkQqB`n9{f=KtJ>3fQA=~=wE_^;}&#~ecw=n$ug64L8EQ-=3hPlHbPTb`4OuGmsh z(ouo0mT>ZwMegG9@C+MAkwImguixyG@Y3?3)F1`@ zR^9~SR+WB*#u~OiLn2FnJ7M2@B0gES>}ytFSksDiFsz0p%Z>V{#W*^X%Kw) zeHr0f)tBEl!pnHIg)P!@>pDMT;92RE=`06-U}XjhK3C>`8d<_Xw(#?kY1tj`pTiLI z+eV~0ro(od8AgQpSSy@ji6F0BOLxn(yg*qT`_$||e;`C0ZX6hXfY|uZKd;nI*)eor zQK&kqdKW^QriZ$N7OsC6TPr^rcL0QqjRNf-?3`@+Q86y!KOMWR-SEn!Mps+#XwEW_ zJ}2Nui3+TQ>NqGRYLr{6e4&P@I4DFu&D)I?q+%i+*IB z4M<&tKQ<9;I%jM4GGV zhRCs5cN6`PS#;=PY&FzD3gVJ(21gSUZr^+ZKsG}zEe(_!8zFiw#=mA8PLlY5KsUQH z`|LqGu?i0R?WrriNgYqQN2pZDh`)_4FU}ClH-EXb`mB4@0rFAs;f}I)+nZ7<%jRnF zygp)}w{O7xsR*|z$#Q8TO5=VARxcNZhkTO%>YCCLC7^?V@f5MV+9h__#^9sT>|35F zY|$PTof#l_Syq<%?OT=O=wj!kC4_ z$Nb@gTt^UDkOO(XgYEz1SC;=tl2^6MfHkbrm zN*(#H-p8oFTgshfu1S^*w~_TYNN9fl`ro@4-!BcXP=jZi_-BWvZ~m8>ZMS*6Lw|@c zpFV}+_CRa8s<-*}1Hmt`I|G3pRomRSF(tI14`K(m`2V~r6{N|7e_1I z8EBnUgWR_I(^r?YCHGI&@bDPv7cb-CzQ(rGOX!sIl3O#%fy` zyRNvkO#Xrr4YE%ZNNGi3p3nN!@=reh^lao+sz(`jmQg-aA;E5nbA?~dry@~Q)-4c` z^|>FMN~ECZDbt#4Ik}EJ)-BBD9TvdOQbLATUH7*7Wp~=4F(%k4ZD@JfgWqgFU4!|0 z=0;pxzU52Z`g>QEoVZ!HdMV(3u)(w7AraB6a!k+;=G4t}c7NK+%cwJxfB-@wPUOjQ z(|q%diXvl%3W8Be6$Kobp>0;shu1F`6PSdCB;MmBj(pY?t0O3OgtqcXQZK>TNMETj)gpftRBNWm6Rkj@d2zIrzW%p>z{-6bPoV_-#IRJ zt2;6A`6B+AJo#hs83pQ z+5_hLLI9{RA$%e{oUIolk(wAX)8FJXUcTpa=i_oDX%(@_Gc(CVCrjf*Mw7tAM>oVE zhv?p4e&StAg0QK<6YJK8SX;j53@CVdd1LW|Aehb*&~)^StAT-IHDVsvJ=cM~LAaqKO;*F`dwMMz zhD7)@vfu=rfQFL^wCYn_5J^uI1Gt94yE4+KbJ>hPUhgWAvC_bC|9UH`0ySl@Sjvl_ zS3)GphyAwGx2JC#L6oeI^L_AM4T>7*`oPflahzOP>F z&Wt=tNF15&3iP5k7AK6Fpr(APYnDLmQ@eHyyqQbdLO$!%U0jN|>YN`CaC;h<$2CqOoF_pZ%$8-=ZYNvyZG|2su9Ak4RuEFgw)KV7LQ$>o6XPh; ziyi@=3aP%QsJiI4y{6Bq@_hX@O|bgK2=LeET#XkQ(Ipq_oN`ZSZUDQ&_-NW*dPWVO z5hL7@q!sCyp&F*P4wFXdMvMXgJlFAC$Cv&prl0y$*gxs$;G;tr5zW|%`97D)*SMH{ zncWwI>f1RED=efMb33JG=~YbT+0Ok;KLK=4zGDlxh#tC~+}GBZ;g9yJK6~9vnwmtK zDHwW%JjwXiIQv2`o1s;xQ)y^0D##1o{fc$Vd0obxA=Sj+EL#|Y^pFf&18G9-M%6aM zai4+WJY1-JK52TPInVRxkH}0?z)PHS0O5D)G&Il7o!Bv=}MRx4PsUQcJmFcV_E^LJlghT1?(+Th$fz2;gMv2;_t1`?tJ-B-Vpjm0uED+|~_ z?5ykK2VY|<-K+Ai=uHUT^CKx|0tyRsKN|eeNh;c~S?=A5RI4+GH!K1z#AxE8l=KK1 z8%Go&Wb*izB>rG%GN*Xao{yt`N!J66i;q<}weD-PnB|mGiE=457Ykd-+(|z;`=e5MyF4W z9>=a}=t_g-Qhn_7wa=m46HpC`4H}Jqe^;&#xRu9JPiWh;!8-|C#$to5X;1y%Sk7NNt?=9TcrX` z5zr^eA1!jGewj}0G$1%-MiF~L+NrSKZ+Umg$&<1GE6`~P^?vAG&cR!t+>hu|;@13->JJS@ zkVJ=|qchQQ6HjN#)<#J%%3D;5IDGZhb}8H6mBiiV^p8#CBG<}~AuwB#i&fI0G>+^b zczst_8?;=N_ch4+;K30pTJlt**Xp({3Kvd`0_ann?F@tMvPBJO7#=wVFdcL@!LvC) zYbd246p9mpJf0&0nRTn~oH|u<3l?HoI#sgIV?(jrOah0_HlG54ASI!qyrf@oX@EIKc8&IR>r!j`r_$yazM=?O55`MZ zUIyD5OqAnLqdQWhO0urpwl&DCM7Al+ZUfy(-vo>mR~=-GyexTX)>^tGtvWP|O0G5p z>7LXcxK+srH4u~#ZXLOyu^mbrGD2%%D3L&l-T zbfx*);QkqcPK+J5V2*_YY#(vqc=6xO3DZ$3wapUl!E+Mj^go%+2;hT0E2Kl)zOd@+ zSfJJhEg4{n>(#qxkKxU~e2FRiJ&FxmONaT*o^8FVCF6G#3SQ+4Yal(ydxk0Y=VyT7 zaWSTr1+&PN@Vw6Hx0L(^^)uI0b3fAZ#7WgpE8IVOkcb*l6-KC5hVnP%;t|c~ayOUsIrvT8NCgZ#hrc-$R7Z?Z`#(&WzU&p2Esyr%U%v__z8j z2~0rdPG1rJC!=Ay9p~9h!1f@omtgzpK@=+qj(JoMN7qAW6S)UkhyZLnf%u-!ox$hc z%{~_|(X;%kQbVK1%GCG!nK!geU*L@9&R~Dd&60o0Lw3}yER>FjC(YpV+2Nn+jtqaNKi>HBztJKjaTbo&X9>%=<3kTRgW};rY24b0*2@xRWwb z7=M;G=n+6AZ6vK(GbDb^mL2invX=|B`6hQmrFY#a!1n@nK=f3mY+=icBh$|Q;iN8R zm61~InEcwE&lQI+3d=uW28$8VAJ3{MKSluvg%@HhuJ+}$bm^GegNG-`VRr?DENCRP z>3CT|05$^=j@S2tH+&9updv~FC_cP6Um-G0&>_22^(^t}2IZ2Ae-Hr*-{xSe3A`~D z5^s)*5vCYkqWfTrVIrNMAN_%+0To+S7<2dyiZ+~mf&7O?R7<39n7n6n*+hU3dO$%2Jq~IdO@&wC*g1&^OOlAoLPwe` zQ{7EuQe)w0+W6;an+wY{BBXZa4Lx81;bUnq&&LCel}`J!bEK*_W?QfTL*r?zmz$OH z&R9?K)^YNU+jL`Lp7sJka2~#lFA2|c&sJ2;cbIxydR_+B4~bFAPxCXRsK6u;oSE6= zRIm$_3?VbFij^6WY^iU%FNkOlU{ZK+OUYQ=khCED(W}jL1F`RiBnFH}jz9qr=?_5KaMsJWi%*$But_#kqr+S7ssFZC3* zCs(x;59~{Vl^!WvPC5xw_~8LSXlRIRGLki+=a)kg;n_rSG#gCmkdOIQZ4-~ygRIrS z#uQ?`54^SG-$rvgp}CK7=luXad|kv}9F>%p4Xg@*OOuaZ5L_&kv$f8bB2V4ZRh0eq za*O8Q2&&T?DkPPg*5t!l94tHe+-LN_QZp3ujC!&-LKw|6A~OlhLSzRQ@w;D28Di;@ zq8h=l3SWz9*xOHM={N$^l(7-?2oEn_{F--f#K>D1^yyJT7{*NMIB%P}6_sq^{pSYD zB6b|wJQV|Mx7sz^)T9zoy=<7Sj-qHJlxHcGkbLzjn;zpumsU8LL6AamOaMRdj=42* zCOie)u$#*y!DFeMA!#mq3Klm-?8O6VIz}D8(V1prUUg|!Z?s#>UZRDq#ek_+@v9yJ ztBRT+<{zVZ07T1=02%L%JNCIn-K(WG4a+c=M}R-OxdIvdmWzjw;mwhchg_)Z{brBP9Hy0jx zJIOtd-9qRV$`Dc?jj7rIx09`DJrfK?;|+=cqtM5sAXj3#-akk3nwzH1@x8#IAV^EH zRDb^IaWZqM5xj*o%qY==i5udMosOYB+RUZgAMpvM_bamDOlU-iWds(WFbN_dOoEJ# zt07z#@*a8ayQVBlo5+Uc9F zPdjg{JG0Cq+0Gp06PaocAB`!FI2dL5IWziH`)Y*wwyJuf>V(1*?CB6)MF>Sy^xB$pX23j zFGUqI09BOzGw^)B{kNx3c$)a+1nCe+(fANjWZQWPd6Q-NkReEYqx|ZY9)wgme0D7v z1Osk3s3>l4p?uW$Ni-G-ro+E(nCsxZVMkzxTUsbdSfv zO0#h&=;}R&v8SZr5 zTo;)xJwK&fNZ6aoZ&)J)(*w++!|f1cDk~F_Hq|1LKWP>XXHb2S)`);!6%XDwiyD0) z`7yY(lZp&-L)w@SpbVGn5@tF%sM0UQpo64TR$G0{}o8e$$HS3%U~ti4`Rg04P6o zP$MUO-j z)^=Qg7&dRTH~=|TJB|zjCkxUJcJ1EQKheEco=5=kK&P`B+X(~98`)Hb1@ znVe30M;Bw;ZYLQN1mv4oAqiKA(9JE51K6hXYJDLlH$y#k-8&fl!lNrcJn^i4RNH7- z!fe=rKde7G^{pXvpII>Un4v9(+Tt3%3M;Wjw!U+OMM%wcXv_$*B>735V(i}wL8IyY zmJ~9YtOGj6IL6_Cu=5qaXzc%+E7rKFl$~~GU?pA&Pyw-!hziJIh)K)(+8IB;py#T4 zA1)1N6&q;BnJBN7B;&&votv^q z0vKpGvfCktwB6CQRHUXJR-9CL%h|nY zr$cT?Bs-S&t+0B9R%1=X=(R01)r)4%@)u5@X;!UYRh^ZPC_|hB_COvozIWd5JM_YSkHs?x^awe~*ehRUIHfKD{AX>!iNpQA(-8gRyds51r- zP#nV;5k(P9AE*Qa%zd1+001BWNklv=RiG&^hN&xw_K5_nf`g`u(xb zt*QpP8x-W@o4L=^JWY3XcinS$SnFMHkb|bVJukgtbD^#f6KjqP#fXTFWn&F9y0FM3<|ThG2QFCc>q)0fPY zD@V{q*ti){p%qb~1yQ~Qw$KDyY;vY<=9sBtKmNVzH={~t+0|W`Z2}B9V{Uuqqd&X< zKi~Y4Hoy%_?=#iE0Tk*csx_#eK4B}VQB~+OOP=X{=Vcf5ojhgwj57~8sNrpg9$b6M z%)MtGdFE06q51cAA{{KZuUW0tm{SmYkP>2>+KGubA*=Qkg!4v_l0gh=z|f5PUoW+)K_ zzK^WEWaV2OvC?74`*N+i}mCA*x72+9qU z_K-qTi#RC7&T5=8hfU;3AnYNgP>BqXlKMfn;+wZmC{rfrs)9HK;ZVgZsS=ZrA;%EU zXMW(4o^O8pn@K~lsi47p$P-8zX1Jy%1Y7ke{D1`^1|es~H?WD%KI6jTCw}?kt=Kc~ z!KS+Hl}C(2Mv)#v()8Aq>rMZ2Yc6|9CD8u&cklHmhPhi%0EI#wn(CYD6|QpYFMeFP z<{j@HPZe-5wlk=ZLI=y}yLUm;`+jp)(_23Ef$ig(n{wd-(<<3ase!0&=GcA(;#U@W zF$yR-c&)(sETazw#nfRSwkW0^32Q>weD})Ms`*ohIdtqNjB^cpPH}jZQ?z3k=ULfD z;lmXeJN4Al()9kHtb6vn_wOm)-9D^yVG&ZWi&wn!;r-~=W0vi6_RKO!4UOuvc5)PC zEo}I&K(cmq#NX3H$i*&$gh)t*g)Fu|^Q`ULusW)nyf2llhrp|a0c(hu1vym!o(O}R zIt$z9KN{G~D#NAnj6?VLdr#jR5*W|~%jNnbW^6n6#53}9_MKZa9KCE;2T}%8pd=K? z7XRt2w+y0d-`tI+aGm3 z-+Sv%w_JDeRpW-oxq!CJnpS#j*|MSU{PgDZ`U^iW!2%FwsIXG-e5*=KG&H=K4R#R! zk}@j*y&wliRRYLw1opgpIB~RVxO}o(Lvc^%Xod6@}QuOD$?-{6RKXcU#kT(Hf zVWJm6=XP{f`q3w01F!`ACX+!U<*s{@n)b66&ju;8gsFjm zb?n>DC>`;g?`(`($Fg;n%O=!V0>^`^NZUWLW*SJj3YM$F z!9i!d=U>`XP5f$?K&l~7THz@rH7rau6~oZTOgZI^Ztm}I-3XHhQRYDCNy88dSaI&- zvsXQ^rgk)2mUi9;YZDqGi`)+6!clH))Oct^FE@KY*$G!|%Y?fA^X}qfAN=6tv}>Ds z51aP{PbnElaJJ$QkYvb8nzyp!R#e>ftsCn%cehsrV5cCj%06U>v66!L_ayHSw+4XrPAqAMA~ z;IIfDP%?Z6RB195_m66 zL@G>xs|vDpxjL0u1QZEX4fCbt*I<|#wFXva~1by!BQ zh>%0X11R}WG6`k1HYtRnx=19Kqso1qwQAI;STF=ajG-mVO!w;bg^8yh)k`(C1h86y zS0ST}VCYd>99;kSpBs}^Ywd_92e5wW%4o@oC49o^r}Wnp>f*3$gY1ij<&Q7#Icw&~ z>jCN~P25QC@$kJD!OOD63(Eg~&b)Dho3};Th+!DSIqmIld1SXYz{h94iSXp6vDH76 zx&06griLJz(Rh{AgVhT)waUJ?{C3TuKU}a$Pd{Vm1*nwnKx-3QfO|Cnpgs(w{TT4W zX9cPTyq^2kRHDuAT)LkuD8-=!RwjiA0Vpz#x#H4IhHGQ&BFpR*gF)e~CuJy+0Sl8# zYEpoainBKIMNB{WjLJbjyJ>w6q<}Y&kfQ@-uWf=SKlAh+6_>c34N|h1qcW@(QRE3| zDU1Mmtks*{qimZmp0tV2Z7spGGF;#+1=QVi-gQ^;u@7E4*>!YEZph}H`bddE3?T?8 z&c%DZ=UtmjHpv#F9-uM3E)~>cPWg9d6+gUI1ayz_GMxh@*9fYWZP>635 zB6wmrJh$j6_px*4O&DCY)<9KQ8|_x|*}pM2+*d8L6N0s^m3 zm?=b}F@+>44*?NPouP-{`0G{sHy<}`Ox=WXF*g>IQ7Q zV8I;!*Ro*|2EakyX22>s`!VPNC6b{1sZ?IX{8OD zmql*<3T6l?h2eeZfmr+ULw5YhV|z>-ML`M}bO6X$i9sM?WoLI}Kr=W9BH*YW1FjQ2 zNtSFV9_1)JoLEb%iPm56#9V%IFw!i_yqaK7D%$!Vm$l8g{K{T%Y-1uPEO@O9aw8Zo z;q9p*Qi0lr>C+s|oz&a?lixHCt7`&@j@qa}85WLZVD1fYJBbO@3t zh_W9DJ+-Ihi=Qcf^6U%84Q$+MvdVVU@*&K-{;K)MUVQFb{_C3WmUp`W#{I|H6Cc0! zj(2D&rRqRUU;$V)DVXJrlN zrw|Mh7&C7AEWd5_(x|*>X)f4jGaFU%3kUNPE}6Zd&=A`!fMN%z^MyB$fdO+K)(oKJ z!fjFY`3F-SwEm>lp1x(h^|C6BiIrKQ0s|tVX+p}q~NUU5->$bYNS{{@yJuUSGTRS zx^{(O2q}ZYjjZIK7|3nw>?uw?VUJGal3XUruDXq71V(VO65nN{Ew*r^85< zj52a5vm(mn_h|0hc=PQoqo^?i7}s?2grsS&hD5W)91LxDc5sjq7#4;t3=N_jLd8MZ z#y4u~SQ<|n*V(yTDUk4nUlV%ET9cbmd7jBuF~U9J!P<1sEH|?(pI^vFF;L#{+9+I$sl%hisMoEYBG%_fd&cFVu`ER`Jo#*}w?bAJ~m)QC1`~6QgmcKv$ z=B2;+%e0a2CjyZVXwcMYa?IC%wQgqpoGGNic}fD|Tq#1C9b%`5Vu9wkSUd6PQ@b{A zT$*zmR%9gqu)NeNrwaxOTRVE~UrG)`$@>u{ide7c1@g zBD#-1wnsOutC7XaV^$54pX@u@uw@2(oGA$qWpUz~r71Hx#2JevP%v{S=e1Zj>G0G0S9dHYU9%#B zMjq@<=yQywPj4@7?CC8`Ibn}>#HC_DyQ)I)7ylgl(dRqSQ;{IhreWPJ%28=G(Z+Wz zn(O~sio)V&Aq<}~I_abT)^_9q(kJrWc5C0W?BT*g^L!X zpE&1&aRaN?8J{)0lpz30MDxD>@jw65W$!rW`HO$28{kK}wE2M>e(;Oiul(AHhJ*+V zrAQ4tDH~wwbUEV2U#*&1Ja8rnY&M2rD44>J;lhlodIT3XNg*zpNe7)?+R(XN-TI|D zBY?sX$P+0eeQJAdOGjtT9w*M)W^=}77`6&h%c%8=vH=_u^3sPcX+xJ&Borvlu_(M@ zR5)2(qiZjCX0Crsj1iyhOAvD)`j7kAC7p+V?knxaG}ObYODzH<$51iQ08_noT71r2 z)vBDqDmp~OTDB~!9=ktBk1ef*R$1k&wX+*#`deprdQ{BrdKVgH5}et{a|-oICZ!!g z)q_t^G{$OT)s%lXPy=OFBLroiOPz_2Jh0NZ-vJ2(Tu9iY)`7v&&fd3!BsML^o_uUq z(!Rc6pIMp{&gx1HC;9p%D`@q)D= zKUul*w6j`E8@7<=9p=fT0Os9r)%-VK_Re!gmpwZ^=jXkC(EoJfy*K>eS3kV+x|1UD z5RDL+WJwsmOxaV8_~tKG&a9m~rMk$~!0o(}9l3C`r)^q_%{8Zd_~vr%xHqRlqzs=8 z%{@TEgST#IdFb*#%q$I5k`Py+#K?O_nS$?3><7^4+R*7k(`F^hBOn6QZK!c;E?RH^ zFBpi3OYBWHW+S5zNb}|I>pJW|uI{$^nu3Xah5iRRz*YN%(c7UG`CZuCq!@d_o~u#k z8OY{n5OM&v-TgqT3FMyuNr6Hhl@bV!%CYxpeM>I))vs*y7rbRKTX>F$RFQ)kjpqOS zp5hhnzNFaI)7I~ez!8YV=pZB+fcGIhFAQcpl$BCizUZ0qC(nNS*m7H!^?^&j!_{%l zS3mO5Nf*EMthdwN-8(;MM!jy+CC$IP`6qY(>?2<}&ZvWfg=$8RB?cNN>*3${#mbpA zbElF=ObnM97rrFIm)vevRQ_ikbx2q>hAv1$8aLeZAKYr}N>E!__ z2c*Yw7<54UG2q(K?gcJGEkfvpz=M*UU-6lRv*ihIg$R)+AJWSKhNrPtzNhP`FMP41 zKx1kk3=hYG|A}E>)o2Q-MiEI4xm}ce1ly9tbr(I>IP%lhn5&~q(o^tH>?p?Q6Zth+tMZttG5e}nZvvaP?$bCdrJ%fVDB59?T zF{fVs-Cmq}RvEHP04E%Jly4J>6NP$V>>zZv(@ceWkz`LAt@3yqP)Qn6qqjpVh0I{#*P=vCln5C{<> zieR~VBRqepcuFEWr`QQ_HKdRTME1F5R=fLZ393Hufe}H}I4evA=ZN5qcxO}b&Ewcy z_swco4iUUG#M6ic`;S z?OnZrrOE{tfJSBJ8WZEKb^GtuABd}H&u?$|!CiM={^jGVz>&ZzNWz+(640I*b#o?j z0AJx079JK6O1t4Pj82drra?G|f)Qvlw~l?|l{fbmk3S>PDyx@W1hpv$I(X}*=7+BQ z(+odU+%8aQN2k+F9!FWsYG$BI5R-J>wskVt3P>sQ&0|tAV?KOw*Abt&w#%4?1||}< zsX7jndh`E+^W4i`@a9DUB7-VJ=LHjMGRXP5X)SK}aVdzD!AWAY?4sagr9=WM6Kr23 zUPyyiECE1;KrFVYiK4IFu!iQHJH#w;aL*k1ULN}S-Gz_7``t~w-CKriW&oh@6hr*- z#S6-xJZIkcbX#X8vcYf(GMZ7BGZBu%q}rFX0iL_<-k<*bBi9}``g*jQghsY`q8$76 zU#*>4J7;o2h_Z<9)DRpLObLqg633;(C{b1oc>*Iwxrtj^Prl-oesjv1B}nE!U|a-Y zg%AdA-rV@-PtKp+opz-aB!*D*1}YwEC@?8m;5pe)s&oH67=x5TdXrJ3z}WN87&`Xq zFKvsW);vX04)z~LlmIg7D@g4BybbW;o1RC-evaNC9!?G7)Ebz;ItlobW*yv6nkJ*H zbSaQ(pdqu{Z&=;9^sW{47P&-FvYGx(GOC0ps19sNfB{m7<4|uYmXe-XQXD(@=!dCkXEG~2zfQ@icUH$&|wm!G;*}li;|FQdHr@m=i@7hgnmw&(Qcak(E58a!GRN#ZS4IocFx2)fD{Mi#a zC`UTd#8tBhh)hRP8}?)MgC|mJ&@g3kzW~-MQTjS>ci9_On>fIMRI(9@Wxy%KibYK# zNHS;b*#9H!6klvilLDIP4l-R0+OuE+4H1J%zfXr1I|5HZ6UTwy1|un+zU#O7XMXvc zfH<-N)PRsMggvZhRik2Jp)`dzYKHgikyE!_v*rHXmbU!x{DP+e-IE-r*asuEDtIx$LE3wb=S6|OBiBe~XMNN%L zcKI6d0wE=)%to?Gg?R0Hn-r=ksw_3qVN6_v84&WG%g-$`!T}r+SQvExJUp9>&}=h@ z5vxKr(|Y;v&R7jetn{zfwCSwZs zT=>4tfjn(M;hsF_Z00@B{ z8}+c_LFAzns|vvHy{2!{Ntc?qv#$W;VaQjfcXa;PL&txv=H%VJf6FJ$Y?J#}Op@Sw zMIgo2>+hQJ`$x8WRzpIRH)5Id#iZq^<2t4tc$#mh8(&Wqsuh7{{B5dnj!`O`bZG0^ zXVNwE?}-PuE^mqwWddnpybi2i*5C+;)FVX%s0ZpDBT_%g?r+pyAbl}QT*}6&%GDO@ z^}P*DipY}6UT=Fx@8$;{u6MureZJ(aZwYe z43VgMl1h@=O&cSpG#pT6R59kVk8LY;599`ZbW@YkaD*y6h3baM!LUK}!Rva)ANO9Z zlm;UV4N$;jhEG2F^Uv?S`zse;x!VU|FFEb3)!)7UYm-7t6BJ$;8078;e#KSS(QF1+ z=(zXR!jjrCGUF@PuRH9(c|)e3#)Vw+zIui_`u=eHCkyG%zTYYo!2z%cm!^jy zRaH{egd*aQ`cBai4M~1dZNH)%BReawqbJS|!7wzUqR6Tu!K-ZY@T$MOb(#|^@%ZuP z)H{B@Ve6(RMCA5#>~wXunAR}zE`*DuhG1W_=01T4lo>nF@d%1gx$*Li&D1{-GBPO0 z^doVYI^igu_NF(Pm504y(=#`Ju89^esUerB5Qw580oVaMm{_%-Z9att;1>tjJQRS5+ndf@LM3!46*c!GE5X z`x)l`L%_R~Q3yti*trVx673 z&%RQou?b_F0j!rWEeFBK-=?!3?Z&J-z@|Ff%Vu^TAhp%sPz8HpXW_w~w)x0#B$W{V z!vIO9xKWh^g?#&}bTFxapm1b`l{f)VH)Td@C2BojuQQ9YzIsOb#O9UT+S1-cl)27M ztS#0~$XlTr30Y3uW7-GdN{zv@*Jgneic9x;gM1D@-~Hn}|FrY&k@p<*RTQm^q(APm zcTf+aWuLozLP!6GE{(9uICb@iOqj4Z0@N$avfur<;2(alDey|8EIkP%1P0iLwn#H4 zF=4RM)XVqkoA{>joq|XeLxxb}LXxCDZFV z)*GQ52tok?P^?~E6mePimu=dXocr7@U;o2PI!_Lz2G^zOr_cTN71u`-8%o2i?am$p zaR7h%w(`1XehcT2H!n2ae_mf2juizc)uI07KfAHkBrE`Xu#kZ=Aq^BNBf)}Etb-bl zTEg^ej$U){=a1gt;&P5qAw@w5X=eILqfV_IQSRXrEBwFe|47cyE4JEcm?EJsB3a2y zWe9{JB}pMrQr73?Nr&l$q-OD=B2%!q$m~t1X8%K6p>bR=&sV4m7kQ!#M>0&$B~lpA zP-S@6v)NJxHdX(jDRcLApT6UUm!1&guDZw1b6@>f-?Wz7#;@wT?5AJ+_M~~oA3P&N z0C&R0001BWNklFH^UzTyI!IFDW1_UG_vY=eSE!YYiwtVJG;oSA}68 z6g{0oYuj}5!p4z(MsUR5oZC7ycJ}y`2%=Ebn8?^Eg`P>rPwuPRt40-NORy=But6^M z=!*$C(H*bp7ys~RhqmBV#9(T5I6{O?1%T9g5Z6C&W)qABx|3uAV8F>r5QDr zeaGhuhqZm-rEUNKIM42_0G0rFF97^_?WYRW2hxMNIPbcDe_-23Z#s%p;K{;h3jfRd zo6;+WR_C_Y?bKpU4ZL`ms=K@P4`nXQ2`VcE?otAUky?F-}S%S4xnl_tP|2q zBN<`2r&HO zMuE^f{C$xpa*saUV#4fH!y>d$^=O^BUmppG1Pq2$QkbmHWvvo06bwN`fcOn-@}h03 zP}tx+2&mH7&HCs|#uQ%a7ashsQ>*s3S_o#g zhE<86u7{A1LVq_tgrG;>jZgjyR<>R>n`#EJWOvQRr28BQV4B-SBfZ3ZxdU zziV}DvZw+_(Qu^C9v2+F^cCL#$#a|kfP*LXRb^eFrF2;H*zfa_M`f4Ylx8|m4;z_W zJnN`aN?_JNXfO%_hUT|Nz3aOh7*-jP3xRMUAR3t*upUKQ4bH9#ze7AwUKpZwQm(|u zjP1!lG7|tIBT&+3-}~W-Ywx_d;Nmp3YQ%aQ3}cK49KVj}(4vkMeNR5& z??3pTX0?6t`bpcbdV13Rr~i0P*OGo3{Y-XGgd29dCxN39N>bHeXSc|(-C&Bc^(*q? zf7smuWd(bJ5+V><4?1wD5Y-jf!)yh7NG0$vo(!q=N)=KyP!J~z9?8e$O0{C=;8Eap z!hy$@vw4y#po1Q&vh&iqPqq)rs>jGtHEb?0HBUX{=(a=O{D$6Fd;^?EdkwYBp7ccK zLkJ-gJR=u88&|s8c3DDXO$<@6aH9#64zk?PA_67^{svk2Xz6#KYw!x6qGAP}1U|U` zX8tw|)@C%s4X8JqZGvz$mpSw%qRr=x+f2s*3KMMT2n1zCTBav2`S8>YcYH6OXo-sh zCT~4RC?#cm-3-VCgjAK+{^qVRT-go>hQKg3GA;YjGh;(Amt%vRt6EI%tN^0n3tFIX z)Q15d4inBcMaU)wl*#4X#+x=wLc}s6f@SX&I_>N?b*U#)Qr2yxfO-Z}Qc{I7Ga|`V z@|Kc{k?(!CDJ2pJyc!8Zf~F=Jv*$sQKGuOZ&MO7KUjv{e>S+9?65$lm6lx< zJ|jOPDxvI47*ZP6N+^Q<)+nQpbpCFjKDnu_6<&kSt^k0tpSyoL;ozf6N}@d)RxMx@ z$`GRhNXSG~<#^#!x#)@K3LYj*?1jOkT=&j*Y^hC)<46G`U{O$qBHhK*Mh7=ODU1qb zx}1=>Xh;USw*U5Jm6R{%i?6uq<16w_b>-kZq#*SQR$BD%?S-AKe;H*|K_S?~slpsE z>)aZn)%0|uN(OLhH~n#A10$DG<`J5OHyDh%+6`iDMMJJ0wWb>B$PfsWBUr6FzK~A5 z^HsPt+Mxw(;u;9d)dl1WR91Wv3+Mxf(u4#E2ck zYVbsjU&78NI5_FR_Hs4$sOq7?uxe174*Y3oOvgnF_kwsES_b2@!if&J;@>*8(3}(Y zSY@?LqzV`@5{ID|36upDTh{aszpr)9DUlE{38rK@9_m^A?4cLG={bQyvK&7Zz~48&r5&A{oPn2+ z^W=mf&cYcNYL)CxCC&`9n)lonI_IdAiBw_8`XDV>ed80YZaX`NG>hS^ro7wiWb>pD zFk%^t@lieMj6v)LfFR)j7aOTRhX*JBX#Z8n`A~c*D@+LM(8S@Xi!YzD;r5$zl{iUr zE*eIMScq(f4$1$O=n#|7Q9@v063Z$Ck<8i?#4zwknGrh;0K$t7cPl7a0xLtb8|{*y z-x91E#4gnRN{n1OFn_3V?Yt-VpaC`Pp~fr7I13oTDRT#=o^e4R6VRhZIyhC;T=4T@ z(LnsMOwQQC_ANkn)S2KV z8sam9Rws6iXEk+A{K?D>R4-LNgbIU*gp5nD;F8NGZ@A;uVwn;)89L-SA)lc`(d!5u z+6e+jFIMybK#bZH@Z5<`--EuC5h=lnAkD0rNeAbb8rNR*)J$|s6#Rq@dj>&Rsku&0 zy!!g~VnZFL1hkP)RSc=B36Q;ntTBUBAxIv0aE#lqibMqt1gL`}((z}^+g8Ul4L$?= zNnpA?5+NX#%ob3G)0Vt4e0js;g39(C->E9qH#gmPRqkYc)iwYC9CE<)KgM$=Cp$h+ z#fHazUxbko!mVI5Jb|6ppbpXgbI-J*A-k|@*9s&z`t-?2q=?Nc9ltaHcCfjCh~YbMLuy{H8l@iF}-G`=)qPOy3;On`HVy$lKFlD(7}h3`nBghHA^>n18XsG1f_ik?`63x!X@Tsby{SP^t$RVn_IHwNWorRUy6qdqa z8bY-cWW4u-Pu*Ahf=Ts$<0{7-ICuWbzE5B7A9&}9?_a*p+Ovbj(dDXrRrvMP0I?gI@9Nf_|MX0>X;7%cTcS*!sw4+o_l34uZ#y56XCq47 z4oNC7H0(qGBR~vxNe-Two|s=xe|p$t$Oa4vK#Z~P_+U?CVREwuH*qL{9*P<$@uY&_hcW;tZqo%nb`#yyrA)ad*+o1z&oC)g8;BK(y5W3TzC5qivzVoWkc-wb%qYTl!7R%DMvl%OFPiv zMnba%1XhdMr1WsouVh5DAM0 zJtITC8bqk%l8X3md~1vv!(KwNWUvJ(V((MV?~jD@kWl_O26d-U5*Q8+B${0r0u3e# zy~`esNVmV>-JO2ak-r~DQOB#k0RUjiq4hUm&-%)aeYxtYd+uy0TelqyN23|ZFAiv1 zVz^0@4y(7vAJyxLp_HX|3QOgl?wYL+Z>keiOoWM{W&$g6MlH)GSrfYT4kw9Xaq=8dHTJVP26<*ZN&u6n9A!59okv5yW{T&deEPA zqt7v{1m|rbL23zB1|KYqS@X6hX6n{7LN2a{{+2(K%sFP^-p3#D^l&;&=ul|z zPru1`^ei7xL7=GaBL0#H0*8Fw+uFnCeX67yfyE;d&AN#yi0QB6eSyYL7qJ- zw%Qzr`GCn}5Fu^DASYunK59f`#>8R@Wl?Gf@J(m);N&0fyB2v7LC%qqis9hnnk4$v zdoG)_;lF>CY9tlF2q9C{4=1R+wr&dwN5%yjVU^>`fsP3Pslz~ILfR`6SUoBx%u85$ z(Cs_WCV@T@sfP<*P^d`;=T{omod4uhboz)KsZke%Ot5MoeBiZTXrJ}rODi$gt7lXF=YuuMnFb@iiIe_>!zh*AH65`#F^g&35aysNrx|JKk%@H|F8}4VLBi=<>=$? zgBd2;D*?(#X!#?*j)VY;P}CW`}}df$g< zcdvYkNi(7nSOYhPlwZ0J*sBAA!l)Q<#4(Y|NJhLTRnbC(hKhpJq9*l7Y=oLrk#ZM0 zqyyb)2p%*$M|&j1n0qoRqy(#&ecflb&bsWf9+)~NAFQ9A zh<0~TXDCrV$&Z`+?khHnhH?*CFcA@9*=L`bQR#N6A~As%6iN7lj&~IRVNj5nsn>Wz8$b2wPfzfr!O-;u+a%_YpQ8F2 zmPRTB&%)CRW8wg`0g50H9Oy1%(Dy4L7Kg+Jnuwqa-L4ZIVRR2dVBEeq+QU!=nGkHJ zB(uN#xo!J==mY%;72}*^q}Id3o9zT%rs`F_G0uh-gPcNOys$;b29sWUeQTD%7H)Nb zRD}+D`$s!Wnri{WYcN*xy#hBhl9x)=#32A=QsmRYtpoV^O-&<#c^RC0^qyV)|8mfG z{`LdqZ+u-6&Fww^E$0t6!>S?d(r@2PYZv`qoWk&~U{DMX(kv9%W6H6uP3OG3-)8ku z;ChNAPo;L{t&3V1u@B5pS0$1Y@51#UEc$>B8N@mg6KX{>L#@`crfi%1gS|E>t4c;8 zFi@lf?fb=l7q&e5M;quj5-`+E;jt@J>eYT3B{mSsjh!%9C8UI;SE16wop$^3o*IXt zI3&cdbfFC$==51|)NoHki2cC)w07Nj3wA(zlqigrK(fzQzu30#hdwgE)MzZL)5xVD zrw+_($R}kV0qljtO;5&Kn3N;dg!JZ{#+k)SEdg*L8_!!3YI)0hw@;dKL<^57msAMa zUV%{H`Hz*Y`N<07i zg`i@P25UbU1Got-b0a>iNcsmgUzi9@my`^PTAQVZs|pHFud|rRNX*Eo;wva;9!| zFF<>Yi0*sMXSVMD!GG;D$fHmuTPjq%RjceHLdE2lvM(j7R;gm4oJpiS5(A;WE_Gl0 z+7wAEsuWV4ga{zf=8yi{=81I&Of?3H3T$SLDIG(B0h)2eWOSL3GPHfse=}A+Wg>7! zd=5mMGtPU<>hI3Gdg%qQla9>$E4)ILcGyPd2?8us?45M z$U~SVf?~)gH-2Z5-v3~%Vwgp<2@V-EbB-Kw{FR(@u;DrY8xKlS@Ro2fr%;e%h%lT1 zBsK6}`nC_<{q+W@gVQh&V0eN;3j0s_L=#c}YqkLZAb;|{_sx9AY0vm!gS#xb_ld{y zt5-fS#1-T%!e~3S@SZ@t3v{R{H>T;(4}Ecqssw2e1y6Obm{nIlGq&x~t#v`|lr?`Z zX$DFtAZK?qm&hMj-;RUhG*b!=|N7vv4Xw=Z$V7qwh~%{^gv3DDN1S&BnSS~imEswv zmI)q=B=c8bQUxbJ>1kPa)YJQ{IN_;-*SztW!&jgB?7^$%K7Byvr`Aq@a~$&6l;ExR zV6Ut?`?}9=p8b&zbq`q+tAZjIk)qQBeULU?LB)3a@~11ho!P*UAS{Ui?=J zCXFCaia}t^e&-vWt2uGs`~KeN`FC%CZ?(R;T>DQ4UXOywhIZ9(dyhrm`pkqx277!s zdOd}R`4G*uvlA{wZu)+2Y?=7B5A-nvP#XqSLW1o|fBDFRQ~KHmvs9Q}twh~{DwRWI zc2&XK1~$1_wFyStj0pf%tzIG?X%dp4GEnq2oscO=h#V_SZ7Uyl-B;H7sgrzl{?5Tw zMxg>`Z?G(l^}fLvk9v#58?ZA_qrq;2K%5#@q1j)#x^3?dTsc_bIt#E8sj4TdLdKCN zpKxwDDy5RB$re5VjGRUSjn%cU^vR`HOqRj2u_Bqm*utn_{6&}c?lt|?v77|$Dip*7 z836p&1RM#B^7rOC|ac!+wt%C~-YEYyR=lLGtY6gxupi36!7B0N2>={0CVB=tn0?zDw0ck)Jiif=G6WcLmdYVDi0E>Z; z;;%!6XRlf?IZ4Vd$&QqU-zd|r#-xI>#dr*6z`9liKfIwmhI6B=g+OLs>+lpp|EDz|NAA!n1?25RrzdEwIlwuW3K%gCFeA z`C=}1%oZ#l4;QHiK|R2$BA09<_Qa73F~nk^phUz{e?Ro!KRp9WmPRD%Q|53q5vxv{ zl^lNI#|Eu8H5fL!1;~RpD$42*XAz&Gj1=LJBqjCTkN?z|HH)ldZX^MrQk{0*G0#lg zW859D%v|Lacs+2`6*A+5xnDLdbzUh@k|l$Ami(VDjvGkZx1kzfLy*y7W-n~=ppii9 za}&oN`RQBRk&9KT_C>)%M!SBnu6glyR*yCE|F?JEQFfKp-~aCYJm=gyy`?84kWi9H z8t{Vz=?DY}p_i8;phEZoibzBOQK=G?s)CAwf*?o}A&P)P=q;TPNbh}mX70V`oM-R% zkLTQ(L4hUjOG#k%S}YRQ;?CT2p1Sw`e!eB~f71bzR&GDk%#r|Tw#dXm5m_wQoHw2b z;xj4G&laww3Sy`#48=yB5NYim`y~he>#4;x$BZvn5rS2a5zcDt-?6}vP@*sZ!xG1a zg&cqmH}v5@ zJ(%&%#%dsNN=6Zc7<=h&>uYS^UYz1YQ|&5R6j+~w@wUy-*g&iU2M(MVxCX3VliYJt zbrEN*WI+&wJt}ng{(DZDI(D*bF%tj)_Ws7#AKUM=V;A}M)lN0DS+UT}n)>Uqe1Iqk z5kUcyeDKd@K%IpkLT1|?_9`2A&ZV0yoI=vVFAIZ6R$M%*&yxEV)%=(1Ch$SjxQ?G2 zroXgD+85`6SI$x=j$QGYS`9Ek9EeL>!%P^H6;luhxMJI3!M=aEcg5JhJi6TMGOCH# zXlzY7?}?ScC^lX8>=EyD^Q9ZdKl9|m!3P~7%EmagTrMV2a<~ZM}yD3tYOIDFPFv&Z~bCYh9$wR ziV=qqvT1TetOGmv95frrHBbFjwX0u*;#z4mg22)Nr;LC1h%+Yr_2YV;A6visRkU;d zhNtei^qGG=a-W;u8lpq%%e4BpKdIid$Heu$dyVQX0SZEZDIoiSM_d7O2JI-As@)Hr z-1yYHGdJs#4^=oAkT?}$Ly2Pc+5a4@+Z{A-(3kr-q+VZ=>Vw})Mpo*==lXyj>%6M4 z2w3$JHdZ7GNh8}QSrnh#;?lFowaG* zqPGw&T2n_+6f$$HeS0+34%-=3BSy8E^6HR5wrDR!zQzECQ5Q-A0Bz3NnH=TXV2C8P znIs@*M4YOzP6GPd6Xo%Fm-U4v1Tn-QI2agBKt~?mG-l#=B8j+`GicKSO4-4vMYJhG zu(9A-Zk*Xj&Ly0oYL&CKEFfw&;d*OkLg{|j-K|9+w|@|7{D#kWkVp$fciedFq0WI zh6aurL19$dBo?BaXbK=u77kNN4Ftm4g`Enh24WBk1#jDY`zCPAK$wxhg?XE8DN70j z1NX|b5q|G8aY*c)}q#K(nld!K-C>KzoY1?GZAzYnDo(0)-gB2wp zZ;=>-f)v`5=DV+~hRdrTo+)pENVhw1??)~?_^Xe6yuDQ)>kSS1^^;D!zI;Ug&7DKX ztAN^G{zvKD*Y9nMyx2iM_>u=U04PD2)(UJjZ_|Ij%kEr_+8W22qFX6t7c7f{=_mYi zhjp_zWfVe;Ou`>RL-@RgKN&)aRIQSh#2J(o%0Sj7MB7xH181?IeA=*)ArP1dagb@5>^3PN2^ z+2^u5*VJYHf;27FynWRL{Tf;pt@|)Yr*$APa500} z!3F|S2Kx2gwddIH-PtS##tC)C8!u)%yBdy;)F7)Lg`#lMxr))`(@IJ zC+;ZAmNC41RM`V7Ra7wU;@>t8=(9^NLlE+EeP6t_h&L-_bsInqVaL9zU?Dh-QPSEt zud(pUOX^7D4nlj>G4Yx&ox0y!#UD{TFHkPW zFa7%B+Ss;l{P2C`J-?TdL4jk0gGY|97&_(t^~wPeh(Jtmq)1Gx>*Da$WB;+k@|kNw z{T#SKe$*%g>Y18gv0!gT!VcC23MI;iB5fs!D`aD*wjf=Lgbao_;z-D@5lP8}z_`07wzvzDv~KoNnA?=Yo+hX3S&joXbpq?{cBSQLufZUU&Fuq*ON z;L?V-E?^=8&}Lg3>+im-#v~2Ins_dF>b$$-*$2+u`-sD@-Il9$i=O}huwV5KYxkUZ z_+%bbo>!7oaOc2CwEd~Sl+JkZo)09qCI(Ig6evUjL@|R*jEoZ05b@|eP6)R7(RIr^ zya1FP$OV9sEQxu>vCj=z_VQZ(qD=s%#JABXL&Y-0u!><}DIRf@LBbk{k*pMLF8rGz zIKZwjQSJ?LiBQIQzahVM6G8Czzm>}Ir|y8ID@YJ{H9^sO4T>Evzkb!|amNP+WFUaV zD22cp@~E7R1xQ2e)1G3GID@!oYDKEp_`>b6dF2V4kX6U*Wk?hQBkS6Zn|Q)^kF5F9 zx=-Y}eNr#vrsGd~?i&}L^Qb>ustQ4!`i6o9*Id|VQT-b$oIyeskpfVQNDUHpFbqHx z%rQcfCeApm7TP>j?>+9k>OtSVcD0BlW-?3+b^wbSERC~s4ti$9;=7ksl2}J@Q z3mT9*BA3__Vc`S;7aFqJ-`(CLKJnB+x@H}bxb$M`k%TIsL6fgp^FMo?Q^7f^G6E)r z37yZSiGp(ux+Frx0t50I01{ZEaIr1V+-;ZlN>oTCA*iS$Q6=cUhadj?YbQ*4 z`V(6?KB*5br){E{HLYJe;JlNTcfnBlh;w-J>ht?I$LrUt?@SXBgdgfRtRTleO<~z) zzr5dtHQP=8@fz>JAQHfkLjZ!yXArx_RW0$) zC-;Mk{^Nxo`mIw}{`!KGrhKA1=O_8$Z+!Jvg;59Y{xa%#?_l)BX^0}v8*V4clzJX;}oX%3;lmXF=*+{&G=`u!#q z0g>O)84eItI2&)gds)?UU-`?>H7~3zSB*$eunu_(2$L6!D#b-YUd$ ztFW0Nal8yRB2@}Fj7*^e zNl?iIjRfAz?!m~0;Ecy&dY!K%+W7b_tk2z(5e?8eHhk7+& zdGWqyJo||+5TC|N_}w=y|IHy+pZ#3d<=pq_$GYg&AM~6z$n*q7LbsGNjk45P=+{BuAlipKKj#D zWh6?zb+WVIc*wQqOgsPBQ*QlKcF0fThfM4_vVCP?!|@Z&KDn{@MHBBQMIk}(@#K?$LipCfnosnn-ZT`X9 z9!rmzKf3i57ceqOQI`7OUV^vAZGxdii&_*2SjBPfHO{v;BC*7X8AcLy%&+}3lRy2K z9n9s|)M{IftvD#dD9C}JMjdG9o#VZJ`L`uIjy|+3P%@fkc*L_+Vu?{k0(J^n+y*HS zD7J9cfg|>2=>X93?z8Rr>(8qacB%-~*P{L4Kl!|`H`Moyj~Q3Bd+X3@slArw<}HmGA|YaDybr7zxG0N)rarMo(hQNNW@-*$ z7{ii7*sp5TwntwzbyMl_r#4tp1}rg1jS7TQ-RYxz}N4an|Q@rFIR87=V1-yrmB>S170C; z2tUw@+3v zrTU}V!2{g)zW2RLu0LebpFiCl@>7o8PCM?GJ5Qc?gRzkk(uYl!lmdivW`<8sIlXpc zZdH@Bh@w(#jto9@#WjpX2vF}JCXa+c#0#{@f*#t6Sc^A+eDZ!h+_rk&6Q76v{aP zO?Q+`S426DNQ}lV-w@K150^wIA3H2LeNs<-Yraj2;4oGMsgeuiKtqPa<8FOo?f!>O z4oW1fBJaTAgn;ze6BSbkoWQOsKsM%J9AFa$F(Jz4QR)bqZ(ZED>F3|5q80NvAq!R& z--*OPNvL1`$(c9qdg?K^efnwQ&mgXxdLeIkdEG<5xaNVQOq!n;3cwme2?)pRTNr=Y zz3rt{{mQL^Z35B{5YZ64S7GWzNgAM_28oMNVgYH5H#NNe*e!PD9oN<}351MS8mF~r zpL8&yp^yhBrz8sXln@;=ym0JGFRzf23d2IG9K$$6iNO}tZjmXll|U0EM>&AjkS1?S zk{~t|hpODx7Q2_9?(pFoP8&s?_ha3z~O5^?RG^xOYz% zBjgO)AuyDrkR|`{g%z3@U_%>taREwR|4oGq+REEeo)Dxtzp`cH&rYu5w_h?sC4fc< zG||{FkrUD5M%~>1$`dB99)6jAAtnF-%xYe}?JsZp&69Ura>b4opd`%Yq!Hswo07{U(B0GyHb1*@LhFzcpE`^Rs+9vDi? zLGW}TudqVmJzLY}B~2|p#tbeT|I#bVladN!)IcaE<18g+%R;9MBAaL+t&U~B(Og3! z0hB3dTIb?_JXMFg?&@iueclwT^=LsC_%s5m2XGJ*LDcLtTE<*--O8N?9?;7;Q>FwJ z3rEhk&Zjpd2L-2|tlAVInV$oh1U3#(2%Km9B!J0pUfj6;rZcN}{wq)<#tI=x_f%D@ z-?{FhcP>2V+=I5M9<=(icy6Cr*W|CRyRqraKVSdX4b*zz>X+yD?ihDOO5`|Rzr?Iw zG&3mQZ@(2btga5+`|kh-&^ScQ2?7S-LKKXEZMwTE!x53`RlQx=paYI;**v&(Q`4KX zD%s^p)$8Pyg+OGALP%0lB4M!OFbuTMzWe7h{rcq?%tAs?X5}pl9lZgREClD~DUgd= zO=i~1+4xU)Rns|_4Z>Y_R?>xqjqhxj^Vsbb8}7Ze$`HdrRf&mHdZ?y; zo!)DaVU2-|9o0N~()q1DciAJU9NfQ6!}3s-$dURi6GYX24nQef&^s7=By7=Fv4a|~ z@AE1;^vfV8RsmH*3RPkeR#kulvCfe~x!o9PfXGTol1+v7I9|N646|O%B)`6+#=btg z%t;sLomBTFa8PEDI%Q!J2zs1!PScoUzuD5Ka(G{x79;@vYSudGU#}PrLHMiQmnRUHO@oNVbI4 zYsk7=d#}FkFH`e3|7#bYeNli+>JRULfrH(+$-mpQ-S+#`Dkxw8R{Uzu5i%d?sKEZ@ zlLW4L#l~5Uv+lX2cl#6fmkU%#m6#Nw9(x@i_BMHH097>*a-q@6{l*n~9(iQ_fDxnG zYew%}&}?-WxNKOGqcAQ(UKygS5YnQ7Cn@oJI4uMQr<2$Ft-lv?!6KBR=e^S01Aizo zDy>4{dRNG8Xs^#V&YfT4o}blApMAU>FT4>1g#yJyB4h|~2n3XnmwFmf^>ibKYF5h+ zJ~X%U*S@oA`?}rxaBM4JplRyzKc=U8tc?+0Qg)m2NEWsGJ}ycS!XQ!tVyE1^@L##M zUwosCHZJ1`7T&%uAw>XatkoADJag~wpFZL7-lwen%xi>O$`+nob9JwhDbuDl-umor zRuiwB<`AS#jXDCC=+4*Qy?)r3W6Hyb$~(BC`q93FhRA7x&=Cv)&XvaN*StI3zVy@- zP9A--4lV)Ik@tAEu$rjTVr@Xxb6E{pjwulU2wd&C$2axaez>dIWmsFL*B~j`aZpP+ zm6SPz#Lluwh@+A?*5a?5VqxjM9%vnA&jct(#)6>)5n^#I(w=Lbzof2d-AY+LeMVXC zt@)+;;J?Zwsuw0^r|LZRQ~}3Isn5D1V@Ojk6J{u9G(7Z>rrnPEPHxcPJ&erzg;W^_Db0*G0MocrTVVUzP@qZ?7t;TpSY(km_99&C$B0%s-K0o?kPH&rRJ=pAolt}D$;|BKSU{$o~vE@ zZv~*7>e0nFa&wxMU;z0vA)sLIx<=l=noOQp&;eUzRVYbH`%nFlp~9p_Rbh4+8*Ovs zY3oOfoMVhd+ugt3K4 z!^+Jo@BcwYpT8&L`N1JbJ!H?{=A2%9-6d}yFzMt8<7-AN+mgoH7TMnNM#H-P|MS(c zllh;kFOa+;(inzP?tw6jCdxbQCc9p8`IUwrTm6UqYPQbK_k zk8o5*l0&X#!|DY*@7;&nT7UDKzEWRrMVXWm^*|>n4icnARH$!g^t+26|3m}`nNFV? z6kG7LbE)mBn9xrCwf@`7QZ=fi9hEr`;P%oJfwx7Y+FIA=taH|k8hB(ycBh@9N-3}5 z7=aoj>K)iYfS3eOh z5P;OFcuJ{)lqh56u(QVB^^2=+ylT6u9hYxuV{MD=?;1YmD(XK!f8A@}zw*&9XuK~lrTRaS5P2@3^dsFF(nk8cjW(@a zJu_N8=Y`Tm)1S-Iw5g>X{#@|L10tIaTIW4!QifY+D@NA=%^e*_{^v+1zAIfhnIt`S zX_}cb>DMog(vB$z-E(|yr*Q}7dW`&Xd*6PeO?gt%OW~;t@B6)qyI1;GXCPuACP{r} zEn)!Fn1@}`1}S*9yoEsohcMEXhKd?aX zHjln;i|o4Hq8l9V)Wv4mAE%ys<;_3&5vH%L>*z|*PUsZ_$R2n^+qko)H1??-*4qTg zt3zlaWWW&T+aZYs%$@`C(Y~`mqCWfKPwfU#EK#({t>4hH=v)>(0)nmvXIk7vl+(?OQo5=?6#0^dgMpVhNL?S7{nD7Ydhn?B zfxGVO>b4)Txtea>8wUQeCp8j%31x!$3I28LA1x5^9AxIhvO&h7Dy*_ST^=`1%ZOE^A<@qdT%&DcedPc4tE-rXT z$cHdtirw2_h6%EYk`kc0M~t0^H*YicfT)k{8`Ouy18-fYxhWU`;|SZun|fM zk$;;27{S}S|3|qrDaWvgNhGz(d;--`UwpPSQOYGkR=7g9Knbna0UX_{DyUJ zZf?K(hczCq!FR%^a-QRBG7znQNH`t&wJh6yfaz_^dz{^3nOAi{8B zyg!dg5Tr+=^rQrZL81o-+gq<$B({b${82^>hK;rw{It@jKv4kYmQcOI9>-u+z_QrBO0JpYpQL&u$L%C)Lz21rCcM0fl?;VcsN#|-L< zh1Oy^)emA1A@OkV1kz#0NDPp$&zi9J-1eDIlj1?rG;HxG<9oy*X(EU^eA5Z41_>t! z(z2X5KRJ9)etOi=jv1R?Ek57~r0f%>qM-E-g_U`rT@V;Tj09neX|8X0{eFYHZ>*O3 zg&+kSWr#F}RR>4DQX{N7;agu_vB$)H&bWO4uRpi7jis$t48G^AA7}dhqyDE4Km6bs zcw>EeM|P;Vj(VpKf6E)ZQ#Aa-E7xp4Y<#xDRrDr!r5QQDQl{*BGX7$yg3iIr$;S&2 z{-i?K+uaohesPsI3XK^|goFhgGc@#8m=YDhOC!i8ff@nD3`E*oziH7kasI9=dYL72 zt@nBGx%_`0E6L(pZl zFJ^TT1IfmI;KLw+LDH5WvmuXUK^9HrEvTdfw%s;2*3W$kg-33x;dyUZz(Kn1c!W+{ zT7rIQ(!p~NI%LAdR~-3&rd3hT!qz%|J{LHUS6i3${q7A{p7i?c*S}Zz%e-EIdNnr{ zYpYtktHNjkH*9n??8I{$hm1JX)|L;bG7hX3PW{ovXM8-9G(qywj!d7~i!6G}c73q~ zNerBEu#O>-fa}{qO9M0qt*A^GlFzMeX_)tf>BS&L&@+@Qj7D%o3Mk5k z_HCVX$+z!1^2lSS>|3?{+O2);e6Dyn_sx1{%r*Di_T72Y-Z%ztuF8PZ*E$oZMgHH-`u@@+xiCfX3oAa<@HFcfGR_wtfa(Lvd1BX9S=XP zY49!w#uZ^*B@&ZWg*Ae$f*YzSt`I4vBqksRv?)PhX#|eN#kpuhbJM(O+4$K9E3&UV z5#-tX-FeT>)I!Yx;LxkaAPDNpWy0x4E!_XG@t1z4<3s?+_T>nU=I0T zAAgin6yEMI+L0m zMI8E%N0Y6D-TQwUh8=QhzW1Q9R9e?hDygDI69gnMEFiUrl_4g9B~L&0cgIfOaG#k> z-4PX?H3b0RV!wCl2cEtYCGMhkpw2%R|9@u@rN2WE8zcor(yk~h&NXjtShc#eef2D9 zfAQgrzWlEWM9ugQiOYMFy6AWo3f=Cj2hQ4N;<%f84D5ODBfDSlx%OK4+)sdF+|>AD zw*KXLeN&`?U5YKoENghF=UOiD@X@{f1F65mjo3ZX^G_Zk(rXf31> zEDE`(t<|kqU)>sR+}yBaF()fm*1WT7Zi2_3s!}w-f}wD5tN>YG7*KWiAiF3cg(28c z{TdHD>DXt=hS&b|*N6S^-Aba?FVa}}LQVhxm@6CU@t#gRH2?quXGugsRCrNs{OFtK zJo?hp<7fZl#a(qlL&~aHz0>bL<33Vl;_aT+ABBA>zocu=N`^u3SQR`<)71w742= z^-S$KxTHYd`q!W0yosm+{`3W;7;cb)32>dovCf^Y2N$+K>cBS-9lPI?t4|sBixb0P z%_o{+`b8WEU)TxIHSX1gnP;XwJ!tk5&mK{klW)v?X~uTVvzCSc(#mp5s!;8m79DNC zl>QgrW*Sq*ADT#@Bt=~a0xhOuwafH+&n=|OrxBuJqq3$z5@rAEXp~+msKe9Pe}(~d z>7CFbV8f??H8WyBJaqJq%MRW5kmpD4xBH)045^;>eHs&e(cgXd1o*dzbwl-p2W}ad z*_b=Dv|WyW{C9ucA-All0Q zN3b~W1gl6LaDeoN4WH&mXTy&-uaFKc0YC-lr`ICN%~ zDjK@qa`y!Iui}20P20NikyqdFvz^Mz%8w|#yK(GOb6@V+Hf=#wXC@_Gg#QDU`{9@C zkMM>%h3XxBPF=HDC~6D{WBRs^+jaM~RfBuI9>wm7A76U;g5NKmHtWuzXK44^?4AJs z-|>cSEPwF6YfAd;zUTf69)0sm>nfA|AG_wa{dV}$@O}&C&NW!w7QW|_`Ed;X;w0+& zc@;Jpu=~z&U4iOLj^1VAfHnNa9;Y2NpO!Q}Q+M><4QJBu_U^aUJpn$oxLs!q``>S# z7kvMa)4y`#TT|`u#}{pTz-cEQ_NVo;TGl@HS}oq)R8tm~lq432T;!88i2zBuFb516 z0<%Rx0jvYsB;Sr|d+_g1%oyKm(G|NMUo&Uwb59Pu;!IvF50kYC1KvW5SEoj z_KW*%(_i<-fb2NxTe6S#Z`fn-(CKvWQ1rcYqW*TsiS!lPUb>%ZcXUU0bVqk|M|X5b zcXUU0bVqk|M|X5bcXUU0bVqk|M|X6`e;@xBd|NOvSplns00000NkvXXu0mjfU10Nf literal 5347 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 X@eDJUQo;Ye2mwlRs zaB^>EX>4U6ba`-PAZ2)IW&i+q+O54?w&gmGW%;jGL=!|(d^JaWXpHJXHb3X&wtGF? z!=o}rRl51LbL>2{B@$Rz3k0yQ{lEU7@A{Ab_>YitFV~Z6E4`GP|2_Tb@#T|t|Ni%$ zzr+2UzyJDQ{PWd+`ug?vHzHq3d`!P@wDS8H{`&e~7y9!tynL4b(}mjn^NsP(-{{Yu zmv8@aq2J5i$vg7%_2)wU&xKO_eIxw2!25fwyYyE7^COJ?`?&vl{Pz3r@~=4m{Mer# z{?~s$mDO9B*GVz%6w=M#DaGFnB>ziSdi}=vyZM9s@$FX`0@lTK0{_)@Ut#*Cqp?Qk;DeO)8^H6_1%K3~R-p39(=Oa#Vms@e_u$VAJw&$g3r|?#4PV&j;|!BqeBzFkk1@`e&evM1vB#P2 zi>-eA6TVnePb)PHU>-YpQvCZ~!g<|(UT%iQ3$MUW#=ymbMspp@`M>bzzrE1+={q6Z z?eDeXzM^);ZMbv(%}=o*;rq*u@>$@&{`~9z+}Feo=CjO=2Ym1GyTr)hk8Np3>1=f3 z2QwdkP8;g_a{-o!*UsEbNbJB}Ldv0pyT({UU>zI#^KzjU(-Q|<0MNz7UB)M+!sg(5 zyf(j6!}-~m1D4T5EA>TPs4`Zobr=%F1hBGdwxqQPsyc}T13&e zrux)eORcrlUf-75({d}Vwsy7N-X41bWkKFvd+WWwFE9FX<(J=n`GNNxaisB#Jj$q} zjXvIq`OIhLS!SK>nti@2uCxH0RaRYX_4V$sF{SR z_wQW`*Kb?@%b)-Gu7$sLEuNk72kYOv#;?};*Cm2*lHD_QEIxr9ukHW_9o@6Lh3AQv zTj!qL9lT6Aa+lf7S-~A+2cI2c{=(mT_m7?Xr+vGg=l|Ef#lLp$a_jzY?A+zn{Wm-J zU-#|b?AkJH%{yIZhjc?1^-j3oF0sA*f6w$4cIf=;{y%*L*kWJlt*hVM!hYJjp1xb$ zCFj;gU5Wka-;5*fhc(~C%f_m$=bkSxQDYuF;JkKf-&b0E`wTqF$8V;5?;7%Y_WiE@ zmiuL)b9`s6bMNoFM}OIqn!d`fgq7Ild9A^hYJ7T6U!1MsKw%A_uzsCA{ASH>?cp0^ zg|hp@buh!a-|A;R`m^8p?2FqDvE&shYg)b)qd%~3kUEDv0pPaB!8P`f-e}kWU z>bDob!RP0$t_-lR$z9hl2d^AwVV(Kb+|S?XYS>?rZ2M(Eu_6l4W&nxU`a{?8xd%k2&JKgYSCN#$91^u;}n z5q>VSUfk$u8z&trK5eo(m_y_-0ppbMU6udzky}JYEy^@m_m=?sS}e)aLB&zT2sdN-xs@`qm(pxhS>5B zt?>Kb_*VbEgoEL2c=GTSN?)a63X_n|9pP_Z>UT+Pq&41e&Y4CC4bMz#kB%k!OKf+> zGK2HX#5%v1%f{t%;Nr@nvR{%QMsSQ9(-f35m_hr)`!P&$8b-K zcU&Pi+-A%UTJdri(!{j*fruFq9`=VJz2CjQ0wv8mJq5a~LI4l%mKKjBwY<3Y8oT>6 z^J~4ZzG3J}&mO7G1`jLP?hGF`dVk#i27+VTtiiyc%j88y{I1nOlLeX?Uuwb^Sl&C2 zyAj8@Fg}^{`>;Cc<0kf>{MzufoLDojGDhFr*q>i&-lSf?U>L-gdPRU8v;E#xZ(jJD=Vrk$SPGA^Tdqd47N6NQJmLxV8)xsgj_%DvTSB;I zdowm(-toX`ctsv+qzpRDcdSX2fI7zKU95YO_s_aZm|tp0l>L^0+wpr9r|q>&?qCI$ zYqs#Ea`WOmFzZDKz)lmty`HbWA0c(ZTaP(Tz%u50@=_SeRX%Qd`3-OsTdlEv*vx1? za~U`Ve#ZlRYiB~_{B{_)+Q>3B4V~~aV)$5W!en53U)<|m2)-9z11jzhW6LFkH{YH3 zir28&4UFRo5Y^IFG1zw~AQp4QhX?C<1QvV32pUoPOS|Kw>$@A#g22V{anY6+KKFsU zouA}tAtD!6@mDKsgdeF7c3TauH3L2v`}+43K%HgroG4Sn96tqBBj!TdR)S8zE!YslS5G$vx!YID z1rKL|%7o<+HX%8yZ$d-z_8?lTjt?w%9dlO0mp`KMoo|-1fCqS0xG$IrKd>}+LZH?Q zz^x2d!T9C}S?l0^HNxIFQpbZ1_T#Gr;guw5lbgAM5VY`&A=(kRfmK|AxPvDw>}iKS zaN_JwJsJA(b83(dX#BDv2WP7nUJ9{+Dwagt%TQJbqda6(Xx3(78eYO8Vd9;@3LBLM zfpuI7#<=^0EKe328zp}A9UHXJ-B`JI^(PVPV-JaItooKgwMuYljn%^~SsXlSKmC57 z-~B>J5V~J{VZFpW?iowY5yLECHY^CsCv-L}IuV~XkQKnikX}eTf#bu#zKuFc&2V9M z=Uc1>%Nh2*S7jZEd|zus-Hts-2?z@86!!oJ9@4k=C%R#9*L+sR;WxSfKm#udjt)B* zl6d$=Tm$=pn^jaXTmoKN+Jh?tAMp1V;J}X-dW{8Xut%ak-%25^0ZD=Ta6I; zfn7TU{`qKpdyag?#eEX5)S}U30xJaZ=U>2t(Fj$9nE29Y1^)tC;Y*va0Y-4sQA!#x z|7)`MZ{x+{2Hwxz5xnXrV?h8v_lxg- z+n+!PAAk;_iU{u5wO-w^tC#I%!5?9Xm{HP`5hwG$2*|ycyF)+->yJ4XKZgWjP#?zj z0z&NM*Y^Y(i9*CoG#%!LSs>j$_r2x|D|`V8?6D|^o^?!dHZD1V{MvIil4)7|oT4P^ z=bb1ya^XkU6Be&`5m;E87wKZKjcl0wX0v`MM}oqJjP8ehfN2GulNG?At51Ug;{E)` z^>0)*q|o3F!5>PMSGi;A9SRRq z14syOyl9q4e7B2=g4?wLHFtU@91l)3_+CK+P1x3_isz@+g%{~sOSL|T*MYV5 z6;&4{7G>06k08f<9qq~8rTxB>kd!taxV_DbMHJQt--oKgK8OSS6K%~}b1M+C_SGA2 z;Y0Wf_o^m|rM)Y0Z<^?pi4r(Xl~L>lETL1D`4}t|$A%;WPKW@UXnnD91-x_!L=b%F zIUvKj!bW&5gcCxdb>!ld!vOtn%`Eb#Nr9>Pu5e=L$U@tJ-EbW^R*x`f5V>u1*Sa9E zTqP1F8`=Q$>XJi3JPRl%ZE@+LZ$3^+Trb4QV$jBv7omN!u>_q9pMH;{!fd%>fk_d6 zrjYgmg3$eE0M&#>UY;280Z<^|`iQ^l$ba?*>V09z(d|SFfHI4Cgllq7)w^wCR1=$HK4!$bK3zTWN!w zg#rgTrQVxIwlAZm=(2;>MoX*-G$$9itPCu$zS?_WWq) zvlO~$@i5vh3n{ulJ*4l(f(d`f`itNVjH21@9dA_APB@T$z&^-6AMh9M4Nw3L zdm9rL0`ZP0pw=rcG%jucwgwRNf?wk8V=LkMHbo-`VmW)kD}a62`->@;H^1OHA`3IR zl^ukG3l39__mCB=2#JoNt>MZi7#7P3bCCqgqX@AmENt`XP_tXQ!!1Nt7Ez-H`=q@} zuV=i(nkNI)a5W`)ue(-InP}5K;RZ`UC;~!Bi$cxa?jf`Wm@6=bPYw)FvZ93_Mw#=^ zXX*+PdBk7>fs&ciq8Sn{K;-ot$$(-9*f1k@BcK%_cyN%#O?0XATTGS_SvM4f81bY( zj1r;8R{=Q!IuHo#eTE}Q2mGDD53sP5aP5NVW=rOjuECLsBh`R<6YYpEcZTeMAvr;7 zAqExh9N|X<+@nSGt2?vo3x>mvG{^z6kLYz4neYgUCzwJe(LZ;_W|s+}4!UDnsa?3B8GUHax9x-Ixx5k1ITRrxD|L3M zPrpv&Li9d+W%e(|L(ke#tSYI^ezaW?CNcPA|u^iRN8ah?|If2=i`SX z|9{}rtsn+*G&BsHn^l4&FaBer*pR^snI0)9wl(l$tnOL_OLqB=Z7s+d6agkmpyOw{ z$vswUVIdLzPK3+|1weW7N@(q33YZATC4*6f*BQhw)99W>Jca^95s-*ISK=1|sNcZx zW3*$F2-7fcxGFRP`m#Ta0Wu2x#TyA%uvY^xP?^AXwDz}4_4G0b4i!?f+-bJ2l#WP7 zV7)hM-vb)_VhwOR_5~mtTpXTJD_jxA3MW8vK=k1`@x=siUPx^m_iqn*4(uwx+3<@i z&IkK#lJG_ByU}^iAj+YrE96*a&&!x+S-fOB`4Qap<6?w~$j%ZZOdt$j9HIxOhyDd9 zN-`_>i`Q%q9>YpM1X)9{nf^j}#1>Y>ObB4E6c0y$G>wABgKwJFAMi-HH5?4hb1(f8 zS0-%VM0v~*H04#yMiCm|j1#j5yYuxR!*=f#vKmkUen37o;k8KACl+>>us)HSNHch_2?<#S>|=UBSnF>mz(OL@ zX6<6SObQTt-nynM1F-i1PhW7f#A~v!pEt)!aR0>V6MF%*h4r=MsXzmO0Dt$se21Tc zufeSZh<3*szfxh~25Dd$i~nLD;4;y*_mlf*-6Mx^sL%y+nFI$o^vEgkhr)uLllc+#kfJ|Q^Pf{21)>S?vJb=)m{i3HLq)T{wIUGB z`g+tLvuIGkrn_AWD^c`7$`#E78g%2{3nb&B(0LwZ-sn+G@u@PgHi(K~!Z3B(*%!H9 zyc&Tk29tMBNd9*A*9pSFb$KTN2U`X1yRz%WJ+%1w{WAXOm0(I4JS5Vx%^%`e9h`ev z#AlcUJPzn)i#CMFI4Tb^{Ov79RS!fM0JeVv40i{sDMY`D@jDTRB zy%TO4(8S7ri3XHoe{gz89QKKc4SeY8=kxruayN7)+yWf9%{H1oQ^GB9_5@JWE5wqB3M=KCt38Vq*55;5plRbv$UeX_BTCUL(!-2wXuq1?3nd-*^ zqM0;Dux%c{YSrr;MKyiUz4Ji7Ump+x$5HK8H4qd9S7<|?Irt@>4^)BMw0#&Z-+}(L8fJ6|H0O=X z3S~ZEcoG315^$;y>;%56#{mEHX9a5iJSrEsJvYHv@usH)(Ds8{5T!npEMW2MXBM#> z(`6%ZgbzJ^V%$5yqtB-VA|Y2VYW5SjL1(B;R!@cB8P@W|&a-rFi~qR z-V5_X9b(xr5^&Iz#~q0#C)2*FqANdrPc!$?gCeA9MEc42xD#-SW!()j3eyHBFb^0G zbds0#5EX$QB}Z|Djrj8SK9i4sK9@wSb%) z1YzROxyzG6$5Lg5pJ%dnfxcfSuTFUSFvkF-vw09vL844ZQh@>`;@>3t;;H<@LqN;| zQ)%cz4dd<*-OK3ynaDQXm_#LZ6roP|jT3bkp$?T-l`Sp&xO^!*mFW4&M;1iL!}F!e z-gpgy0>Z#Tf(zWSSn^=^x3K0J-50m98a8s)FpLFsW}QF`TqL=Rkf5&oLgJcoslHG$1+k10oeM@Fx##wo zguUTi@OqEQU^KXpN#B~}ofBk*&}2LZPKl#?TxQ@4{Xz0#!UM^Qbz|CC?e~^I^DndP2=z-be)d^fkyzC?WhDj=wFxJ;2l7%qISOX?Oq}|~~%s5hI}miDh+VWx5B#TxfeDE_R2h^dgxjfIGht~ zcSCI=%Ba5X2Xcz1iS>xlE1UnBTLS-$hns%Q_QNF+Id~(_i*uV@eLfGzUr$ecWP*{W zE8JA~Y-V3zXtkPz=SnO4kq2fCr;Hr#g~}yHperR6SlW0VYbL5WnN|VPp-}VWxEvgY z?(R+u$2W41oe(POHsaPa-?LLg$TZvqR%mKsbb^1pbsW5e*S~NJ;sW}ns>ueZLTJN6 z2&vBihgUi|G2$&8jXeU&BVdXNvC8@N`~;`V1V~o=6!(0dVOGmP2cCdQK+`rL0ia=4 z|L&{Lr%XD@(j2ePxHX%45WP>>4ac8SD1tfi8`q4-$3W-Z&S!=@o}^*9xSE1$r0e+< zr*JPGet4_^f7*vWrC(_gq|35|zsrpPz&^}c;a33ZW2ST5{qlo(M?y202nQ!J)Bxi& zgn;;fSXB`>(YhX+!ON5JIH2qc^c9C|{c8SZx}}0cBf3>(>QuNsu_nD`^+bSSYw&YG z&65ICz#gZd7CSU4q|vVJ^`;?q4pR`YLwLy)8nMM72}5lV5m^JYzgc&{+E_|tJ7mbC z#Z@j)p5V(xXMs*2bk{@BsOQXY(6|L3=5eSyU6lG zHV|PS{5mT;(N9nA-D3=w1*(XrNN6Xqrr+);8dN3%0!%y#GCBa?RzSY(sT5Cbneec9 z!bOEavNn@QMX*Ivfh9ud@dj*$(1{hSQYPZKj#wtvI8E97ARO5@e`iUh-5&n{gBZ&) z3D7-lcwZ!_NeDue2M;Jn4|cK~8P_(bd9=gkCR7a%z^k($#Lo^EA(>!l>`KJJ;ccVn z=m|ph_ImN!uLm2}>G;in?IBMZ5Qtb=$IdfBgGVziRVzs14QDEtUL!2y?gQ#`?UQ5b3|w!Ab(hG1YRQFvif_U19cn=XuqO4(o#>|i+~|?J)paS zvq~?f84+NBhxYupv<_0HDE*4L!-@KxfzNACm2&L-I9G;th%T66B2ch9Lha(Y0jvUa z=4xtq42wR%YV4u0d;y!f2zhu+dWxGxwD8bA@O)+Bxyb0;{5`WRC?N0H_oVf6R87;zn~q zctFU`WzitZ(~pKEN8=h&l{4RCu?R1^v77SDH?#O7q1B+KSm4F8<^kM6z*9zoqNY6` zMO9?o>h3422z*ZB8U!hL-~r?2vj?OK>kmCTxndBcgK9(&(rh;CC6?xPZic=IPnd?vW@MIg)+ zBpUUb*81^4CmV{15)vLPflm(A`U+v5k53WtpYP@&=dWn*q!6GsN(A&vy|4mAdNWbpaTyO4mt2GG z2x^Rn-Hh#fKr7V;ug7j+wq03h0>qQ~S;{3#1<>#@gj|lQsrp(YieyDZ@gO<@qQg>o z>$eDTwT5$O#2vx|2^C*Y7x)Sy?gIt)Ym!pA38%a<)3;kdje5jnn#oQcU+lt*JPWH9 zQ^~{l<*Ta(L-I@j#I?@Zx@q&i#HZF-Qz8QK$Q+eEbLvoX);O2Nb;WZ!jPqhYK{2yD zr_^87S(~L1cnb(O_0QJZu;P@x9TIoe500dX&WL{Nm=|~yst3-?h}ChosM(;XO{~8j z20j}k4$I<)VVHojqt)IPq9tNtDiZUBXA{b1K#e0%D#p4)``9?dn?YY!Q!3MnLY?x`D^CC+x|J1q%iFr3iOL z#3CA2*`ZpQ8?(~bvhaL?`pHTpOLkQWujmMW80Azch(8f*aIX48wCnny{FSx8M_| zfiMhm z7NK`}UOeX^5leHe<6a-Ia0%yK(gYh;LpiqsKzC zrzAm|^`=4`3b%Dayi`ZH45T9A^xo#-TYlhW-^QFi6CJpGso}d$tpNbfEqtD%df*55 zcnhmIaX8F(c@X4jF3SdI5CyGTFd{cgA0O^%Pfo*7$fVTu*gp%AWm3-~uzj7%Ur#&=JJ@ zXT>pW$^y9mmn$NGq4Pv;zy`bxwb)vov_!L_ zNZBdMASe$nX72i5Wdfc@0^6sQ;rDyp|Vj4$gE)oU|MfMRExw&OEdb(_gu@$qf~i- zcn)LjO)20070H-Rv9pXAW!?-D*zlAffM)^tQ3dDcnbU-a>Ajqu!n9>uZ zJA6RmP`6Eiq zrfv_$QW(=-ooCy7)sQWR{#y3;g*w?@4^Q`WnNc8~fx>y8R?s57O$&F?{w5oO=hR*b zY{PLSIg^NDsn*Qt+;IjS1z( zqMOIXrVDR?V(f-R$i7fE&Ay`%It&Os&8jb84x_TMWP56iTS2dG_L)S5UYf!9!1qfX+Xgi?$>ngDxu0cnJm35w^ z@tf6*0MZBUfds1WuZ3#r6*w@ls94U{Z3eWMhrqzcP%M^N0}^oA@BF?zob5cgtj#j! zM7g12wE+(qtS2kWX3Gws%b4Q5VGIc2_e~z4eCyJvjDo~5RsevWSi)!PRB-)H7|ilpf(7@aCy&QtPv%$m1eET z)l;z~MpU$IkN62ne)+-2=2wbcB}9e<=G!Ki2uwKH>mkl5NV5tKPpaz*r{>dxXyWYx zmXEl5Bl?5iv5qiA4|>`%^A7p8nZz6>O(Wjmyv!fboh$Bqj$EdXRw0s*$YFc$?goxNFk*}Q{2Cu?pQ#C z0B^P^n4Z?>Pf%fPZ3BBf__bsYpKL@C#Z8~Y=+fRZ+_ zF06qkwV*9G137B-rx>TI>_yA7CS5VM)xV)%cUkq36VBUWL$e?t?y%kJPjNFGCjGWz zuz4T@PUZ0sEP|bU?uiz<^Hs(4Y6$91naP&)@6Y}okGRr8*AAi@8>S-6kQj)}4KR3A zw?Wq7ar_?FI&}+hoOP;^Pi@lUF)jk$W`!?VL3N7Y&1qY?Da=>`>haboi?gH_o{ia9 zOk1X@zhqh2`*8u4v;#%pB_H|`Vt`5?)-Nr1v{M8K&}<+t1|yA^usBY0pu8E=J$1sk zy=m;6<^y@5h?t{exT6C0m$B&2GnhVc-E0VT2Ww^ zT7>rSfcNDHiSFsc^JEXCU@Nz^)1OQScUpIXF5blk05eA2BwB#gLC4uL&$DWWf?q0l zpo1TPIi!IHn4RyoADO{L-$>iD-4F0Q^H13z(f;J05-a(ce!7AwFl+j2fgPKF(k@}$ z`Q_H`YFWat*1ATRK{vA6$XOBTA?I5vx=oHEYOL{sPcI-2UKXrn54Hzp>z@}}QIE7m)Q!9>+M?nB1z7jOPlo+^qc`&!CzXi@V=@y03PW)J-ff$lM0_Ge zLGI{lfx%Pa4=4~wu zKSdR0$Jur#A$2VLWX9u9o9z4cRO!jtgV3^`YZs?PEE&s4x2tLSr5(Sh*sn+!W(u!$ z$FLhVJl`pBJJtnye09$=-Qv4$OzyLv#Pc0X`Z}zcJBLErQxupw%U$uTtZ7h|PEZfc5244fGXo`#1?c`%rPk z$0pH!L7<|E{_wP}ZUrrPlFzK_NmY0VzfP6yXJXd*GBPfl6Mge*0q__g10&H6WY*J) z0Gso81c>P~Fcd%(FSBINgFW+b(@uqMs_q5J?ekp7UdZWnUX)*HFY61~ux>p?iDe|R zRnV;q&nI3a+W@UO`E|duTxht6R3a{3air(JWj4TwFK$(TCo0&QSkOJmn#y2LX3-Ad zC&=~murR2U(Kxu7mKkY>};pytXHvOlp#xqtS2P$wOG~S$?55#@hb7M`5ZKHbZ#1UeI$A!FHZ46d$+R6TlP;5nqT4S=7= z6G3aPOD3qM7+-*H$91~IuIC(88pe^99uQljjlW?b<5%*&?CY<^x-6XO#A~Y@KM)tN zEvIMBa}np_-7x6nfDzDD@D0Nr$& zgMp`DT*FU~+bvf*NC5R_9okU;$0;Ha$7KYi;|&h%1i;x>j95Bu_tL zsehH6VZhrev|))JT*WCRp9x`;k>^0HZn!P(+`PfKE;NO6%TBfYLWfz3{V2>qCZ|DK zaJvnS)?9=`EW(+p#$`_PQX+V_ul-S5Vv;cM}TVJoh zgF2jA(5OPL)`DK$L#490Pz;t(M40I8R#8?C7qr=51BE*X{*=xWh_l-B+E2RfJ``duq^IN(~c|G_Da12Kim3E41kbG zWQUTPFg~gr=xQ2{6#@}jtgT*Ib>d~;L$H7j_yvhvsbQ~7wn*(BUg3ea z1RmJwUr>=`&rF^gH2X;~efue_^vv*=)-_dhPX`iAVvQp(%CZ^Ftd0XclU0s(kAe7g z#eV3MCzLz(b;WWHR(ZCj-S+^}i2&Q)801gU0VY6smlG{)c3Ak=87TJhH1jqWI4>tG z9V~x2Rai8pUbPQT(kXiJ~DF(7ZE!!d;)5_MFcpN?q;&Wbxp0;vZDkRSX?CO3k z9D-ta;0S55bIjTrEA%l=D|kQ`b5haM68_pqh;h!xJn8)%kNx!#O?#5x;E!5)4EUV` zkGEw{uS%VkDbnbCf}KgsCpwSSXH%}P1QrCOU%7Q6QF`_Jnjmqx&WIOVNeuua8G z;KwthUx$gcq66Iz!^aZdCn@MHAC2i(3GuaJt;DyMTEVU^kI9ktJ0SbcBpa*x9J`W^ zWy3u{M=%(Bz?v}zQRKFSXj=7*_6{Cp2mAkc!0<|B^BI$yeC`Rs6WFYidEgat*w=Y_ zyl^y^dn*fwVnk->0xV^`)A{V}oH0+tCTNs2E=Q-rJH~+t0%Vs6Wy-)0CE|E~hpe z99BmEPR2d`LS&liA0BYN4x%NNztGf=z{9E7Pn&~CD$!NXwI#qrk961HSbANnh*rAfOq|f0^P`?K!v9zh1{xQ`zO{7Ecy8{{>IAj!mU%BOW zt*X4zg9Zz-o

sdTle9u=JiB5^xgmPk^@Z?*#_o2<%O~i^?h6YW`Kn`JzX$USI?d z^89arke(}JWpTxA=S-Q_kT^7lSf(-LY4hxWBn`IZJ*TkH4#ybq8i7b53BFDpR4}0% zO!zmfx3PE2b|%d9!P=hpwU@cu+3=(@CC=Vjx!Z>D6{O8>m;D3p>)5t&npB&|S6zC>FpRXfWE~x*@?s*bj!i4K799oX4=}&xFaFkqaZj%Klny@LqPbh<1&3My}nIx2;i8kgCJs3=q#OLjy0BrxU7&)E4CV%vbQ zEq=1x$8|;>yc1K48yo z>3K&VBC8%L-r%9IlNTYl9C?6fBOu_KPG^Oi5|pp(u()9p;d6>3rlUggYLayJ{M1OZ z?gX3HlC#^~})=3jsP)xw?;V_i9hwJ%^pddx9Hg}GA z)ETV1uKRR9$nbh0a5)deR@k?nc9UmA@9=A^+G%drz61Bt2Ri_d?tRs`WPE^6v2f#vG0~pOb3EHMxvf$i!2`fxq+VvImT4F`$hfLZHN3k)I7t7csu^NKWZ`r)1u=Qwx#e?@Vk_SM@7P1yc1+8z| z@_V{COf)}E={`e5s!$IGfxcF)58DLb2qgd(lSn%~B)w~$eHm%3?#l9lo{gGr|Pd;nt#5(`;T^_isiEBoKk^ zzz(|yRQs@IU<9|fp?N#&eX4FNbQx9jR-uj1F)Z?K2m^>ebm$~ThhsW!O#hyyzwoll zwmGoMNv2al3@pcpTCz^j)(Hm-+)fo3^Nd3-?}jEomOUzRjOOd=h3EQZwzt*KPS#=@ z_NVQC7IZ+!9z7NTX$fCK7!ia=RMUD^W`6WJQ`6dIuWqvw1i&@3nqgPVs%}8_G)0Wl zXm2$r&SWsdJGVvYrMC5}1%`I9Yj0={(Xa%hYo*Rgn;0>|-Bk-cMn^R^&xwy$RicZh z+taeh=@h&8wsnCbTOWiH@J+$W;d8Gi)5KgmP0BG0lo`6-dojuO{HC3ALm3wpg)a|` zUK22|4VVXx;&>Y;&7bbHJ9}!C9LJRH_<%Sy2ik69WU#`;qeh?xgxop(#xlvA0Kx72KZE_p1TEHtWd#z5#hz)F@vGY4DGI_sWzZ^;s zjQ@?G=#GzY$=Asqn_&rKUiNpC6>sTv^nFLhnYw!uG_qx~4(lw2jB{v;Lj05Wl#%?W z!;kl}X6n@&Y;Z=|@!H@^oO7Qk>EP-6Q|67Ez~AfXU-@-WU&k064`FhOO^K}b16C!pkEc>` z6o||j9%%D$`i*+CugA$jb(Hrv^y-2-jfqvKd^9dw0M1lr+;0J`I&=y0XY<2J8E>v^ z`5kDEO9=);0<|4l_9r?%wxzPxIIhE&J-K4%J$B5NjCgV!yTvxf$8!S8Rv3p_&@|vrDf^uff|6L-glS(--SV(L#f;UNpN+HQ^Uk}7;ZjfMGsqw!(%;11 zv=UGm1vTMZ8Apb~)tYR_Q9FSMFJb||+=G4b6KGG@dzxz1IP~4E9TOsNl>os z2oU?BoD=Zg?|D0hs1yGRwv5f!KM%h8>ti~6+^$OW1DYL=#$DCns8rSnAZO`52Q@l8 zXrz}%>jhUU`ZLsOp}@0~ES$M6_58V{#kP*-{~Q@&o45_9QdYZc0k)Pe*cYs|9WalF zH##@cchv9{EjwA&0iBi5mTyCu5*h~gow;ol^^ZT{h*$Cm$@6Mc4LB(qkx- zY4-ASb9;?4k6QH9N5DDh-D;)3v#xAcSBN=#beQagr(CFsfOq-kI=3?l&iI1UBWQ@o zc{oqsNp*Mv;?+tSXK|b}Is%kMre>BvNbVT@xcD(AFE0C}3275Jux7;f=rCcxy&$ho zyGb^=->ddl9Rz0EMID#Zjd;adzy-Rh)q9TaVS_&3-eM4*es7ZUHXFVlfVlsfV4cm% z(}A>H^NPr(VM1Mk2#vWnjA*{YYSrqH2*-PKH%`qj2P3C>WDwkG&5ox00yMK<%ePB; zZ56}1fM$N*vOfz{Anp|k{M{?C7#6|%?idJM+hpWg4(fJp@;1qm`hYYeyFnwPYO_4_ zb@Wv4M1_&Qawa_hz{Bce;vQeJ{Aa~q{Z)kR=GheR{AJ*f_+Rzs)&N40PAt3wh4EE}Y;v+#_@v>+H{!YjWz6aB% zwcMtpx8L>+m8S28WHr!ZMUJf*#5P2;rxdx_E@V;rb!Gq{R07Tb4FN}?n22e_0E(5L z58E_;D5rT*gIAyW-eP&Z*hW0k@=h0!Z=EPKyE(98vGVD)NhMnWjJ8kN8I^fNVMe%qc#SOW+u)1G>dWEVUD>JHp60^n@c=+-qy% zI>WoWi40w1cv9j-31`eX_W|s^Wo%tN*Crh1G|bG@Ff%hZ%*@Qp%xS|+4Rg{kH%tvP zQ^Pr7hB>_-);H3pSDN`T(zBx+ooz2)wy(9kw(V{Elo)*l8=9?_a+0HYxF>{fuKPB< z|4iiWfOKh-PFXi)Za{|G@~(~C9#u&)^-ZyEepFvvHU?U^{1Cn%sD!-$fkr4IS8MfZ ziB65+HKz*A!`7N9A&Vf-o>`_JyBY9)m!1IJiY-8xfV!bbB5_AQ*8L)f+n1t0F56dB z?<5E7FTYreJfBapPL^}SzqI$BSjKpK#E~en+#BkcBDSsNfj>ok^jL|;TwY${qP%1BkwB@5$ zxn-s{#}Jf6qW7Y9oeLZO_I2|$JRpa&$EnPU-|W6-v#xU`DzX_43%|!lY(2Ao8bRnI)%7mE#v znI}5g@$dy^nRQG=lV<@rYE;w`)2IIFD7q_WxEmZ<2_9;2kJm^v+`wGsYH34sLSmG9 z+Yh?jfV;pXhH2zCRX;0fwuQhnyT2x;Dq>n`51*GV*e6D8{HpXDHYpXh_yy?*B=^k1`1E z#!qe7-r@Wu);`LBFoI@_9n`z_EYdBiTWi72guBi;h!T?}!$1Q~r*L9-bXv}$)8AtR zaOTO){tZ(@d<#JVV_T}_P)%3wMMC%fZe2mvjj7P#t0`yxUfM_JB>wzmtZpq~sM?OR z;L}%!Ved_8`*?3yp24p(ge*FmNn69F(c(WJXgk#{FbvpSXC3ix=p>w)47RemhZ(khg;fkc3+)l_k{sWY3~Km zsea#e^X?SIGY2H*1R^nsFkj@X3F<(LU8`wZ|BtXYan2oR<^xC`EaYEX zFWJb@Ta4lG_}qJw$j~D4n{o;Fta<~f4_%7I->TUaEb3J+=jj)Ha(v*%dCQ1w_4gP3`h5@( z&`>K;Q6*_n(SMwR0zCU9+wUvCRKF1Zpn*!UHf^vuveSqX!9Z|XWRZFS42DScbVbP1 z5f+=3)E8ZR$fe*Aq8K%3EDJpXT}a_e@PUOv=^1gESA#E>D0_WQf}0yY>s{cj-dZzN z@lHZ>cC0Cp@EK~;}%kLA}4I~6DB#HA?&s0dk)g9j4i()j&NbR9EHGCDI9CedyNL<-^#IMky{B>2Sf z)!1{c+hT`l_vnYT+bY-qqx#sR$8_UzrQD$qnDr1SV5X|dA~+nzKTf`DO3nDM4+|bW zi#w0*(+ZOegV9bCxB1rzK5kT}h!x9PAj3OdX8P z7(DG9fv47hfba==IvSbSn7I-gn^{=d^OFKPdPs?_O!-MQ*yWkz9YxJ7t)#r2%~ZS< zR872XOt?)+1qI;vJb8csc4n?d#GZDx_AWf0{G@;3@&Ld831%cE{!7HwhM!bZUWr)L z!P$(M4Y;e5iC)~(%AJK&0FIc?+0>lpi!;O5FtN(zi8 z{zv)j9OdQz32*Q6cNTzrFnSs}GBPtTG1}QN{(A}+S8;bB$lnX}zfIwy3OwA0@r#*@ zgPXI7nYg=|y(`(jLztTUGrgmmv+ZBiF*RW{vo*5=in;)EW&V#WC8gz+{+Z$r1r}Cz zj(?>BlKmf&u2$y%BI`fO_9y1A>il~_fXV-f`ybN(sQX{SKq+~79x(?Kw?D;`7UL)V zlRuBCgNc_6G_G&R_+^F=OU7Gvj9Fpf}}YVW(%~;NYS+V&`V1H#0FYF=aJpVq@np`!@(h zXDgsp8rlAPss2Ej0-;Pz%uJb0xH;&#jLbOb*^D^Z>5Vx!IO&bK&AH7uSxt=0xLN;# zGBx3maB#LW0;&d9=y(b3-GuZTZ{^9Up#M+{x`P3VZvd~ z$q7`TxjC09JsYzrH@&e56DK`0Hxmn+F^8!M*WVTRPjnXtb5{=|XER|7Adf(dK= zEez3fAjjgGX8I7K}`JLO#Vmw{+F)*()B-L;D03iU+elWUH>Bn z{zt<9wXXkTbiw^=KxJkR>;`!NhfDEwtJ%Pz7L>89q!`G@pTGRB(j;IAtfQ2c3kV1U z*`I$<&tgG$U?8-sw7fXi?4$2c8rUBrI$e zqr zuHyL|M}1cg5szuf$;rVI6B93Cwk7E_y>wF;$*lXVQoZKjRt<-s|v7K^b4x4kJg8e!usmt1e(FRU!S@&Djx zVKpAUE2i4zC8|q^h>(K7!Y06eo{OmAO)GxL?u+Yr>s#vC_=(AUy=op|^w0LSOtg?uGCtl>0f z)>=jicrBA(p>;iEYMeaujF_ zVeV2hoL4_|6soo#sb13~6!;I&o?`&(#Wol6bgU%6YX@a8;r7A+zs%r`%YpxluX%0v z-D>O?F6ZPkff+?Y!!D<4#;@<>oD^V8X?|$1{O|$Gyt91WJ3aCu%&)I|Ep2g%AAJFx zdI67srQ;CJ;uN4>6BFx%TV;q^-yyvhEw~OKE$Sv;p?zd1St;7+OSD@0qpkd8{57RH zdQ2D~3|*9-n}TZ%DyJqdpKv~fO^6Zyc8<>+AYrB8{j56{VE{bis^l30Ts~fUkP_@yAHlwJa0>K z8J-%n&|3@ZP`;-iE(@(+np^mN)ETpF{60kRlwD8oX5E(LPf#+fsCsF$l_+s=c{@YM z0!>gt0O)iD+`V&dsSr5ew9JSZKX$I*G{1Y<5?YvySM)S{Pi9KNX*ZAW_~;IbmgYK_ zyx&V6$N#Y*&sgIO0oRR)yJ*&@qbmb|*^$oP2sOk!jJ3QfhXfSSR9Ppd*vu4rmcJjY z(`jSXY3xg`q!GW&dM491?1>cOSQ%4Y1Ci}s9|_+rsO(ejq!eMKU}!X^=Ckv;UojUu z$ynJ}%w5-2t}VctlH2}nm0eo*`H|~|%eW3;kuXcvh?auDke!ONod~DCKwK|LYY)@H zIQLF=oReh&N4dJA#5>wZKkx9?nQLU~>{*0xKCPpa^U2FM9df9G2AinT4_UoolESSL ztpYCs9}T@*wOnCv2>9LRFbm(Kd-OzA%1Z;ZHzU?w+OEA0hlQA)pE^jq4nnPm&Dd5s z=0gwYs@2KXgKRQS0<#eL$IUhG(RQtM7GzM12*@D3F_o`7_NOnKUk}TkvT=5D9o~DG z4`=6hAjS|}OR6a)BgKjnlx=@!?Hl!qe$8lT5m?oV@W8*?SUQC)E$yKDlQCL9efxEM z((O8<; zW}@9?V@N3ZZS!VZ5|gj(#nyV zCmvVUPbT@mdriKJ4UCR(wI9odh~JYQ5T=-7cL}`&YLi_6V$*NZ5&z zq>eq?6ME!W%qZr@h8hp?MdQHqQHL@1=T+9)*geG{E>9S-4(r~~g;%0r#?|g8QTgB5 zc=wARE66SDel-Urw^e^^+w|B_seN6B%=Ua9Z}U00*WB{~cRKkv?QzR{n&9eO)t`DY z&+`Tq6WZ&12#k7AbqL^_Pz5HXbc> zn{ZHUn0!t7tW}p;eOPN25oY80`Yq+G!IJ=fSQhgKfle&<@20oMPS};)sCzJNoIucX z)StL;EwSZ=jn>shE324vrOt2`n#?Q4PwgBYd_Mx$(inFyFm#-^GR66R*psLXV$&@( z!II?mTes{z-4<}3=6fLED$3t@x;?r^9UEja75UDtkY~htDzh&V4NSFfHj=LN>IQEj zsZK4N7IQZi_}9F5jHf=N^9no`uX(=Vd8E+0%XnD*?U6yOFb(j(IJ4-!QSx^mes4{@ z!-#}i^bGu}a+3+yLo<*iYLh9_jr#7=#eDWzhUOOIW5U4jh)y0fxc4#LqGj-*ZmL<9 z+p@IytY=QN8cXo_{jh$#S|7^?qS7p)<)D&>TM+uYEYiOw9%U;iO#|3?mEx;!_NYfli>ik1shFcqdv3} zuo;y_w4Pf`hgp;oLd^C{m5EiEngCt3Xf#kpG&;^ZqJDe#I#CKl1WIDJHkl%p(yQO5 z_`QcRt&QFXf|>Ob7E9Gt=T0KLz#kF+0LoesS?x(p zNV@$Y555V!_8)mM0o2(Z8}_f;&-`tEPw{eYH@TdYp?yW_1P35WFvRJgND4O}N8$yC z1%bpBB~Pr+ko7jjUo#pp!ULMq3fwi+1*O~@mWyyU@LR{=2yttZvxh0`fLUNK&f ziYrf)3cj<5)h$GBr#{?Au)}pXo4hOm((p-&h23GJ81pEd!c~C~+ZvgQb1j|sB5{ryHadD zQ?Uqe8{|EZwyJXa%aHpuOOW(hCim02Cv!_X!(P-GGiJsz?G|7A8w_7Kg8^A-1*BN+ z+Y0rR+aWki?QzFF-3P%m@yn;$n-86IAGh0BpSe?W9#$g;JFrK{-E;ehDf3hGDy>JW z3UQ~mLD6_YXoSKw1-BUiZ)J;PoO2nlLXQON8=xuSyJ^RSs0E)$ZZ{s?EJZ#;@SRi+ z@S}H%$AVDQw5I#iyl~ch+@+NIx!C+_y(X^dvOp@~fimfRX%!En%NO|lRzO=~!}g={ z^8~SsPM9afi77~+F`1$etFLP9q&Y*-*J-kv7ki)anWcdH7pzg)ceafy*eDS4*Ui0v zyNk;B$KF$i9U?~V_!=7|a_xoSADH>_;}tn>$L;rIZs27ol4ioj{71| z7r#_5`XHWLT?mo5*AM`s>XVARgNj2IlGju#mi$CaDa4Sg*+&uJ`%Dkr4fxJ)Hd7-F z_opX+=@a%beah%NiKl<~bd53mN%L+p_DwleU8PO{we0P^NzH*)qY(;u&Er5ZmM%i@ z-CDqX*Nn*PXH)|3SN>0gz<#D}$_Js|Lz9`l&Lc%ALVchUL~T9?EvvGeB^nyGI5Vx^ zmRI12NO1b3c5iyF#-NQj6am_X?ui_brob_fgi?i(lttIG4nzyV}ZFjLsk^4(vZHJ^eUjo|dA!hR0%u zrP5Q$m&t1+z%ra(C+oM`w%_u$&NWx=63H=8Q9-3V<@V6uR$AVFmuUdT66^&$g)Bc& z-D>TboEi8kdVYdmFER9Mt;0#_L)6llA%;Lg+shSo@5!ChzZV2-9focgj1ekk5aW#} z@*!#2j6EvAC%q6iGp*h+`#T^Qv!o#8qtolqn&{1d70L?IdLWWmlUbE3d2DKsK!j9w zK~nUYbv^e?YL7_WaYoKQKw!%x{HExGExdXqnLG(Yb(?ukqm2-vRgAXgmGYT|Sln4u z!~4 zq#W9OkKMVuP2_)YYH(MZLWQ68UF=UYPoU{kV|*Vw%=5igX*;=ilQ0J$rD;R5^FJIr z(tnV_Cf%_PdMrCr0DON92HfX*oK~)!TCK4JR5J8gm}*JGK(W9MxyQK|djMcE5@0Q8 zAuxi|#^S0qmCJ~h^6G=+(Dy!vp~M216Qw?}#Ii@LksNuWE|`fefxhK%efS{A92UNs zlp71;D+xA7jwIrv4u(E2W0a37CsCIp2P3m6mVkvRTO?M=URKiZUUBkc?qI5Ky3h*t zybdJ^K9T==KTy$XRDV7QvL~akJlL#F@x5`HYfM=~C9+jKUOM%B6nG2)|9FV8ct70F z+7CRWD*p=fLjODahm-zLk<0k{faW1Y!Twu0ZXrIm5h&5 z{Q6HnEb896=_fQniwBp#^!Fd7VM8dJ;!p!i!9VaahO?wm{aAf+U$aZ+76j=oto| z<6d6v`wm97=W5L3aa_kVeV@iks6+>Z1F_-EI=E?^TRNzUn+}OVO5kD<^miE<)wAh_ z>IlRtfVooa_3cK@)4;)2_uGcElJ)20KN>5EQ@OR+dd>nj@D0@MaIGy%n2a2%D$t^0 zFS<_CR>FlX{0d>YpF)_v&5?aMkjMXqN7VW}$F~=@#!|1@ z>puNynNP227z`8}PMnRFYW}NN44s&sGz{dftVm=E?hpI|+mN=LriX6l;}*u90Y##z zg%*Iq%sCd7ws9sjEn5fDH?=O<6DY9)gFe&~>%j1#T4x#g5QK@*e#d3|rEK>VEf0zW zp+7Aw3%|RBQ}_17qT7&;q2oN?ivMZJ;bh{m0oMtYE!9DO91W&Y}LEXHF@rz}cr^8Qd?6zy`mD4P(l%&6Xab2Ppb55;RW7w=*F-fDasa1uzMY#AIe568mf5ArNnDt^^3JS1*(^T2UNagS z9Z+L2c<%5#b69&|XAnThx!EY{%3cmGk|hOkbmw*CL7@8lD<}i!!u!(%_F%*gKKO7) zuG>Xi-s3%}&-m_eaphk{2cUZ#opgA-&5x#C9$LH=z?$BrV-Zt6XerC|_#ad>GD@(c z!Wcu*f%!Q zfcD-}oRQ9Nlx*mvx?|V|^8?}7>0wBmLQw-bnhe@Ps1g>QQ%8pI=wKR0P(y?)w@Vef zSd4)tW_O$%42S*U!>xy8L4QzNZ}?SvJhAtgIqxN=Hnbss+_c0oaK^#cPV zqbu0&hN-lZ*5BV1Yc_s=KmR>0;2>2=LV^+)Dv4h^4+ywA?dZOKT5mHR_IK~*+I{R? z*HPIO-FW+aKS@;lXi@)MN&$^q9=%)P!JyR|UYq+G2OxOMEhXqx@9-F{R;xmD12z3Q z`Z_yH4_tMssVt`<;*raFLq(tSInhJ@Xg_@df<^8cgfA6RyJ)f@b~|tR8BqokVh_DN zwIKuvvd;@$@reCBz(yW|GI}QI^fP(V-)2@kT7iN`Pa(A>eNw9)VDwEAo zKnYf*Zy@bdfnavUFQjFcQ{MO2->d-n!2Kl}*$(s=YarLx`kcL{gQ8+*SZ4u0*nAM=>)BW?(7!n3JfX zMvY0`G+C`D+}+CQliFT!(^$J3Xt6AeA>;^LFnpQ0)F<&eDW*ukwBE~W#4o-Ws*iJ< zHlLNkBcbU{xU{=l2biL4Qz$0N?VpkQU=lt-apwJ1Xh^SD>>qwR_ln7O_tJFaf7BKc z*7Teeko9q=0#^I;pSB#NOx}o(V@Cu#s@BTyav_ zeOM3%52#A27;BlN$=s$mlyuZN+x^(2IITCWZxt$Ace$|vZ!^lSJi$AvN{^d zh}G_7#AOiL;P&qsV^NT%_zQE-?E_gN%teRZi@iCiT&$W4vxk;2G zln5D!W$02PiMk8vUxMeT*W*O}e1^=M{o`$TQ38kIK(WQaN|J*5+)$v-k2f=qEY{1T zqpegCm9*Q#ERQdZ;>;JRCFJ>k;-DFK_u$TJs>l_7<*3X5(b1gK613pYJ;7H7 z-?~QHkLM@qpmS=lY1Mb(lh;6*l?tiapahI%tIC6Q|1m84T{Q>$uPtz$E$QpVb|`qT z*by^<#(mhah{#~L*Epvz5=ntZkOk?k8=NMgi1@y2XC&Xg=F-jSj489mNaZh0)50)F z;X8ElMg9)zERzZnt_IcFR#UF@WS-f6K#SB;I1Jij{J8zN{5hxJU(sYIW)dHB+JySa z)1of<3)TED39#ghLkm;NaI6y?@C>J_=ZFL*Ko^k|9Tl+AK!Ci9*7jVoD{@(L+P4Nw z<(fs6V)G10#olJHf;}mUKr)! z4OQ)sP{?zqf1`{iN-Btr%HzxO&9$DFUN~=1Xy`8bHJ`mE{|E+lDj)rZ>;NCo zgaIcVP9#~FhqZc9lU~2w@^19?L7JE3H7ux4$K`B)C$;pZ)D62M3A~pCybnR*2Q-i+ zA(&vWg9d}=Ra$W?YsAH|lgRW_ClrO+;UxZ?Ww%14vW2j15)(Bcn53Xo)j-*&7{U|5 z8Cl#fXv}PYDO0XOEJG^88`c)m(bPfJ6~@s{UoYyL(Q-Mv{t$>LeSO1gJq&`K=87GG zX?4!;a>SMft9bcA$jmo}#&p(J*$=tpbA!e8+a(}VT^ML-Jr-O#4sExgT}T^WfwN;x z7Toh@Vs2o{Dwgw&ze?}!Ia#$ol*}H6bKmOr7U{6oudW#N2BjTphR&iF)OEtPl>jg` zaaIfLOVMT2Ls9N7DV+zFX{q+eV?2~GOmkI1=xZPRn1(#hqgDwfJbl}Oj+Y3y*!KB8nH`64fL z3#&39L1i;0AAGFmJ!|dT?BQHPOhm+MBsDDy9VoJ4CB1t68QF(3KUI$t=sA6f<1a%O z;qSenQe*>C$R0J;Xhjg{kHzfUTd{9Y{!x*;0ucIst!7Pr-5CuLXtViIzZg%=()zkMKzSZ#m%2jN9ptVbbdz43mU2yH5TnPaRxU_T3Ar`&&g8hGQ|suxAKCR6aZ_ZM@eQU zdV^jCJQ<>9{^0}jvf%KIlZfZzyA{JLHKp576ETUx`b|?J276(lnh6mC3B+?3h#V9n z-{lx%_FEkLaQz{PSu*FWxE@`4)KANTe4N$joY#SL`KnI=q8LfG-&wvgz3>Bv@#tg= zQ28R4l^PHoO-X*jY2e~ojBRKV#R;I^?pN)5Qskg{)>Mas{d1=c78!jDn(yPnfLc|B~IZ~ zXpt2X*Wpo}5)|B%FUe@>2*EzASb1*exeiaF7oLX7L&C@$W+7Xhx z*pfq;!tIvStxCShN9S1&qn1k|_QQGmMGrsrm1b(~_g8dt2XsFv5IlBezy>OpN#K%| zrDMMk)h))5ywP?s%NRo_M?CNF1@i2%q6&G}JU=&fU!yP8Lb~>LOy5%P*9)sS?CJ;X z*WAJgC9Wj9rY~jz$F7MaKiTKB;N9=PckS5No7<5$U4i|e1XF7?09T5B{oz-007@+#dq2@ z+uQa*g!YTQ4UL`PLdRLTgx}8Q^pD@`xxFV>MgvYY#n!d>pBHhC*}Mn4FBY5*fn;p5 z+kPVPBvTI1LW4=y*L2+R%B~*I_Q=SIJ zY?q>5yiTZw)GHTfT0)Z-Uc99$;2#>|qq#FF0a7x2D-OLy*A)a0HB(mQ$DWyLh=$CzB0f~o=YnAEQ{RckEMa@zbD6V?Nt=fQe41Vm)c}A<(Fs1 zNm_g7^Sddp1a>&IoE>lm+`J|@jldF4E`D*xN}S3P;pL{(m~Lobk*5HGM5)w7p@u1@ zN=7p^87smA*EgVQyQ3lL*<=yRIY^o5(fblcV45z(4 zPUG7WLYF$HMIgjaf)2qMM%UqaxHmGWEuHCPE0EX8A3mwGTopGtTvr|T<2T+wdbF-( z$Y<<@`oi!$atiXU%hFuzZR%Gl|a21W-* zC*7ZXuF4p|h#tj{7Olg^qis;%NW$$^G}Ng)R$w5;GYHAjmNL>Grm)y(9oPAY^huM? zr|yeDsE(8nB%C*hkMl+^3Q>W8cJF4s9hb^a!I;W@e#T<_nlu~Q_s5la@!37twC=`( zKV$Jm;yOW0O4I~~QIEBok2^KR-FEFUWH9uRoHm% zuD<0#fwb<2;<4rOF`T;ewsx2 za@nD^VgiTziZ%=(ik z8^E@5qU}KJ5IWKgQAUyPEV27dRhYdvDtSz;vq-UFRM1c3pQaw(LOHYFS)x%9HoYxM zQJz-9Vc9VP8X2WneW?qxpMyVkYo~m~QR{$DOWQHeK7YYffZj)}caopb68aErb)q*sA>&be zZLQTI6xPE%layekc#}1XKD9Vw?~H3)MX*V(c4CrzYZO>dI}>Z0iG^V(TYG& z#4pSaRi;aW4-F6BUbuGhvoK$0SOI=`FM{vX?&~f@&FkD$Hdvu7qPEZ?8)${(tq4gP zZHOeP#F?wXsjK6}Un?SmaYI-8lLv#)*pf(2J0VrvQeycLckgN{DF|t1xqMcPu#caZ zt-C-^A?7HKw6jlzHduw|5`@bf42S~eRQ(_Z3aK~ajH*ksJHw&v{SH;~dRUj%o9WD? zH>5_S)Fy0I9BlYoAF?aM7y&EbLr`*O4K8TqOeH0uoW>LfBN)!@|a zFYA&qF>f}-uT+l+CU(RRP#PMvnoMSDvV!q;iaQ-R#_%HC;dVarON(A+3u>EaC?Tp> z-qq;I511sPRb;Ilnh(9)>;C7%Jc2z@iUxJihXy@ZJ)Jg;>hcP=$z>eL5?dlj)U+o) zsT;b>^ZopNJXGZ*T|w;8u#vZi67v+_Ib!G`RSQyl-1U4JhtFCEf?tTAG?0N{vTg#@MT*ev+OO0cE+NfE`5VIr> zVd*ub3PVstz&ifCfn7V}%Cc<%_mB)#WgIJ6EF>DCbcYZ*nToJDPzQ?2RB&CDE~P(+ zH;*0M+=o3+*X=u`_TkDg^?I3gjEO9g?VUcu9?wC^u*y@z)DezNi&o_m3Bmq3<74~q zqUS8SWfaXIJ@hXnU@I)0GI;vAPrJbUQZ4q)%^!-4zGY84eF-kcg)r@f!*AMhJAB=K z*%3>JBo>Q;lepN@3Rwl& zmoOzMuQyhHm&Z+4;9ge3B%9ANiU-s=76s;kwe1z(zU$tB=yAv4@dY6G^`^#$)Z??x z>=Lp6wD)3=b`PObrM>zb%z*^bB$R7&#%a_dVj{N0%lBD$3evYAHd53avha8EQERvP zCeUh3Pb8g*)9ZOXhy5nSp66{1zJT)%u19Ifx;N0KLES=q<)kDtT#NuMA1mYHkma&h ziun}a`A-xlL-YGiL<90__IJvI3#0r^2u$1%aTKC^dv&)( zd5`D8oZW3FyQRdG@RW?P3J1d4#WRH%-__E)5i&|1&3-R}_0T2U;eT#bYK!z~n^jwE zrq-u7hET(!!n77XQb>$@v7Xh5*N#Z#rlfN`K;&~B7Ic}!NbCH7=e?dZz@Nw&ZzOVVqtf_TnoJcjBUwsi4Md`JU$T=k`91~4RtE|^;oNg0Zt+3AI%^csIqlA0W1*&O zW~5e~A_scpcEwYByG{-LB*m5Ct*mI9OZrco8AklV1CFhHT#*;3EQ(6;xS) zZ-a?^&B}`!OvCRGfUDN@s4!3(NAdK9#K@EQRLdU|OyO|7`I* zVOY}h8%)un#gGHO&ry~r5cHk%ZSj?wy~W<()P@pls2@Yq?1u7U}S=sT zlMf&5KoHA7P&3ca(V3mQKQ#8e{)7ZVAqMwkh*C}kEiHeUh)+)e%Ol>95S>f*j*oxDiPT+%2gFO~*3Hx>{5hfVAZIdigR7M8ML&Q0Umoc#uPMcA<&%UYr+Iu1j zAfODf=lq17xezu}cQ2ki(W+nC+vkQX3Klb@k<+xhYLG*nz)LE<19TFEkX6%a8ntHc zxo{=1xFQ;?O~3Pfx*rXIFZT2Y&yhYKPd;ch)b+2$w;p99`J1POtk?tGLTN%KVKjRq z`xVSwDU+jUDwBd`bmU8RE3vz0GGKe_+>G4(avlgFkpjz;25fD8(VXXHTye0FU1^dY zdeZWAU*|l0y^-GEuF14mS598KHV_!*lxVmxOnP9`sCUlNOzNw+)4X&V;93#Q9BhvuJwLaG*<9wC;Xrk0s0k!<=`JK#+Bc2aTlYe4dMr$5uAqOP~A37f;+4j6T6 z5>0nyQ_MqXW6T4a1JS%`%x%VaLs+)`0}6Yl=jk98kzlOj^GRW2>Fm*WP_;NU7}y3j zV@)Q@?yebYBw>USnoDF=?edWz1M%MVHw;4InR(Z}ceN+_p0L9K*IfRt{Q^$-HV402 zIN*5HfXhE-ZTc!xuv(fgX$HS8Mfapl8<-hqNtj8nS2T$!p^bc}y@h86U1##XPkbc; zuFQ&9GJF2O{p{w}YglMlvfpp8NvC3S=4weU_#EWRKI4BxKJ`op6}BF%kuHd&e>E?g zchlC>egN>io>^nAj}y&Sv%)})mRQOE=t0friP^2y=z1{C)CkEjK8{l*f^nme4$se> zz@tW|jPpq1+M<9!lMb{=l7&4GxvrN!+IM=FC@*7A9DLs(31l2bR-ek~P9kNJ8+9u;+f_z(baUACY*h8A!Z*|jVgv}4o>j>tVix0$Sa)r)ND25C>G8wh}% z^3DQmI;%9Cjh|d5!a9-bKSez{V{fLsF11Se5@a0&@|POS4b!8`Pd81h)C4ripoPhvbt`(T=tU$yz2tMWWy#ZZ}kAo__h*oZjG% zX1Rs>DK^*n(LVOM+ASPPNMq_i;52}$2=VSNCG(DyYBA{U%?}1_GdN+ioJG&L2_Jpi zctyq>8nz_HK!8CdyY6Eu{&{F?-H}$3un`=-nUM*!YEt&PT$f5me+XpnGedlpdfp%- zaG20++|p0%*@S&nFKSX-KC}HyaB*#Et~=cB56W-H<`QWa+9lcV+}WshTqGJSQfp&^ z!w+j*0TXi@pmXX2;Lg5bZ+T4E8jW5s6v2^1eH=One>XJhOO2M~iDaj)_79e<#kF*d z9w{}r26XOa)ykss0AF{0kX0>0zguAF@K2%y4{7s)Lq$Lp8C!!HN?2G4jyb*DMZijU z!9ht05d-eOwUa-n3BG88VJ6+LTCeK=h^%&tqdo!FV{zrzn1|C-8&>Bv_>1#J?I$DW zoa$r}O}^q)ob@Sih>~xfHCNsXn8dMlMe-lDY_K5K5j-!Ra8M{8D8x=Ilnk(H_tq8Kdn^x@$0n)S>tcw=I@~ zkitCi``nw0u+|7nNwCI(ze>DG_OjjpM4j0a9Z5|P66c6v<~E1#I?{`2?Ow z@ht@$mvcg@9lMvt&t%Yg>W`mpSRZ?NT@C`JdXH7usF>w4k3R2*-V8r~ERMwG*wQ37 z2@~XtSB+i^F`p6DR+pEpjJl@soDD_hEmsS|ds;A|l0WJT25Rn>s6!Ub{!}Y?u}{ zt1>mTBhykQ>1XcgidW3@-L&{P+Tg{XR8X84ae>dMDMalK5`$7(9H*{zd0kA`{Kn_aZc>}>3Mwjrm>r=CBXW-9V zP{D$Zp^TxUms&`nm)*=fK!Pm;OOkgrR2@*9;p%cyO1a=?gwsB%xh)OYZV4$-vbj+?H6At1_WS`;0l+Ym zRumn9cD%4Z<0&E6Sx|srOuxXrw!J|!J1MpX6bbEA$#>Q2*}90>{{@FYc)#9(p6W7W z=moH$KTo0INR6Lsx>G|`(bD|hQPwx6;jTAIaIrINuPm#zE`G97q?O4AS+zH{>FWfX zjg-TaMV^AgHe>5yx?OF;Xyx8?(+^y!p`*~+YBvMts!1et4uoUc?^gSodD}e6Jr1EY zf9MgSewf5)Fd;U%b~cOcmG@k-l=I*5Uq9aE^~dkbg6%qJ*~Yeu7>gHCV`FuQV3gbo zK4$6%soncc*Z%Mt?uQEcYd*H}HR0h9fSLq&upXs@FFI&ZRxXz~{Y$5v>S1q$!C9*M zV8y$)aLIRmv*l~v#LBgR>$YO#Depq5koV?AWSQdJ`t?UY$-}XDV&zYl-F(lXvi(6x zdM5&qun}0RxBcfzc6!lNtVuV`(XGBOh-@<|yeXFHd4g%iMr+|Yyr&v4p;AMkp{yOj zwbZnNP)e*EH!*=qaX6Qu=0fiJ#hc#!CmlZX!{<>}jSpiTGzRU()nWam_|xv5tf9e& zB!0u#?|Y;}KP;|8AJwE958sbrPMHxK`^>1D%yFW8Y@k9U;9tQ5! zu&#)vVBJH!O8+tgH~OYlat4cGrf<@nFW6nzi>H z$~V96_WRIlVy(W1%tWhYSQ?Jf`gJ!x*N^eaNCU@EwO5SVI%{b7+67=LBV2(XKC%yE zz}SpZs_g&iKcc2Nxi3zUvp}0@$PW_`-|$G(TVDOmKyuKQbZKV=EgQ(hBLRX6r5Z|~ zNfBC7l835?5o>3&#)lO6s4Y}p1Tn5p>!d+0%Bbxa|XlcE)r)=n0HJKM;CE>#$ z0CV*K40+3R^z(>Su?iFt+*(4>jVwn5EB)Uab^m#jV@wxc3TTGX#^@Tl4?h2;$FJnf zD-La>qG~-a1ew8cBQvZO1+4MngVphT%~vLWdD&}a|K}%Zo(Mp~24Ja%sVTG!G07)W z6{`}5hK!mwzNr&{;gPK}^BbipO#4=zhA||Y#7(v^*)6QR>zFhD_6pwe)tB?onz5er zG3xQbN>tN9J;qva-ZV;>Xw>TUYWB3w(92NUbm>>Ny$!zSt`}e&m`C7gJKW5oc9(ru%wzt%wd}BPIs0z4EZ=|Y)%&q< z%bjU2UI6m~nkiNdtzc<;#rl}li)M?b-#1VSClw?1b3*B8=d6}7YA?Z}wREXjZZ zrDCc9fqBC>;xvXj`cZnR-c<%rGL6Fu%HC^XAS_`bX%k@K{4Sq(*|)#NQ)P`BP| zN_>%FY+21@Y~ELMZF@b}QN_*d|Ct21uiq2MgAlqB$|=;91ofyYhEXISfH*=qk8FM? zjv2-h3X24fQv-6ucRq9pCw=N=c#U1NGd$j9wwg}l=AupNp-{voSOOum?bJVZe*XQx zkb_T3QaurXggM}D^=rGa9cZR1)`_~R^OrO;gy%k?Z1Y{LwUuS?>d|l|58U{&zx~tu z`REUhqbQ;@@3%bmqTVV5YcL`7^?X!_wSQPfPz40ftLrky>eK)`K zjc**31xReWNaZ!q63o~P){}xS4Jsy@neA>g(O?^KyWjJn(~oA4o$ls)yN=P;oVGXQ zJ`lWP(gwPDpp!eCF<4dFKBH9;08mO32x19#gjZw0D$OvMs!4w!XsE&g0o8?US2*yB zgbc$J+Wj>TK6vAA?Skpdj+oHnCZ+_F2~L{jl`3(%q1vn>g>@2Ub?M&uoF9Ds zqn}@NDBJEAb4_edna<`Y*$9H%bN$N*c`ZFlUPC1dEGniH^;2ju8T(X7O#+6}B^bkI zt0<=0Slh;!fR+-+SZ5AJ@Zp2}?A*&1z4VV*y;e{M7H@s9S;h5cBsv3Lt=bKuAmXj6 z^cL1H=Uc*bD_>;f;@~2mS zKn^`=Q2Cc@x)2m&0wTGWwrjRBZ8)|!CjwwW3qokAX>}zOxtg)A^e4T=8ZOZ|c*j^n zP=%0VtRwg{xbD)w{-d`qXx4&UD`D$fl_pyZ zyWjJnFCENnhsFW`t0m57V7qh)gv{WrBUBcB7Wy^dN=%suB8<(@2*(UnW>_74{aU{N zp87LZO;qBVks(+$h^(M9bt$(jU3Jb4+i~IDkFz(HJNfH?b(NQ(S2|%GWVM$dL@$Bb zDhtFk%QFvUslEUJAOJ~3K~%D$R)E!Fs`ns+P{eCtDgstHlDtJ*VW1#pCX3x@Z)lMQ zi5#e+60bPqvJZdtv#Vao0Y?bP6uvNs&5%~Kx{(qIk&%d$1lPu99xd~#JasIXR%te_ z5s_`s+`iMKSBEKU@kJN)WmO_fY^qd|3dEzvlKECF{>Kw+i5jhfQgIMg&?{N`oA>T@ z)PCH$bRoX_TS> zyu;=MUtkF0D_65re&|@LW=$FEv8Ax6wb1rdRrBMO#@kZZ=AIY+*OBbL(>hkmHcTvf zh?UM@twV#QRqbWnh{g$&RRW-|4r$&jm59@oz6=oqM<<)EI0t(>6coWAlJ%PUi#S5) zP`DO5toVMo@h-lzbUQ9zzJ$vk+?C&!i&@(zRsCo|PrE2;Vo1QMjRPGStT5<()&@eQ zxkWclxE``26k{<(m?f(A_SC4e7TPB|Ji%_bVxlR(a?clOxhEQzE5-@zsVlJ@D}ZfN zX#S>zB0>`=m9lU+2b=bThn+O!?5A8g^Xk)YeGvy8^I^Vm&C=oLoyV4~xucM>jzDA? zr*G3}_wJDF>RP8pN(Dvx_axvTIR4vjdjDgYJ7yPm_m=b<-=eO>&%WX=imhk%U>nd<`(7in|%r6(NoY&6VH0 zY0QPUA60yI$Fa@z^w`>V2O1!%fggh!MLm;Et(N-*(B*-ybsCf@P+@GDlBs*GHQwh6 zai=7p-H<4y)jO!j|No4Wu6W}`e|-JV^2p~nq!cPz{UC$N z+b}~j@81J_Ith>@zS2~WiJ^j&u+|eaj|4P#*IFwAF*gNWjJb~Y4WZFIPKjgc;g9^c z^KRu&|M^KYE%G$W4YaD&#M0;`r4gfOY*q5SA^~V~2A7i$ZhiZ2aoF2`emzR8CjdW? z>*;pEAAD9`^5#7ZH8L;;Yc=WHV3qIA@4f6pcmL%3&m5A1p{_=PAu0jqi~>*f{hR=_ z6^tcJdP#aqnuY~dWLjg04izPF0XKc|XU}`x9Or-KanrK1(wgyfrT#Rf&s4%ngPlDO z`wr|Mr~1Jv6S(%IP;7*e83lNkt3mQNMwfs2rj79M6Yl1$$KQ0oPn><*vpDjoKILFH zXhT!>Nxg!q{wUX8x_J0GFXf)?^g=c1|BBClLrN?w35jNwnb$yLu9b#&`RugJYOo|6 z2uI!i>hmAV;P{$tgPrVdW|)%!8=~QxJPmJLq;`p>t?o1l&aD0afB#aux6weCNCZ-H zC^_iojX(W!j#MtN5RB+Nu^ci=yBIbVsWytbV6G|ISY0x_=Pv%wO~>#Lx1GS%^#P1n z!L*RJGh=9I@0_;wiVoKiVq=HroJ!`_di!Y^jf~%LiBV9oadZ+`Okgq zPj7ua4>=8-*2LJul@6zigkc|7WD=?*Z{oxK_`J$qk^oFJiP@MGMp#{C`CiRRfi4D; z%dUjZN;G;TMN9&wiKvMX=PCM&R8>yOQ+V2YfBv6%)t|jITPmeaqk{a_h%S!@bRwFy zTJK>Zr@c}~qO?EwrCNUS?d#EEJpuTET4&gY|L~&X#cv=akJH$;dNbw8yM~xVl6fn1 zBuyGj5&%{HE`0lI597e&A|l$R%N8;Z+3SBG_^)-5(fV(ZOL56Y2n032}p3(r5D15a3D zmuzCTw?I8AC@t5trhzo&J*1X{blArOMDKO~c${{Xe;}sm4uHq$0z0Hn;T2r=a)_xN z71$DWH6~U|G_|K^AQsUuA~ZLA^;)m*{l+7DA7}IEE;@Z9#7Gu3wy9j3Qzu}~pX(W~TGk|=dSIOxAt_E97nfxLl_gQS#v!Tix9(BMmrz#;kSL3v)}V-LR-{L^!4)TD`KhjBc68D zTfuGexcJREm)#Ven2*`aU!v72AY;U{jRS1eMMi8LEf z7qD@UUOnHGN)59^=Eh1G4v02G66!QVJ^CznTz=cZXT5^0*S6gAw$twkG|Lrd#x=Ba zjY+i~yY@vO_JFEjF2F`O=C+rA=yB|S^f!qzW4G&Z+kP_cFksl9Zlx&CsobojC4XIrj`R?S{9V?1d{nZS_5l0 ztK+2BM-*}SJXHt1A`8Nt{LmqS$9P#pgJCLTKNmc(Ij#Jc*FB3r2>I`Roru0UQX&-}c%Mp3LA#VLUfxscrceNpWd8;D>g;uxA2b{|-%m z+d~R?&jiA^H>e#wNFrGvB}HUF-!-HVvFPv=8Awj<7BuRi7%@x*QU+?-#_sVFRdk39 z8OH%LVN7TWX6UgYew8hE@_RR)ARoTtB)f(I<2JKPdA2sO;cZdt@jE#UCu(++WMOL0 zCF!uIGD$!?x_}b|pJ)QdBLn$!#l%>pJaQ!6aLo@uMQMW&)yaESM)OIV0lGr;v1b5`yLj7Jx9*Y!Vl zuxxxP7t~kk$1kNxtL$bu55oQJo1Z zVAX|~a*{J&*V~1+nw~_8)U(n@Bh7DT zcAy}hx*AZ8i;xnnMJ^i63ZlVmO}|!}SW#zC|)99Pn-8+B%(j$5AO(%2Xa5G5^6BCl!^z%2p zKV*&IZ&Ra~iMwD1VyFg9c`B78=ExtjZoaf`!rE$1!={bR{MJ8s*TuZ(H6AS$@rrBq z?fEh7a`1;oA0prko}hvH_CK;#0!LJ)EmR z8bl#QHW_p7Edl68Fx_=sl?1%PKKY*a$+KU( z9!=I0fbXmIyLQ>%{m=5T&!uUDfu#E?r8;1D<67Q#bUu+#e&vN9z4hnMKVyM7o{h!E z-7YScxI%J@u+Kc=X%6wq!+&ja(`ht#L{ecH$sF2&vKl@rK@CkpDkHrpL{nlzvX=8- zdCUz6<1cXMHRrwb#qhV6KG6%wCA0(GH?&l{j*6GGMQ*1WB!CUtfFu*Moz@1YKRG1H zNXd?+Y%plu_!gK6NSQ~~ha3QBoqo%~zyFr2PUr9wc7Q3R*QhE$(cn~w()Kn57!Ojt zFW0|+ryla*L%;c{>aeH0n7i-nq=Hk46;V6q!J_?-CQliX_0g2Uf?fC!mq;YgT4)Lm zgd^^G!}*V9@X(rV10f*jXpVjikZP<5NU6D!yU%w2bWoqZ|7k54{eR-RgFC4Sp`wYA zU>?!V2{I>)MeH+|F2Ccp9sKHz59gw#!@0ZN5CO3L7BZ1z)T2xj)uucTDwf*ezCkF! z%IrQUkcxH(NDZ}kQW=?&kuqpiAuKB&)cTT zjp+liJAC46?V|VonLO)t>rrJr0r_#4WHKZ7JXnQcuc0IRj=ohCw32SlZI ziE`otUlcsLzTl7E&l%_RC}yIG1+kz>%Ai?D{r=hjwr2I0)<^)Bk>4&+G-|aV60qn^ zye9nErD1E&8#0%F*?3m7F03ukES&m@xBMMv{>keIO%}mvqQesicy(Ddf90g4o8V?; zI!{tc(Wss(LpB}s zmrZYUO6V=q3m?d5Ez-C^2t(?)z+zKTr$9hS&f%Pql2N9TnK)oW*pBSF{_{7$JFj{) z7uScf&{m`gEOtWz$%V8;D4bD8X&s1T7L4j-h|L*Vw^e?2ZJK({#af`DNoSyx1r=Qz z1>gMmkAM2NKYrY?Y&hI7tw?o0`N2rjsGoFDE0yHb&IhIOi9$gewaPH_IZs~Mx7nj} zBdAdmt&}G*$=`OPC{3sUd*~~%S zGm!3a2edWGPzf%XkLp6U-Biz@m%g;{t#2L1hC@bJaClcF$|X%p9`(A9_fYmSDp;!p zycXIxtGTAwk2cOkGkfzT zcW!*txr}#YAfOhx9F5jq>moslC9%j}J=&t%GPAqz*(}gyRsH;z9tcO=`ljPKU5xFH#H>S|?m#M9De4UIr_8J(wAP^OZ;DZOSp0(+p6z zg@tWr{>XC!7k%v^AP|E&Qno2pQb;VbGSV7{(JHvAKuUvR>4U>7FF8j}e8zf|Sx*4I zC)X9W<+@W2K5BpNSv+86&Aj*azpUcNPUJ^3%pJD=&O5)g=_h^y)K$b}t*mN3^enkO zT4(p~nob1PY9l5vm++NZqloqbGh@%tVJ=|NBjU4LVN+moGrRA2+FQ=Mng8>-XHz$s zDV$b!MOsbQ$)G#W=a(&PS;;Ndsh&_P;Im8^^fon5@lYe-Dzk2H@&pq+9qddjz zPU=!|nrF+B0wj+ITr@~CQM|Z3+E@;hQBw<|Q|9++hTE`{IW`m_`7kHcAC+q^+qwVK zUcth4CJKkyfj78h8WBUiky56Udo58(+5{D8X^dS<#Q8u9oKKCr^2~031X-_x9 zWm;)X>L>yTk}(lH{+R2}|Kg{1JeI>w3K^W~5{ZaIFx7Un5wIqbVu7|i{(Zyn)FiyA zGl3DYX>|fx$wPH81TjCY=S?peFJ;7g}wW@`i z<$c`%E2yQRG)Q=#h-6`rpM2J5Zv5SkJSyvuiZ7GvRcckj(oE7prB=zkIE8&TlY!;W zR@s+skgt*@-2e z_!S50w3?VrwfhBdB{W1*2zfRu9(n_2dvM0%wv-pX{h!X|_>&hY5qjFHq4g^W3A3_o zsm3U&Oz155ky7C-=JslmL~x0qvDHg2*jVk$HO)>!V~fOQgU$D)A$`2O>8slhc>LMy z*aD)Fs1Cw%?9rZK7R72aN72a`(~UsNwoQ_JHWYGJrUT&MyUsrUNo;<|knOTRGvy-H zP$(xIjXn3Ku0bN{Mg@@D;6-{MpSxCxFd4}ToV4gM2{cwyv6Y2p%-CugYpIB4Ed!yT zlm%R^U^Dd9D5|Tzb;l0gdgG~lZ1iBi1OYb$NscfR6|7 zjr4+OjcJ+d>X2}nv)z=GkG|>8uX@3+{Yam3#^KAFl-j14#8xQGC3Ur0)k{)DT^XS7 z&6#kmOd)iVV^d;5OQdGnMbPdgaCp>0b{$M5uD3u{%_0NEQbn`)tXG|N8}I+(V~BNK zV&b8wfzWR~FYXJ$)Y&vBe}1Y(929>Z~UK-xF(O|Mts+)6RW1pS|%> zIq1g{?*k$Dy>z!Gt7!N4q^NK{_qU(_h_7D#(a#?_OEDJ^Vk_ZUw5~N|?{1gwLx|-& z4eIyl7tpc?($u#ZCTc1}iKDsX<{C|nBAPO#Pl4D2cMaRV`JB_9VSMh|hqhhCs1`** zTQeM6*6@qDv!4GcR#f}{0DeK|!+c!qQM+BlreM|$ zkm_P?xa!tJPJ0>m+=*&R$s~IOcyELZ_|HJ|MkIlm22ew^SQf)0^aEajrhsNMJov8H zp8qK3kKM{0Y(!@hgs$ROT&oTkWhE{kSNdH-FpU>@pc8HLDZ@BanKD6~@7Fm{|U{dkt za9>2XLLz!~HxEEvP3nZ3L|g7VSiraGZuGt;q!Lv)>9E`X@XAl$_$(g$@B-H#V@;k1 zDK#leWGC@S3Db$2Af^+kk+nMmt3Rnm=PEj(2o8zOkkr(qsI7m)-V%t2#R0BoU}Iua zpyd*ET_A3Nh+v~9zw-Gv^MQ*WOR6g+dW9l%-ITbOh&27nI&4r^1Dt%=wM$q0%a>;5 z_}8pQpY;UbfnTq9)TjCD%bwmo5pGf&-*#t8B2h#~QxWT#AXk((9K>!j3lnhpP~ zhEm5=Qe<6v2hSm%N{@k$BqEY>W2Ij$Q0%(n=Po{u5A8gGJ80Pf(lJofWBm#EwCzyI6r(5MDzGwx zTFlY&i7=XwcKwtxaRl&1o?xkiPyEz-zJB^Up0|;5V}qo8-IWB^GbtOPu@#`rNl;(8 zEB7K0mWWcA(EN4UE?6S@`cb0;yWo7%-vqW1fEO*SP4qC#(mb^#tI7UFW~%Pk6<9e~dbo z6E3TmA;f77@x5i?D@KZ{@XV7hzx#F$xjI{j0 z$=p;}9y42X`Ms{VX59#JOs@@k0vq>(pM2q0p8JlsRtK^1@a-T%&y8`-AUGWad{RPP z(5M)J#LTifnuYwH#3K%r7LbKYD$izxi z-TZ`bSN4z+gPLNPX94Ds%xQ0R8R})~j~K)Oerk-><#Fvj3VEEBEOr37c88yGXWYsKUwT9<7L>H*t^T{B(-bbi z-u$$`=UxAD=6VoXPXHc}RoWlCqn4lg->XCFn)5f2C}w$7>ow#eq%{H3)&=)j5Bu8J zKl#Oj=jm@W^L`|$aZ^;Ewh~?;^l|@m0G2cQiJWNaTK*Hw9gRXPjAA6Q?wgL}U_t-@ zAOJ~3K~(EEVvV+^o5xi0N8ZYpKk~stUid=p*|}jELzLFsd2JT4JU5*{`lofzK+u) zjp@S_#I&8RYZP^1W$`(i*5*hCzWtn@@Ao*LNNAw6nSU_S`kq z0;I`??hTEh9!*&^N=u_@k|#QKP}}m|P01T-MiG^R;K*;k;r)-MK4nCx3%nST3e+1W z;|!j2T}`=~5%9f}0F-fh3&|8fFKO4Bll#RyFqr5}~LjPxd61A8O@ z`8s8}Uu3#X&{+u^CX3j3OiY1ff)mT$0M>rLb~*$(uW=J&g*f>b%wyhT?4sKF{Fgj$ zHy`=R59en*L==%$6}1yW6D7r#DX{lBMw{wc)L!m2_*bSwiqdO-TLLKG{!xetr&K|B`E;{Tpw+=WsS3x&tqcvRJfY^h1km z-c_*M`W*af96V!XBRo;rCTEaw3CFRm<(vc9K_Q_2rl3YQG z9+#wYr8N}wTp9@@F+`1l%p_^Ppf_B8>*goDjGfz;V@y52S1`R_9@Lq zM=~c$v`%4vuIGN_EKWXl#G*EgoYEA#88sfKB_-hEG!tMgY`_Eg9C|dZ z7|u)q6mw5oBx1yz1WHzXN>qdxX>1XRLq>6t#h9p2R0^CF2(2WYE-^HZ`ic}Hz2*px z^j~J{x5sb4>=fR;{RDQm5wG!`Tb1S6RPvd**%k~e>soXPZ(Idzm8pa+W|?Y1vY`^E zop|LxeC9LhWDYoPL~1%UK^LT0^l5j2dNo`lG)1H^Ss~(KYgGSJqF%Zp2kDZ4niOk@ zV`6GZ$xsAwDN74mt8OIu``wgtwpt=dffNnVD(WzY6uTL3d*1V&GvpJOos@4;5XrrT z#$}#sQ)GMX+*Y)`bpl#KiWtvNAAR?_Wbk?d@SnE+)UN!*>-rCWI#uYc1zK6F`p=4} zE|Y&_(h2un6i$1{6_rxzW*_9`O+IsKK&@Jz4M6HyvM+zCyzlUGtSisKu7h9D*=&O zLTvJZSO7IThO)qyj=4U({`oha`kQaQ`QaRU#13L`6oUq*6)p^db7~|UQ8l!9g|rN0 zi_W>4f{3f;;&|##?E&DPa)y_L>FQQ!i3|I7{Tru9Qq&}Qv4|s~u@@Vq7LUpZU(H8n zpK>={xpnj7&t_?B@U{7Xgg)jcw)Sr7LR)8iuX$XcG0$5XDD!o0Vgfso;>26t_`ydr zf6P7H?i`~T#dMB&T|yUn^eykPDARVr%X{6~1AmCcDJFwW-8Dr~iAd7+Z*>To{hTdf z7HQl9qh==yamZ4P7>XB%M^LM2tf96NElSiUf<-JOG#aEk*?7mU*M9zS{O#~T41rLF zyp5ux$kn|oAua)E$p1$5SeYcl`X?K$O#r4;1zN)*my-ZX!u}gZ=WO}Ng}=%Z&UAcEXc;{dacLzn&?_ zJb67jttSBA)pfbubM2`IAAJD#EFO@x{o6-)F9|@dV$D+&4NWYTd-*;O!XJ6eH!uFT zOYA|+9o)3Gtza5ab0$8Dg|!j-_fG<_=Icx)06{GHobjhD#A6|4pggX97mwgW@4jc_ z8-I$0k)O=^bMSZ5muAfbAoki}s6|b|b-74tsZ%aNG*YB5xW4ebr`&ejM}PbBQ#tUs zMJP5@8@1~kZ1-u{!-@hcw^3IIQp}Esl|!Rukd%Q#V%AP@0T+r@IOG=b-(8#5(qx7B z&&noku}>g4r6y8HLR1MEKoSb)YYLmOVPYZ9)9dZFUYZTaM~ka2S=#*6bJ?*ofi)iM zWfXZw;g3^8<_%SLYxYyx1D5m*q2dr(ysZ=LnAEn7&miGWICu}Da2h&Eyz7Z}AMwbj%u zMx^I6urRf~`q(}*wJNC4ulj6?m)v>x-Te4fPvZ;K{xoFqDQoos6B*YcMap^sQ6?%^ z4!^nsFr5H&`EW!n!yWL5!C(H^`>%TW@1H)PH=nx;S_CBK_pj8X;7xry#>;nWRRWN~ zO1jrTV5>R-BP@)Goz-&39*U{$WW{!rpzS+pB~Z1=?o~bzVlP8~>K%-CocYAl`do7L z5t$M!xnn5Qh?!5;XOhd_M*`qAFet`X?Y{lahsgoQuSco%1mL^39(}}>Tz1<-a`D@W zgRC*XTk&b9al#Hz0beAVpd7LP-JiYXhTTUqf7qB9^0V)xH0d{DO~7I~)d5)jV6JG{ z-%km^@&TGZ^dr3`mlhqS4#AN`5EGJYr`rASUpV*Q_|;Fm0I!*zRu(l?Rc0S`sa&*P zn!Xl$yqVq@tN?Sk%o1>#CI3=vRsVbsjyu-4;O&3^iie(Y%x-!@kXt zYF_9q^kcn)DtTfV&@e+G4j+9~G09;~|9&F#}Oj_4EMJv2dL4htIbO^>7Dqm}L`i zHcf9>YXqRS?5ujq;n#7+?GITGQtJu8cW3>=vo7G5KlS2# zASM|=84+{^2w4%6l)D4dvN$Gb%4#*Xu4}o~S%ce`>pvK)ulv?Sg67w9l$k~q-Pn~e zP*k&w`!aI7Y3h;Ze?7#6@4 zkstx;9s}Sgc>2}<{gX2^^Ba*3iwvXgMQG}K1p^?=##|>R%^jMs$_Piy5K~kfB8k>a zo78p;Tx&mvDT2earix39!jL5!GfuOVy+!JxS`_5)mRfyMC# z4lu{T3t#@dOZ)uh%}-=EEoOfzqDCOjMCdiJtG_zQ{Lb4)E-^DJKeBM)pZ_UOJ169R zQjDk+$@RvX>dX>QqfOj(3gbeiJg!jsoE|r}X{5C3TwTYCQqCU)O>5?qA&^Z~S=**N|+=pDrUJ291{SPn2n=J2mL*Sf47YXh%YPm|9oB&3j3(GsN0eCQXPcH5Ia^t)Fd z&irACUOynNLc@mW%bmjRLq}}bGCLm6;>v^=$xDo+sKnWZ-dL#$hel^9PC6a70`rgq zhO`xZM*Vk5Ks&_D2T?J>ZBIr8xq`BNdWPnA>mZagRo|M_ip?t#MG~pd-jKPiGwdE{ zRH$u+qFBU68*uVB+-{h!Ye(QSFT2BD(m-Ux+^`~A{p8PbLSS)k>W!dZc-j2YmOxj6nLrT0M zeg6Ibn@2ydK>f~I`wBWPZ8(!;Zb8Gs9DWdpjbW+G6TwNh;r>nl9Ldte6|S54t`-m$N0OG_V#ar2v%xW8p?#2ciIPSPb zzVfb*ykgTM9=?R{1qvw|(O!g^fM4jbR4Bf379G3#3s5UP=NP2f1^P2%$|Qv3VK_ro zm37J$u$jjtL(P(NLBM3#3Mu$Ri~1LwNfgy~Y}3sl*9!Hvk1T+hp_USGO`j%}u@*vW zIp-#&Sy8!uZ1ByTEfnkubKn=4b+)BA@U8=|{hKdsdghO_aJyGBV3IsKXT|i;_L%IGPwOUfBWCJ+`+e07!C4I^@C@o)|LR#Q2`(L1Yk7)Fi(^7 zm`cr2X7`?qT1POE*2f_b@i-LU(%>W+-cshVOTIXbEV2~uVOup~DfL^uX(MF@8@(pS zC?^eOo=^sc5(%ltpqb&2;iXq>-NK8%`V78d8^MoZ+?QVTCcs$g<%dH$c*4rlS=xZt zl0W>it2IG=9xJMYXFc@mpa0lD%^%F%fhF2oBvl3C?>zxfo$d~-1vqX2f0iZ5aS4+l zRxJ{$1ybK5sYIhkCtIxz{tDt6Qtd!`IBDg#u{`!-17j-U=r6hYi|?6x){Ceb2n~ot zX}bXTng9qo3H(kYF*!u+-1PDH{Ixu1-9mUh0ob>7m2JJ@VFx{UGg}t-p9FpAkgJOL z3~Py5el?r>W#CUIW1Z!F0TqsD{`L?4nHT(c%&CDFA>JQ1aBmg-^us?r1MGe_W)WRY zo#G2bCwW>aB=d+WDeYvm>xWDFF&c(;7>%u{{jf)h~(E}C%n^}S+yzg-zf7#0) zb=YpcJu@K9EmBtlHpBrN;*e0oxR+S$d*-Vjlxw*b`@>-xNVdc%>|m)LGfvr@#{@(g zhAOBjWfXi;Tq~qhOQi8iQV<*ChqwIFWk>SI%@OPZmRx{xgpTIBv^Y(?Eu<~Iv-sTv z6__*Zm@yqrL0z9pLOak%s>V?V-TnR>zjX7HIsD`Xu>j)Dmr*QCKmXP~hlNSoJIP;I zSpZDqU3B`|m|ni&^hm(wA1ssu>M6)hwL!iipVgh9epZFhtddt&){TwrKbym<2e?Q&8`?B(#p7X7! zU=8OCmxKn%4|b8HLh~%95Lpm<%{={b%#zj&oo5h!aIWQ^34lzPAW3S1?PjUj&O+S~Qy+DK zVWIdWtyFSCQjSo;3DFCt4VHwm?y389O?AuP_lS#F>PHzgj>^E?vPP$@ z)d5_qa0pom)BtvoLcn4(ISsPz!k%n^WNRe=h9{2~o6#nG`G|k}|3Ac&fBAJ(6|Ms+ z7StLkmxmdy{q+*jr1^N5D$csI`lLg?!8Lasw;sg4vpv7QR+(JlEa%pxkqeAdx_gh9pGJ!4{V%)UwGveul@SRzW#h3e6mu^R;Y|2^vye$!C9tx#%PXYs3mbkP3v29 zo+d7#_7skL*nwL=c>(+FNANQOrNbHGTh?U;X_&UqYN=7uOm6+xZSe1D4fOz0!5F^% zxDPyU1DnzU&2WKcNRCv#rlKaqS>}GA3W&7E!6+=J=(Ci56EnTd%$EbaHdsm|YsU|* zKSHBZ+8QnWP*O#e2H4<~4F??Zq_4jA^StGND>(=d0wh^}fF)+FfNuQmCRW0^{}1>8 z62uW*>Vkh)9mfPa7t4R_KkrpX-2VH2lr08{eQ<#k9HNUZF2pQ%=V9fGuH?j$eJ*yb8a;To>F>sa3Qj0@LKiS-V^zk5B{-t!x`=xcv=66~j! z)7Vk~ZIXR<|J@}EMG*+mqaL1r%D>(4kDUh~t`%~X#vk2y>wxMaRN>cmzX_O!G#?;{~7F4oSh7n5cn zn(M*Q58f@;{^@6ajAKsPjSnUL{sJ22Qg4QU>?+g3EaGyC-wBzC#102xDk91LYd^qC z%`E+yArkv&b0ODVHa_s#=dtS^2+Q4hRg%Vhi?WE5%ZdP6d6J8$tFb!k)n}kupiG|s zd-UgD`D4%Ce+Rq59J6jW<8gr$IUu-{h(Az8#M)f|QzOtB<_JlasKPFW)dJhZwNG)z z95^D$Qv1^ZV~$=irfCuq=b3Z&u()^v58CkQyDr@-r+wozyP0054EnkqmigR8kXE}< z$u!xvOEB>gQ1B^b%&06^z9!4z`Zr#5;Y~mDz5u5{Sih$WQh<}1XddrfqBqnu?yaE! zxVm6i1x1)RdjP~pId+Vf2q7~N5SfxEmsPK|r>T&u9jQ=KIi?A{JaQa8`MFQs&P88; zNUJp52&u5Xuc<=W{lNm*q!TM?5B8BtLd2dBKKO?h%gcUhJ*urI0N>I2yxn%$Q~D1+ zi7NCa?f!0qwVSHjY}y)lOw|5h8S(EF4%@u_l5gFx`(S4F4+w#j9KHmI6KUV?{tYx+ z`&%2q9Oj&filpE$8d7!K6~F!g9`!5#4KZlVLP7+Xqia1SP?(9*mb3aM3 zb?h^w*P~YouYLZFFL~FmZ*^=qXbB6BLIv-Fj2`}gq0P8REV`laA3V2#jqrYE7NT?18 zVHQ8I*57b-0x%u?J3ydhtPs;lKm^I&5h?5@Rv}kQ4xB_RxxE}w-R~>W81k7TfgnAk z5K^;?(bgY**yA>F?X3sqBp{h|X5^g!n@nYClg=zMIjg&|K+jhfjlXgE8S>!Atw*=@ z1mM2c@dtjB8@3!Z*;K3BOjDa{m69j;BD;-x4`pHRUA+2BPv-E4Mv#H&Oa-ydCOSUC zzrzpnKX3!@)zNQq;Az03<#vTZjK{y@oG94s`FZPToh|aXaJAI2Tn@BtC*V;> z-}u=}z7&sU(}OBN&6Sm;s+@8YU0wZ82me*0l1bLxVCGGH5KD`MdW3~e&@g7FBUuUH zcQ$<*&7!(QXaw;w!->_1NwIJRTW)yE=0`t)g(V2V&@_~kN-}mapEuJ86t5w3f7Vz> zZN8P8w;!<{-0o|?|5snX^4!1Srfo-LaU0V~@K;GI+DxUJoP1iej$0x|jIIT?@}rCY z@ZP8LL#Gr$XCv4yiAzaH8H^KCf$i%AV7b`-4uk*dpKOTZ`6x33yc<)Gjz90T>-p7> zO@hBDFb?Ik9AQM8w*OZIkeXI^-d4VR2@IfsLh=0>&Uotfv%d9(ue^Yh9#b*s)%46$ z*dlH;7)!C=P-igWT%hL@+9)AvvXm?TmIff*#x?!U6c~P>R}W<;t{Fur3(^Kbhq&|v zPCaS!-5>uO4&JYAANvOD0fiS*iHn9Ki^W+iTCLbb-EF3%Adwn)-?oQd!>&7f6rBT0 zN|^ni1^?-`e^!`LE6GMY4aBU8A)fRMnjU1w~X8 z5CH`dB1#-14n$Fm(F}H?#&i-pF=>-@=Vv?QK}k+VfveFwuXn@AuE_L9`?Jt45Kwb^PmZ{pn4o{g?lcOlZWc==%QoY?(qLV6nj8 zO*vna1KJ3-%2T-B`KNV1T0x3f+{4P=$2{o=R`}=*CuYgA?%1Y0W^B{AT_PrZCo(G% z<6Ngh(n0OL#XJOR3NE*4d=gUf84#|KB6|LxW3K(t-@HKgv4?qvenJ~cC?j`ojP>8&07kKO zTn0K51O!s5GL%vpV$8F@rbQOSL8;nA&_E+gEZIKx#tD-Yu?{Gw2Hpw^QLshoP=IQV zU&S+MSJ>|zX&4~v;Hdgv-tZ~mw{AU~J*@KZ_A&b`M}W;(AdA!RCo_Bi03ZNKL_t(< zJI&-C(_p4_fz~`l3BxM9Ztt~MJ(q``ZD1{;8%+)M{JUZqKe9giPu=jK#}TpA5u^Aq z7M2N$vcT&_Hj=))GQ3sID{mh?S!lQok6%bZDu@J$vlE(~) zGrTOThho)!o8^{(WwFo4*~PEh!~<*w00*oaZ1-1B*mm?z_D!~|?$w?p^x(_&<^L?6 zE2x8)oO{*R-uQt>Vd|r;a#^P}@R!sbhr6rhcksiz?nzt1tV&WXX&evC4O$89g8B4$ zx&15Wopi<#eEHU+^T=+PPVH>W=`%~8n^HoRs>)b_tS%lhHLyC4eIUix{`M^waPsLZ z49h{NhAT?#BWW&DhJqThFi-zCLqW{A>NrC=yUNt3U_OWwgK=@+4gj{@rrY=JVlOfl zp-A(~-fKknZ?U>%?1wb*ZJ)XFdd~WV3#gYP&bwZe&bJVfu6A~li#Z609v58(o4J5Q z&k=C`w}0^;hpcR0VVo*lvBEf14CVXV03JF3m~m7xTOnA@fCs^WOGIs0ktJ5r5=(J~ zacqcI;v`{7aHe=MQfi4QGYOV%LM@O|q@{pzKXu%~cKggt-}#Pz_UE4+ZXk0tpi0ro zR4AYZC{h*{TD`sls(x#N1_fV2RmR_1yynW6bJCMmuqlS4L1I?=%p_ed&+eodqR@3p zfl*3)oDB*R#srJYgtmdGh~{wyC3Xy;zUvAkut0FWV-a+SC6s_^m?rvWBdq;_S6=uT z{`7-S6l=^u5ju=9hckpa+qNxT^RdazUpz;Se$=Md+iU?$*9lL0?Cz=a@1w~(asJt6 zcCJz-AI>w5`|{`Bc*Vm7@jZK75)L??`dz&FY34mO;geX3SQ-YIThVqrfTEFhQla`U za_i^MyZ=eY@}*mkCMIZO=KR!yIRDuUq~j|=Em7BCmWvyBPc?Kr<=nkb{n|&ax{ybn zDa;K#l}un|dregu<)k1*&0+_2l|uiDn#`o_`WSf}sSlO}=$(Jj+&v!tdrcHCmLOrY zx-uZvL)u)lscgc6|MAmaa6GTL;IoKx#E=6u%WdY|rrn^2)H@E1S*>mYS6uSp8mdMx zZD<%#ecuBBZG!+j%{cw_j&=RH&2#>(HH0V>X`Yd8W4jwMub#qcVpK$hcXrx5F zM|8|227=^K!D=#OAygD@A9wgO9<=M2V?TG^6+E-LiD7hTD|G6Dw3#|Pr`DFhlCFDn zQ$>%yg`k=PfHuI=iu*19nCJWtK6$xdu^abegj89ATy#QgOo^5^lGp*x-=xaAJw92&fL`=fdBA;_C4Z20NPE z5je#Cy=N&@ZAuTkR-34Hsp<63W$fdUN7aLE!w)~e&HwtmohO~ht$VkVx?|}z2&+tn z>m&d5WdT!g$#kB?Fg3YnurPwxy!3M~`M^7G*~YG;8|K_1Ze@EzvDJ{KWJQ!TQQ9C; zl0=N4dA_%Q9eBSICM3~T^XNhCH@EJ}R`yFHg)zveY`08ZG!{+VaLHAJi7WP@@?)=i zUCSd*4ge!dlwqAWTOI83YyRDZSTX@#d&8L(^J#!9j40_|48Tllw)=tE_3EulE|N&O z)@&7XvcSAqmZyt}ba~HB!-7be2gu%vKw82cA=#26NI4;&i4W2L4Q+@Zz81AKvCk7%8@- z24bqf4{?+*(Wp5Ph!;S5OW=|vCw}H-zwsMZ zQ#%*r$jqTYM9#caDqg#@qteyzcFkd3wsHu6(-MOO835iw?T-e?M=o zV2v7IXm@;;+rMSFnDVUqy}JF9W?lzd4Yhzd*M&-f*hYv$M!JiwJy2OKSmY_5M9K|6>BY4=fgwv+bch?1^wAu7^5b`3{N`+IO5>*CYN9wTdza0dM%RxBekN z@EnEGA-*MrQPR=Do&P-pz*x`vCkGboiG(6wL$Z6Zp(US8q)ewcuijclVw9 zym3Gf$V~jw1==Zdg83zyI3ctS zv%rc8|;YP8~T3aJ#n5Isctb5Cj0Yq?^3~{AHvlIx)W`lrUUrW2}BlS8? zOusNiG@)Xsu8`vI^SEd62QR*oXwnTa97cB3UEZu-KuG@ik9@-YHv@qC@Y?amFTaU@ z+k1bU#x-2hA^Ej9`a`T3;c+M2_}QO&-4h3t!;n$+2%?QzIH0*|$UWu!`@bXW0)cf2 zKrB!{mUcYA`M>ApPrh`=>1VNbxgthL=BHyinc*;3J_4PDx3a$T+2`fbjrs+kanLBx zv@ovW{Qvsww|@N68|RoT-=A0sjb9|Nk2dY5trKRoPmSV}X5Mq_KTXd6b(-F56z!D; z)Wmw2??$EB``U7~D^x;KZ8J}!jZmso5K3^p|fQy(5#4JUP0&n~JBe$~4N=6p4;NX2U@LDa7SwDyaz2dZgOUsPy=-pL)eWN0bW#+)xM+XcEcxv8On5Fn|2RKlj`Z@g%;( zFjR~}IWw=baj-6uNYk0V%+W1k5>t_twGuQ9w^y(D&!_R$KN}%Mf%*w)vQdID`#sGW z`piAaeq2`_I~D3Gobx2rZmdYA&Be6ln*0CXUA`DdiIxFNSpgLn5%&+T`qM}ALcSh1`A_i zlgUDQ=2g<{Y1FQ^E%)pLwEn=&&hGYYyD~}D1p)eQzWj+-%s={E_AL!?64Bh^5Z4Xt z#*SU9*D7C6f!xg(%!UMGaxRh?I|Y&&F}Cd615f&e3orV_C0{X?m*zkXb3!o`bT~ps z4KeyC-IVXDuDeaecNIyZ+BHjx1YRsTBzY`(Byt~L1tf5^olz|#6sb%`?vJ!v(|B=b zxMP48`>6OyPCbKD9tB0g1lk!nU|nMsrVO!V4Mjjw9=p1+K5{Rz$1w~w^?m*JcT&Q1 z0RUpeHPwKGj|CN5*rMCmu5)amU=*Qjl|hVHm=M|(VmqL69;f?RY{x9eNRR!|e=`xM?SS1hE7G-B z5}G2UIf}Wz_~50BY}K zuiSFx6A3Y^6@};|2B&$FUv1Wil)fb;S-&2rbx0@NKHj3pbmr;c+xLj z_@;k&_qQVLSi$WfrZMK02}wcKz{MV?kX?PkO=pLvXo-|x+BtuRCU^Ka;CpWcprEFa zA|>yIMBzhIBq;a0IZMtBSdjtCxil0#W%~aia5BhdDg&Y*&Zbw=iwC&^ z@h)=?SUL!S*V<}Bltk1L9rXIbL$qi~A%dOEj$@yD`(<}d?4y#VIDr1^-p+T)-!C5X z#52ETOSf(Y0QZqKeB0}f;_JH~u(n*@Wt}s-T+9Tab@X89%$|yOFgJwPUij|U^TZ#4 z!Z$fbbpeSEFLb?YU8krutp_M(ib+EH*Ih093t7Z1C43&5!`EUKvko^(YK9QL$nF2< zKkhpHk?da*>M>KEUI%GFuHz?ZF}H#hD>OO#&IEs5q@oEVNfafD5)^^}HiRgYBuXe8 zR6Rdj6&tAcC!X~)=e_-7fBn^6?B9Ps{AA}|Uyg1qcP!je9J}b3Ex1M!X2aI8ed1h& z21oQYE5+DNTyU0LL*d5^SZ2Nru1tVu69hQX;H0#sG$J^wNq*v6nh_J<;%b}67)pgP zlwbjI&wR@Bx3e&x<>Uz^8r@W6Cb~$gMg$~!bpIA{}5YG_N5>+KxOSfSuEWe!fS^vxcisj8IZAFn1+7wj97@@|MujJ8B<4v!;7++=O zWO3#I-vJDAiNdt2lO_^D$o71V_xtw#BaZ&V7ky+i0JsmVx7(Ngkr%)DWm6TuJIk<) zBFCd$rqoZ}Jb33fzxvB>e&Rj!6l|7kU46+-^DG9p&6XDz*gFyGl2Ux8nAOI?(!j!mlp3U-qe=xXCQQad z+Im1MMNWx8X}S#SzP{{$#B6n6t07?~PzqQ&f^x*k$1fgk$T|J(-Zo!<+pa)Lx>1Q} zb8VE_uHzC=sqk(K!?Ga;hi6EsikH-t#@Ck%4`#d{d*0Lcaqa2v;(pVCYHefl)X$jc7-Lrq@_xSYtGO9lbnbgM=q{6usZ%aN=94wPxR~4B4 zUavjSPYc}L^^ZUKKhEY+5B)d1f|*32wS=0%T7-ZosI%!*)QrK3$?%qRk;w?`<@$@73&i#0`hx!c+nbz70hQbzBTNx zF#;C4YQ)T@62u932%1=2fv3OfnQyx8&0lW#_R{t_OAM$}EF`o-!mQC~f!2E{1Wjs1 zk4`EgBdTI6!)nC931TfND%!OTl*0`I5@mYWkqbMx>Ew6t zU_d4V@S5>*eHNTtt_GA5qyY;VMc+k_ouiCO(^c*bOY-``6JB^RH-2n{_uX8mwOA8K zu}U&()xx2i|7uU)ObsneT#0i9D!I>^WVYS1@#i}zf-65L=IVR0& zeHsOaVj?}uKLt=hp0}-9&{}958XcviTmWoR7Kh6kXhz>INqr#zQfuDY+K(r2&MPmt z__}v|O<5e*+ib6I7?RK;IVVIy$16Sxu3T7VuByc;W?5N%>=LyaQCz^4H3ggNkozYJ zslaP)2)m>>Ss?{}^a)?R%LNp(yf?nO_kKPr<81~2cYa0>xJM3=3h#!Leiz#ZN=Z!$ z2}=cjDkt2J3)*x<=D;A}cD~I5%%8;k(W5V({Z38-bZG>pQx+4KBe~2S;G$qzHKHrq zStk%8iPB*XI#Hbv_|;u!|KNwX`MMG_pF4(yBD$h!#U~jYtj)O|PSW!MmzW!NL4ZJX zcN505M2tVgv5)2>zxG!+1(Q{EkfKwolC%nJogqt6U=88hO}ih!Cx7|>-3$Qkh3hi= z%GEsL_kU%|3thNO$vt}uX1wuq6uL*OsN_MkC!h40uMA)Maz&l--AO=&gMfQkRqpB| zF4a>(_eouPNw~S`VF4}FkPciZK@;^6IpDhbN)qt0kwx_ z0HF|}$SOakq%r};s_e+>z07x}%?Ss|d8ihI!OW2*ffK>Sj!0y1pPvEf4g2ig+1M$|6xOe_2#8YFd4V+}y-LB&LL3gOS_qa0{BZL4%*4@UOA= z8%7KXYsw^LWm?s0hcgC}CC`r#8`PfE?`5(26*5!S>{n;Le-3t06_v$1gO=@ z?)F&%Q;WFR^r!+$kQ(TuJ;v6_m`oy^|Lf1Z=womBYN>UzLy~tSiD(=(>Iaj2HkS)h z?IH=&ObC?c08(bCkLI|~hX8gErnY_+2^X-gU$2BD;?d&K?7IJ9Z(k9c!Dc}N35)k; zD&X(#GjkS^)bR(zZOr>4*ftnaX-x`|WLa%+bzXkfV$7y1xAL78kGP8YVu?vQ7CCCm zCm(xx^%$T?-l8{}eu|^@NHai+)kG(mN;0*a7!}qV#NJ`105^YU=aV1(*lHi+Jte4V zYFe?@9ijqi2Ra%{Vo?pMB*g%yWw!zEtdex7{jK<7Ke26rH@^R}Wky3NN|QDX547cp z1GcQ!FqILG$zjOZ&v?@EW&m(6S`W30{(w(?^Q1LQP$D*c@P}}=W@M^gbsV?qiS<>OD7mNU$9sO$P#oEkAX zQx^zUpys+y9Uw-0N;X3Q>mLda{`50G^q@~Yu3cYx`Hl%&O15kG1v#36y;1IZ-{lwouXgW^)u zWGi!4Z#ol1Y-2-et8^=-tHb^hQ5)hbhQq^ngYK`Gha| z+cKVc27W8^#TG_haMqHdpPHA0o9QFiss=Jm8??Ih;k4ReHc5AJ!1bGUq?z};xM{W;RZ}e5s59d)A7JQ88j2# z_rcil1LiiMrDN24p`Qs^4kX*nYto*IdnoFBhEF&YIX) z%>RE{tMs@%+h4DcCsu$@#CQsC{WD(h7e5VVVp-L%6ZBk798xFUo!bCLD!PvvoX1L{ z2uYy={~*%wpMK62o?Cb9VCkr1KJl!}IY}F;NriOnyB3JE_by1UK4y|{-&9J>DQM|P zNofMqF>&t8&wJ-*-uv~y@`@6)E@13QV^7-<+U}4`!r@|}!`h2SBSfjGH!%PQ?vyp) z?pBFD1E0(yGS@QPPYR2)k@*ovY~Jg`4*)vS8=L)}B2rS&Vj*C0 z8>4bN3neJ^os`E{OW;+bXj*2eb(jvRbcs40i5+p=2cC8fkFgcXP#GYhKZj{m$2^z8 ziwrv;i~r8B{74%eMxu@IPd7gDgjYTHx)E9ll4cW@^;vpP4=k&Bw`3w9BndH31xV4` zwv6*h2dyM*tVaM2Wd*AXd>O%A&a+<33(mSW%O&b6>*@hPfMnsJUh=(920Q(iE4KW| zPuy&a-`orUzR%Z#e(yzBv(k>H54VlQl;?j60-WJP?MX6b%l`}W?T6ob#rA|r=oI%- zL=QFwa}PUyiCA)pBCZZ(rJQOTkq|vIeOw=U=JZzHJM|s3nGZ!j@w``>gkIDlqE!#lmQeX-EQ%bQwl3(p?OQ z-J#2Z;Q_4e{D@hVOlik(*3Ulwe}DAtH_g+;x~!X}L9(UF;uc(`__m}n2~J##D*}a@ zbQB8VK0k(Lxg|2QU-IPUR1VhAocZV8bF0Jw>IJWN4a2HETcBXDLTEgja*TIg*;{q` zv%$dZ6LUBm9&k3G^hdC5u!Ug}NKsG|)bhMN8%P(63O+3`B+$f^*)|14=2_f!{70Ys z(dsb}OR!kBvIe*ByC9<*PFU}GyFJuN?L_lO-^8dj;1Qcqou zc7P@6dK|qE=qms{h3Zl>ckFLoc+F-2@O`}g-oEy6e&f9_#7w5(zt!xwbA*YW0@xr~ zL`@~(diHtYg?lf3>%-Z0oT2K?6=HawD1y>{Hy(to$>&gyxJIomO^RH~jd}DROLM6I zFgJhd^}C*SJ|Uz1&1(Z0yD#g7K@KcL=2n91cwj2fQ>l;m%+uaGcMIObx( zc({|j#~l4HPyB#C5v%}cC!jHjtY#HX+FVo!ARf!SBX~<-bq)eZQbQot(AIF?tIz+t zk6!%MdFnW#E|(eG5`BfHiO zSlYJbW9MGU89JtF3WHDvAZmMO=D&kI_Z`GMoM6C7uldEF;~y@rKqD~)QgDf)C56oR zr!MC5yGv7+@{Ko-$EfmKSj3`|#3O1OOivtG1xRRStCBIXNvJ~McQD-XklWt)S2#yh zmn3tT*J>akDW$LTEfYU&eZ-FTxYvO(6Mp*x7ygZ1|AEZ_;QMqv^yZiTVt;~+I^_I4kJZmc; zK`cOGh;x}?3;Qy=Z+iKIANL3rS1L$Qx<*1ORdV0`00X~PFkE3$fD&7841g2iq1T=F zk4Lian3_c$Lz5_Cg|8ObZ7b|y3-#Qw*Isa`KRFv22;KCMf@+f1ij2h#(@z<)iZ3M@ zWZdx}cS&SOEHA-RUUmN8UHgt38ul&jLWYK^<&+=@gr=a4E{R|sTvEzSGWrdjN|J<0 zC{{s|LR=MbI-IiqT0<+HZ2LxoDfjsz|2Z(osSd#>#9RtH@2U z%-m&(=mM=zq|WmP5LX&=!tt-#;_03ZNKL_t(X0v_MsR-kAz=(o26 z2e~d!y$U-_S*I%`-m~)sFMc04U0b4BAuefZhe#Q+jzH)1b2Z@5AU?4Y^<~#=?a6_9 zyhQf#zbcXo<#Z#Wcv(NYxCK{0FjVgLwQ9$ZYtsa(6|E2d6{nwp; z_z!11{g}<&`+c~cXIH#|Puz6M8s|S7;du>x|3`IZGsGTwqp&d7UhBc=j#W5VP~=bjt6={q|KZO050OH)a$ ztyYF*!`v+iB*6iNC0r050HaSo{#}u8ZL4U81)i;JDfTmF!hW}n(Qtt|Q;N8Yu;uj|?HerJVvr1r0c#zm4XN#P63=KGfdfPd~LJ+F10h z0J9AA&)`7K$T<b?tWvaWLt%=Dx=igiAj42;w zkb{8f9B%h@4>17 zN^%8OC_;()mJ|{yi&*m{jy;ukyzzs z=WGT5-$!fy+P~b#cb0aoDev@|f7ZOupWAEDuJ>(19tBAVgDUXw2YmB}Q-1YD$pmMv zDomU$iO(e;(xNqTw2qdpfrX@=G()uJRCN~WN z`iTIq0W;xS`|ih=f8!4}1Ay;?^+~(+^PKfRe{oH3zc1@}4VmnrEBl1xQv&ZhZv2=@ zt7w9M%@?k`*5e(ZjabtNZC}#zNn9WVkI6ms5Z2CbACM(rxvZutAeZx%f4O*jl#K z+`{g(hkeONX)ANq@Et#5amUWjo_B>mlNN{4P9jlj!?i&m`Yzp{b}|bK6f}60)M64- zgs3nP6pe}TGCcKF=fCZ`%fGV7{=FsQ#wLUo)mFU+r-V%yI?mJ%ER<%Rh_&%i^2CjP z_K=QV4&}VkW+-qs&8iW_W~wP`+d0m_*@((*WxgyaTt?7zfF-i3ct>)dJVmPvf>DuZ z6>6m}K{JVW>ibx(H5(YTmNvj`La6do?4)Y#$E!L_j8pS6}Jiaohe)_t< z`vl~RmXHRkAGW)$-tqV2;r;jfK%j6f5BuF$UvGEZxETO^kFPU-^cmloX89sEeVEqq zU-yw+7Z`|SusWXA7Qugg_GSOk9`O_(88msy-HD-^;R4cVXhyh!-2rmrP{B-r@-K{&OF@;Brp#yItl0UV$nj zDvGWskw8e@9H0kRWT_x5VG2&VpEV`55L!6rKRxf#Pk#9JB|?)7N1nb&4IwU3hfQab zk^Kkv;qfj*{WlH-I*i)px<^;+4yj<;j|y5h`UlXEqDOT=>8hNNtUh-{vXrh#F8dd) zXQ4IJ0+Ry9YNW7(?ZsYJ(gNkeGUIvqye;i%-iht#{FH8PRZIYOBM!wehuctZh6$Ue|3QDwaS-$YF0)Q3TRzOrzIgeqlifC5U#Rrm(Tn&b(M0Le`eR#$v@rtrCW|>;i%j{$ooNOlYO}dd(Vla z){PVjqWJ_WVwOqzLs-BK$Ask)IPSTRyMfC-^;odzF&A(#?`P>M>*ny5_1y!ITmYYt zy2N$$cn8b_e{QQ%AQi|X#LCOkeE8>vB zG7}1lu!rK-+aB|=XY&PM(iI_kSc0VN;1jq25x!a>@r^ zd&N(k^WzU$WV=>-Wg8Q!fl=LY|J~mxsGKk|KNde2GiM&%H^*{vu_CvM@#m zku;v8Zlv`bMw#(@c^N7WOWE8Z(Y&~T6N6Z$AOy*?vXH z=qIynN){+dGAT^|z3B4ZQ3Ht-(VyM?%$2*i{dmv9<|M}5dVW#lPWE6V;4lS~eN37? zEY=h1R8hFVigspXMuN9*pX;I04FIlx_ZK}sxBCqC0JU$xMF=GYsdIe&G<2SrPGGn` z@RmZNq%0){Cmr)|H(Y;X1+MV;D$nMd8e##99uaT&C>DB|;I<1YUDi5M6VgOdyFzLw zq-fcA^~SA}7S6vbII9V&9pFXR^89wJgjj*eZLHjJ;gKgC&;CVdT71g6Nqs0UXi5hZ z7c{k!DBo#czUp~${1Z1T0N;b_r=IfM?UKoEyVBDJCHjqynwezUOUJ`*eZyZpkS#}c zrK|7y{TT#Ct)s3YgHDq#21y}y^S=e^R|v~Pv^?(eSHF`hKlj*Nmhz#GAi57BIoIwO z^4tEiMvrS9;u1k~&wmd1ksV)p;d7o-24Wgf6+4(86co~Ce#0s8NI|KJibHWo2UJQX zs0dLUG8i*%=NN<`TjMbtwdJ^Lf8^5YB%ti^LVi_|s{x`m21y8W9YBBs`HIxlcq4fw z7Vxa!JpZDrFS%)+#o)Ht^5Oz}CqnHRsZweJsXb|V#CU(j{s^s4d9DYI6lzr;R@UtP5sYKm@0W8*Y8T3IFMbKQq7;8Oa~jz??BH>n9;rNvc4K zE>g}kEX|}JbrkJDfE$9W@_1o3Eq9(@S#pRjP|WewKlqdWFQnNjfF1m|u_Ta85~V?U z-VZ&i+H3)Q53bkPH5bcAZhUMMi9K6}f#wmHbf^ppiXx|J$bVQ(-O1nj%;jq@bQyh5UZj@#K4m1u-QWt)=y? z!q)v%n=WQ^eJ>m4o;|Ri4jAIyJaff}!p(9xWasZ?l`KdPQt@5u?JCmnoZmVB7Jjh0 z1s5HNk&>q(O&d#DD6HwkN4oKyjQZy<89esv<+)>$!;@!x zB}qOBHX8&OQMNPi4YXrYoWqw}h?TLw*hbiS%)g%Zp5ipX2TY3E7)~<%XzK`}!~~(q zoZ_8!fc5sJzi4%kTJzS{emsG5UU|XA*S+Iw%Hp`*W_yQ=Y#S~!CphyYiL{bju%YBA z&bK(1da;~9CMZfIpxNwbZ?5l&HUM%kHIH-e^ z*%8r1vVGiIp76eBUCXJ(UPwMO`*!r58MNDi_C(OE(o2Oh7+~gb8v1dnZ;oF2s!wv; z7aG!dh*Tx25lc}m2;vQ_N;=3Rd(bal+63GYx>;#`M|mj2aT+{c;} zJkG6X{*MSSdQ zr{(=8Hhqp}?jR>%2H@NknqGG9KfHodo}2+St{4+0C2nw#eRYqnNx^cXRy)Hrnn^T- zqycLRlrw++f*bk9?K?7(weR_xVCJW+I?_iyYPosUW~0dVZ+UU2Ca+8u#q z%_w>$5L1BI&mHezYcXUf2~B|%GYN@Ik;fSy5Tv28mN4GJTp0;|k=-~}yipUF6eA|v z=RbbdWpj@Lq^&YC5eGrU0jbOd2u%lU$LYmO10?66S`d<-0FQt51#i0gt>4(fo>VJs ztr@gXBBDeZqD@K*(bJY$r8otmiy$726%s@u`#1Cd&GkKMl=JwmT94%Qh(si1h8o8_ z1HXe&<#5uq&}@AWur}E_AnXt@sVKB&uOG3zYjoW+FXw(KNSS2H*oEe9UC$Q~Xa1Z^ zG7Sns@|jCKz@+9yXFhSK!z^O0l3Zz8wpc1miiBA*l27XU@~jxzS34}L1xi2P-`Sj1 zNviyFDtBU-t*eYQInW>>`Wha69zT5Mrx^?(V+m$Sv{rv{l|^;RmXbTF$?-2YKk`4@ zKmFZi0PsDs{_5nPczh;s&^VPZm5oPF4%ji?Ls{^Szj(_+LrN_Yvuc%>wxhB8u0DW- zSHlb9Tcz#VY?2wWOrFgZf5V?&_0$}=N2XGpeRphjRLi_|g>RSpbO6;D)5td9BWJ$r zv1~n|Wy!Y$t7$BdQeWP0NWr6QW3JrBLh1076wrbGI=WI_?K4IhqfLR6ee7#T$Y4S( zTPR1+s4#I4W#NeXfBgK*IRU7aN(xKhgT=zofR(+)%bq&oV$)44h$To3XdpNk=h5Su zNrdx%{h1ei>@8pQ1D3Wq#EU6tEGSS!B2j|36b2dR6G0Oq1wK~z7Q|MH%^JYw`uARL z1IM*m+K))eKGt{1x1@xm0@XPNevXkZa8qL-t71D--GE$S*tiWkW(7rMg}pqI^br2( zv6tJZ^L7)>#XoH-h>qkUNo@)Y?5=W(lv2xhJp-=0>7fsM&#%6_$km2~By*ri%p%Y_ z+F2^~-i#%&)MEiM&9FM{dYt{|(&-?A9xOfU=!caSvjIg};L9aa-6Hmf@A})_Q+3jH zj!-sg0rZYvC3UKa_Q$8c=+T=2!1uuVQG4%S$p5+Z_~}Cuz-t1_S>~afKV)XBzy7JW zoXP!8aCldsRX|crig}K8weWpUm;V8RqX|lzH@UeIb%D?h5dY77`})s~e&QE0RiU+D z8J3VIg=QQ-tIU{)Oi|pq>zfvQ3pq-rx$azOD;Yl*ZS)G}I z4W9F7Fa29?xXMT|kXq~Lj7yWU7gO^&e6S?M)NumzsD9}rgNsfraQ#SO;?8qCkGMtJ zNd{E=B7!`b2cE|7z3}pb@wlz|uImFH$)ik0=9c-?H&6O``^evH1_1xg>utyW*fYBa z6|?hqk(j0wzlU`G0Nb~p!dN1$coScuMLZOG@Sb`AmSu${qiI7R#0uy4 z(d>KSueKGd}Ik3#55b^QoeJ;(W5zw#qL`;4JyGHPk9rfG|; zqag(8&+OD_|5siXw<>(55C>%#?(Z2_GG)m9hq}K!t2h0c@`Ci?tdAh-84WCPUIZ zLqDKWhnG%Ln1fM0ZG<(Lqw-6PLrvXHPcN5e{p^_y7jF9sz8U1Q{xn?hU`o^(ToKSF z?duIb6YT^n!>?X*+*8lKgYoVXoXh2d6vaYRf=?7`xI9^8v)Uz+YwuzuqOSW|a?WpE zMeiU}0BQYawgIlpEQv;gSO9zHFa6QO*t-3oO_J%2iYa#-dS~KR@9m$S^ke621_1w# z>r{L5AImrPJYbsr1BB?-jIYd8dQ7EPrs;XE;pRVh-EnctgB;GcdF-x8vdU03vm@-g zfdmLj3`*+_Eixlk^cbgH{ogO+<2RnrP30wz`EFzCf#JP3(0~S^=!1cxhE(uy>Ze`y z;+rCiqlVZHSV#j(mnnK%TaCI!5@M+{9)h!o#hok+<{5dVkb+Viijh+4S_eg^Fk3KJ zv{;HX%>oP3Qba+DhJ89B6g73)$za>Ak3Z=>oB|9plL28g#x&rd>G2FbUr{+Eb`L8L z0*5RmoE7h_N~Sc6aNd9V;fp_f$+t$-37=T@7KT9!hqJC_sSOspii?gViQ*{mn=|a2 z>)(CJU0`X_X&GFmZM&Up863s-p&_ZJ4GtB>iJ~GKsy(Kez`{31>m6+|U}%O5OWanT zc<~Q>g_FBC3_gRQeary>_pYjQ&Ydz7AR2-|kSUD_G6`xROah_^hyya%YGaGgKj~H!TC}yb zCs7-5;0G$$v^F!!Bn@F!rbw8PF+j+0$8)M`zwcW8$Gdk8=bk&n++ad#eLg!k_W+GR za=+el&#BtA-!(q#dDIj$AuA$f>?*UB!0vU5ATl7-4I27&fDQw&B&2jK>ywLwWhoVe z7^(W1x0ocswW1xK zg`a-@d+-1Hc!%=lp&f(f)V~7n>+hLk11+#;7p zrw?A(J)i%Yhx|7__{OHp{X94U!MDq)`%#He5ete45!a#*Q05B?k~^5+u@fAlbU5*d zhK`IVZsI8t>o?r~#~#etdk&N_M|4niky*dvL|lY|$t&*o3wcX0vF;B9D45kDt;2Z0d4D0ED-?{M3mvHu-uI8FtQ^`6b%}AP% zTP3pWAZ*7fP?2AMGYv*}^B8Fa|s^3G3AL7L$C@o-@wjh3CDU(>!1nXhX-Y(XJ5) z#}Y$dDpXQoBzwWPJmP@|*xFy=k|a+umX9Z;Rw#m{d(GkvAylY(X^EOFbZ2|fpxz(% zzsf8b5eBYJi`fLp6;e$xM${ud{oFq!#?tCn0hi#YyPTxd`{iG~;QRg6f3QjbzQOjI zZ+r43$3prqJ&d_@a=O(TFjGQ=3vczM-{XFdnTVyzb>Kh}PYqg6#HWRc&(q?AbgF}Y zX_sjbN5|x?b+kVJi~sFU`1{Y^1~(92Km*Sxa+eYuykFC|fUALKLK}G0#^-+INf+-s zz_k__WGA+pw5dX(qO!rLI>NL)(c_^V`=2Ae#;DrM?z&-sp%$pzQ4=yk?xeLu`(6G> zWEUIt5vDd}%s$rYb#{qUaT<2|E#7mdH`|>x#!Q)08l)7WZJfmex)!$W+2`u8FdnQQX5uJ!B|e){znf zT2jbt1*N5?GG$~2a)1NAi>ekz=?L|fqB7>%IOghR4c&FthkxL0;ZA^CrKG|(-tFG1 zl#0LK4#=X#HPAy5%Zr?Lyq<$RhQkMqTl~=DKgbt8KVlrO9^`|nq*0C<2)Tu%hzz0H z9J0aytn4N}Di8}q3Vz3Zok6|Ms9=1LVgx*jAm`9Cl->H9<0=RVv%VU~QBA z)oow&fXlcIz}6a`8agx{l7x;ebmo-0s}IAfT^GO&e)=yS_YyAuzYSVl6Q#UAB+93A%v;= z#J~qxh9%f}Rz$~QlO&#Grw{#tzR)4t7W}(|pD8auSx}Z9yO@k#2KtIDPB0&A0 z6rO-N;7Cw*vtI3GqmI(hi7`NJ4azgFYbYLG|yP526*^EM? zr*YsGXTSd;uWjxCR#8c4E2<`wJKBT3qL6MoKy=n(^wQyhFi#3bd7@nPH9mFM$6p*c zcw{eaHEx(pT3FwVYr!fVlPzcp<2YVz0j%ss;DYsfxMHC&c6yhj2U(+z4KZl9yLPMRZG(s4Y$5#Bfv{-WR4XPo)1aHS+ z?;Jk%@mz53HH280R?AN{S-=4v`}T{YV$Zq%6V6{H0N((6kze)(-uX{=MVME}i>3L_ z6Sbu=`u#ut$FC~-7A64+3Cml-Hx0aUsk+QGS0?oh{eE&0snI+0ia+G-pS%-oj^J+4 zhQ;@_lmN^DdtDPel@b_u*6AO7wBGvLHyP(4>v<3BAz(3)B^ToTyg@xsh%MQb+|lFi z)Ph`mP!@RtB5MrdX>2r+)I>}Jo&`;1_iz%7%^=|WI3u*w)6-ZVOgW-o=bCmu}vu_heZTEj+32;nfJ(IG|&O_|mkCeuktr?2SenzK!}Ep0@9!3@BN6sJFVz+?HPZ zqIzKGMhax#TT&bN#8+;4ySM+xzjoXk$_UPP^fRpX*60m`Xx(Exgw58?Sf`9)V zYc#f48lZ8FIA}}t-{t}gjG(c_S^wy7ytHgNOUL)(ntMXB<5hm{f{1hJXYcw7|K!_N z3BV0(Px|BHwA{OmL5-7Ru}>iFG;*?`=X|1WBs$VTyrZ z-5y|sP<4!m>JDkDk|sh)RmKzNPhNe&OD}udm#$7rg0+rYukczl1@IQnkr3a=LmtZox3~)TPP-fsJ+T;^ijgf~ zu0Qzio_6gj0k{F}oqolKc*)-vz(u$B@4``xc#COr0z*OotqD;c^s$$|F`HIS9kR{m zNoA&_c|a8%O-`^#R9~1VY|k>ooWvf(C1cuOJs2gFmze5IkQqf*mID&3f5e2`(32{C#_1#Lq;9dHJE=6fFcH?TE`qb~=pi0V#VsGsIyi`tp!($pv{Y=X%A43IxRn zXadc~G(`3fTdoT0G_huwrlfI$V@z|yz@|tTFtEU;oy8Y!ea1h0+doe4OU0nw3mKB+ zqTB;cJ#iw)G!V8RPn=w3#Dt1SDB1|ED}qUw9D(n9+Wk-GYhSEJ?X?F^WAd5P*`F(z zB9j5@whA*V`I@z zgeIm$NG;?Mb=+d=Fb#oRC8jc>j)&Q7Glxd|`N-*e-*e&L`?(#1y2pOxq?Dr(4N;DvK8@z?B13cjez9+90_iUk4_X{3kLL5{R>X-(ys^mff5DjYt zHXsghjZAYWeptMKd<}vasx3k;0A_K_3qm?u@phtRQta*o4nsVQ4DWFH|9oW;NR1f@ z0kOuq`XelMVO=R0_J_Z+{&tMvv>^yg)X|V2RV5Dz znG8}dyvH4~Gz0khf%O;v!t?eG$mWsBDABZvH&j7RJ)~o0EBl6;%vRrawl$h660{}d zjCsKZh_pq&R~(VW{h~q~6c)~qctaDu&i*627}mFB?*_kqt9KMyt!Yi_!NYk_8kac5 zNfoEta|P5P<0)ogf&s6({2sr;dtO(gAwnFOG+8_a(1hp8rE1lu3xP_+(JW*IsZrHg zciwxyE8G0BoS^%PfmEf-X@AUpzn|Nj^)>K7>^2;By0?qVm_hR_zBqD^-~X8ptP+45 zz&_#Ee3oB-)AwVpW!p@gWbrr?fO%ff<_Zyh;Icn`Yd|Y8>P@vxy#ZwY`ryCFTiuG= zIQUjogmJS$Zn1Fyf9`#M^gP;B*8YJMWDC=>l;D$q=OzQmIz)=JN|iukW?Gj;w!06m ze9BXwSbvqPCqrVr&Y)ht2U(8yTCcAS8N@Y)RoOunhk$azvxkEmras`9RQT{P(-xX` z7rJ)V`!6Ysfx!ZVEes);;#PsSgxGrD8ufVr)x9I{ODDwOg|GQnZ{f?Ih~%-?v;yG( zX&M$KlUKH~n{W?d2iNY3_%7C~HHM*Q`K*Y#C;{#y@r6EWPXq?yJ%4~>b_TnKM`-gA zj@Uh)aNjZCRb5G)8(N)u6DQOuBB`RF?F)ftn0IBFP6L?YQi^d?{^-IV{O-fFM>a{D zt=iN(yl()_;;FKd;+tTUQipCePbxHq?tK(;ep^Ziu8VK43KO9T8u;*k{4=TusaG!E zwtBrBWSne)WU-q{2+w-WW4`Q%zOqUHPO;tY?az4)(_Hsy?@Xo1IYAw#r9*Yz8CU)m z_k6^d+-9Y%(dyJ3KA-KYE?$ezj3Qd-Xw5phUmJO-?!jNZkV`*vJ48VXPbS$bkiwqP zfrGu*@|ppLz3ZIS6L!Nn|M!Rg<}mwp0E0x5Ew=KArkawDF~idCaG#nkfFd%W4r?@3 zLlqn>;ikl6P?64UH|t@FwuYy@tTpSzfwR@@VSL)T?|s1Q!X1Fnj=+mVX&`|Ia;iF3 z@VVrf_51)fQ+g%@n2h=S_doMq=U`0L#+#(PhiVj0@Y+_kvKza3M-a5Q!aG0L>NP<| z48wp*ZHe11_y1n|ZlTQl!rV8sU=>leXj?^OL^U|fwUIa6?+u&@P;D_yO=%o-96fk8 zU8w#EKtja2L?b#9GoSqGITwEN1ut9oIO^noL&Do49c;;TKIa!Nef}(Db&(1Q6)Mst zGM(R*>+Zjegts+OCYZf>?U6sknR~{?>Dp3)6^@EE*=Afcy;9)jbad_~e*LAZ1mINL z!~f_f%99{Io4csku@6SS=c1*{_3`KYaYU;%k0U5x5<5jL;6>)CZQFV{t`jT=yvl`l zUj?%-$iXk|Kj-IuiV(L*-5D`D8b2>gp8YrLl7MXUz7)EV|`lgjhrdqm2vnvJGMPwBRS_Z4zG!gq`R4O1_$!cdL3q6W z?YDS0S9~ha=JG%UX;)%EE4#@j09kfI5Xg)jPi#aTcCl6!iSuMV187gzUB-ip>OS)V zWaj3*<8LBTUq2IRGis@=EZ8G9~+>0pMoRtQ*ZU^u4mQ zI;!xW{bnYDATuCfpA6jp1wXz@08XJj(f{U;I5b(GH+Q!s0^2$>zEu4q>=|u-sDAtt z15zE4wAD#nk59!2VEZP3_K*DhwTR)gSZ>g|C8c$$!M*?JneX9i`-fz!P%)kHR!YZ; zADpDj=&t)i)~VYdZQz3Hs)s-0`zHsuMq#VDhJ(`)b#sVzT!Mecq_OQap1S#ev4mNR zcXY$UIAR#W5)p|~5}PIZP661@wbV3hB1d*HY9<`1_R_35(Tr9bt~t&A;Vys0c|c{h z`~k-?UG?K7)E|xM5Qn^#Nn3pM@z1);8HkS1cmSKGQ#1lu*~n#buqU&5f6D_Tu!Ny>V)Pi^>aexDE92kDv&)@AT?p$9*?EI2M zvcNQSdjUp22QbN9tWhuY1geP%!q%7v{mRom>sS_yh-xdT?S+1lxC?VGOUoF4z3IFRf*7lSj9EOH_ZPIKPqc{aO zbGu%(7;a73(8oIf!yEbB`+4e%pU`#W9CNX0mmHf_Xb`BnO~9^7ue!izWn4f7eBu%R ztD#+oapNRCi}j6!C&O|e_Un2#c#tby05wNEP_fQ>95M)H&(OES@|J9ax;en1bS7)- z5z#}8$A`&N!z>`d8P^xawOjMfi~foYuL|?9I;IY}Li>lf{QTugNWq*24=~>3uiku{ z_j2WDGt=pA4+C|Ls}QoXo3d@!2UzUt^)vj8*nmoRu~sdzf0mf)9pAq0&{=3TK-kab zw5F0Nq=qK!p&o2;C{&Es_}hEEg$>Hae5)nQ&j_}w1Yx}71KdiAU^znAA}IXYs~`R< zKK+8n744Lq_HmjxI$fixCrqq#0VnkZXVz!)Tj#!)8X!&} zjFB9d06FD`F125JTf;}BF(3W!f3k0#khdgFOgyYY$jWZY<}6cqFZV-*ib^u%fJj3V zYHBGOA1b9iTKV$e%$F`FtKu>xrCkiem^8hbL*o&l$xP#&&K{l1<4(W46kDdmBGwrM zux!l64U&n{78h2OSHJ_Q1yz3TaZg%nX{QlaEt2CNkd*w zVFBnjBYb-oV0$-UleF0Z3hRi(Bc$;L)viDKxnH{#v6^=WkC9BW67>P2mjhfR|&xNvv`*eg8h9tytgt=_-e4>}j1fl1{ zwNOR`d&M67(kFfP8opF(SxVJNP)98i9YQXdMJ2~}94^P&4!CX)kVv5m4k83kkOx#+ z#sKrlAJS2pSt(X8;_DzulY!Ci(AW?Ccx#)JtJ~jpom2T0t zy`*;_b_oF($rBkTiC`g<(9XXkB-PXm80i+%1Ww|>#x4KHeLt?Zq(xHE&=bh1r%>sO z8HLuXC1z6=mbzc@{_pxzKK`~?6#ud=I9C(vgZiw}4~Ur3)|q-ltSdxH6^{rag(+~^ zzwa~(2t;>Ow(yj3tBBfy-GRN|!qXo3RuGvLow2;0$ZQVLe*m&Hj_#Hd{?*?;=kHbt z!1cAC{i`3E0W7kGq5-gg1L%G&I?-51%?Qba82O*S{Gaw}VRnGBNf%o@je{R{PE`kB zp(!EDgQ%7~1=0pplS$Km_oyE`tvtf!B?~_K-^{~S4n+wxIv&fCTbL@(zssA>Mb0|R z!PqAnnLemb)3fRj#;#m-B_ogp}J;(g9i7%Kl|d zj++t`bY8FMsVGAlEyQ4ALNuGtB1KSz+@0yXqzxjdE0vXf+~SWCZMBEZefBH2eg{n# zQKpqcm7UmL;G%RzlrEBvqH6xOOJo)<5vm5 z^{|KgtA3w@fZ`WrX%%XY+D*c2(Sjp~ z89(<$w;SP%7kVx$TiH!D`1{hio^x#YOfICHe*tPLSz{R27zRgX%%0ZQPbJ#*BfV|n zV9=rXOo%Q-uV|!Ye{=Vr_;z2v2rECXY9XQ>op}Mv?EnRmR>ZQ-I-Zw)>cXeDF9B>?|Sd(FL`e(za;@8>KX1@Nrp(vtxN&Auc^ zq5SCUe(z%~mZdyUA>qBot_35Sa!S|0dM09sujn(g2ABqEMm zq>{oyCJPUnO4+>irH$IIqR8F%Q)3#Oq)scFq!bzEAsfD*!&7Jf8oztN2Uzd&hdKI3 zW+I`!O<&D{L0=jq<5id5Zd6nbS6cupyNS2|)#qn>yEpQsB;8RD1Q{_1Lk2<1rjE}$ zg83*ufW=PTd|O~%aAd+%Xq&@)dF}9@eA}z3DGa6LNL*Y`H0eXK^j!ei-bOWE{q0Y> z*h$unKaXNo-KnY%9W!9RIpE;SEPy+8I?Jm{m{%oHaYfwm)DT2KkC6SA@B7WyV@dn{ zF4MAYWYGV2E(nw?5;QOV|DW9Nr|!B+0R9>FM*sYKdH)yhI1BLo+NM19gXE=d(t>w?m}*QQr76-u=njE(qMt z&%kVnMQ0D@avg69n-ve<^|>d1>%DG&HCLM=Aro4eF?Ol<*?NCjfy-|@)QgV7PSFU! zy7{3kz3PUb4b=kBE-xI~BD*C7ldfg{FE89bo5 zg4(Kun;3TRd-I>1I^hPN8lV2$t}k)us=+FLtn4P=0SHGCdL6AEXtN}sjOT)k80wHl zwW9(qK0_9KMQQUFzkl)dr(=Oj|LLwbW_^GgZ31xdZ~XLUXEXnx zd3Ix$)-8~ZS3=7ircnQrGyK_)|K*5k4bX)3;1JDtFY}v2=9I00bt`|fYcbGG$XoBc z?Nc9FMib>h5?Q$Wz5XA-0yHmn%y#Hl*ac_)^@HDim;8)@76k-DG^sp6tWK<9}1dp28BEJ;A$#c+W(l-I4ki(!3`{eFZ48X&GS zsQB^oFJr_uVh(fg99XD4W|BkzL#`0+2)3t~qR`?*SY|JmLDo(&*O6{0&`V4PJ- zO4$(*3!Ms^gl=?DMI%H$`fX4D!7cKp7BJ&+-)lGfwSZ{EqZHm1KiTk>@Zh-Dg@7e1 zLXAqsS|P*@s(n275w9+tTTcR-dlx1;X8~LU0rq%+u6uot*Z$HwRtdm$wcmWpLuSCg zKKNImonZm`du@Q(9Do7PH2H7t_w)Da!7WmdM}Xw1LU>&%hUhuSnI{208wd1jaDY)%A~#_#DEq%0^P6ab$5H(_m)<5H=@WMR12VFjw$iHeWs9Ls(1{0;Gxfd z>{SQZPr^ea;E2T?*8EBb!o&(go^Ed!p85x9Ip8n64lkK?t;fDc=8$EME>`y$tC_eE zy`}YAu(sy_2XiWPV}6i!x|?PwcV<7!WRT0k#xgscpaF3Y1>Th5qhB~Zt~vlKyNR36 zX7wjl-YiePTJ9u7YZ_H%lIXNE1iiYV=(4|%l2rIC_&Z2qOrZ7+_GnAyD!#%w|K(nn zu?s*A)O6BO9{b>(q$tSJWDvk!w5-{+SApz<-06k|wjve@M zA~qdSR}~sEBKP8~+i{-@K1Ate2%ZZiVc(Hntp2CDE^vzlcEBqRoc%)o$m>@Lz)9L~ z|H5vcABM`62uASg$RQNMZ1<%D_A-O?>{0E zJgDKRu;Hmyxy-Kundk71*Yc51od+$Fr>bIzyO^m%G)JbQITFVKZ6Vc(wn>>LK^)nD zDnIX5@2a@sY`A(B8{vmJ2e zp~$Fhn2f&0QfHKG1oR@uB{-85_6=P1_r6j z3Q8AIsVtB^;@OZkBh-Z5YaF}<&)EAh)(6lM|eC#-U&5J03O-KHgTT-XMtY33=K| zQLus{GSrDyWC#DVhyVN?7dv0>9gC!P*(Bm_%(?z&C9Nca!9IA z>}RWOIrU72-)P$zalA}vs)%OH$F#XrF^PsMr0>}C#iQ!|9%v-XhqF&j3P-uY*AJ|( z!pF*P?xu*;)EYY^b@?;xkTWXV`v*sN7AoIjVhvJP1U*cq6YO&O~#;uCO1Cs&3RBSp{+fqdPqC>k~aYZzg;e6N4 zxPCQG#!V3Ym%UEX001BWNkleJ=BxhoOZ$glaUOI-Sw!nTn;vB9soJIqNpb#yPhH9zF1uUb;8$IG zFhVDQ6=s_N0g$w?-fF^gZ~vAvsrG^R9`>nWeu#tCV1t0%Bpggd(B7FGPqK5TWMFZ# zz({BT=(ymz`|jr+nBM|9ss}pD#&@!-u0CpPv9guj9Icn}?pKL>4FO%|!ryVNuBMU* z)r2E@nDO*%_Ei(6=`7+Ne(~0q7MQh1ry#NC62Ul_c9>le_h8of$UX^p>&Nc&B0lza zDtI(PQYKk^TA@+9weId4xs>YO1(6Dkz63h{=c&FbctnEXR-p~Q`IuLsN-qA%PWro= zD@Uel&-Azd`6>Z8fxYyHpM8E8)qQ~|@;EIpFvJN(N%wzU^rY_yWt~I65f0vP8q+}% zPg%%6 z#2`%B6liZUJobtnH6FOGNkl^x%1WViBqiBy!Jc*MvI@Gyhc1hccegca+aC6mm|~fg zt?Xvq0ZR50#hU-1!;?71D9qReDihu)BAbDhws`yf}NPQF10PZ zi~tG|6}`46hzV5^fA$^TzCqqILWfg4*EC)5Gf7MZTD@sF8R-tF{j)v?!##9KL`yPV zME(t{@iCw0zJsKtqo6%SaF>5v#bk380#rJgnMyM|>s zM4OmZgldyXUT08cJPm1LpsfaMZKR($@7>gZQq3JU(6a-UGb;TgS6b@X&QLaZ<3HZ@ zJ$&Wztzd_9@M!=wffh6I5O<<8uZ*~TgP@mbzpi&j3O8$Yh_-z&=Uv2IzV(ZU;$SBQ zsh)AuXy#Afckwm;wM$nCz%lGGyzb?*mdPUL{|Pz(g#H6GbwU=sHTK{qU(A>zdWcDz z$UV)Jfpo$;cBAhC?6exV{r^uUfoN&na8G3+my!gS(1htxY2pru;{pko{T2|u%6OFk ztn6lOPH@A$2zU)bD2g{$z`C+cDRA**&0MP{+ycrL({@O#5);o%$!u2N`fu<0b#6fy zwq;i2i01%S_+7*uP+h=DmBPNX?jHNQ|NfuWT}S;7HSrvgDi`(dJ`R+bakt`KqhY@K zyrW+_QEYKVJmZ#8S7J5Bod5cRZ=xvy937 zo`K8;^Xf73C`zM=KWf-m`EDsBd>lK)mCgPLf+N`yBhf#0&rL_tB=l;>`WS zV$!WJnuU%NQ)hiD4~0gc2K(9b-g`EjnVHCtN=G!+6Js4ECa;sIGL}1VF)(@c4UP zdIoE!O~}(G%dl0So*;2J#bW`ZLL}mPzfb?q*K>F?%z)|cv#ypTtGBhLg9wmRaA~ou zoCXj5x0j@^@YOa_iBqRBDWAi}?g>*%&<+`Cz6tQy?8FbC#{>lKoCGw)(2}hpXhRH! zb)5hgq_CVE=Y#gX^U`%}y77xseFH$ED_hx(-FjYt5lvW>2o4JvfbBHnU7qb3_g$=o zuXE^7LlsVAu-20O0Mo6CpjYu#?(n?(ewn>}xfBxy)ZI#ts*_C-aq&XuEnqGkgCGKj zHmmO%zw8xL&0_&;kh;@!kww2EofwRP4>C>P@?V_iU&k&0MKKXI3`6vMHqPaKcl(;)q8~_qaiX}l=t0a zE0rBy^9=chAoe-+57<1&M}kIz+HtV}M<1#!rm5-Zx7yhVK#r1xF2YIdi1%5-Uv%u| z8CF{WE4x`+B3n%eT`yktuu((k5PGu$b_Y7)o_t8X#q)?^EN8XNipn}om$Z8wII_l1 zob!)`b|e_YmMN9joex~}iN&94D9L~q(j9@@{pwS_;D4mAta2Gu%=isV$f1LSw}HtT zRU>opv0f#-XGHC!i4ZGb!W~uy%d8*7Girt^gb?5Q3$HCA2G?N%+xw|x@!4GZx2ptT zn;m?_?>}JHs_nsl+Yq8VKfwm0k^MH`^-wA3e+h_od!pS#m2bd(IU%4@q1s~8U*>(U z;o2i>9sIzBI3zQ@-V4Rd+tS_ zDqVn7b%1~q9@frxI^vltuHE^OA7+q(d^ z@U4oqkjgqBmO)<0Lmt6!2rl)Bom8h}+b1|d^DCbA{9COOfCc-qANmTf|JXg3GNr{t z;JEQu;VJid%PxlNK6_f+2d2Z5Y4Kd|@P(M;?vRH_{j!Js+izz&={2tXsK;u@Pe29Y z7_8uKgmF;X1 z)e@Z|3PdW|psAE7)-mZFJ8Xz6RTfN~sg^at%ACr3%HW7FW$dSu_wdMlpCPmYv319e z6@6?e*)W0Zg+8@3|1AG#9_sPHW ztJmai+|%M7UE)M(Wk&$$sqF@Y!eE^Q{8GMh8E?GoqW%%?_x+3fwYo3f?q%6phw+FF z*!zd~`G7O26P7Cm%=x!_K_3w#YXQ?%-{f5OC%L}qApeYHPe{VbR(7-Q0EqOPH5oBQ zWyByV(eskfSuZWTd^U@oM(Pv-4Ix<9Oz-*4azxbGs`>2;|DJV#$xwPly>0T{j^gO@ z>^4~>2)yQl_xKpsey;dI&slc>;YmSN2M|&B3e`eOzH=AA=1#^JS{USxO<52T@CkXV zM#7M$K0rIZ@P9x1eVhyxV2=Tq>DgGtG}r&tKk%wm0?^ri`GsFup9%b&Ec(BF}}t^%uX;ou#=B%~I!#qf?UHciK|T zeb&D85YE4CAcv-4SiG-xdqt!|d1xYJ3Eu<`=-6%ilN|@R?Q~mL&Ht6H>}1Yg#umWD zf_kKqh8V&L2)oKCAopHQOOg;w0lNhe-c`{D1rbd74LPMG3(D&E#6 z!-@K&Mynh8r5ohRMX%QJRs5&Fc_>l{uNIGvALj&-Du<-31AlnY+l^_shONzjECA@V z>jb1i0)V;@+)g|LzsV#4$Dik);JJ`({$myVSGKZ~^k4Hu_44~(#=D7uTKpK&;U)M7 zj8>LsaaNdpW*q_v6DIi(hug$v;MwQDm-Wu2rI?Qu!WU+z9hIjSr~1&}dn^j2 z-|>J|0sy?kFMktXJ9NfU%j7!PeShy6pLAS~NZQ&+VRt}uQ*E=dvMO@)19ED+04B8J z@NC}uH(Yyoh-FaBos%TIZMF!&t>KBcyvGF-rnZlbW=hHep>)dB9mHq@xP}RtAtLZSoQfdcrRAb(%P&j>pW|2^6Nlwp-l`osUXgC!jRqBOVe{ zUuO_oCVtQFyKBX{edHNTPFNiDa6+L#@IGR?kPKD+;78taa#3~x%pNu2E_~(SSugiby!B?E0Q~6Z zUiJ^yh52v0{TBE9zJ#O^ad;%!A?zt=qF*UqO`v*@!{J^mBd z<;W!qe)_H7bq)K|22Cx9C9-8&p9eczXjfHMHrd;6su{Ll$BxFyCjq*cu&r!mD_ito z%xFq5+zt1d7@B4IvK{Jd@X`U833z#7`A6-;W>TO472_B3ODw-72{aGfhDB5NT^js14)4 z-0G5xPVA(_mq38oXOr6>{>)3>f3r^jc*Gw(oJdQyK+ulSk)^h7U`F6lf@O%H5iY*- zhfinY3<%W(azKLxS_My$&3g6#2k*coEIki`iy>mnbO(9_X#cZ2G-4hm1{uqm31Wl< zxKX9(<16LRmAv?^_frz&vX$zhm;`l&SamI?U{)Y1(IJ-Cq6gMkhkHNe!3S#EjjOq0 zaG1kYU}OW%7}u;#%ZbYU$#SRFOdHaTVuVu_3M8@!ZFiXzMX}1Ef^Jo)|C-K0U^Gh# zfJX=P?dyR%p0J};0DZd)vE@IW(M{a+TLE!Oa2L&8nISSIR}*XNse{YLX5GYblzJ@H zBqob&#fqsqnxQUC5@o4Wgd74^&L0t|q!3)u4^0JPL}A2`ie~H`sJ8IO2P@sGESYIA z##Lq-00MQ6thJFrDqqv8F|N3on-WY3R_@Orm20h?UxO5=^E|+o`lRqIOr7?yFYICiM<)$cuFwRM14_oc%=!1_mZ&XlT{@K6m4q@@C40>< z3C(oKpgF+)kQoop|2N-t1w(+tBNsq)3RS{~Mz;|yO*y9KjXUdZ)(|nGCFDQjdB<{`F5ZmtS?Eq)sSeMg%0~QZZj#%ybU~wHd$9|No;Df{=xtQ#g?=EHHU6Au>9v-XKLM3Q*;-UCKKo<)7>y{P6rX41)*)&0 z4j4D}6^-4>PGqf;LYLfXsdhZ!g{7i@FkO$Xf#%uLOmnq(jPle?XgwUWLOhn`RsUuC z9bp=_U&c5XSuTtCw2zoqT#Xk@xc4 z7%3OXp--ru$eaHfJZI8u1mFT$JSC;Avkb<;xBBOPyEMFVinP>!@xkvvl`gL^F^_gs zLE?*D3I&jC6`%UrEkEP?KYz1L0G`D=-qcgw6dh<^Xqz~gt1N8FcRob>fAH65KlXm7 zB+!>q|9DtENjR}+P-k!|Bq}aMw!V0u=RRcCLhIj$s^j#^(P&(pK)GODwbcMGxYs*( z6Go{+i)5gp+B*xL0gv>bR?*IF% zF9P~*LB(2Iu|7Qo2}mpfeG5qyrUp5pJ$l4&w`yReo5U> zoFIaRM3N~jhN;tr0XE>5Z~ylUicgdNNhRy7?V9`Glns*4#E84=!;gIaJx6#Ik&tm~ zv1EcpmpYfEx9ZXV3esZ%{GTaEb}aj~A9&hX1&QDb^6m?}5q%ER<;nup?1#3A-{ZsY zxY;HEfBTf*x{Y?l{)}=WsLg`$0wBUq@Tx5~is*ph}`qW$$ z20I<xsmHkVHk{tuiAQ)q8V!*fq{2b#ZG3j33aGW?!Mmn41 z#ZHKc8)6&G;{kRIm_`_kp9GfZLA^jiLIR;))!cjTIeV`)=lf&rz0bL~Zk1#tgoA32 zu}0Osb?V%6ceCc4-~8tHnat0liP5T&HBjdVvKU7EOL?KFYuCVM03UtwF#9g(F)Z)Q`!JCDl(8Q7vn9@AVyO^<_Tx4a3)yijvC0JDEsyb{^AZZ z!3tV0Y0lC!;KSEG`3CN}sT4*QDl{rcG^#9a)5xUXA_b9%Y?=n>=KCM;{r5aheheob zyAA@`qKjm7D~Q%DE&2uyxQd~H|NQH3{I+i6-`*JVo-3bf3&N2F-bcu${n_hV07HUM z#gYyF^56Mrg^nJYhqQdeq_hgSa5x3uJ$s2GNnVY`sr+edudu{B-_y{`+Kx_Rp^42h0EN(U0sikV-Og% zLY0Inm4r#XUnL0l1&MaCuhqmxY+0{b4%83)6G(s06k`%%w`vPixnk^NRtSu;QfH{M z5p$>M?@sN`$P4rzC}Kcagcc<`SdK^@G0KrDDR`oZt2DcLX??3%ce4r|9Z$d`6t0|( zU{sL<(!;=A=`-DsU*IDjYVnkDiyc*^3CyBP3{H@eVV36rC3ZNLK8SXdUr`8rSWF2qzrHV#Iqij3BaX(>le9mZEqniG4Ce!<`A8Ja&cmU z!5vD9pTjTz$I*@-79E7E zUiu%NK1QmD%7&(CryuTkAtCg}K;6Bop_2vnfmtjMxE+-+eZjx}`?r%*hx@Aczrye= z^}mZd2$K6)=D=6)J>_!0^SXy!0`RkZbQ6Kk49M2^_kBp1gF^1)T7R zDI1zeof^01dA9Ff`fetr;t%)jEpYUBSRIFvX&E-+P|7=kqhTmWTrw)0w0B+S)&5Z3 zZ^FLN(8HF!{~HFp@77Z*mUDrwdz;w2#V%Gi1+=~eFh>cFa#%{sq#9ZPfIxr0B_$~5 z;N)Or?a$*PY_E)RnYakKvEwpD!BH)-L%xgjnNN`LOtrYL_6pS`F>k5s^ z9Hpd?0BbjDfsy*q*9{g44#|uO7c8H6EKk~X3!$r@oJF3fMA$qfl5@!hEENfY4_^J$ z>)C&E#3Nv8M8m|C)T%c#^8E^@uM_?V3LAz4w4UhfY zlnI%JBK%Vs#1t7hK-=j6Y(+Y3DAtY=s*WDuVgq|t7hw2Bj90~^Yh{@ch=j;V$F2cH zOcqtMeJ;c*Y>`bGxPYI(`#5D~+9%6>@akJui-^F&ox4C9RR7L!vwVOEP9eW_tq~K! z)G(QI0}8RS8>=09@AJfA-ZJ=RRvDq|TMS{77>2XoW`S1x~1?8DZ2kUuP%dm4CcBi zT)9hUdCWy`{Da*Oy99vWyX@J$OybbrcR$3uP27W*k-2h4RpH;i>=RRRvIqI&3)`lI zs)!m+z{3W4qxAnBe(=BkK)+q~?2Z8{C~wsnUi8$ePS9F`6?opOz7H@}R7Wf+Xs)Qm zaSH^(g3@Kbq5Dv6nH)s{jvlUV6ojhZ=3Eyl>sE7KtMatK|BiKc=sIMc^5|P-F|c<- z03m>sDrNpqIJD4epAmfI-m`YFw^c+MQXUhkmewmY9%Pao+ho(a`8iYXiGmOJ>zCPx z#;k%Ilt_y=fhz4{mn5{wkSnTASAR;Pk(QYjN6-{TEP2Jan+zCRze-D?O7}$qlrE7d ziG|wy+LWXt5K*G6vK%8pTe9iE1~Fe}8bN9yL_h*cRpv?Dnfe<0a$uvXX+{By8?-61 zB*GXN%gJxJ;P$?*bF@Whis`N)P_=yll*-*H4l>B<3b(%WKR&NUV;dhFfU1hA|vv z#U}aRBW`e##5@iNfgAtg2`@iA5Q01epMOf8)o7LQ?08-xjK)x3&;DDu^h=Kd=~+$# zmv&y}7zF8NsN8`Tu|xnKtNYGmd?EubBps7>Gc$TCR4N^eDo1Ckj~+)(X9q3zsv|!& zg^;C=%a~a6;_v=i10a8AVEt44#FQ!uD&J{nq}%RrA=c(HDkl~ zu)G`~^a$2=jf$Qq_;9~UiD}F&`#pD^JxI8GnW1`z^Qw0E$6c)t^F3xj#! zX8x1HUtIaPJ6XSL2h}oQGpxztdC7FCQJNwYgnQXzd%0t$3?MuR9006^{6nw%sg@A> zpv3}-{m|la@e6n1uC+av`mJAl*dze|mQQ{B$Web`qcAU{6+#)ITUz#4@yMso$jSYI z8{%#6B|SeXBql74k&)wW}I!) zSuvxUDdYA?E3!O`EYAYVOqmsxQ^y{3vaRh(R}Wo9ca`u5k0Qngn{R~D`r(s~a80dX# zu!EP|L=S8bK>3HWuq+;xK7&>fu!&MLGV)fBfZb%T#1^GTmkjMb+%3Qh0s{da%fr7mI`Mq z#_8jIJoDJE@thOxcxHX>UL)xS6IG@oXvPy7X5<_Q5=ui!5@v$6k=mAs+H#NyYwZea zqwsTQ- zqCC|X)1=nS$T@Y3)4GS}X=7n4X%MRTK<1;cHf zb&rHhk-TY+Tak{e>6XttZ9!;5fqLnfk zS4(8*L@beClZr zix$9je$Q99W#7q|>;1C+^)68}ft>k`^Iv{WMHL#Q2@lfew}om%4|Rje%N~|ySTjQE zhTQ%)uDFC*TZD^xB1w03^Ww!GMqAq6eI{VQ-#h;^4KsyV9F*3E5ukP$1DaP!VGwr7 z!yt7-w z6n^9DPrHuEHxA-!Cvfa&1D_d|4fitHBAf2hMK!>F%L|RL_`>XS7Q*n$-!jl?l_)jEOdENFx(k_SK1xOdi26Ui*BG zzvRb0_pA>->&idAMwGqxPO0xsgf$~IPWBNYj)=jjJW;oq<(!#>DQmj^)2CiS0Agnb z*HHl?CPhVO9yARe9%Fy!}F1B}BcsC$I1y6Y8vkq3I zYRY7x`gbXFwmD>4wM_y*>f2qaqy5yQ#{!Ne?qQqn`=BY&n*jl6*=F^%obz~2II+W4 zE9+C>Y!I~*WVMod2E59Pm8FKnI$Zw3-+#`C)x1W#QD#?yF0&LXDw*?Jwi5VUxUT+zHJSuE`JvX&5k6nK&%=X-~ezr@UwS4{Yxi)@Wq$^ zz0aJmkKNyZ-5Vp8S!bH}u|KzLXob~EiWRYH*^rgjo^uPK+b>-@B|yoYsz8wm7A+W* zYroa@61)8D6>q;1pv7A7tS&*y{B$X>v=kYAX_&>g4|6mcucn zk17EkJvN2^!zZxT3!W4XfJ&x_mBp4SG8*xk7ksMRx7xilc%UQ!1^AbFdaleHht_2r zpPZif|GfE+V@)L)&yh;jm^Qu7e18vb6$avH`-%x0$w7LuA;M_5%8sZylMk=moxsMRR7 zm+!?U5N8qXR~w0WgytpGmxxKQS&d_~q2XX`SYMiQ`|<|Ad(Y!;J@!4Xy!QY4>qlL| zop-J2;cBc2x2zuZJN*NN%<-~fVV%-|os`?>Rq zUqdV2=FFQ}5O z$h~oyQw}a};DIVfcFbyy*@*0z32KRHY&cjarm?)H%u*F2oQ!sCW zd101|$08gpb9K+Zk44w*`<&A)nB}gl>}ibK#OZ`(AKonl@u*5$;2tfdfjvn z=TZ{ZmL}}4XZ)kDT=@3OKYQbdT8#w6RI!{}T2Jg>p0a-=Ovj3AgR~Vpni0pX&sFIT zMFi&Ug3bRf3uZMB^!zPyY|3bDqy6%Zc$*PYak%p$k6Q$nluYW>Z;JkX<3i&Byo}M+ z?x+-N-SsG}2c;!+#7HCJoYX{i%M6i-hCtoC<)Vvjc6z=W9^+9b9NOFKH={Xj^_|X=rIeCNH3x2DQP+I>u6OY~~6{6DGOL>E#+p zHL@`lCQE>GPssd6bBdhsx1u4hMsvEwOHBbN|A-pZ1-f0DRz@ zC!=D$2+)0RaFS7RMEJfRcyaDw7XbCY+2`+#H5S+X_&=ns3F>(MO)kH5J}51|;Q2VO zXnec2MlQJ3KfmB}1zD)XHjNP+J+^t&2$_VDy|gRcGwz8@Ceh9I%b4lX2J0zMwV9RmcmMbI2(S9$%Sl7{>Fc0{-`6#i zq3CMyNf;J7EPBD)tpvY*L`^omyErj+<@cs}_6C^IDfQ}NG&2Hzm|kS@oD#uoAMmfg z^t?|$`zh3%5+QA9!E>3J#8CQ34AWc{kUVr8_rFL$|=pwRe0XolCS9i3*)v>u* z969p=zIvtO-io(fS=Gne@-D@UuXhJ573kJew<$F0VeXOns!i%1QFDNQ{*tQ*vAF$h ziuzkpin#$^9+H6fT=~@R=mg+;-**#tuI;_w(Emc2g9<;#c^A-`I*6lLia^EvUEg#V zBD*456RLOq>VMfYv?bUi@2Fe8X4oWE3{u5jnZ2TZ(ivl_IHgTT8T|J*3D~+00~Q<- z>y5!mWYOvFXfiMy>lg>Abo~DR@F7A4-h^@GK?+x@b7oTyzz81)d_?bF+bUp6bRhy0 z;E@;o_`Kp@L6v*`&2dyH?4tB}$?5!h}>|-*`G+~2vojY9i4ubQwT~bgkpUH!j z1Qbo#&HK@IgxksCzZFj!I5ReM|Ej=0daB+87+f}iPCG1dz7Fa<@ z0;!;u$;$rKlbXUD5hy3$+D)!Kn|{QQw7KVC7{)p@mjf4k@#UBP>6O#SBkrBysUn1m zcInaQp0>i?F5sI-1`5ALA@|8*3v~i*$qNC@jNjslt25a`cV-q_UyD0!kpxzeLxQ~? zG4LO$M5#Nmt$(M_xB$!GDvPJyw%c}`G6hh40h~M6_Fm`reC45h{vXmYz_)Ylr-^zB z$s$4XeT@QkJ9oJnyH++H%bwGPZw>R$%TIFOCOL^+65EmzZ~xTOIx#7qL&+wP=6SSl zeb5BN0^fc7mjk(;LUPmsgrkE{5B_yLLV0&I_-{E3kqu(?6P$m+?>_Z{1AOx1J7+0( zm0{K0)~#hMEJ|7xbTwsyRajRZmT9fbBi{SEcii~>fAF&7Pd%^Up3zRKl?lyyq;3Kl zmubdR)>%eI-aP{IfZrP#x%6YMi#h_mKE{KWJlkPz6?F)MFjpeE4qHR9Hg0MCAk8e1 zZAQw8lv}dd0=ryMg-mDfJxql6?`y2-Dksk_`pb{)=jX0_2^$pNT?yV*mL5u8u&(J$ zZacH5!`|xmr`l_}_XrDTqYr`od$--|`Yw8Os4)ppt#$LE$YE>c3@(LdXo9)W06%r( z^FH;__A^g>)6@4Yv%a*CyPG{o&Ev+mar^Ydj-#goO3^>N9_W1wItXfb@bCJ{*P@?= zE26pl=V8{g6Pb4_cdk~V8W2m!11f^Oq{5;EaZH}hNoTXX?5wScEWi-Hwfdj?-*}M@ zcBKmK?{n2<-?0e5znolr4aquL-@|OhzRh=HfM=X}%@T3B+>n+`Nztfe3nX)-_00s2 zLOBs_u=ZN+{VF%!aRQ#fToqr)^19aFRs_I1$Ia-%kDqm&)5JBV%`&4ZANBNmsKT5t zLUG?}82Nvvqoy))6(`i=Q!n|Qi-;p!D9Y}`40#Ai3MU-t$FEWzVA%|4XbBj}0~6qk z_rK=PZvXmKJK1gPOj1iLt1MSDys3%d0PESwVRN-FzO@S94h@)d10IYif7<&>PMr(AgEm&%85 z-8@s>|IWGUR$%CEbOh_$_Sc2s-?LWTZNVp_qYrwSWhDeu?k_@I_)CW_>j;H2tWCJ@ zq~65^kGO$Y;e`e^aFY5S!zL8cT`*UIX4+i+`e**vZQrp70RQy8Pad+KJ`p&=V_Cqi zE^+=x-}~7a`B6fMQXn0R_N@^Uw*~H|Al7A)@;hApS>SOC@m=Sp4>@eA{0Hd?$>4zi zkN)8&Y#2#vf+*rMW)?U3Y#%)i{{U{am>nJdxTmhotppe?m$Rvc#w1d{I&1;()a(t ztBybO@$1|h?%^&ggzQmXW=R?vuNe)KE{h3SuOHxphQS;S_*RV%I>B|*?W69c02s(& z31h-WKFERQAhXmJn4+i#Vt_#ChuBFn$KgX4T)iU<(j_*>uFYQYzUOlr;BnfOxQ?}@ ztuoZQ*&qz+a(&FpTTSoE=?Ys5o91w3ju^?iE35POPHw3MZ;GMGsDGZkToY}OKmc-k z_%=jAQ$vCDt?IVS1PU`3h*RF*oN)ci{^H4}{n-y(a?ADiG`!{dm*85qfA7m@E$l<3 zoKs8nkPs|FsM#bUp}|cMX>p76g}8gsTfkjOArY%6+HUIMiZ4pT`~4WRPGpZoWXpvR zrkL@X3%|(4*PY!DGiJ7ASX;r!MNZuJ|ISZbFnj+ns9i~jI` zp9J82S3aq*|GU!>G}{r{0GUn&(2UnV?}v6}+!UvBtqd$H=}4Z=_a`}!`*^M49w3hh z@jY+;qh&O7U{an#q0;OA_Z5F1V){m0j(Q?IfnBH0xI=12+K^M(+`_{=1c@K6ufHA4 zd)P$au$$1}Z5xitCT#-&I_$4}|D)FAq`OzEd!GNse}BhE-+eKD%S}GEMm9*2wQB%d z1+)wDRFKimF;+4rr6nvm5?uTMaP|j&;vHXj$y;B2)|pROrkIoree zx-Bff`L!lIKrIX>i*B>oFIsRbE`~8>W)miPo%OuI)F4Y4_AZ-Qzl)Ttzd>VFsIC`J zdDhtA8A3H|QG-IiDACIY*x2rU7g`lX43`ok)yNi0643qAM#%g{-h0cQKYJM&I0#5R z#nYG=5{(4#TtpGs;>rk#KBF!wmKn;Cr7dx)k4PF@AYzj1OEbw z=!&9<1Y9?;*@drp#pIILy#+@+uHRz|*@n`41d9 zg6r>b{EoZ$zH_cP;}2f{xwrA67d}f)dD7py7Qiij@K(OQ|HMt~|1S6+{%m*2x4_Fe z>v1E(QpU}t2ulYeZZp}k9oqX%RR1L-42UE=2L#^n*~gM{&nvTXqZQxE!=FhlV`|UX z^_7;jO7U3iQ>$1b@n{G-a>c)W(zYr1+hH%bAG#+ke&Z~8=El6_j0gVXOa|jg}R<+u|`YwmTWDp zD~OP^FqjX$C52$ZDDjW4`z|(0i5{>TZ4_w+ro9ZU8sZSJ^E?iQY{L>un-;#!Vqv*4 z!ie4pn%aDYj@@6hei9)kMxIzEhq@;UTH5kp6~iYM2fU;Y+ExamH3w)%rT9!09uf`4 z8pt}}vB6DIH`*M#R43yhkvW84)yljL@fsfeNW-nD{Hga!v8iX1dGWS%+%?i$U2b!K zEh0=uCLu>Obdw%drVC>IW1Ra~R1dvBxAdZ=N5gvrpc{>+3hiQiJTe4fk#8J0fwz9< z`8UZ=|FdW5sZZe9kNoUU_=kS)Z&d>DUT*l@rjZA^pY@mv>{^*Uie0C9ue<9+DNjc# zBN%hFGZyxyjGNSdoZT*T@0ecj9VjT#N>v=csg!+CvCFQ6*JK+Kl3 zdhx=0dDRb{_GO`|9g~VmW?1`h2r!0w5jpX09Ll_h;|i?VqX0*OspdZ9V@BHhktyJkA>lR)DUF13Z|l>hY18;=GZ*b`n^n=dpIz4Od=W*Wyr6;>#TdP(AnV9LBIWb zduas_30imsvHjweU)ta^>nG55>WkWy@zVWg8+MS^SgdS9&RuW6rWE2MU|bRfYG5f8 zvR>r{<~`i1x<7lrJ@tjJJI98;*pJKy0cwNLY?obkfzS0&RA7;0FG)M4K_sCR{k~3C z!L@Vm?GOiZ2pJ2RBu-+`L>H&(y@P+0v!7C-Rl>4tc4-wwBq^;T5?!JTw(N`+V@7EK zl*U78)AX&JBc{+UU=fjw<{6gGXV2+8`VqH52nn&QG$j#|VUHSuZ_fc(4EUW%-u=&7 z=VC$tTztcm-x^>18lHaowBM2x0o$j}Y43gApWboHRb%!{D=OK~{=CXcH6b;I z`99XCnZyq2aZRjjk>&j@O9IU2dK|hqDJlhA%Cf;MH_WVfhU6~Li?myw-+76+d1p}K zFhMY*&7k=h_OSfMuYXrThr4q%3>i=+0f?jm4peD~XxbFsi;xiA(8x4aOhUy*sF;O{ zS*)1Ih*XVetMcdJ)|xIcjZ0V@;cxYinRFyeW zbQtb4yMdQJ{!0dDXSAn-WW(J>EPy6FyLjq02`Tc7xZ&AxkHrI8O+07lpc*0Lxk3lW zCd0iI%ds1R?oyN|qf{P5yzqBfF@^M^h{XJZ@k~rA=Wu z<~6ddu)O-iA9%-?{`5&NIB)&(E0!xf;s&##@|Ue4Mrc#L0n=sb0a9R~S`NsJ7-(kd zkw?D&HSfIXrEmGWdmnLrVE^hAn^jb@M2xG9>lridWqrDr)uo2)aWD+hLx_Rjy7tpN z2{1BiY@`j=GnfQayh{RFvU>?KT`-7U4J}=#UL}#uY4Z|woH2F92rT)%_<_mAtU!|? z4d<$G=R$&5IAoei*_{g?Ah`pTPzAwSW%VSu@M-t(W6%CP&p77}PC0JMv<=MK$gbtY zTB_zyYL81SMu4S;>;X@`?Q_Yuy-SXh8$lA+eRUVNed8EDd-bV&_PXQwAx zNa?wn0u5$yjt6df+x{3kBLr`;)K#S@(wkpy-AMeGn z(jS4@Xoz_#!}NG)ZK-oEd~jlLk0K;5Bldj~kS!dLU-%XN%MYEw8~)c%eA^NLF1q%N zq58j{R=@*5@%jsINZkb~L0N*~trQ3|mugP5W9#FExF^9ytmyR*SW?{lODbQq)-3VrO#l`NxNG)eShW03!)#MofD58?tEam@=K+P6WY z96>NMvN&QHu?YGDobjYLe%}+X=A)lKkCc@dy2;t{duEqh(q(_(F?bPCcNek+qNV|1 zS25o3zkZzG{*lbjz3VmKmKFe)-t?$VeU7asbpaw;B;laKFY8mz?@bpnZoQ)uK}GD+xfz={xGpZ~r2LkRcV>d=?3Z5B_8g{l$mCONBHyhq}@grfHHwS-{ZWJMOf0u=<+X`WSt8)RH z+5~gQDajp)Vu47QMqq_-pE~d~Ms|GtjlXjY^{%PdtPyK87fx3j?!#v2vj@sjG4UJ&9#0LK3=|l&;ZE_|omC z7S^k~bQPs+Qqb6jku2S2_>z;qwn7-MF>RErD7_|#C}LtI*Qs{J(^>nT*H zaq1(UbK_rqm{T4BOI3;MmG)BrUF~1b$m*N=*o0iX0uW4!RYSky901P!@Q?lR?U&uS zgWW!6#n!NiQfEVKnNhG|)^>C7FB1X}t`>l9sY(+G!`NUWmFj+ThUu7vZs#qZM?^XV zpict4>lg<@ILKN%M!Mp{6IUEOj%G7a&Vh*6LKBK1Q76Zn%aCCUwI`M*7x={|Nb3F2EQykb%y|6Jz(u`UZ=BmuY< zt=uB!Qxbs1bK%-4t2^yNX%~PhRY{)4CV2W; z9`hXD@WQ{O$$@M#6dwX*9P+`+;=3#0K5wh{oPePtN-AaF7lf$dq@+2FZdnT z4B3b-NJrlv4!|+18z-`IY?mCW6zys6lf@p+*9Eai0SR83L>X^gNa7F*V$}f&vNJWg8|S&w$&rd^FHSmS!@AnIPXc1L2!-eCgRe=#SExj zKmaxe{`*D&dYM(jy((iQc|;6>$moN2Kl+dxSb}fYRI$#sX#n)jIO%{s>@^r*DWfMe zx?`=f$u7o08P6t2d)GKO(j7!S_eJLxqHpQD)Eeuzv>UK|JW@ntV&JIZdU6V)*50pF&tVCY}EmH;0QqZ zGY~ZE(2zYBinf;Vz~Vs4%^SzSsKG18 zVplj93YV(^H1K&ZeYE&*5RR>UQ05n7u>YZI9brp+l-as4sB_@k_Eu#9y&MVcJRn;cyS z-vH~!|71`~Es233CYz0jG#6Q_zV<3Zj^vn`b!7bU0vceI6L#MFmXCk%_8nBK38zs{ zNohwjc6#o-Vti{$aX# z{N-EE{;i+==s7RB@Rl>qKX>Dd<4;~X^W@X2GtNJE{fzH>`q$2Q)9WvKZgtU{Z)W|D zb+kR8Bo{Ka<%qqbhY;;rbx?QU7f} zj@0YFKj)w*C5n%z!iXxgBrCn^HqWkR&z5)e?IotgW$V3u_6fJ?Q57b{Xp>?YmpTc@ zOhP@f7&2`gX=`;-TxXo8)y}gy?(AoO`E4KIlw`LPAZ5xr<`sNm)S10kMua zovPsqE>yiQ4<~2hDq(_Fk zW*yNw;$Is4CWeBmn*4{2Yv1=gPI=-QHZ4w#B6H_IQt-n+-@P4t<)XDqh)5@b=&3An znXU7Ie7g15D_VY);FQphlxVv`k~&c55Yc6A9ICzd8FjAWg4uh3XC_LlDqIRIr&{mJBRM8b59 zgUOlc22-yHQq0860+kq&8*X2X?3&i>ni*L#lgelVh%3=HNU6ZVSj!Z_YA2*!Jn{e^ zym$`id56iEdjQQ&H!q?AmT=njWp7s|3M?5s?)=&M`tDthbghj;IMO3SQTLz-ol;sytT;u=_; zRqUFMka& zX=9Xr7@+G-k!q3Na6myvI zf=$t8pMXBKw8ON>?$VNLeFa-{w%{N)goE&7yj-~?tI7)fEzBlY~_%-|Di`= zn|>!*%%xS}r@!lZhdd^X5}tclXPj7GuQ@2u_W$E>$ve(D^R)badEw9L$FIA9G^+~v zxJY%2ZKnj+B?kb1dF_*~9KHIN&OGVV`bYVTw~o=u@Z4feK;W&PI;S9hGPJV1mYEz% z`P9th!}@SD9j>P6l4}tS@cEqi#&0jMnyR zV2Zn9y~09O+E;RbG+QQ&&tb>$&;9cIKFG-@GVR*=sqSQG%?-~vRWzy7m0vJ*iM`hS zTtO=u%*NQpPR@SE>;LqQo3C2o*l8fw`?-e|c6emh)KQzVzdFELI*z@uX4$K56#YSG z01T*=ESx7<7H3M&w(Tecxonw5ZI8E%IsRBoUf*!kp`i;()}=h1OS&bc@r6E2@)GR(Z8p;d|Il$uQVWkb{+>7P|IA1K4NrZ^ z-zET05B=H+ZpY+!Ove1VoOs@Ee*F`l;#uc@sZeIB{&^`?r1ekX0%+0=mFhyLWC1jp zyI2Lyy`YdUAnQHqDcLHj(Bdw`Yyb4}3vc!V-*{+9fPeVu$83TkdiA4uk77#{9bU`# zpYZtIg`{W6@w}Q?HuaPull@E&ocm)Je&GZ9yw}QCZ#%IMFB-ZM-8Nqw+jQ2fd#t+u z)F!xN-;Rsp5B|MVf8^O$+``&7mI$@uiA%0OyGUiu?@noaH2=UdA12(C4g)Vb{VR&d zVz94?;r{f&|M#ia+J?w>;BANqgf*e9)6^Ax@ zlb}s_s;S}z&ITSH$;v4gUjN>Yte{0Gh~3TT#hQ!VV!-`G5>ju(yry{mu-yFFXPoxPJ-q#|pCg|CfA-!y zTDP;V^ZfjN&$IV_-!t7YH@OM9naE5C86ZFs8dM;{0#pzc2n)-qW!c@U>}qwD*xgoX z_3AFGEv>RwSK%rw6|ocq2Sf=ngfWN=A&>z==ILg*<2mOY_TJC){Q8e)@Atgt-WzT- z2_Ueu-gR>CJ;QtUexBzyeTNxMCiST%k`E>GL_9U#rg&@eCfMlXld{Q%rJOk=gZF*u ziWi@B?kVr%&KnY`<<7@W&fni1UGf``V{M!ifzz%!ujiqf&cH)Yd!$ytz*!xGY%!~aLhD%%2ZIK8|{I8d}eYAZBai? zV{CH=z+2XJ6fiuTdD>&oU~y|C`tKzGk~9YhGtJ$TwjjnLtMF`XWU!belhXk8hPZ?b zS{UwRxa)a$f8YkrJU3$iO_M><%503@Mx=>!YHdBQTlx*Iz<3b@rd>W>182SeC*Swb z{kN3tT+eg&wwltmkI@`hpehRDprzIYmY$LX?(x*AdYW$PPLvIhphyPu&3nloyNd2b ztBfR(Wcg#1ax2W44|e&o&bn7J{~g6aup-wPEsy@|x1ZB8t?MGy7Sw7Z9VP__#Uie3 zsFRX(L}Nx!a5(cxaVa0R4l{?3DuOeabF0^Yi<5a_;7(^h>8}RmSPC50tl2cAkSPG=ZpdH}!-Q0e|&#YW@HG3ah7RiJXLrKvq z6dB8zD(Lg+3=Qf2)4o-o_hQe_^co0V+pP_-Z*A#khL^thtowfJ_h{<8Py!=wo~iFmgkvjOFnQ`vp?b8h?d zzh?KI77C5(=+NDvvwqE+FzJTAeGdvFCWd{l*SBbQpihBwuYcpaAAaylnI5>t0%dt3 zyUHo4PE3mtqqxZ8Q@{dnGy3pGhbmY`(5pB~>74x1(Vc@nUh5H3IC17!nMjt!gW}BG zsHRTMS=HVwb36Nvjx0%=5g9hqir*;MljREhxBl#kHP#O;6QY5v)GRG09T;X4LK7j@ zq_CJvZ;2$0VyaP`OK#Ry&KiqdUQ8x8M}b%{qdXNZ5{K#dW<8S`u+y8m|%)7s~ zzJLGi|LkqoT+T`7gK7(DBx&lSRBH0Ap8@phz_Ua^HYEX-X;ng5qGdo_lQ)Ii%F>Qc zzxu%ZoqFmFIk&b541TlXgtlwk5HBTVThw#Ln%Jo!cWj zwk5W2i)`DP*t*p+nqn6C71#aQY3!+gvkpOD{U=jma{T2j=RWNf=zX^O;2v2y`KS@V zd=ELzR1&*Zl*_BWDENAPXurdkAmT{w?R@nk|91I>ucWR8i+Mu;_#zT;6lJ1Kok2-= zlu6tSOz8|SVy-!gS-en}W=e&9aXv#&l5e0`#4<#uo0(=*vq{X9rzD6ABy*gRnrrX+ z#V@XM-%`S)WFZ=s0ztA3X_4fqK!SdY!@uj=`TI%X;QT<>Qx zmSgtZT?-L4{EF;sKl=yQaK`2P2<4FKyV?}6K%-$2FztEv-CWLm7Su}K#7!lo3M=F48ry>|m4Wc@7BjZvg!30F;LYyW&Z7>m$@;-+@k7kdpolL zP8}Mc%VJSdN=}7hC|q(`^QIgAV}d+>8dG(4wy#YrV-9dqvfu$UHflacVDn{cs~gkYXN3>3rDy$9OGV! z!dL$H-@Na_x4y*yhc6paQgAh?^;SwD_^!x{%pv(b>ZXJ?kAPKNqNtV0uw^AEEfGm2 z-&zoFOChckz*bTR2kgw~L=s4Yr3n^Bv~`6mr=;jH7f7*08jrY6*sf!iWGcI44f7*f zoMxQ{vLz&4{jQ(+YkuPQehO71rHzsL%-*64`13_~GNo`Wi{JsN2o1x{155m&?6bowIQ>}x^~3J4{%*cf zcF5HH9FT-*>?X23D0v}LdBoPR$&ga}`cx?Kp`7dowy=EGrFXsWgX}r8C6ykWqZG+q z?HKcB(#(19l5PG)lW8t^2N5Q$`b?Tue7-}%ZnoLn&7#|X8|TLm10Vn&`3SOZS1Y=e(()i;`7&?7yhd^bggSYB__pHV=O9u zki;Y!VkS=Wd-tF|B08dt;JhZS0+t%Jricuu1*68l{HGQ3XqG?%${wADcpISeDBoQKFAjhGYlaJBrfH4!xQi{r44ixNHNPIUj{6E!s2HfvCrsBW*RHj1cD(&7s1;q3 zpSuD1?UtxN|IE_|Y@G|oJyl7Rh+5}%o4fxBN+o%tK!B#s4V4dk>eTnY^37+BIlO;` zx>#cx8qBCghZBYpvIu~~rvew0$kazBMI`0cXVfSvbLx2WAV5uM87UGLNs*q^f#v?^ zkqD+^wql&)77pCkRk#XH8e%9Y$^c2DlriJBwD(c(5-aENg@7AtsAZBa;77-C#39gKYv>*}H7RmBb8S_A!Cl0f^ z`SUz-Z*JxJ+1NZgr>o6I06hkvHwfylCKgY70`L*;e_&IfpEoTqlPsnq7De0Hyh0=c z^e*3Xe}U@%$1NZH_bV@cHHX*Bo`@qMc?G622vgLo&mEfVf!#w;45tm=0y$l@8EV6W zx=pwhF>~_?L9buhy^a7$cbL`K?_uc@_BkfN3wAsb2%Q$bnn$(Q#s5wc0uqu2(hSou zWttAM))XB`s&Ds~84Q&YW<4k{(u%_qk&r7X*twA*38n^=C71ldPw!ttw8_ulyS@XE5pb@9#fr(MBh4hk)0G18 zV`xpVVNEfJXxX9%2SlHoEu~?c;^kzvo^!<=fAI`vl5i<&S*XNLruf(+h>b2lO^Cij50?}!k*sEl(v-Z^J>)Z3spElbubeAJKA(F2 zOiX=?Au|D_o-nW)uKW1PA71klXEuz+B~dC&qL3OxVxSO1t0-1MsBk)=(L^kf$kw_a zf4U>>e56kb%t(e4cAc;xnBg3xbe!nB@vpDG=*nI9u=a4aVNbD&e$Zq=H!&e;!q?8~ zB2tCU@1ks_Q883M@Wf5tEZnBm+(jQ=67Pybc zr*D7gX-@z?!`=hmQ1aJxS-e?Zg_)<=t(<4w{X5+9@qfGcf>$vbY3?EdJ--D&N{?0& zWs?tl$0PNI6b|PE)$FjTfFE?ql;x(h)xKeM`#3!=>$@9AIL>+C`8y7z9%^&MCX??V zAAsE1NLnJkrnYq^A!g%Jd3-asT;q7WL@ZVmZp0`F$+gt3$vz(DSe`z@@Ify8{Oj4@ z_gG>@LE7Xm&IT*Pklv6a_>fP|P?hlN7vK9FcAU07xMf9pp>Y5JAOJ~3K~#^ZJym8L z|G3*WUCAq!sbW5AH_Ec?V5gC!0h?vEYFT5+8H`=hLBegV@$1B?qgdX>@)=j({g)r+ z)IBLml_lX3%lMe=8Dyo@-B0Pfw_M2kCdt&U6x`Y~T5 zFk;#cshncEj9cJ;J^RMsL8^QQ2-Mm4UZ9kjt8PCINVEB6%1XNcX;kx(Po40tYpy+W zK(ihRO;cJL8jDj;EMn#zCd@{(VSsqU>>y!0DVfYK14&?x2)RQbLK;L$5MlSuwdgxc zLTthLmzHgDn92Tr^4;>!mQFnV}^FKQPjnr(MQ3{9REjH$DUN1R7oLu%z8ZIRT+ z0>zm)6H*Wh2~8f6JRZnQJ%{UFVh%CQbj_6ij1962>J(yAp;khwu(+4Chu?C}^Uq-K z>MokrZJML^g>)b6V{)5fa9@O9e(K#%djhcc!#6H(YC{}3i|F6nyi#BfQ+>y0&-p(V zU+{xWYVEbK^3b@G;}!Brq<|L0Sy+KEO_%VZ$h5(; ziydcNec#`FjI+*8S+7THXXaEo)MX=;W%N!Lq|F^emP|6PlPvo506cu@hhDYH@DV7R zmeCAF-w@)2HYg$k3O}Uue_yvvIm%!t1FcF*U13-(vfw-=0b;^Zc?7j}GaDecf&(dL z88)w3-7?FvO<3o7=byL4rEMyQS_4J$-pD(KTQU0qP2g4IldK)^}X< zrjxc1nuclEx10{ECpaN_hjTD!vlL@pq3ucdf$N|#Jtil4OUfokM5YCkvSr9+7d%`G zw2sW&3hfg}pA(%xBHViao)=ws@$%gqdT0PnNy%d=IBNxDA?bqUxm{ym73w1~NY^Uv z?UwU-nvTM2d`rW9K}a%7(t7K|S=&2^g@zR7MxYqh^(Om~fpp$BpmTrc5eA^c4C}AA zpvCR%zvqqTzHkqBJ+!nb_{TUOv}{wbKQjKB3IEeoH$VLc;K%OR-Mt|>Y7_t)$a|GE z>jnU%0B`@~%c$ETyJUyXxgpJv%EV?$ibFutCF58KTV1?uA7p%UN z(=P~!Zf~eetet*O2(T~dlOjn?OifI?`rdF^Gb4`zX0=UI5}T436;7D2P#V>Q=m&^j z#Dzr`Qesdpu@4AYm2)PhSvbl2{JM$P#vw|Q2x53BW z^!^hgi=)W6R76Ug>nrVs7!%3*PQVjMfZ*{YQ5|^{MN}NySSYu!Tqs@wqz-@JP#Z41+>`e3WWG?@@>mDCnEU8eL2X+6qBLhC}$%M~Y7*oB+=?J%dSDEJJ?#5 z6jHL(-cR}9zUTebtGP9G}B*aA}*c-Q{(-uICk4o0+@(1s~( z@Te|Q7A-N2X#U;`f$7-IJxhq?*@d%`O1H64Ze_73aMI9*V^{wh!M~u8Y+@Bt?3ggw z*otbznp}1D1t0t6ew;sXIDX|mr4%U_U+Vfv>GFx}SV2}@O zNnIAQ;rL_68Uu)AN!HNhuEFhlcYoirpF6yt!w>k**sU-rGJV*h2}uwMVqqcrfzFin zHWjzhzrOY7->eX_9Q;iTC6Y&7V@dUd7!8$q^Reu}m^xFUDA@<4PwY&DC_j z&V45yeb?rLp|cq~Y`#uRmW?Aw;4I8CoHiDwl2Xh`VbQfsGCig1sHB{qnT718i`;4{wn4+R+gS5D-0?eV1kigLj2VX!lbEt9 zMyGx@NA8>j{Ueoo%q5Z?Vltf)+9_`AIPu`&%Rl;x$yd4^q0!}4;WLW0NJ2EhJahAZD3bHL^jg%{`)a%<~gl0My2~rpQTd-`;9Aaig&8+Dx2Yi#G)6UrO)6(p_ zEh5z-THeh5d#*kA`Db$9-mUZnuY`6pihWLIf0i}Q0iF9~Krn9kSO0}?N@wN4!@K5o zlWY!_bBk|oNom*lvJ7BBLh_wjP?{GqFrXIZ#3(Fi49WGPUF8bwI1~QM+di`W&imeT z^6d}(CI8QV{sbpogq2%p)8-8J@0J%@QBdjVF`ei1ccZTG_mk zHa3I@cAvlx{l|Z^Ul^84Q(ZV*FrJc9BH7|U7$yE4mB4AlG?KK}0U(K*sbu~89Q=F9 z;C#BIjl;^txEQE3sUAcoRrCW1>Ju=CsKduGW!l3DdoI80{nzo#Gr$aq#!~7scj*&3 zwb|JxNs!nnm$^vt4M;-k1qxt4eEzk6z2`8KIx_>D_MLz{XHV(xYqph+alB_WKt;Mv zfTB|3-4+JLc9xz{2dNAG(vK+ukuj4PXk-DFPGw;?zjMLgu#`niGgH`suVR*(3p1*7 zADnx(GUjr79S}$5NkfXsnCm~iDyp1uvrQ?O2#pmO^IQQwRyI!^gb0)7v?4|69(#>MZWryOk6nB?_Q2vbWScr9PQ%vMV-o(ih#mBB0ZF=kA}q z_M4Lc9GYyI8v$=<0rYQJ)leV%tfj{?Y)rl8qGpOplH4t5V*%N2G-|f)pxZwMfU6po zx2NUDKK(myyzIv=`2L%C-S^$gtKM+l4_|uP*FO74?AkLi3Oil~d)&Y;^S@h%VGv+@ zH7dUg0!*&n$MuwuN(!Hy{o)gLON*4#z*rBm&ppWD(cvqudo4GyDDB+MHV{IAwz*m~ zNiu6hcT$S|sU$}{&g*{uk56E6TWZBygyq1np)~<*XLFxZ|*ynNo*4h=rSTaK898NgYty#^Y-6n6=<{q4M>cX)-wr; zS(wUzO`Z8RXY6z#3?^B-oMHAJE*j4w@JqYD`1)UXT@coah!H3(qT*?aAy%w1nG9Lc zCV%m)E0D6uh=E!!iZhQN$ck;P<_g=yQ9em7d#k;`iFNKIonsh~K~)vLP?FR%iEifK zVpcPadwFc!l6<80LZrmEj;*cXEHL$nRaa6-Ls@$UVvIbD3IR98#YIkR0>kM#TMpcN z={v9CrZ6N)o$s%CNY0a_ckvBmTv+eaZPg;w4HYeQzbhgTm*J;h|9Ai7ZEvgglD4!s zH!#;OHQDmkVkbOXq`>#CfB5R5@rrix|1P=YD4QI{qQa!K5DDIhY(xBraBv^vM?dw< zSHF}8ABE||6POlg%EC@L^kKLuxC$2pOAI>9*$9a^=dz|yf(usm{?nWP&8>&|`t~&* zDYL?65wf;K=+1^gP>N_I4NQC@s^XHPjOj@-K^)27$G+87reP6ZCZg0#l7c$C3p8o| zvooSyW;mG0)H_1e5YqzN>o5K4jm!M{`uR+{b?mxz9$kR4fz~6ToEafEEBS2>cqIOT+``{O{Crwr1fjXh(FEYKpZ?Y_DQbU1)~tY~s+AsYl) z;~Uw}q0z^l^Me<2+g;GC?h{Enok2ho>J(a3^V`Xdx}x8d5gJ4AGu^zt1YN3Y;C8Xz0c> z+Z6n#nD)TGltd<)>M@}SSZ9K8WWpeuhQ}fKR0>59!w7CnQ*S{BfiT*~;YVNp%;)Xq z{(URbw9;YNiWV@hiIj3PZeH$J#O7Q9ZByU}xa5@E_~HW>KJk+GNnGo+lj9#CQ1?qg zJM-|6>wqY*CY`Q(OwhIl4TzPsbfWL1885b(1^;tx>jR(oZ|AP_3{z4tD2AMuy;HB1NoFtGlOMNZYNBf(>)W`PCRtuq#f<;13#r-!ja4?g$zeweR@VdlYT0X9I@^%dC$K!#1e+0+4i);6ycss=~}Jo}l=Yv1;N zwNtEEps1IEYn{QgBAS3WqBy=M1oR{?hjthNH)B3+n8`ps2s8ER0PSQ2zi>V)C%yEJ zzxp7joecOPIPbIz2m)40las%h{0lP}07uYw?_Aye_J==tZ$v{j+!7i>>@0iDP?JqY zx31e`j;BHgq9MeS*t)olg=$O_G7h0~EtY!GuVeOI`oL#GoEOZh|uD|i@w_p1&PD(VREv~mq7uQgt zCMKP0>;~0iqvKE}T;np>bBwiTv$ErYFa7rqu($v$>|E+y417`w2b57l_ugE8!nd99 zv-g;Ge!sKirr_3xpZUBCE*{>^>H|Yu#}YZ9hLGC|@X-_7v=zk>j2ZW<9*H)5BNOew-!>a zGRygI^EPwqA@3`hhUbJP*&VIHh1vJ?nsPzsz z2? zz~NXkb`_~8@Nxp%i~TgCovbVclwx4H6Hb1XETg~li>oBFI5P`fE9I7(S%EuO$|K`GKYezd@r zB=~lnEe9Tc?w`LV-U(GF*?>l+G>}HDS8|XeX8dS3_Guc(w5cZ0)|7|XaT0rO`rQwC zs#7OeQJSQM{0qcHl&E=!d`}4Y$zL9g+4w>>C8V(+CP!ROT6)wxLP_Bdlj1>IJDK5$ zSA6xoA7szT;7g)ul-~WOwX!#N>I<|W8~H(=E_FTS2wZ#JD}|z6WJwxQs3?3(N)@H* zY|0wdh#duMbCUbyc8|lOx{c+*R+fqhO=yW}fzoFOLAPn(b;RJ1hQ^etE!olza))eq z!7o4eApi67Z7lT8sM)I|i^xTf*FXfO0>rQh2p0RQHaZ9cBsyXPfA*n0|NUS7+|rOq zI~v4MZ9phW6-ypT1)5Y+W>QNsMU!IIdW#0Cfnq@69wn_^%&y(;z`K8!EerV(C<*T~ zRXdqRTpLqn3kq4a9cjCG?IUP2^JdF4>BOCnoObp37q8sK>b-@K3P@fdlvbN34WcXs zF=|Oo!YC<YQV|9f4n%&Ah~9fK)=l zk9ois97y#xmy2=M{m0AS+et- zZ(0JdpXvJXcaZC(LK7}^jo+@G2A}Qr@_5CCE_rn!@9L&QRkfpppV= zrA8n~V=TgO+gA73pZ@*}IQ`tisI{1H#58(B386rvA{Lw_bKkQAe)1gvA9Fih=8(`E zhl{BNho%N=J)#~;MHdved>YHAoO$ni-^0$GV9u4+b@d!6w{d25EjW6@HHxL#8u7qq zCntWKd+&8rt)bE5v@@Mbc|RrTkU}$6&Mt3%N-D?(3kwu(2g}1{7JSH(ugT*zxBQO< z1hqmDogjxwCR@h3EEFs< zTzUiNUC!;l|L3cNB~tQAZAMH9!BFqP%`hVysEF8Ablw>fT|c2oNl6B`KXUSmFT7;o zUJl<^8Jg7U0+ApoOdV4P-e+6gAg1bg@(`;HO5qa=g}u4Fb;4(sL?KAW#jhuD$vCF@w>DtF+bo>M$&BVYwy~u@TeM}r!TbHzgCXEh478cFFor54^ zrb}?*xh&oO>ED0Vt^A;^vOUX}Q%pk!t2&@4z_lz+8vGj6wK9z!F1ei-U-mbj`3$FD z4&w0vpS2u{*#JOnzFO|BIwh7_fGBHYS~G;H1B;A(;yIsuhwK)lRDn|Dp#1P08MPjfT#l&YTsmJ{5d;Pe0WeLu>DFIZ;~7Fi62+LTZ>5}dirQ|FQllTd--a=7~NVVd$#>qp}t-<0Y>^__8|HFH56*Uq& zu9PBXM^Vc~u}n+cIQnyL&c3()?FE6Nt{BRgx~=f8!9oYxlSHeLC^>P?@}WN_aIG{pOZ984<|3kk87XfPgJ@+&Vq$S>~r zG7ILB=q##jQhUcoFz<-Yb;*;EN2jxsy^~RqHo#;Je(pD)|A*ZAc`f3!Et!T)u@FT} z?dX7zvY@)(K4s;>AqT_?J%9@he)yVQmz~GH_q>zg5|}m%Bo%8FTEU4JI?J$~b;-N5 znNf<@1e1>Q4atlY;j4R}an-pOE!-oA?;T?5NLHX;NZMjCVHlzT!l2GL(xLY~2Y|Md z+sOH01`$_1ABGaEgpOTr3R-A`*GQK)=!$Ui1uWn3x!-@~m-vCvm~ya~EB-ctEAlT{ zNDeZS1Vdq|Y*}=kWD#76o^?OZIq!x~e1MZLCg=iGIw7?)XD*%Fyit^pH@0igNtSl5 zv)r(nLlvSW)`6>U{*m`QdfzP#gVmaP>WIaN8bNf*G#pFNLguu^kI^=I%7XvnXT@n2 z{CyT`V3l#Z%BY=Cr|fMWr6nZC)-24#S`ny=goscikHp+Y^b!y|$a*tj6vxE6WqEw? zvcLM#^d$K|WXyk)$CNokEm zRcnw67M8C)@B7Z?+E;uPx8MS_4%*z#Odd(no2zENhdSSzJI;&bzi02ok#gcGED$Xa zQ$-<$SU&<_ZhV&4z>`k^N-Aeq>f{P-K%qNX8f<5|T&HO^OJHk<08F!&qG>{%w&Ir# zaX1dB^f2w%2wHPs;j&-8VvS$g@nsfrRi9F)g#ZR^f#y!+JWX(ZNZo6yc?A~}tgq6Z z{^M^FMyt&r9NYPVREs2^#+Vad#yy;_?*jfMpAOJ~3K~#hH-FsI>+4wxWHivr8v`Ex0 z(Q2Mi9vS2xAME$ksbC35SN^?VQIbCRA7HhfcEO*SQVEi&y8&S;iKr2$V4_)$H7biS zQLuw*ahXCNK_2_sbN}L+>8%|;2;ZH94t)0aT!TXyT3NK1L}vChxrv+Y!1B;R5-lss z@MpjJ@i)KdwdaOZ>0n*_%9tewg@ZUiTEV9V+!VZZM`ik60`R1-AatCRS)!`FcYtM_ zrBpr}X*VieSp#Ne{3T{OP-&}mmc`?7_5IP}04{2+T(s2GW$ zw62w56vF~Fq;X5D`eUU}-LKlPW-znSMRta75o{0&N(W(u*#?%F^xu)BCD%OBA5paOnqKRMN*s@tww^&8=#1R7z|4jm_CAk zZ0(Bce<<8c?)T?Z!=q}%2q6;10lENXuW%9|Hk-Kq-G>ILt=d}fj$itlYhU%oQy&4g zO<560u^^0mntCLaXz)mis6<4+7xOD6i9{(;M$5J zElhni!pRw&a2juY!wtA47c#u(h=XrtZ_;TV(Z+LzA*A2StDb)9xj=`o7T zo_pT`c=AoODQzh6PVv%`g61PA8P4{wYh_~(_cXH2qqY*O4zX5mW4TP2wKPnaSb$hD zw1nA!>B?nqy<&}@+kP`u?2Y0!`pL2ZtdG#5p#C z!}n}x8wFgznTcALFc~Hl=GF(SRS~a-i-N7Rt`ds6L|mX+_@P}dxP%Y1RUWZGiW2}*R#b-G)ZqGAzly?@V(FS>mAHTK;($iGD_QG!?yLmGXW zSv=_otv4ZMiC;-A#5yZsxrh+6cA^^2T2hLg-S7OcOlC_u;V^TUJ<8!nu07`kr*ij$ zE15Ks$Zp4-RdehHVVlT+nwfGN}a9L^=8MFR6P|3^4DnNla80U6}^WI|Al7>QMPt>iBeQm{Mi4E*2Dz?`(PO2#&27!-7C@IPKJ**cUHh7! z+8J4D3rZ#mYXe&K#AOV{G8j3ED_T(>q(jV@%J+BxPfhM9J$-e98Obt7RCv)B^HW?7!t`KIw84E z;w^Z5QcNZsDlh+)s}AssJ8ohjI?9xrzcHUlrWp^_-IGAZ=5!oo*)%>ATEQaxz%Tyj zI?cf$#6&a=6k{bWO<4$N%-lnf77N2HiTRuf2pW(SSoY7q@`q304}RnG zEN(Bx6m^w$31rzD=-my~C;+GRk9$50|IKWl6@UjbU_{;~{a~VMgQ282* zAZE$BHJ#ccEa>zI1H4q0#05x>=#0Z2Ui9(T{qfg6e^;PdAF^Z(DU^8UJ4+`c$wM4k zAL7dqZQXYQGEMMkcEFQ;Mist@B<9inecS&K>y2#&9?H=(&_cR-tDDlap289q8v=>e z1zfYv!oGVi`>XE{Hvz$gnL@ijFY+@(bq!7cX2d#|Tj9ygFcv08 z(wNoVbk1X7Hg6t8oDX=RDq*n1>t1vVRHgQFnvJSQHvLTIVIg8fHEtd6UZb5%2ulcDDJ5Q9E*U=O|>E#d1KUDN6~Hy9HSzpcnE=giW&HeUhKQR}~sUm~ybZ;9p;Q zfVb}W%EmY#1rksdy_CNoZZZSTXoouJIs{EWE@)~vcu=nYrGLKyVN@bAEiE|1tvMzo z-t{I?lG`kZBdR1bO>=hMOr@y5iU`+P$nl`jh8hbp{XYTcK`p zYhP2OA4rI~POl_){f+F6V_DvpS>8P-_Tx4D_T&rKKOW%ko1Oq1{KPHG$2~uKw157k zrH=zHZJZXOUCY=O;FODO`#qoklgsbrh1RT@)*_Q>B$S35C(?7j%8O6`^k+W6DVIR)ssRaAYa&WWFp#-^q_i9O0NdzOXB3B& z6f{@{AMk?DzW&c{zU{t>E#o0WTPKVXgc9#coZG?T!hY5#+ZZlvj05IJ0{=gIZyF@Y zaou_Tp1VgxW>!}9fo|Lc2@)g-f&g)YB0x$4??Vy~5d^_Q)Npn*Cfl{$o!!|F(%NW@ zGg?V&+SS-dvojir5=3dmL&u2H@&YM}015B_zytS1+>OT3=YOkZ{!wh@a2d|YIgHyXAee2(Byw^(NZ1r7)J$S&#|-_{^B=2 z_u-4)_Yz^L_b7#5nwm|$Kv5GW7OyR>LMSvjb|rCIXMO)9RISsKr_2Bo z1*LDZ^q6)MEQQRzB*#=+m zA3u50z3jc;;=`E64+8xvP)eI}n3Z{#EJlM#vMu#i@N|m*LW3!@-8C2gvDHaE)A@I={K>+mM1`O|C=3!UG4v3*i##h=cXCO<#cB$v9b_!p-A#Pp`Ce@RY%%hSJ4pM&+s zdeawp+aLV1CvTfevfMACLDFq&7USbmpCto0`t-2r=IcK3+G}}hJ7SYGP~=7-CKSLJ zh*tCMA1Pu>A0YHu*OE!zDw2v&VPs&c&?xl~DyO)@Vm3LdX+v@0Exi8JuU-8mjyqMS zI9#BjkQPY+oJ8wq14%Qpz*4)YXYYv;>H!j=b;=s>Q(wLKPjA2Wwu&vyX11xJ*S1KV z2qZx&Ou5RqS)B9l4_O}yU+kJDE}s1NGHUj+-ZZq@!Ttvpe>0O0I(jl<+8)hHZzp@# zg-ZJLoTY3>40i80=QD5PdiqSPPst4k>Sh5Z8yx<+V@ghH4A}sZnL$twmRI28AG!P& z-tzwEP3R4ax{NNE-pFEimtooiwj`f*o1}>{%inGs(HE&E<#3zBBY@V)plW9kxCFVQ`Ux83;lPrc_` zyxZS zW%%U3`}_C(%zK|V#`g9h;h24_EKlg~DSWMXS3%*?khn?(5d%SNT@a#6dG;bPk{{ zlRbn0|M1{(5xgfx+sV(vfXc40R45WXgaT(0Cm`5F z`s#Uu4T|KfkMwggH^;V2jbL>vTg_gk(*e^>r+nlUySaGNZDbIY!o=>g5}PPdt{a}n zTscPc8D=%WXvClV?JI8M;T?|P$AuqP0gDi;n9>Wiv){@&CCL;$m_RhOm)5qJx}=pd z@`xWz3C8-mSlagXcSio;-(JV&?KVmQwv5EqB2qR*F)o?WsnPvEMqQ|)M8QW#^lFXF*Rlg{6J1PZJ4XJCji8)O~X2i?TvV%tch zRBJ-I&H{yPe}DSzFF%vw|C}@cf3COw{fGKzyqZbde`>o&P1b{@Hyg7lfB~c;umZ=w zqTY1Rbsu}}&Afgz!EG*~ZDC(UG@1F29QejEY=SBVPiY$Z8aE0*U3L?dOc-DDGL z5Dl#gZ8>G-1vl^$ul~$c*K*t$G*Us&HAq28tdcizm3W!jU3_QuKh;vF9>;1FqeRwB zEMJY+BoU?mxV}z8<6@AGkw0_Qzl>F(q!-oi$mf9`tiFcts5 z`R&iX`_1n?YK*G_VtP^RYLC6sg0%|504b-mvJdqIR%|GujYe9NjvEHA7O#d#L`{&x z9l*0MdETb^b&x13dG8WYBPO%oJCm7|DwvR~6lxVrLxUKNy#_Ow+TI?d<${;rgSB(w zvmC6<8VI)AuM?vu0z0R}h{Q-#kB^=Guci({Q^c*Bc!)N?$K&E?ZUO=(dI$!~kiP3v zIyc*y7Eg_K;T6pri9~8^aEOgWO=dWr5vwM!cW~C9z3I-Svw#Zl(csF=4NC{087V3n zMLQ;X)>WxcQkVEK-}sgP>v?^=uYe_`sx56}Xiatoi0LzvB&7t&|9z=uWm4dWo?c0G zQlUr))QwrgRYzZZG5q1L-@p+^Lo5u&B{Q409qc!2&!G8!Mm$lS7B&?KYZI5?ru$BK z^=W67yBI$rAgyQ{&}b18(AbO83uqYG_>_DC` z2YEV{uvLke+u6P2k{6zP5@_@;>m1+mPs&+1U3As+iKSqnS&?}oi zo_zPprwjW(XAQu|^yV*KIz0V+rfo0JZ=SSBRd`&!Q8RVZ5Ob7NZz~*g2B&}hnlHTb z8@#n#XH!|g`V@)*gccWK^20T${6*Be2U$ESrbvKm7f(KmDdo>Zc|{{N1paXo3+>l#Jf75V9mT!jq9mLTutFxte|Qk z8iHyv7cqXL^!f051}no~Cd>f_kBG$x$Nm%99_? zC7pN>v|+xsAejohNaQnG<~gw^M29h( z8J3RHw1jAJ7|NIi-BY7@lg0s6l#EscyjmO$(JN6(eBaXc9I=c@R36=2TzS!7vN`t< zjTd49zR2dsiVdhXrG~U6bq@6b3>26KKKkiX_b}eu$LP9aVj|YIT^6C$h)9yp>YT)n z)g4RCcvH*f$AmEN6i4%`=5W_DW}>y*|%dDWtev)tDxS{78qBlsh(altJ0bLG{kmHXgx7a zpp!p^$#tV6d(QZa2SZ~Gq7!_52dg{ZfAXtNV#g!the-&uIhjF}?YVAKY}-`HY&SG$zUH#3xy1)&(j22QHi35t$?5X4BT`EK(QnG?Qc~+C!^2qUCpP-0(IHfNo_y| z6a_CjdLLr&k`SSTqr+x?iWU;`Yk{4UEfF;30W4l$JIij*toB3H{dL%Sc$^JZ#H5*I zFc=xqD=VC>X>(s(WfeecV;Weh!6s)MyctkbQ$oAKvQdKUWml|OE5_8J$5O0$tau5_ zNAVxdyFB}91dy7UJz%%P;@t*#G!>d!@;@1`@i*6Au_xj^7PX2Q1j;-~nB@#kOX1!?zC!H-wcD1 zV|^*ozka}--}>->f6BI7{}cOw##CSf;ytBy@ukJ=oRmmRc|@Sy@S#W0gnpB&zJ;kNX=hT_bbXn1xmp-(8!3R=B#$RrK&y4k%8)Pr?&sh5 zlRtAJ4EnYq9z9{{(ILAB7UyX~oS8=*UjHZ?2sKhj2#U%yI_m`eoA%mk8D99_L0c1m zT3qr~i%B;gx>M{d1~;oYieUK(yZ3!p{4cjo*;97Xy3W{&nVeQMjUZYhhY$sjgCKH& zK#8>z>HtAKLN&jGt8>vc%@_C=c0fEcLH>+t*Ix3ShlzAR272DbvRVP=je@ zws}Suzy^v~4%!w6?0el$-1~tqerEg_!_wl~6{1WD(o&egL|iXG-J>15#%QYFF@SLt zUK%OxEkk=9lR9cFX)TmX(|%16J?4l=wRbt}8voT_Z{?T&^-1ho!%TNiqN8t9qIcRe z%?4u0?2Kx&|3jD&zDy0p7}_nIdd%Hd-}pU$EX&7?5$$QQG!~r}DpmsYJyl(@UPh{^ z3lmT$P&5Red?T{dPgF-}JHj_1&G$`QAo?ww^5>O0ICTc+MNzyR)6|)`!J|0D5ODsOREpDYqCU9wL}kvDmHe6 zgNBQnAjoO$I=oWtQ!b zWrgMDVf3+k&;661J3VSH--!a3~a8#h1yc1Dj1F%FPoOz`{rDC9Bi3|cWrG}-2# zOb|pwyQ1YG_Lbtnq8(50=D2sgVK;yJ>))iZ#A>BK%u3DL3ZW{LxG>n91wJIx<_wkK zA{iNNlg#|)ohQEP^mD3vS=%|lxLW*F5<9~i19izH3bAq2MYMg3u??Xqu`UN#7!~3O zt+RiCu}GG8J?_C-0C5JlCVr|!6(sah!_e+v-=i15GF5=&b$D%OK1xw;$p;Rf1KdD(VPWhYnf`7-5&En zuf*r3v;cPm9D5p@@B79dz2$mdvw4kUf*j}#F>^x_o--qt?(!7itYEB#-G+T@LhTeg zRs6{lPI&3nw|vTwLx!Y6<0TWlIq!z5s!vJhM8#;u}k)bWW)yRo_ulCx_;5gpdFC~)HgC;a3~ z&m2C$`i`NxqC}-YTx$ryKoJ=PR2rjA#Dprv>ZSK6#0jCT34Th5Imu7VLhi2F5O>{0 z`Kkm_=^<6}r-*TYR%z0Kc!-fA&NDGhR*0Fef2meV~(ecp=$TMw@gef(u#d=kjPkU783+1t~d!f-0)E*iy=*Md$y3p_zd>!%2o?)T5eqd=^VDrRKpZ7i9 zdj1!`dKD*}3)(ld9wQMCOfk{oMYLwoEj`6_YYyI0o6Pj`6V?D@;1yqb|DRv~t-F=} zB+U?~j2XxD&=)eKSJpJKBMfyVRPd7K+!jNr9^);J5=>yKtL$y}u^MV>1+|?PE=^ey z&Z09dbCh+)zQCG3rQOG*X=nnNu$80Kapb;xf9mfptZ#&>PDC%~a^G*W!oNEnEK2&2 z&?Re6B>g*TJPd`w_5qju?_as}%^x~uM9=L@L%*Ic@O2s22Z#=dr98(bR)^Q&_0&%N z8x;WiqX1n4(2W|pW}ru5>{AGfd9u|q)dDL9tB4*u**FDsEIO9%_i!CsR0!#F(`Lt+HhCXt$M4v`_%Glm5)*M#EUE>n z_ptB&55DmH6S-&SO7>k&9tH{EG&8pU(^)+?y=?luD-Y$#|5-HvpU~UB{7b#FE}{)Z zx6#`+Q04mNtxN3f~S%RZqOz+OGUH0y8^H$l#F(xpySv5Z6 ztVkDIG3#Odb9wsjKA}=@t)ezDb7Z$+-x%5|(2oVYKD@Y7%a`MN&iR4d47ALL?$0a*?#~47(zOGv;fm7eB*{A21FkSK@bl-?TzKQ+ccDMqNOuxE8@>#6NOOy3TF?q}BcqhI?ro3=yir~;8j6PeRWo4Lbn zivJ{2rK04r3K4?PTB6Vfi*J)pz{}4Z-plI!DP}Ng356i0A^HH(U`+5(Or<{&Z6*ZY zrq;#?)&j<-^eIh+-W)JIi8b$OM0iiiZ&GKBDYwR9J*%3KNKBXBU-dlvZN~- z)Rw4qMI^;lw6YbBKQ%5taMd6F+ztHHc$MXYsCwpMw}Y20<;DNHmHqr_`~W z>0p9U_5kN!`JPYQcm3^qiK}Cp+F?y{3am^QJJ~shEi#d__E{^OO~rq`S!2yl8R1Z; zL}_Se$ick#ks0zQ7_Djj1Rp##ipm;c+%g<}=Xb8&!sX5JXn%@bZm^DE();WI15zWf zXd|$|+j8kd5}<~fLaBz!{C~gkg?GH|(rqJpZa6KLHjnJmnwsgD;32w-*b9U>#kVPh zB_3`74zC~CCO{7;x{@{Z62a)97z0$eVuEk`RK`=Az`lO-&yTxi0pHX`Y2rLaasFqu z-F!X3gAZ~8d+sNB4rKP3syf0(^YLWX;)%xFKx>G>fT|dRSk#CGQ#xznbZk@z;#|w} z%9P%wpmk9-4BeLZyjS?>Z(PUnR%#0Alz}#AKQkBn>_leUY_t|<;RaSIf-_S~6ijRg z9&Xuj!fQ@Dt9ppFM+`m&yw@}`v=OBYEHx1Kmh4-{H$FunTc1z<1~C>f?aYuyb0oZO zkY5R+D@fHt?DyHd<9#nW`-SX$Y?-!I@E)|;U=?UMfbIXJ7x?mj`G+5tm%r(`8&N$? z*nd|1yV=B?^q*k=&e|6gu_o9=*Kj~VOeQ~8z!Z2XrX2lpj=B4rfBKH^*^A1(Y%dMf zXas`_1U!y5W;R_X70geOeXh3u#j7j=>o5r!5E?_vv1*oldit@ z3mkJAcvqD~vBZ4yu)sGiK#D|;Oq+ox_zEW}4L8ijbV>u9`L*|a<-P~+E!i>wqcsy1 zqA}PgG)D0|LBNDW4epTnto4u575y1_iP4fuJYM^l-a4c9 z1sq@Awqx&ZKC8d#JvBU_JmL@ZLlQDvs5(_1`nF)N5nTI+t%KYXUZmEN4k?R%6b- z?bEZ*c9ONqs4b~XP4v*ZF?)-b{EKsTcP8E(RwTrTdA(jCcwWE8`ySzBH8`PSB;pS3{2A)_IOtd zu=OZu)#3aMG%Rc1-aj>HgO832K{>-bs`DI>kcH2{v|_ZefoMY-#Ydsd znRf3b8cdAD08K!P^m5ms&NQ9|Vyj3{ncs1n@Yl*SJ z6POfBgyr(ZwD|#J!&q-I8-V1k13(i?M-ui)6rmGri?giOlTZzN!9`f|xEgJyG5Ef*hUiR9Z)x)-mneVq+uvc+k+kAwYQ?0L z4vFpMP4W^;JBaBT85=3BQjn+uF(K0tZr^#_Yfn38=~i~#QKchIFd*xtuB{uIy)H~5 zIFI0w&f!lL@iDQp?ffGPl7pzlplXp=V8Sj|ANjz^uR5N)c5KSI@Q@NQi`1L2m}@ZG zR~K~tPq>a}*!!V30Dq>peCfl3Ghag!%JktfOChqIlY$!30kml?jm1m_33QE&cvO*A0L9+S_^KmPa|MX{ciI&P?vG2JJ3!u*o!FrUuYiaXutOuqXOCn!%jz zdl8IJ9jXCvOH2&NI<&@s4{-LKy!xcCU3EDpoQ;=qR+6#lHguYNfzq4tMKTgH3Z~7# zxhCCie#4DXnE)4l_2R$0>4v+6mC+`aT+%VOw!#!sTA$L_QjUe7X2RG%%41E<2qC(d zl8eOR#9_4|v=$RKLY7?$tB6qO2yOZ}15q4SZ~onHZS}WM%^QH)5^G6!dfrqlD6Y&O zk^5@>!@<+dOJ)4f8E?tuT*%@N!K}Q}lZ7`Z< z%605YZXj9A#IQiL3K4GJdHheGa^~P+#ybrfJlX~V6PnnfHgSohXo%h+c+^{r^e}Eh zm~G%c}B-tVEgkJSe+KJnb+xc8CGiPjV|%A=(h2?sF#XXF7DtI2x)$<`?x zvGPN00RBvG`O^D)r(H-B%9(c2CH5q$GK#tQ2Ma{CXc<$FliMG^!Een|z|kj7Uv|wE zfAgyAxTq0Kv%oH8f!=LAl`7T-oH|;kL>CvF=%2$0@Dq9ME&krIp{B(xM}`ge}}CoegL($u{^WuYUKZZoTo& z3B_76)Ng%*_a&tr&@X&)vC@`SA7NJwjZsrcAUr9dT_pSQ61KJ6bA*b zSb1!I@-PRY3|+{A<{lyU8p~*(+wMC$qS4|qBpz54N^Rg2J1D`i>6rdHazSRTIPot{7Wzi*&7Bvk43nUXebh6P{@h4p9@ za=fE1?mG)`dy19!!mSUU@XFI(VZYCw`zEyG2JZ_fm0-b|HqjTvqoGIP3_^o8OSqmx z?HYa(@R?AkqQqtg>kq&0r1M_D1G`qJo5Zy=F(iLWK-B6Y^q*ho(=A!s>HqK$fRE~p zpMU@0^jG1dBSeceIl?VwM+=FVE{ZC)h)PEUD?7$_m9JX^!~q=la(WM5_la}w=7J;E z*}7OvJGOsjlolE&Y@LF6F!)$dhl+_=$hdeePyeEe+Wn3Hty_bA9AhI@VPP#WnFf5R z*l{GDdn-S6%s0RJcN}{LOiiyMQb=l2eN44~<9x`QStFcbD=$462K`4= zbU2aCJ#SrupBO^)w5raV)}=YWC=kR-6eBY$(!&VA;q{}lo{6hqfi(v^>BpydZzoa} z5>T?LAP8!B^RW-74fr5TsktI48E;3K#d8~gdv|V8h*dO}88LV!fSYrS6as2IY8nF* zgAX>-=@Vgp9to|wP@Wq>8-uo%CYpxe3nQ^?aZPX)uYFz1Cw}(^mbZg*=#&EM49F7L zg4U;Z?H2YP4lMpAeHb;U=f)i`c>Ss8tlY_-9TugbZTd*jZHyJRh^W@YHlooXHsGU0 zSjJQqH5SzY*51eJgO|SK+~;xc&K2=qlgwQMq4Pu9Z(r8~9FGs0b8)bB0?W%klm_6B z^`gvlm?o_RDh+=T~S)FXVnOty)FB3sRa;`wOIPHn2)mbz;W8igPz4*^>z2Wvqf3%sc ztmD@$mNDb7&M1^nOj6F_L8DLgAVP}$nafI)5tCR_#$~p){O3JqcF-XUK3!q)uJ#Kv z#@q!P(afPKg~1B^*{@yxfwz9>xX5tDHbfh#)-86`#dd&=Td)SaX$dY6q}x_CU^QT~ zG*pes;RfLF`k@#7?(3P32GXOWdLZoo*;V3P4m&39 zLI|dGzb7vIxn4&h+7@fDx_|aa_Xq2-0Wlt|H<*`K}xi+2OOR_Xv^f3YIgj-?ZM;U z_wox*c#yS+O3+9h*jgz?yVNCx&p(`5&)9u+S)M5&&in}O02l{8 zVq6-S`L)2LX~7wc0e9A2oOjl@uDP5OU)eVFDKmoN3kM-PP8Rtqf%IAFn8VYinq0kl zww?v->;caC`%6E4|LymV>8&2k_Hr}*%7MF^9iwEB9#yj!K*}iZqSKP^e@LQTNh1N1 z)c~Q(09VDENNsAg{nnmG9^_V1umizCuw;2g=gTf(-pq9mrvXgBKq0KGz#sqW74Lc5 zrN`}~D)-R~M@?Aj1&ZCJP8GFPVi2{OW(NW)-fHYjl++P02^EME4$A-!uYc6b&4l64 zY?Ty}!vE9+)H}*(FmVOxF<^m)6A$7A9A$Q>*EDtX09IJT*EtC!nuW1o*st0~oCGW} zV%J@W-b6vYjV8q8_a!mg0?&_n;$jYri%lIBjVKM2KHgt6dtIMgT|YnJW50DB z!{M?-=50oL`fE}$`M z4xJ}zg;W7;9pZ;Ld60b%zW+t%zkr8VR|qN9Pm&U>uU#!QIWSQ-p8gllNP4j5<#E;# z^p<|04ZvUN9asF)=JPIK+ze<#Vkver|E~B)H8V0G(}1+7%meTc1t%aCffYFB^hvqn zJD0uTM&7VmV>TDiG_YDFPk)`KbVkWO|3>G8KNWBdmGSATLj=r^!1>Q9>6}d>br?Z6 z*)+C@hSm#pZ_4Hu-M|H}`rEHw%dxMZkqY`norHLW-_Q<9*P^#Bg=R%TjS^kUBvhTD z4w1;nwVeI6OaA(i+wL9_N4r^De}u;-Td0=Sn1+(lL8+2w=c$_r9e86RVv-3^*8rs8 zlrAeh;BAFeiVggS`(DUeex0s$h&qA`x&U*fAn@#W-TD11cvC4w1%L1>UwZ$=|7?3p zuji;rg4JC^c6-C5g4l;*g0hbo3W{{bzz~Thqm;o&V%m6u@x;R_fWzw_^)d$`>CMpq zc~Zm6mJn0qP|%3Rf+}Rl-X=#tn1ztY{$(;Qz|eLE*dmdg)FWvZ(e?d(4mvVm&)Xb6 zFeN5y@i28lW71FSpamOUz_@?`tEf}3TG z-ukYi&pL(GX<{B0Hi<;KnSVlm=VjMO>=CTXx0KH&Jw%_beYq8mIfGNLx%P|iy^6Oj zud=zau(ts>0BsYaOY$6kX76iL^;;zT#pF6s;FDe5)BGHt`2oMn4qf=#(18naqD(?e z6a3mEZ6G#|QBmMyNgV_#VR+I#oPYX1eErKDe-`+%BGjZpZv!oJ6F(aqCb+B)h=^&E zDnQ~4X7@JT>LcJ4fA^uUvg5uL%5uUa?qgqT5f`x}vS}|0CJH8+eELt4+ywb2XD^%U z_Pm{r1T$qyMFn5nbAqiim)}K`3^@{dkzEcItOe(k)ayG1H8x_M@UJep;a|M_!^cdh zT%=?;p(-OXv=pU7djwjv^+fIA$`b4R46_6gjbf5ZXe3A=+IAt~^zb^oemDT&p*e;u z68_B7un6{qki0!S4yRzfB2n;$-a(Fd^8w$&K4w96!RlApi=QU&{=gnv7kB`b7NIva zwrX$@jY<%t6-zWxTUl%z3Xd&3R-zT8j6$JxGm1-9Wk-9*RpZ6rK^(DIa^n58+y|Co zSU^FWLDJL#IMAxth^U(bcz38K1mD@TJ;jikfLnGP{mvJkz3l-;4{i;`QiA&vNxvpU zA-Ep4YzWi)Sl{`+7oYzEcI??i)6gaPh@@0MHFFYW=kS+(68-+L|Gc9zJe4SuE%bhH zBY;<&afb59`ZlZy7>Tr@m=*j4+34)#-ys3{6l~Lp7qw)qri@wM9yfjeijTki4lW$- zVcVt=g|)2W}ePdwNw zQSHWgfq-h&QYIvJBL`rys8>^@Ut?WN=WCagyUeR#Cu536TAXWe&SSx%Dl!~YaWonk z1_KDzEUC3)@xEQ()hE_vgL)obTgF)GY@IyFr|ayitMm7yQIVis%A#aQ-bhkh#Wp)3 znih?LJ0CgreW$y~CQT`EF5P@xOknjBFZN zN=kaIqc<_Mcy{+{R(pYHlp+d6v=AL8gv20D<($G>N-ua(yf~_Mz%i5ScJF#5VT0;W z(@0HHB(UE1HX%QP7YIs>T4k-l*cw>g0>AYu*NoUQjPy(&YpRG-7i8R@#E3(%Hee)R zB+Wxa3yc(5t{74AsA-ATBL=J%RBex5eYpJm<6c%K1~jU-p_t-~AnA}%Fvj?rD*3?` z^D$$QHVH4uCqAc76v@urL^owmIc9gSWxYyg#U<}pZY^an2bjI+4qf}6j${R5|*dhEUI z-6^$m#cDYy*DJHV?z5ZqJAU!`rya?C_bfr3PPWDf6h+O1 zg;rMj$q z_9*{P1?PB-8zYO(>tV=h{7_Wb9 zOUAF#_7O1qvu_VbYwW)14Y=rC?`SqrR#Tz}7(40`u?;aCE`dMZOL0W3*g&BMi3Guh zh_>`o=DW{h?xYk-&q$kr>ms+^c2>-VC>XU^O)~M$Q!b(#^6Y*P7~+q^^-I`odx#~u znsLQfdtwOy03ZNKL_t)V=-In!h`P|fu<+aFg2|b(O7?$=5!553CdcK|T?%pm?%Z+Y z2TwTdT`Yl9KZ{2`9D5M8~$}F5t3e{ z2pFTp#1xeds-L^?EtHk)5$TrU*i+bc(^VgT!*#sbj@TR$pFKuLAYkznDnu<3#IMs7 zvXcwD5x=pPCxMh{whexNIxR8lCoB!M%*5L?aFJuaQmw-dNVt|V}r3#Y#_EI4@BGD;1N+j8~-B}Xu#p|A-@XJ{H*@vZ(ca~ ze_nT|$I~XYAt2dSFtSmO^SI}-8FW`*gqwD6n~fuw`-?rLC;rrztewPQ%PxE~z!u`u zKip?Sy&2bU=FEq~>&J2V!WzK|xVA{9pTsE;sK6Ma8HLpD+iaqxSOa2x7cUut1)J|o z6I>#`20>=GX(X7Acs$*CD6$t86NV6fm@*NNL>hkCR$6po!--2>(nIV#Hk`P0f zc_2BWF<=^sKMUjmaiJ%kE8Wl*rk(-V1 zJWdywCFv@CQIC8Czo()UAy_3ynolkYEEk6_2OCZ4LTr&WJT@IH+%mCi0HlKz7qF`i zCeRLfJmdNIt>N2%;?cO~m>yBHsl=GL@OuugAJ3H?FRUcpXH1D3VIzt}R2KNJh*+$o z$(V&imd!hJv_R<%RS=3Oh^C;dAi4qeH;0VC_v4KKB-KKb?SzQIJoRD7j2>rZay`jp zNS_pF1tG9|52(&~V2cQVsLzU}{CB3v1iN`FU>6UQd7~@vWviOoq< zc~;-%Q!ylHyfx6ql%}`8cDx%g9Q1}uoX#NW-0Oen4?qTmykJ_vGLf^xEg8O72Wy$enCHG)pBI6Ovpo69RX^ zjxXFd@Tu3bDdoz=h0QLXij=23x2!{k{O7VeeH@)@_A{UN1zU&HO}JhU<2<4c?7o80 z09yn&JOcP}FCan`OYl7=MuHbK9qWx{9ojLpm?+q^Z=_8=W^$LEaZhJr@EA2>g2BbS zJE3Tnx9Va#>j4Hghu1S|;S8uuh`uYeRy!*2!qy zkG;>ix2ju{)sl@>`}4UUb(N}aoqLA8*7~jA`uzY+bNqUQ?1gT?JORE-t~R`{kjg{j zhxQdq{K&ER9)*O;*H=INz9&2Z_?|!c`I`|jyi4?{!jteWA!3qFF=s7qAtfn+85Nv= zMSJk}_rB%TpXS=*Gs0R;(2gN)2rs`Qe_bx8E;^ynG_S@JI=OXHK8cWu%}8g4*sZes@(+ zj`6_0b_44bN5Hw2NOPiQEACnO?yY=}Xbdq55l^y!DD}RGo1iqos0K?-3RJw%QB97W z+2(*+i7YeohiRAc#K>OoKfNhj4>re=JqC9cE4!vSvs}{YAUmvCl}J6P9eLpHo^A%{ z4#tv{FrJooG*hrHv;9R!VWa$eAq$C=;647HdGGF z(b|N~5SRr=Kgj)hh2ZEzV5UBg{iT{#9I43t>W~m*Im!GQZK<;DoiAkbFX-x5S*K?mzqK=HOm2f}CSaJ|uQuX2PlcrbY|#UEbhf~#-j+UI`YL%+*;S3y_TdB!DV zAReVAOCg#JS?(;Kjl3&5Vh~*D!^dV%%QLab=Q)3GvSggINCwiw2LI(&z|vDDV_FRl zNdy>OuY+eZ`}w$zq}ze^P|Lo6&=*qR-g*kh|0=4>5WQ1`K z2E*SRkpKh{d)AAtdcyZd$A|B_c*h?XvaW$!RG%aKZw03xg8zZl*_H2j&-K^7&wcge zelBnwQug)N@;{F`{i z#W%eF?VNX&Ce{k>5z~QI8zGh89|(dI zTSyc?@|)-~0)WW@!n8wEK-|7LtI5#L(E1UZV0-JS5JD7l5pfCcjUXOzd1vhs^gX6= z5R)D9=n2X1!+g=i$R(c#f{Bp4W{$AfXmG`_Wti-lNS(g=pE3oubJ~b(-#wzn`tT`) z3Fag_l%}P9MU7iNw~BW8UA>G*aPcsZT%G%|9WZ`1!pv?d_%G4T#e)PYlwe7mkI~aR z=o}=&dKHcM*b%fRSWloAkBW&HE}$A{2joFp>YjQ7-%(%a_$UAIX8Edb-Q@oMZ2CD~ z6eP>M6#4sV6ard!2rOCwg1wM)&UoSzfV)ndvzvWb1R)gIsZ{ODh4dc!o&)#($NzBk z1H5>$$vJJLvP`~2QV9x5aEkXW6Ep|-R19Lnj5S(Tea|%YgqZM>sKn#uLK25dx*U*B z4!mC!Pw|ZX5}8KLqj=I%XcCPx{y-JIY9)>B#`*c!KKQjzY?kmZQtZ?$fontmzRRa5JK~r3~=Y7v!N< z#K)1@1AT78m2G2hJ=K@T(IHw7_OImBF6yd2?wdqNGxpBgJ=in6tsMx2orTT23y9m=sMCjxG% zAzWq2(}b$voPj1j`kAwejk=*aYK{4!MAQy^-e3BH=ob!P$@*e$2@LyORdjyJXy8bU zN_iSBQ&LnyVY*c;ylRZ0krV{=AT<_pcPS*L132T7njibWZ@=dJmtB75J)Fxu_peo= zr4!p=DJ*TBF&Ey;mH(gtpypo9g%>{2*UwS8JP#pagSwyO@dpQx3g3p{B1!YbO<618 zl|1b%=V)=XPKcGEm7{kJn>yvV)yzx@^fW2r)Y1FmO3?`}&e`APB%{LNqJvpxS5$@l zFOp6@uk*zcKGgC#vH%-OtQsnbtoAKaW~{Nz8VMKISnto|K0C;fD$ou$SDLWCqOh9a zU`9{2QbqsT?ddb|6{An*a;&!^ylcClv?XXQqIkSt-fDNAzhM)U&uK}bRc z?#(Z{ev=Ix z>nI zz|C^CKNR0)GHL(-mvQjyC;Iwj1;ont*(^cEpyp(B;u{12{P?^$fs}ar-}tA`_}U-; z%@0aX-E6UDinE%&Z!$8{Y_Xy(jf>QdJk;9@*qmv-&RITW4ttwW0VhRDSQSzSlZK#$ zwmD>Uy66;rQRMGagH55G3Qg;f6^ia@G`n=l}fS!=w}7B$Eh%nn-V%7m&5TPYSKM#kn$sU|p*99}D4r z&G2h}c{i>Ur=_ z{@KUQyYlNAcR$m419u&?qpUx8X;aXNC@vEY6Fc|r-ShutUBZE0w1N*t{7eD^)2l$ispTmc4yo7u2TBY4)P&UgMRs%ZEH>(2E8nzyQ{=qTp zNfHo?SzDj16bKD5zlklYVhO3P&H|74O=7I6i&W__{zw8#uYzH?l^?o*>ZUx_+2!XZ!9Q)$60) zKS5gO^A-}5w;+aLcpp#DZFB5M4&Ec_*x^Xy#q5SE-4aNf_bnB0Yw)Ar_CNXe@A!+| z<}rjV>PTfpOiIUn^c0Y?xKZaO2kb5n^t-~|w;aGF#_1NWW94Zz|M=hDdES+;Uh_xT zx8kzfEuX#ROw5mChZOI?@oOu=UzTpqArWXo`*c}5_lZvczUDcf=DoLGGr|u(C@FfJ zsHx@IOpjW^p)q%0G=i^kD`4Y}d^!j9qmxD_BE+_w^3Whv!ymo#FhBiMSN^xUfp7o* z&ph`Z{Ov!v>_N_NHaN5rIJDW~RvMaAG=>I5VhH|2h55zs=pL;(aYp3e@xbvlAw0OB zyZ-w#xBr;${Qg()&UZeSeltTFNS+q4Lg2H^Tf!zOqbooYU~3b|WD)1fjW3S4G(s7O zOTP;uKX6 zU$F;n!Sn=TkUYJb_oz6^#K2hn@2*s0CzOQ46{bmceszXA;hZaL{^d{Jc>X!po)?aC z#+uSRU~Hc4S-bDp3BfgN4EJr?WXXLYpCwZ{X$nBZxbTd7xaEN-{_*>&zxypmv+zPW z2rD#;lFgZjSz5BJ63NWKOw7n864uk8Oe_*?mQ{{*6VeGnzs{<)tXa?0W&~Zwr=$4x zE+!kd!hin1F8$=?SA6x`f9A*a$Yp%;*tvXW{~CQ%S|X>cQNNhH07y)>J@e2o`{T=a z&wu|H-yb;R;=j&yZ@FYTyN7*ogNbetbQ991bd!E4m{uPWof(^&f~m;CSg!q=Spk?Y^ii(Y-a zcW2W1HB_4l3l0}X3gS4rt(1Z-GqsT(DTKIakgS1lCagR|xcW7TU%c*v7o2zP!80G= z9N#kCY)JJA%mYXG#HZH~qxbpUf+@*P6QZLlp;WPH`ogN^nbeg58n0u zIUo7WUwDJnb~tg#wh)`hs(umIi3cKU$JV&xy6Q7G@PcoBBS$}jF7t`Cr|KW z*`mv5)Dm^zRjcH?gyOf;VrN8D#j@*SwEVp!S;snOtecSa&PQz~4glYI$!B`(LXRh& z(oG@T{|d<-X+wPcyQOHJ-t=E2tc|_(#kBgGb{{lgl5pv8%fWlrI8q0z!KyiR^$nN4 z?y`e7zWSCAbI08`-t~bE9{5Df({7o)@tkwcnNlCzrad!q+;6g}tN2O6=_YAwl}X(# zBV?J7vUCsbQBh9EYDpRkLr+9@(|(o%|4Gk(ghVpvlk;`a&@nGTF+TX|3rV(^6VS!` z=Kau${j7~K#Q^#wTz<&|`!_f|JHguPKgt`9{p_!O`nnHZ_aXk#n_tEKx8`bGw{}np z2KVILSRI*rgsfT%)qaqJaPG6<8^813Gr#Fu?ws7kbJn(5+fP>It*k>UgBcwcRyiKqVQ1F*Bp3Ggw-_J>Kp7GYf)y2V`TxX;DYyF@y;CL%#0-HrqOf9T^?Cd6|zxYY+=q9 z=UMH+iOv~xc0D}*nV;)~P8@C<+}a&H>)W6G^;f>?#`nLApZw8x^4tq=Z^n|;k&x77 zYo55=_H;m0vW@SB7q9d8e&~9B>wo;-#n*mI*nbNzax>O8J;YVm5PIogGN-Ws+taI3Vm??b?)j(luK`T#4k5enjfoe@_fc8xL5}fPoJwb0c5ojDbuh|SeQ;k$o zGwWA5_RIa-euKa9!{3W;fXpN2LN|8bRfNqv5DR4C$d#m|7@6xDOy{bL^JNkG_2I|{ ziwetjzW|odu1vYQkZpm(mMRT(*RTruug<&SIG@_zb1Y;n^hpw$B=jyZ55{J#IE0l5 zt4Y{c!frgfT^KS#ATo+-3=|qG$7s5g!;Zr2zH`(|Fz-r%v*S#J1sl5Wu zlqNzgJqVLTkHk8wzQn0Bo3F}-Q=F$y6XvdET|BK;G?I!^i6Ls#?W9m;XUqVaQ7(%~ zzqqH<7fs?h+RKqnkq-~_+GU!p?)q;4d_aT0);8F=>t?>MElOwE6*)(4PlFbb+8q6| zRjy{uHG|OODlfhbPJ5IJu^Q1ta`Otib1SU1t7{vk(W=JJ`(Z9FyYLFGvPEi;2CI#RQKl)xsiOqtRdX1z2b72_%h&8j&Sp{y@CD!xi z(g4qX_SWigE|`;bY2qrgX2zlOKg_lN+eJSZHs1V$vs+fU^~3M}wVpq^@pA6F%X8vE zn9VZ3ZL$VuoQ z;TG<@^*pR$PMfLM){XJc)VZwbQf^D{5=s4l2z)nJUjBEUtOVeD*_(Dy8n6F&dHKPnNj)29Hkp;2F+txi#w1DJL-oB!=%{)kI{_`A^)Anm-iep1q* z{Jv@FGYTMmwv{sT25g@SYahp5w6wLv3Q2GQp$S_4KUt-r4G4rw;dx*C729zC{+g+4 z=}WQQyFn7zXl(H(`!A>*kL{ib+FN^TZ$0*>=pjgrCsA*ofG2J42R@ry>`(dMj|vNL z!MiQ`4yB^16YJYebH=Lw_+6jfW@~H5CzO*K2}KLGY_=wn%!-)c8()2!{YfTLOYTTJ zO_@mU9IP7Cr$-K*^YS<8yTAHP@1NJSD}tL>`Sa*3HfMBUUz}4N-r(G(=e)khX~b70 zZl+Bj}Q#UpYT zP!cm=ub`5Gc?GEV@w%=3m!^^cc?S{+F5w3s9uYX)bMWRloOeGj(27<9aUL>swCzKG zpk;sPnOY)ri3-KJMOl{d&PbJn*g4u@G#CWKaocTEwoaUUDRw6?whQ)2>ZyExm7Mjg zC*zJ8ulH-@qAz>e)_?fP9Tk7&`yIUrCpsbkrws%1qx&Dp1;iJ-+v6R7_*;j6ar;j{ z)OeWHY{iP1D~{fpeP$ki0s^>5WyMj#8;Ga3B3bJfAe@Kc9Lv6uiA zzm?&rY$0woashH9BO9e%@Qm$!n;gUy6js3{yjd}VFo-FeMI1AT%2Zko`gIQ18=Sqm z$+>5p;DUWEhf_;Kr163aKI5&L*?ek_7!x!Qw8RSu&YhFTa1Jj7Q}8xjift? ze?zhTj6-)mS@*_{i*t|sjla(?ecR6>V${B)Pnr1V%g()=92Cc*({Tt^4VnyD#Yq$< zQET)#{MbK#<Z8%=%LiFIKSDhX_7ym*L2 zAf^ydF(i=`)MSdn^&fvavCmAbB?({;nPPwv$b4(WvU!gH(!letxm~xJT5+x~vgvNv z?INfOs!FDbN+y^20Fy|Qt$pY=l(rUv81xZM5mZqP^i=fX^9JiJOW%#`I7j5xTMpy| zpkE?#p8~O2E~tlO;N_Rx`~^t>0QlBl{BGX-hF_*j^%(Tk+)12(-ORfFT3N|b5`Ztcs>`gN z&cXmoSOQ)%z303B>)*ZOK^}BMYI-{N07qL-a^(n2@wQMrvn5yM-FSU^>;eB_snn13 z`+H-7duwk!p>@AKyqMP`iuDB4mDXgjh*8MX`5S0NwJ?8eH0aA=LIwXQM8s5mmPIpV zWu*sAM%(jew^o5Z`d#~sLO=YejI;*J#422FOE+-swRbji_Nk5rg4z3L@Z=Gk&tv&i z9n{%vIQE`dJ7H5iaSCCQJ<-)Ws68%({NIUDxy;N~9Q2Ym+o52rDwMl#U!mV*VSBQC zGTZ`J9&1OVWN-|=m={ri7P6I#4WW6%#S?r<+UT}NPug(^vk&X)wB zr4SV2gYZ-T{)+X6<3y&hm^_GI8Z9`@%W|X0o1k3>b0Y?$O3=%Mb$w!6!_;A`%1$zJ2h< zk2Y+aU=^x?aCY(s(tJcF&YO8pCi>x5;OoEkZr3q2aspsW+ml%#21+)Y?kcvrimiFW zc66B)-3h4^VsBWds1^m2l#u|s1Qx04o+$!t!D$D-p{<%tZvV4YbT$|jyPasOD|n5{ zj)JzSQk)tbu_n977l^EE0mohtl z6W;xvi@irXfleWKVqFuHojx6a;Y3Kni!M}#MW6|UPSHt)e&l>^;N}~lI7v0Mt|8U| ztAc5RXc|m1vtab%!E(csrC=7Uqi$(|&KbQ=L?6-6LEYw86-NQ&zMC=uY6w@-^QW(S z>v#OUH%^T8=^DDW$vkb7q9=$FrDLv!Wl9Q@WCS%#l+Hn4EVFAnbtu?$5imV)VkoKE-i&G$^cOgbh$fVd3zkHv>0CWj_q(`XBotga$WotV~% z$+Tmwj;wm4^0~iHwER++I}+w{)K?%Fbu2{5#>0`R9^<~-cWwWUgtJrbtRlHxQXF}I zkmq0Z1y29~-Xxd5f)Ctw^>@eL{RLii`SnXXzde+L(L=5#v^$c9f+YCyJ=~5081>$A zyn{PFxAL23^AT5O7E++?DrR0De;2@9cFI}G5S{C3M04+FsbY1rhV>ioc>i(wqlo6% zoxpVh(d8FtJ+k-?7NrPj?b`jhMBYBk$yz@e`p!_SmCRF);6w^ zbdZ>M?+s7K;>d+&X&=t*cH0#{3s*}5Jm)#$^f?!57Pc-J4?^tb-sXYO)JxRSE ziWgJExm_Y(vICzpLx-U|8|1@HZ0PBiZ7zYX=(sDVji zYF$h++u){;gBa~t46 z8@{L#fMH!L=f7b0_d5HX?|8W1nepszI3O3j;kWG8_r3nyt1siejkEG!c9CRW%p{L` zC=iH+1At|}yAHqw_?>q>!~eCHtcRYd<^Wx(Jbo=%^@V32aXJu93TspYy^EOuXt`G( z`Rtz^K-=6HlLoc6_ezyy5Z(xxo~X%ZQ2_{&LR1J>u(fv6*Z=yn*>~=Krp-3YE2wg| zuaZ#nIH{4aMpI3wg2Tx+^GSd!YqqO(W~%gVLI{c$`2sUfk0V*m*n=3}60QXLm|eR| zKf#Ss4(So=`JGj|x`is?&|7ovRH(p6(+NHXL=?ecg5es&chK3M7Qo(mim$X(=@(S& zG1f2ncQnuEn*$37@lhq}x;x;x3}V{S@u3x6i}fF z&Lx6}wy#$wY#;mdM}s1l zeKJB4*cc=sA0|q>4Ex7af_^bJVHo@Kk?G*Gu8z2QfFpePhV#+5^9;+$l`3kQ8p?}MZ|Lxz&Qo|aCbMJv<$9fkS z2sjr>DtPk*1Xun$+=7gMTc}K^G(Yz0l+GKy0~JRZDP$MJ;o(+gX-T{y-}tUDTORi0 z0>{^Glgt|QD&IWcr5Tbi0F3jLNkq?zUN&Zynxg(NDr0dMN1Me78tp5 z&y;bKvWuN}asO5KaE%tueH0>ETDt}9EkjqXjgY`6Pb%WUJI`won-e8CB~(3)L>k{S zbxW^GbFSiz&{oVgR?~yr`)4}@fO4?6(lsciJLR{r99M0DqI` zy=?RuC>($^jzqAKZIT7CB6pu=u>AnY&P`7wrJ^qg-JA5Mf!+$5H?$G4(4me&hJFrkt&T0}&3k9c!}*2fLd6ZN-6k z#lCsP{&~e}->|=H*cT&yUbA8~69Tn){79g4#R@p5-CCw2ok)=kEa|4?B%s((=8d9| z0{x>qgJ(3e#o2mjxa^cS*5@8LqrtgM$d$pGM9ag!7XkLxQ#=89e12F1>2G)+UrOSZ zKG8l(gw#%|;yFw`)luL_NAiyXCn{z=&Pb2nPr1cZe5I>%g3`Bq>XZAVAKrM`0Lf0# z9SKAAuTa64Uvo>n$^O2SH^U>R$u}$g& z;sWA^6e1ulV!9Us_SW8dJQcK)o~QxuB1r?@DQ35FWP?ZHl)9^k%Fm;#ID=}k^vxoT zk`sdCl3Fl1nZhG>^6QZhh$w44O*Hxk-~A{1IdN<;J}1L$pDhFEqjbt*{|XLj`0HQy z@h+9!SD}eCQu>`D5Iz0S^PhLQgD|+0I@{R}U*-UqBRU&m)IzqU^hJ`F(ylpR4R2J^DB%=xz(WhbOgLxX0~g8u^S@*h007=_q>v{_yZn)U;(aesX5whw7RTZy_fNJtGM#a3(y=j#Y&DU2P+A{pWrA-KN+hYn ziO1neman6#U&0~I;oP9{C*}KEl7q$lIuL5T>7%89oV&8U;~|&Fa8rHeGu%VF*tVE>3ofXsz%+T(fKd#*;(z`EC^U3lR7@9NUJg>12Jc)=@Q)mKX6tNhbt zFW-^qNWz)HmeG$j%&yr8DS;m$rivCvN)>Giw3KAPmzP3xuJ8Z^xcSy|vg)tp1YozB z?(Pi3Ob9NgYG3{A4?o%W-;KM3^SDU1NQFjqTP$t5l(5|9W7PRo45!>?NP!E4chC!LO7V zzS%^Gl800s2%#HPtMd0O6LU4tL-kwjrH%`a9N?T7aL!X}#WXhT?`l>$hfBuHC$=l2 z4;`8+Rx~g*MJ$ngq;rXg$J3H5&`6+;`&d&)9eYd@xP*!$Q6VW%^^PWH5+I`VPMArc zNf0a|KGBA(X^bVDbaWMLOsiL(c{G2Z8b}QdFae`Zc(-sda8Zy*mnF8hh;fS(>-^!r z`|-4o%{ar18T-3Ls8Q#M3Ue>C&JppbdBnUralH!?U2we%zH=cYCjn898bnFVL(i<* z3n72L*CyL5b7GL*H#Yapbj$A#t*h%8Bp|)99jA^|&tYw&nK;&@$E&074$-!ejmFV6 zJ#&mcIJ%}~CN;q)T<7qb4Y7J>Byo84)G0rnoj*NW=%`^L`ER9ha?BIRh@IEr-$Mdy zB-tjl6}1%GF;P?^CfRvBiJ|3X<)uTr&n48iFrPA|Wv0fwHafqLGnN0*uCYB-nx!Ra zF8`T&2td=h4Yt4#apuht zP1ttm`h>1sb*-NqJ`&cR{yve_|c$bZ~b|OuqX3FZCz~yj_)&ga8-}SM!R{47U?Dvs+AKyr64qS zud%*OvI*4`CaXtr!Km66nXj>0MN*v8M~9O+eXI#ycKBcnoR~DQ+Ml%h$3_HhXx-)N z+IGz5YdI&vK=h^T3o_!wZu~rgvlq9eqMS2K{O6FilbSAW zlp(i5Vs?Qm&c7#O7BNjD8tQO}YzEr#*L^6HdTvRyZ>+TqQBzM$9&PJkp7SrnyELdC?YN># zldCd-P77=u<{P}{$W8Y*j4(~}L>=dt4Q6_YkBU0ORZ7F({f-YoU^^`$^s=1)m~9V0 zk}TaVGr0ZdZ#XOaP+tt&1a9sr?wud{v&uYNt7C>PB@IIe5Ymgo^@_W~Q z>x&|r5B802tU%?Xub`1S*5Xo-LS*!cdPrgtO(Z7*u_8qQHF1VVaOM#6guNERpYwHa z+c&E87tYzQ4O?eGXh^k?CR;>#ka^q>lVkhS(Sy?Z3B7{rk0UeXP}s+r+OQTQem-I1 z9ZshBy3S*4DF;kviiwik5O8IYWIuT+z*755iI#13BWcu}%dB`#PRe(@1TlxxoZP6d z@J?{nk#tIER+t9feeb0iAds}!oQnM1m=q)*hp&C9C&aDWCIjR&SZ@Ua^Yu)R6- z`74%57(4E?C7Hw_26~sigXetNmwWL>xN%ESePmJ|odii`=f zE~y-tt@A(CtizU!Km~>@}2jB*9^L-WVzxbRt9-}#7o4Ri34vAr~Xk$8Skwx z?zORE+w%$i`qbugm*T$8P46acZX>#aZ_WU3tglxb-FVx3e)0BS{x|=8>$iXK->km- zr+$OCcc1%&aA0GVLw&=lZjsQ3D8gUm``Xi6<^}~nr%egcr#X6*+ieZ%I3jjq&pFuANbd-#=SMg> zg22mPaKurE-2X=fZ_d0+ihB@^gQkcVKOVGC_)MsCxt-x$!dn8f?N!kp&-=ny{!16wX=7YM+p1PE~H;oB~igBO3v zCjbC^>kDsK1jYqbVp-QGGbI(YN5&!51b_IyE}NajJx;QX(CN(0M^}O+#^$&J<@W)Kx>{mkB}3mpQ*zHex6li8EA&O~$BfDf35gMEYv_eHY!q1Q4%K z^$^-jn8`#wE9%F)#hJ`9N0-?a{M>)P?B~As`&U+p+kIu54fs|FTFQ+Impo1#ijgFP zE=dL?Knz?zCIPt7H(_u6d0jPq6J^_1q^2=HIjYPrS)ZH}tkxdZ=WIUk%Rl-fa^1np zU&?F0_ci>3pS_0v=YyBIlL(jW(4N9rKD>)bv0gocO%_c$&ff~oO-S~-5 zUYaFT3z=$}(!8TcF^}Y7V9~NoOlq!v`OAI6I|Z%E4=2T~3u&E{h_ONxC#FJ@QE)iB z^NE#YMZ_u6gLNM3gOP?4Zi3{h!xQh=JhIMBpG0CRjZb5FKq&A3h45#)&UM%iFM9Fa z2RAr--a{|~4h^>0g?&D032>dlcIjoFjs{RPDhq#iUKyqjF z#Nm6t;{9KU=kE)W09^YIzw6!w{E=ro6Owjz!WMmX8MA{3w|{o!W0&ctx{7Um0>{V; zc#jXz3DIkA$|VCj8vfc}`2@07o*dl;|1Y0f8P$L?aPE4x;17TQkK%p~_(g)4#@=Lx zxGT*YmoLH4oRTD4ZeoTv%cQ_G^!g(yO{m-|O=zfPS@37)W|!M4i;XZp!~5uj#`kG^ zLQK98bz1QOmogIJOTV`CP7Mf4pq+}7^!Sx5_tqD7CAwH+Zcd*zgl?^6rB&t!do zz3v6y_+tLuuRf3Y3H-cgUxfV;)>;Ug(EcfKc{sg4<4v|+v}?XcO6ffOPk zM0_?g$!$#$Gw2+t_jwP@Xs6;(F{viZc+1IJbQoG@BU3UD5R(p#aGH~eg(#3MVIe)18u0gUZ=CDNB>fxCpJpHMkSvVxyzVgG|O!;QqzWhnlMNCtKX@8!Q`C>_1E zw6;@!!#zasPfI+YC`KG)%OubMUDXq%=0N+w>+gP`yLC8-ev*gjLx(vVw*xESbwL|s zOaL6b^s4)MeBD!7g)@&RNqp+5?hUm0{gTKKlSwD-0HVtZ`^*2|ExpX48eBD7=N-R) zA$`u~M{)9O`<{b0!%pu;5@Y5j&J+92;o{f4epYqt!!O~fX=iLxu->7w2qJkDDx3y2 z+15eVu*Dy}>maiSA@x}-h=o4u!W2+X9ejg}f1BsO>?xA~9<*1b001BWNkl=mop9o^`{V$y4<zp!&PH@ zOP6meU$XtGr)1^=tkF8+7W{{wzw)hr`|nKlGoMeHrR00K72aEn(I5B?bI-Gs^o4sG!xH@`rRm#w3s>_H*Bt;zC^Uu0K(m0j|N zZTMSW@uv@9>5Sg(bC4l^A_)YgycG!#*m9AczE8c+aR=U0d*-esuG zsLiMZ6;IA#ul@9O{KZE>wdm-}OI8p|X*F8xJN|N#_P?$n2kvp-`Bz=axsqv=;@7gJ zOoppvIPr2Bc)DFFyuoOkl-ol+#0{pr{{y!o%>h)+t!CPNnVXS5gFUZluP7>jGd7Q& zCuiOJi>3eo;MouPlOYeF5dTgL0dQ-hD=?}0Smq4x|MRbHSp>(j1E$6?T54QQD?&EX@z_2FvJ1t+2@>KAlc zbi3vTsh%xs%JQeLR0Gb|{lYzhqSj$~MCESF85@I~NPGINCr~69Sg{Q@Ed{afJB&^W zBH^X{U1n7&9$aEk$DhCJAF&BeQjK{jZsA`2l2a`M_t6aq2o@~o9>)Lz5z+!){JL{q z{r%5vM$Gmn%>A6?qQ_Mo<7z?Jn$px=se+33Ssf@Mrb{H?)cS&6vw*g!)%eO&)yGJB z2yOVG|MhUv6!OBrR;FLhm1;6-wN$sM&t#NK;cXXwa0gso5OoA~Vg8$}#%ilEmwt8; z@JTsDJ5mnd2K#OgE)&_OO^LKNnseOH<*y`+x^zzAtx8mbfI(e^WU0~-#rUI4kjayo@(&h}j&{rF?S_kFqa|62{81ed|m zx~zv9ofs%B@Ee!hr=n3$AW#KCouEFGh-hE%97GZw-qz>&woFb~M-9vhNlxr6j*KRZ zeVNG>dSk$odxo#?l>&wsWD#P|MerD&1zl`O-GmKqr0UDQ_MW4y2NShfo1G|{DXCdv zLnD()jnQ*FhP1%g|C5}ci|~@)y~_p9Ie#2j%yIPT7LQI4!>H`0JL{iE|RjX=t>nKPH+Q5_Xp5ZUZby!`QybI+9RLxEJl zI;#J4C108DeYZ~`O{o&hRw&!jPqHs)DAdzTNjD}tJ(8HDGHIJ#oCUuw+ zJ4I!O>jLlmiZ^pM;8K9p0*b53*v-}+a)~`iW=m6oyvA}sfp!7E_4;#u`v-oc@+|hD z>t>VOE;dMx;`2~!6eWAadagtn1%y*5z!(0?Iz|arbw`e~arz#c7c;wt{kiH%Y@0}H>dx*LejH_mH-4y8G&I4e*2pBy2hkuWBy2CU^x;}=?ukCGr z!q`A%mw9Xml>u9f>s{tuDFA{A&MGPq4(5Q@N(rH(xh~LNBRL{{5us{9oS<473p2sgnKL_3n47v>QvA$i z*qAf+36CQOV&r3gGvVS(wn!1YShLNte&?|WG-s>bCn zr4CPA!7B=V~C&(do*U-tTQ7N>LB&HeyvRRmZO zp*vCBl7(t8D>Ng9ic*RbUOjJdeD_oT61P!I?<5gqjqkUVGkERiPKAzCp5O>oy6WdX zdgs7q=cuwm?tT3w;9dDNRtJMSK@v1rj@tDC`P@=Iv>?Y#ns7RYnh9gCg-&1|PoQ2` zF0K^;t3ymM*Fko8jbshv=FT){^Q!y2i3yCb#=BfY3=~|l(2L56*ZVl=!De0h^9Lc& zBLOdZ{k>lIV?P-V(JnSg?y7M+-95}a)#O^mYC>{Uxrc5GdDNW>6Z%45#j4lG?MPi` zTnw~3@mR#=Rl_Rl$CS%MN2tpaOnnj30OqvNyEVH5NSPf_+Vn;4zsvJePBtfoGG~!H z+N=jjGdH@%_;8$QYnaW6@iew-aCwKt3_?mYvx_gk?pl8IpB~D>XNUo`mcgylpw!Om zXObJ5heAQ9YT?YYdFq!u^7gxEl!91j|K(Iyds>ajmpCyqq{@T4-WnPy6vN)!7YQX- z%@mx|y6-4vHBns3+jNmvzU9u%;5=eI0<2}eX^0{|qwWAJTu{L^;5OlDkH2`)66P7J zLOGvv24{FJP+|E?9Yld+O4kdtRD_d40_cu#1@HRfyJ3+E0@govIj`Jd2d#g9zmy`$ z%Ix>7&1=70Zgrn8x&i=z?|je)D+lk3-5aQUAg3> zZBn`Z^DuyW6?l;{;qM%6XQW!Fg3+Auy+3vh^$`X(t+1A`HB{WWcZTfWT#tG63S(mcC(042Y561UqL0Ewuvs+;bdCex+trY>oyt5Dk53yNou@y=XkZLJK z3(s=(Ao%srATq|3E^jlgDujLZQozRdfAHNmc<$MMxd>1aj{#q5wJ`KoY1O^m;BhCt z8JE`uZG>O>-TPkftnZ(U*`FVxb%{3jUS)*VRi%3iD=G0Q0N@LLNp3>KksNemx}7a{ z*}Y~=NGpYjjlmicE-jlw;#vW)bf8!Uuq&dT3J%Qtv(w(hM({Rd0{mOAfOh~>x-_Rt zR@w!ZJ}ZDZ@QXbY#zAl#Vk2D5Y;OVWZMan}j8eyG$Et7o@Z*^Q;ufG4jh4|VK7r3G z@Q^i`y16oT)iSF8?#KSc5w^~p;qn-f2KBp+yvWp71zQlD2w5`OTve&67%mh!aM}0{ zOQjqO1hLml2~B51dXgsFUptaVRROw zA9>!Tb;ovn88rn1YU z&k8hbYu|x+7ZWb>gfIQj=eGd=Jg)Emi68DX1GzZjts1)<*bT800$R3tf~!Bpd*p9F zb+aLy-f#ZK=s+e=3!$@e;*12Jq+k-x!#91T`3CNKt}T0WqxZ6Q>qHN5p^vwu-_}~J ztUd{En*GBkYnoh_lnyN^e`_;{BAYP|u=ukShO=HTAD}#IW!^br6mprk=S`Y$8XL`s z#%075(L4|<`$RHbqON8`VX@6s+gZcC{IvhqaLN>hXr1r5m2KGImJ9UMA zVJ|aWLfn2ZU5v(ak<28%iu>h6aXrCpi6Z{B_&|T<%4Egv3CMg zDOnO;|LqRa9xd+`I*Dj|EV>0r%jLd|^X^T#@o2_PM=tdTY|*+BawG4g+h|m&XhaZS!T%|G{gn!r6pS`!a*KyLu&k4E&{u*x2w?E;}5RYel2bVo)LM&t( zIT-EZ0J5h8zVH1H-bZJF#;o@~&X^8b{}ahUx;)VAgs{u?cQyQ*n8QntCNQD#r?J&+ zF$rM}ukgzWNEtZ@We#Gf+hHCvYG-kH6w&B$J~69D96$V}FMaH%`R4j^JpHxrFhZ4Z z;6ucGUL|@BA2?uIa5CppDko9xX<@z(FMi!UUiL#jDn`5ONY;92p|VKjGcF84lB81w zz!&-ov_eKn&POVjyk~MGF*rya1ASZt67vQquzVUS27YlU};*Il}WQ0FOWafBoO zQ%`#5H*jG(t=yvOse6g6to@W0KOS^f>qh{?bn%H_cgeZj>MnbkP!qhNJxP)J(whBb zNG{EXiAX5}T&1W{B_~Kw%q_EBdW>6(nn*>#7QqyY9-m~N{RO}DyZ2{4r$tf@q?I1I z_c(CiPy@}qWN~#!yBfaxX%~iTxqX-V*`<(u)!Y5%UVmguFIILV$s2VWi0a8h!0^pp zZ+y$0(0PfgUrwZY=0iUPEzfWHO5LEjG;xHGp2q{f?u)hnxQ86Mb9;{?e^)f3Cji)k zlEV5h`yTnrM$hcX@b(MucTzX2T)znDNhLH;Vd%bNUK?R}eN%x4Jno76xUhuH&3Q!} z4hTktmpsh82Qp~39w%4etyiCOCG&m5wCYp*4ATKRynfL##El;8{%@#*SP)Z%mm2R| zEOn&3$*4Zeq;XWe1L%5H;+H7GP;887stR$R;kvyuI8x7u$w<{Pt`kpp=zcGM!bf@d z_TTghj*R%;FN9FOD2?kzPrZe3Dz;e$Ze^8FTh9sj_1E9;g6I7BVL>gD!=m(lp^ErE z3+)sE;6K2si5iGjA=1og;yz&GjDHcISYfZt zs8zK8S)Dci9$`QZ#jGRcmNal!ETiTNFQ7*Pu2;khK*aKxkvCM&=E&$ci$z7vMNfL= zS9c!)bTlLPe*f9R^85;YgE6>v4w(RbTfN-wRmIo6@W(%Kl&Dq9WDnXgxFS?it`+St z^%lFOabCofDk#or$n@x~x*Nk$^DycVb&w@qcRcVXA3P+?rw{^4KS_ZGmd3U(vo^sko0ABlycaW3E5@_c;Cnc65EzusA zS=v_g@NpLM6#o9N#_v6ykH}%J@rSrJJ7VjgtBO=F6rQURh}6tQ(AL4!7hy~uvrnQ5 z9aWWZUQ1UId#1lv2u0XIEVKM(YtHsy&L{ofb&tzAmxn#>>bXBc1U6iD!8$UPB{soA zK<4-y8F$bOFt{`5wvVv`@Bj5To$eUr38$qwZtl=#kL#S0Tz5_&-vILzVtQs-{l#jPt$azUnk;S5~vJnLDF(NV~v>$fm$1nhFWtF zh#8kULfI^F0WW&xU0?k@-`U-kbn#yK;yYmosUIr(*+29;=Yz z^^VXMTkwwZW4^en2+-zgOyfNP!z8f?na&rKtBDnxt*6dPaxKSiG);7U4}G@RKWAq& zW2b6qokOHyWPv&fq=1Q|4M({`k8+hHc50Ycki92}&}hSE42)vNMUN9t4vE$Y>J6uX z##-n+o`mHs&Padxq(8aK;x)i0wst&=$-wZJ47C!g%zV-g6;{{KEJor~$Ub9}49+k2 z;`3kd=?V9~{fNrjB=2k(VVXy-WjkC8dCJTo(NRqjwvog}g~DJlV6B^0*+WF?Fefw} zsv%jfNLmvoVYI(JvDml`rg~(w*bgoq^2F^k!B;>*@)I0snS(%HiQtGfqJxSh{s3lhKl*$`*aEa^d5-ULZ1_p`eAAY z7C<|&{c{90BlWU(%bxc<;|-th{r7n<0A6;#r=L3*0hHDQZaO8Xo+0`EFMiZN@c8;uj0zHvRWi~xu&6MfNj{bCq!lEUgarn(P;ubGQtWM7s=(iV z+qu8>jOT6!+Wk!;vs&XUpocn+>>0@svQeqxNSI4xr{0u6wl$ex0a?whKnP!KPEV~< z>jqIaZwFiQvo%*GCmKLuHJsX0*8_ z<%H!(&K`WEwZlxBePmj3`uw6NzVi8kCTJ+`{LDT|Ckw@S4t8T+tcf_1uWp8Bdb*rg2w^}a%hDUla#(>M=H6Q!n6@g0T zEOHqGh_282g-RV_gM-=0NW?Jx_m};*^DCI{c@|7V z%TZ6xiE*832{}l?)YKd5l;q4M6Dfs2tjH>WinBg`*(2%+r(^`D*3E1HYOQ-Fd~x+O zDfdZqbLM)Soo>b=mAxXkW&F38;H@KCKzvK56RJ96`792P8iJ2>77)KnH#?Kt<&Qk& zE%)GUdIoLZd4x3BabZZ#I73`8N7eQCd0iY5`g9I!#1|4G<1Kj4uf2H#nl4!0#D}@3 z-6yBoXgXAOuvp;zVs%y|Y<6Jm7|0nDM|Qp(4AGX3D#3NhyOWy*qHxFO@>lpOm)LA{VWbRB-kk`PT8h?k<@+l*?MvTGELFl95$V(=y|^2BwQ% zi`DZ5sQa^jFoO>LEXFAzuN4KM7be6&mppkRG2T!rHreIEw{3s!xpIG}MXe6}_uC)- z%(u$j9{NRJ008i;uliHG%WHbcWtH?ffA8Oan14Exe|Cw+%2YgBpfxK-_scx!p(*c$ zWPZ43ZszhCs+Nt@uH;TU=HY(@qjKT7wa2=j5e*OWGBdycmjmiEQ{cxhejxZbCe&^j zf5yJ1V!P4zT6CH%oSf808|Kw2Trqhg1LWqys;-{^PEO z4KwPjxFG<}L-sQkdM(GhDGQCuh#QafJ{*HQvB8CX=Bc6z33QurJtgMj>~$5v)r@U} zv*MpU=C$YYhWYK7Iwkp*TyDIuyd=dVPS*2w%30%5hIAk#ryjw#Kko0IarQTTg~O`4 zcleu;V`aXc3w)AxS~{^F0nw5_P)=uC^AAaVG2kew05^yLdQF!pT@3ZsmU%Ssf>)i# z?ltB#D!y9M5eApgQe)^cWDQ)=eE>)UPkHP`a+K3Ykxj1$rNsmB&nv#lR8DY<2veaI zSJD9U8d4B4q4UKN&a12~!)*n+Nu%x?KFPb+D4ILkz-R6CK=2HoYiMaIn zKX}oXRI|?oP2TheK+GZ5(73~F)>}-1;H_8%58S+U>%R3OKxxTVlbQwl`3Q%7htHX# zo9Dg!LI2FRaa9p?1t(r@sJdVjq0T4BCYDwFP?g0V!5m8tq?z&SzkBZsp7HEaL)<+B z!fwN2Ap})?FsN`j;Iczel2dY@Tvm{Pp%Cbc08Z9tcxrv|uBvqZxyZ}$j_l`5?I_36 z9{U+g3U^JUIB{C!CwQ;Arv`>2BFYjGR-3aP;>DrEz9U@++c0_dw zIwk~q{}FPpzR-ixTO)bIsff!?2PbrsBGru4&Kzxa30>^`>oK2rdyy6^$X+D+X>9V%b%G^JQPLS#}?l;9@b_JzyVZ+Oy<5*&NCI$#IeKz0AZb z<7ZqPzL9gjbRTJY^Usupbiy4ctNwP$V;6(Evdd z{^qBdjTrd^S+Tsq#2?{sJ!0&Xpt|f?Y#v1 zGa%~;CA(TgoRASuEW|nQ`cZ%wSvo@)PudYW<7ZxaF7xB7HX`Oi<{ZwKHOI%L99&cH z;#7Mc^i@|q_LKF4TwP!d%Het#;-gXc2(VPCD=$f@l>QZ&Fgz7#tt}n?$dqkBCQYJY_7dW%UYOl5EDMZop_Gon?vswMgnI#F6x#lNg#oqTL1CaXB)LC$pm#7l^L^q zl-+ipSyI&b;%G-v@Te8(s#)RpsLMpDs9hkqDT{oZ<6T4TjXK_%JKD#d@YehA#_l#u z0qO;a;nhR-xUj&gZizN#E&4JYMh$C;bcmyS@WXdL6}fVh3E z>%_7s)p0Z>f;7&1@E}ePT>K(hy8hAwc+|Y4lHigg7!FT1BYE01nmDhsV^<#MUGEBD z%zY2D+oD}=z~SSPFPt3b?0M|{Sy+)02UuTh$-1IVg_%G2r4IR| zW>6<8Nk~{(zI(~|HPIxw(2@y8(3UVsj4MGuF~9UEpZH5AdJ_S}p_v`v|3{wlXSb5= zJDe&2*4Cq5`V;?zn!DbI^*NRSOt0nI-+#rC{VlFig;B@$GETx)-DHoQBU--flhOeg z&iBN^+|oSh{*So>rYB%`Zc zUR=@5Q@}zSb^YC6FV3R~9U2M~A&V-WY<1z-^k;bRrasR3A1^qE{rw`_tjpfp#+vo8 zCrnqT%rJ)+fB?6;D~~E6fYD>AGS>k_HukSvh&4 zkn0`|aGA>W)%|~F_IbcJZINK z7b+&*m?N#w)%U&N!I$#1`YIZ8m|qw!;pR>inOuy~2gN`j3f%(! z_gl|>^>=;m<~H+r#f(S}(c>gi(ZLyeY}H+#x{11C9ju6$E|Gv!>(u%jD-xHTd%!s( zOC}+hQx<-Y-Fyv4yFF$_<-K(HQ!SRnLT^kY72cKKo1J0K5$MRNq83M!wmGx?*i+wr zujS=$K9vc>${v|GxFL3xrx?)m{x>vakMHLJ;;aG)6VJ~)^P`K+M6!gLL$4q$a9*Tn1#!B5PTKYH%+SPyn8($`MYCzr&_>@-2aE8V$7BkuZW+!g{Nto}4RU?neY-aQW%{Gw=O_TVu0-S(s2( zkBH$!-@&&$`BVXL!n%tbx&sfp+eeoOz*@!h*;WU|L;BA@bm-mp>^?eoOr@^$(@N*8|`dQz585@U5HW-&K)BK9!UNWRu^_oYsOz&`J zr9n6b@A$d5j?d&QpNO`Jn>a+SV1H*!;~f?}Ih@Qiv%!CJWjkDa2hQTiXu{a9I|Q!# z1Sk~_rxhg6C@Hl>=C!d~m5=+-Jg{LcM@RR0$pb&hw^dhC<*yG=F-zDsCAr`MTB6FIOvJh(JybTqb+#+y;E- zqc8rRAO6WL!%ZOjqZ_t=D6+A@#o|XGh*IweaR!PHw1!cIRY~q8BNSya(5nM%oC}X} zq2jRY_NAS>#@pVk6RAe&tdVr~BfoGS`$q|wAYQQwvaQYJRdB9^I`;()5-^d%5U3CH zrT_Wq(?cz1XJDt{s5nezg{|1y+}<2ayFQaeaL#%Hc;DU2+D92fZ(zQ5@#jLY46Gnm za)8#++Vs+nzrGN1%l=K_sjWA$X2K)y{h>R`_U%p;05`B6`X@j8fg4lilHCX_^dHI)LfnL=xlB4Xm4w2K@t{24Q(NO+*a?{LK5x}b=U>FB% zF!F;sfVCpP@Fs|cz8KME3P}`Y?gg!sCRa33naTZM{`LRJQ^r>^$|dBy(3K5>xq=Rs zh+qt)D{_6zt*Zm_I#AHH@Z#5h$!|aF{E5)+ZKCW?^5Tj^9N$*9O&}l|N+zlep$sN! z2S|aZ)~R)1G*C#cZfVV}GFaNWK743FOvl-aQ>HnW;HsY4?>{)o*#gvD3J8Yt(1w_3)Luk#5iI0dY-u=J-$U)t0GO8E7zhH%g8EqaF-Eh45m;MRfUOn_a z6afoz+@uMobErA!6X2<+MQ~c=P3nx~3M0BnP+6v}l-==ynK?FEV;q&e(Rsh~uz%uP zN1urm2yMhg!=1^-W(YoBpBaL;2&&3U-+b5KJ^x4RG4tu!=xDF$ z;<0U=#fltEED*Bv&WXB;ojm0OaB6+lHFW-|u*N;5;SAQv8!`OK?T!L0eI;YDcT%#>65b!G1wSo3(QtGTft;~_7 zblJw?ldmrUGKU}(0zj0D%j<-UJjy|3E4csr5E$%UvjDd zxRG@$*}en+^~>MAoR_RiCvLP<&#Mjcsec^3Wpu^gG#PaQ(NGO!Z_B{Slm4b_UvdI` zq^ZGagh|KtV=p`7D>?VUGs1XCFI_nS79SnS1C1o>5?}9ITqF6+&;9K~665_DIv30> zXopiqg-UChoBjHSWI!b2zmkdvg06&l6&! zs6WDy(H!j(bNjMaJnG{-b#%ECsuIiwRA5rHxqdkSWT_5FOUaMxu})0_xNZS$gcrU3 z-Y@^I@7s#(93L?^A)>zcgjKBzvb2F3w)rUl;MDqD2c-0!ze*@^FRrE49rojtSw3-u z##$zq!#Rh!3i12QQbXmhVsGE5(%GCHI>Ky&TQ5HHq}Sh~(=wx9X`YGX1vYu0Qn%*7E+Qxk$>(JQuF)76W@hq{8; z?W2fzub5EjBbQx5z1BhA1Sm5tm)sO1AT7;vuIR7`Kl5w%pB?6k{+M@?@fwK3q)!GbU^_WsP?Ag4 zStT|Wfq5lpm*DUf+?}8L@%Lg)xniN!^-tVX)}~QzP%W%5v8v@$G;e&%`}PiT1W?(; zP4<|@O}5<}oewI3n}+~o5%TqBF2jK~rt*oL6RKmz;WV~KBN~@cD`-G=ne575bSAxh zaqbDyV;bq`Oqe&-Pk8fPd3!#ykMuR@ z0+=u6G3Wu3XFa#sBrQCV)|)JhDkmzRaiRE`m=2M1 zr`D-;BdY}a6t&BYE)JJ}KaTUh=gO3e|DbHJD0L)M5ax9G81uGaEJny@aYp#tC%^G) zc-{0)MduF$3%=62j0Nj?3Cr?%IrBd-4hR{1G{xcis7>#L|MvKgefJArs8cpv!=w^& zm`*fx9y>G(6J{aE!qp3(V-q4#$k(9r9kP;hP&~NGR270Za`ag0bp|~o*JlG@>Y@#y z9W#iz9z{RVEb$Z5%Rj>_e*boelB*ul%L*l!_o_4dA*(tBA`J^1-1%jCJxU6``*Je!I?YUmjCy^ybDM^GcHYX zPm&XsDLG4e`|^+UC8ScF*;VlSzxldwh-REf;xLyW)>O`OGQ12v`$xPWrV1xD!FQzG zk@6;^`Y@BGm^S24ayCkOdoHPd;>*X*l!YZkDn_}ZZAaL+V>({2@C{z(%nzUUJ5Ty+ z9y$3dpFq@d`E&xfswAth+Q``Yqy$j&tffVJjpcN>;O+PPt@D3kBA9ikZv&VTs)+aY zFRI^9tuNvg@Xq0+Bjp`t?UY3vF8}fjm9{)Db^c3>U&$mg$voaIX!Q`|YL{s{VI&`U z@+%%X{}5nXyJ$7<^{u7X4&;(#(zMG4VZ8t-X(lD8+(FY>Ajgg$`?f!M`mg@~TutRF zHVj(>aA~D>Lmh2D=19m^@J_ou zsp{Zo5owaZPyL@S<+^Jiw|x>}*|1~Gmy*5@88X24YNlMg|5LAO;D3JmyU*U|w!1Ba z0MnYiV13eIPZV-%NW59`?Z4WwXRBnu>lbyt=&DW1oPQk=fE7ZVix&VI==l~vl(yZEnp4%zGXA61xPHXWT1LFS6uMa zZ@w*`_%P(-B~wd_IALJ64`kL(98@K&i`W3o3>4YkpFC>kS$_b#rzgf$U;|^S8|+mb z+p!o0nHZ@g;gx-X!Cc~e;T`proZaVymQO}EyK>m=yCA7a{UEQ53x>}s800w+5UT}f z3|hc`TGnNe=3k{AyARWjqL^{-oz z=*E~jDod?zoS|P=0X&{3y^!P&m=-C`;LJ3~iW)9i$knvTIdf!t% zEnIO{BI}4VT1TA{(>k%J990f%bcM%~Tx4gIAXhZGW?~gV6KHYxqcY~JrW0Coxm=AB%P63m zkHTncFQk#ijMrw7;L}&z*X6F?jA5mBX~NcWOE0{3_@ zPkzl?KjE+D_9Uv1`{TfunT$6G8OMle?r1tsm<9N|9p={3NC{0TLrPCtSAO|S7*GH& zupijpHa6!J_rRthcF;D7%}U_1J96Rv(;srb$=`ioBN=q{CZtF$EnV&}_!Gy~PIT#M zBVs?PA9(Ha<-t!pg#g@y^@H+&Z{h5%YnBkoaQWB1TNMRj2gU?mvJT?9zq{nLSKVs< zVdqN<)|M6Y#MvA}#5w#J(|861d1Y*Y=6 z_dQuqQ5`(b8>-KVPy~{znB+Ol;sGyy%-`^Bayer_LPkdkS`Ygpu#n6p$-~93pn(;g z$2DNi4|1Mi!~f7rzwxE-`~Axkv#B-EcrEMTr zG#02tQESPX3su(}S$0@-ElD%$p|c+C5ido}P#NQ@8EtM!Ibk`Hvj-n(?J$#OADLF1 zKELRRuRV{q@7<}qnfYkNL$$siD5*Qz*EPu%OL0gYWTO&~mr>_KcA)sC=4p@o_%nay zXO9NFUzGCLSBjrGoB1NqwS*;K3JlGTTtjtLWwV7NMYPcJM0BtOcOW>3H7PdaRFSPu z)+}BCVu;H!8qbmG__}&I7W8a#n4VJwge&Rdc zsZ%N+sl@uCuWWr+>~wIcBKky7Fz29cR|+HDZAF>WRl;u*r<=NSr>_*_T3ZeKR37}AOzHmQEb?j zj@{8l{s?FO6Ov5D-ETP(j4L!RvSRyZ7_j zpyCz9=86a!R04tm(t{v~BBG*^fawWs64F)GsnhJe*IIMVasQZe?Y&PWh**Umd7hei z&Qp~-bxxhV_MCH!@s4-Auld5dF^><8;Zws&eZ{2D*3i8wRjL^UN0k!2COU;gMH4-h z6{kKkqA1ZNqRyD6BW(4%%tFE}SN>8Epq%V>^yU%Q(xnMi9kF;C`$rAl^>pSDw?#KS zl{?3eJo9bm@Q!o}ZK(x(Xh;$l!uNU1(033*?&*_kQ24W2UC4v7P66*))|4MV|6?zF z#sBHIaR!Y#RGX-yHW5$mWaQA^BPn5dyxlY$_)dwUN!$xa>R~3!*90S}C*yjRch(UwfUl;R`fY-3FxPR3%UiX!H{=Q-p zfWLqCOTMA>h1|kUamcJ>rFhNk4$}hjBV-MYcfR9pSD(t27PHk36>N_=q-7!?b6k%7 z^{28Q#rDjRCUd!+*Y@aLZsII{`iDM%jE4L+M=Hs#L?(U-2NY=2VGfCT7B~n@;SR`w;x)-_Sq*4_x4B%-HQ`y&2PJMrcI@ zES5{>3vWFU!Ka=%iJ1!o3AELHUj4YsdD`UjjCSgb;YldY3+KvfWj9tr^=Ir}h8vq(8ea ze?Gf2yP62DC6+yl7^XIyk^rEZCk{&r-vezm=$c!WrSl{BAJ6{BXZ`9gawFxa^c#-lE_#vf|7riBHK84CrtX-3LGaA@L0l&;M)kBFmnmt%R-Lv)`(MDCIbp2mpNSG!94v=%~mg@sCmNc z(Ryle78>H%a&w0 z!>_jbk^BByj@e-0yE^ixcI+F-nc{8CSWaeteG+Sx;H=McJhnt9hT|@K;%4?B=;|p4 z$$mbGBaC-;5LL$9gM=Mas#jQ>d}W7Z0_fsaa`iziz`ig6HmE?PfW!o?1*{S5DV z>I=>uG4F+-TZFLQy73o(eZ%neDF6T<07*naR5=k?{WuY}kKdA{SZUV=M`~*er%*S; zWUMZZc3Nu3uO#&@9n$D*MNC{M^{s{-+Dxavtvsr_%c#s+MHp z7UQfUkfL8^M9WcEv#d&6ufmH}i&XG}r(W@_7yZJhquIBEt0R@GX>{C6HHlQ)HEo_V zj^+@n$}qa`X*$sB=(=r^V9}A1Do&IdaLLTfERhR^zF?Gb4-%7w_?+$AWrH^8+P-Rf z{Ttpi;sYP_gs#muoOjvmsHkt`xxWT{4PNux>Odv;S6t&b>pt;<`#s|>)5ENhhpaN* z(yx$}G6^qL9Ze|reEI#9(3eZ>xc`R3C&^hxM; zvFwRrjxvFeL>DM^DkhJst!bx`hn;oFL*&f+o=5=x1M9he|H^+_WK}V_{IF%25Daba zteLT3`R5+f4*b?1JjnL3S(ko|CR`9gRSNL_IB)<~!Spg&kV?-g7~m>YW~`rdh`aD} zKmH!9k*Es+%S@2b(kv@!HF))+V6rUu^ z^saonVcJzz?1_$b1J!h-kdU;WwfX=XO-&_`tj4MAMcx)kz|bD_q&hI8LER>82VR8e zT5f61`NM}?$}`;OS&L4Rd7^eCZ-^*F=QEm;Jrx#iPs5guaTveMXloDe`oNj5dFv~0 zI+b2WsBaUxDhi!2kt8Zf^k}qDZlmHqkqI2XRn+$A2zDpNYnWd?^V<|`R6-v2&ZkY1 z5P_SaVJuVTSbpmf>S7C>EB~CCs%4alLhM70Bs)ywK{mS`wqqiSV(N}cTFW`Yh|Zr8t+^9{&2>r<|YdDx!7E^K4a%362Iq1zb z{f(qPcO1--l9S??rsjq&Jr<(oA%}8WEolydDj*V3g3{nZ@7UVpMKAvv<}>n?wR$v) zFL&+Wi;Rn8@(x1sL;KceC~gG5`ZMp|cO73v%et$e8!^*8cOirkv*d^_qM^+G-)!ur zn1Ogxj(W%TR{lp*NL2Gn?3FYQjH6{q^0=Q{c+;PpL)^;h?V?~JuDA^@u8skbc9J3g zLC7v9_g#PevX6cxpS!Q<1mHq>>~lGJvbiVV4}`$Io&k%2QV|$e;9`I)KDzJsN7sE| zRLmlzWtDY8V78}+~Xh-M0>Km@%>D**vz-oiKg_lH`(kOYG>5_9l4ub z{PefqdtvNDJ`B#3&Z@okhLN#I} z4sUBg>#1jchmJ{=NV^R?xoZ~cMDzyIlT1vjgAM)Xh}|rhlB!}tma>9y?yr}2fRaUY z)7~Cq5=X*ia{zHu4YuL?e(PsmdUr0r6qt88nE^B{<-3O~ha_dJJ2yrN#rWq)q7}pUij6E+@N(2B;B6%VDWO&IPiO*7 zY-xz-L@!HKmQBgu(QGE>fBOO?HKn)>V@9P@q2)YrMG~@VwGj6 z_hmjcq1?t6z5gR+AAK!iw0U#|f^_FK{OCoQuD$V|{y_ftH&MZlv@z zZIPPl(b?`oOH7J*$+5RUBsJv{Z1a$;-GP10KGv!^DOeFmVL^S|Q$dTOp+~};$YBoK zK5V>3?J`p7a2%Q3>%xaz$McK^SmmtG2Ha=SXh^IWc`fJsLW0j-%jq(_#}7}sPgFE%noy;-(hDF{PWkPG!O*KHWDGJ zktEPbhPa)!v}uD$eT1~T!5QrbpZ>;k7M8yF4vQ5UDl9oFiKJM84~`Y+avTS>NI8b$-RuzlRIweU*z%Z9UW?+_R4g=Q_ zdZ-j_;=ri0WJo}&fYa3&H*jCXC#=ev_R&0jtVrf?({77H2YLBLcc!0Njd^e*ihze{ z9>;AVEM{q>BmzVmVb1VSoenSm-|wF7vahww=sy5!nwH?f0KrvrCIGQv78T|Jb|GrQ z#gt*eFE#}*q;uY=B-dY|iZmfm)rx-ZG%n|L7oJNzf|Go8kOGKUpXEn0Eo2aE_8Jy# zfT2bG$Itweuk_>h6`ufn=t(bn$X+Z*;~t}+xTp-Y1mT5mJT`^*y#3B^yD#szl$8Oa z%f>wuqw>cA0a!JVII6O#tawio@?mJUIQ8i#Kjhxr|KZ!X$>I$tm422JD!69>>QhAG zV(LhJB#n%ND)0WzKR9c`$#csw-FnPAdK025(HU{!OMV+++j5)09rF}KhHg`e#He_2 zIrXwNM(%V@9+QQ5qALO^kz~1Hh9;ubG_hQ+ZbIWbVwlq=C3?Z9nzfYZ+}HonfB7`u zzJ3$UtPT){v7r{3Wfe4UtBmmhc8t(>Wc9F|P^F&Ve#-+t$mg$Iqc5H2{4P34LY5$M zQ%U_Gv}Cdu^3TCP3MZ0)5bBXEj{U+JVnsDmK!TuyC5Vgk z3cq#f{X8Sf+=A#5t(!5!Bd*GIVQTOiiP4z(BW%T+In-^l6SEAZ45&n^siY;wG0l(= zSWBB6=8Ys3waf{9L!%MjZE$LP@dfYr8r~I7V+NQD8KH>Fep_#a=F?TV!&gv13kX4M zurrTfFoTVTpZJcCo&QTeHxky?l}UsuBwQ68?Y@Lho<4dDR;9kmx^{qA$o&&_Xtk+? zPcff`F8Gmalq8AN8_p6Q^M$ydFp_0o5KwEVls@I$CnOK5q^L-gQ|fMqr~TA7v%5oM zQEV|}tQnEf0iUTHNF3^Ub>PA0ifIH7c=X|C$$h^;TGmCg$4UxN&l$HBt#hTdnu_#y zL}NqSCAcoKGwzvGmSy@=g8C?e_t9r~v5gdhqYa*UDj*_`_Q=hb>~it@lsM0}?ot2? zixPp5G;>1+_@aD~P{(!4KGG<~44f~nY6PjwCg(@`>{*7@z zw`yK;Olx)AFZWcl9=fNJ2_siCmYPZumU7aux1NhQ5un1N()31ckm% zfltf*|Kt&$;AzbbOmgWa0Wuw$Kq#|%-gpL-*&(ohm)OF1~XYPEao z9Mu3VyMi{W@qx{=F5}4OplS`%p4|$1@2O-)oO>$WWIAuCs!fi>IlB_*bRhf**iiXT z31OX)Zwq5cK*!YnAlvg1-uHCrWH#z4vRiZ7^x|i{{a(DSKZ6}0xsZ$K+j8}b4heOq zk~HT1ijb{C3hdt_v%vll&;Pb7pYxJmX|}1xQ+!yTc{lF8-$J|OESXwDL&{KoQX{I8 zESKn-0zyFD^%B}$G-^Fc^FD@ARG-1qWP32kl*);5I2`k7Z_bTu+-luut+aC;HJU`a z{+18FXP5W>r81l1fM6(dMzq9ZZP zs9p%H&imM+!E9vdEw#utT>4XgeW!h#(I+%G`r1P^C$&m#HR2|?(GhmK!)%9bwqu~j zVKNZ@2H1Z>?GnifNijw&CM4aF1EYjSMPvutJ(aulmz@93^LTqWohcyoyu3npYgfOb z?e73{8j(({#Fd;ClcMWk-w2VjnTuj%&4ZvZ zn`z*vf>K3?*CSZEkt>5JEY8HNTSjiYgMAO|_{PbROrQPNzwk~G&B^=_@4xWZo5s_w)!8GugV=@%qa$Y^b2g8%i}3;dHLJKF_}-;Um$&@Li{GXbC)FtR-|i(F5L06 z!AYf4Rs@TLB#vkf7lcuYnCsZ_J-ceSxI^Cw z+mo+(>$m>X=xboU7!)@*^i1>Z;1Z}0sEDi{{;Eb)ND*ecyyxd$RIj66uw+@T%+li7 zoNx;G&sYiA@wB%p0_JB}tdQt$UHKz>#!9jPU=;>w+*tlh#tr}Pb1y#sB`) zg39Hn=n)kpRfu&sIfKb*-1D9bz-DovWSAyP)le;i8oJ_|SNV=9T=T#`ew^p@?Vi!j zKGuE0tf#j?WIK=fITjV(a?XEnk5^QB`gAgr@ecFQV`)z4#;kJ+r#NBU87FUF{ERo< zhxhhp(78aW+YEu3-MaE;Y3Vxzdo1FeBrOMDsun+nA36WZ^MCPw)i7T7j8c<4K531>pRtjged`Ea)I){f3;PjjO(zlGGNEakT#u$%Roo7hVk?BI#4aQCO7voli(cb441DbTP!@ zxChmdF_!1+9k6S(UXkQ7%S#G_zjw5%&PMz-utFgu=!H>$Kn#*y%mw5!2SdI58(Yj@T%L(`McdD0H1u||N3@D)f_W9 znsA{nBIt@tiq2E(1_S7G%i9#VMh!719~6U@4`z?xn#Iz5Q^22n_}X!ucs~JhLl$?g)0!| zsXj8@c-to~xj8@bSQ?*(fOVPWBqDLOWx_HEa3_+0s1F%*-p1`Wd13x z-_8kVHue$xipWpCT#O_&uG(a~JA;$fx0rTkaLRZNZHu3+u|HjM!C!n8?~JErL!u;E zv(K`6sT~FTFJ^GcpC_MZmaH$YY6LcF_`auJ_8q_RV%tK;Q)E7Ag>gr-r55JU9SGu6 zW8u(x>^we7Q9{Ww+1?bNTqjisR9nEOq?`7LV7MNmA=S~k@=_H{RF6{GTig~-?XYKd zQa$p!*0+v6jF`@O_RoAXJ4XmWa57`4f^?ypR7g6a-BRJiA;s++5BIp|)^i{6UFUT- zb6^JjT-j~hkQd=KQ7@PSMGoh>Kbm0$eUH!g^OmFtI= zz(OHxaH-6l+u{5rCqO&`zx=XC-MGQ^wa+3z$sIe+JJit0)0&pF*_I-HVha~-BJ|D? z_QP5;<-o>a&gPZB@MgqA>Z!`epgCWf(FvpqLa_-IbJ;wg$_~6f7y)?C;j=D!=i9ex z#x&Hj$?hzbnUtaW*Q45DX$1{9whc7!e!~zPC4YFKC}-6)uA)(0k!|$lCXATNvZ@+$ z5#Rg3Zf(q+qN&IA9WE--0`qW3_D|*{wmDpV^%KvIJbdlbLq!#lF5|?hFm|)Pe81Qd znQ4u5$z#qz;(uKDn9O?8q$FIX_Uuvo6R`zUB77+TSeZ#%~;Ds0ZH8yCOO2>|FGYw~Q z@>-&IIrtAPsI2gpe>F)Y6HGfg+hV8NU|jX29(-^3{-aNQEH9w4{e1Wsv271nCAdim57R-$?6Pw zYM|;;milP~w_UTDls-C`0#E(MC!NIo&bt9M1}B{yk9=kW6oDXHWE3tzZFnC^!Dk^r z;Cue*3D=bD7BWp?%An@&O9y(leEsh+M(h|X_KvPjGrXBTA5Y6$xF>kMBbLV5<{N~5aKLXgkBcy6h zhvG}3?nopQnieE3DwM@-o8^ax1ah3B5*_^HGyeWrzxm>D2mp*gbHA!FBdO5dVg8mX zcKdpo$qdFlRZntCY&=1#1TLw7!^}~4I3G|6xX!_KbghE75LHk`lG?nj#3N>b<>hiT zPB;)^&18KNyr`&}UH|dRD=zx;GiY1(0Yo>(Yu0HN0q0k$j8X}SIwGS4Eq!!U0*`+1 z4G;f@$4;gWW&tdsBSHHSGb*eNWt6W}|9wp#JiSZ!5Ma9{#8NO7!zA^BM!~+6*6!3Z zvw}MGfBNQgxcSqJDQJ!x7k8@L3Y5u~W07R>pP1amKl*zQxILY}+us<|4}9a>dD-9o z*CA6KnPsC%8Cp(8;kFc=eYaBg3f%pxx1V~+r5_%BgojRz^-0Z6@O0Yat0^1N=eO4P zF!qEb^cEP066QRlRMBcr6UeasF;zegUVCo$r`+q@r!%|0WS1V7X1MJAwU{t)1_6m> zN;bpUR_C^Z?<&4QcE9~YKX7@^ZdK8w5n~B-vcndN%7l>~VcLz*CJ{(Ta>v*Ok)q@N zZ=r38fCqOI+w+5L_Dax@g|t;~Wm){Ct%k8(`jq!SsC^%>1>jpSho&OkzuIqgG2eDc z7CXOjRI|6g@>x9cVVm7})C9&`BX(+yxa33)!&%HSvLNO~4WdROy>ryzL>T{%ugO&F z-7&pLPX)<{vP)=slG}j!`?>bRhpR_C8`nYHg_Q6K0xlwz!!!;Sny&Qp7i~G*fH!wS zKasCuGyUQH-}8uv-Sd=#T-!vZBV+CY(FBiDJ0WRHOhT0G{AY2Ujo8s_pUj>6zkTgT z1OM%^$8w`nQWbGCpCxT8%g$4Ml~uTb0F(UF^&M5Um}jJ@)HuN1Ay*^M|MpLO=db

bG!!g}ZH6!2ZZZ7KTkbq;=>J|x30 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%0DyWP#|ECMiC5ML(;qA*|32On`5C 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 literal 9664 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/public/manifest.json b/public/manifest.json index 3eab7e6..e82f017 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.5.0", + "version": "2.5.2", "start_url": ".", "display": "standalone", "theme_color": "#000000", From 3ff5c7004449543b586bf391b3ae05ab2d322f2f Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 19 Oct 2023 00:02:32 +0200 Subject: [PATCH 35/78] feat: allow viewing of historic data --- package.json | 25 +- public/manifest.json | 2 +- src/components/PriceChart.tsx | 6 +- src/i18n/en/index.ts | 6 +- src/i18n/es/index.ts | 6 +- src/i18n/i18n-types.ts | 24 +- src/pages/Dashboard.tsx | 103 ++++-- src/utils/PriceUtils.spec.ts | 8 +- src/utils/PriceUtils.ts | 9 +- yarn.lock | 659 +++++++++++++++++----------------- 10 files changed, 443 insertions(+), 405 deletions(-) diff --git a/package.json b/package.json index 929c63c..5d01496 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,21 @@ { "name": "daithi-dashboard", - "version": "2.5.2", + "version": "2.6.0", "private": true, "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.14.12", - "@mui/material": "^5.14.12", - "@testing-library/jest-dom": "^6.1.3", + "@mui/icons-material": "^5.14.14", + "@mui/material": "^5.14.14", + "@mui/x-date-pickers": "^6.16.2", + "@testing-library/jest-dom": "^6.1.4", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.5.1", - "@types/jest": "^29.5.5", - "@types/luxon": "^3.3.2", - "@types/node": "^20.8.4", - "@types/react": "^18.2.27", - "@types/react-dom": "^18.2.12", + "@types/jest": "^29.5.6", + "@types/luxon": "^3.3.3", + "@types/node": "^20.8.7", + "@types/react": "^18.2.29", + "@types/react-dom": "^18.2.14", "axios": "^1.5.1", "chart.js": "^4.4.0", "chartjs-adapter-moment": "^1.0.1", @@ -63,10 +64,10 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.22.20", + "@babel/preset-env": "^7.23.2", "@babel/preset-react": "^7.22.15", - "@babel/preset-typescript": "^7.23.0", - "@types/mixpanel-browser": "^2.47.3", + "@babel/preset-typescript": "^7.23.2", + "@types/mixpanel-browser": "^2.47.4", "babel-jest": "^29.7.0" } } diff --git a/public/manifest.json b/public/manifest.json index e82f017..e02cd5c 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.5.2", + "version": "2.6.0", "start_url": ".", "display": "standalone", "theme_color": "#000000", diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index ad8ece4..4d3b3a6 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -3,7 +3,7 @@ import { Chart, ChartData, ChartOptions } from "chart.js/auto" import Annotation, { LineAnnotationOptions } from "chartjs-plugin-annotation" import { Price } from "models/Price" import { useTheme } from "@mui/material/styles" -import { filterAndPadPrices } from "utils/PriceUtils" +import { padPrices } from "utils/PriceUtils" import { useI18nContext } from "i18n/i18n-react" import { useDateTime } from "hooks/RegionalDateTime" @@ -168,12 +168,12 @@ const DailyChart: React.FC = ({ }, [currentPriceLocation, theme]) const cheapestPeriodsPadded = useMemo( - () => cheapestPeriods.map(period => filterAndPadPrices(period)), + () => cheapestPeriods.map(period => padPrices(period)), [cheapestPeriods], ) const expensivePeriodsPadded = useMemo( - () => expensivePeriods.map(period => filterAndPadPrices(period)), + () => expensivePeriods.map(period => padPrices(period)), [expensivePeriods], ) diff --git a/src/i18n/en/index.ts b/src/i18n/en/index.ts index 64dee72..cd01eda 100644 --- a/src/i18n/en/index.ts +++ b/src/i18n/en/index.ts @@ -2,9 +2,9 @@ import type { Translation } from "../i18n-types" const en = { TITLE: "Electricity prices", - TODAY_RATING_GOOD: "Today {currentDate} is a GOOD day", - TODAY_RATING_BAD: "Today {currentDate} is a BAD day", - TODAY_RATING_NORMAL: "Today {currentDate} is a NORMAL day", + CURRENT_RATING_GOOD: "{currentDate} is a GOOD day", + CURRENT_RATING_BAD: "{currentDate} is a BAD day", + CURRENT_RATING_NORMAL: "{currentDate} is a NORMAL day", CURRENT_PRICE: "Current price - {currentTime}", MIN_PRICE: "Min price - {minPrice}", MAX_PRICE: "Max price - {maxPrice}", diff --git a/src/i18n/es/index.ts b/src/i18n/es/index.ts index edbbbc7..f3401b1 100644 --- a/src/i18n/es/index.ts +++ b/src/i18n/es/index.ts @@ -2,9 +2,9 @@ import type { BaseTranslation } from "../i18n-types" const es = { TITLE: "Precios de la electricidad", - TODAY_RATING_GOOD: "Hoy {currentDate:string} es un día BUENO", - TODAY_RATING_BAD: "Hoy {currentDate:string} es un día MALO", - TODAY_RATING_NORMAL: "Hoy {currentDate:string} es un día NORMAL", + CURRENT_RATING_GOOD: "{currentDate:string} es un día BUENO", + CURRENT_RATING_BAD: "{currentDate:string} es un día MALO", + CURRENT_RATING_NORMAL: "{currentDate:string} es un día NORMAL", CURRENT_PRICE: "Precio actual - {currentTime:string}", MIN_PRICE: "Precio min - {minPrice:string}", MAX_PRICE: "Precio max - {maxPrice:string}", diff --git a/src/i18n/i18n-types.ts b/src/i18n/i18n-types.ts index c27565c..6650951 100644 --- a/src/i18n/i18n-types.ts +++ b/src/i18n/i18n-types.ts @@ -19,20 +19,20 @@ type RootTranslation = { */ TITLE: string /** - * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​B​U​E​N​O + * {​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​B​U​E​N​O * @param {string} currentDate */ - TODAY_RATING_GOOD: RequiredParams<'currentDate'> + CURRENT_RATING_GOOD: RequiredParams<'currentDate'> /** - * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​M​A​L​O + * {​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​M​A​L​O * @param {string} currentDate */ - TODAY_RATING_BAD: RequiredParams<'currentDate'> + CURRENT_RATING_BAD: RequiredParams<'currentDate'> /** - * H​o​y​ ​{​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​N​O​R​M​A​L + * {​c​u​r​r​e​n​t​D​a​t​e​}​ ​e​s​ ​u​n​ ​d​í​a​ ​N​O​R​M​A​L * @param {string} currentDate */ - TODAY_RATING_NORMAL: RequiredParams<'currentDate'> + CURRENT_RATING_NORMAL: RequiredParams<'currentDate'> /** * P​r​e​c​i​o​ ​a​c​t​u​a​l​ ​-​ ​{​c​u​r​r​e​n​t​T​i​m​e​} * @param {string} currentTime @@ -87,17 +87,17 @@ export type TranslationFunctions = { */ TITLE: () => LocalizedString /** - * Hoy {currentDate} es un día BUENO + * {currentDate} es un día BUENO */ - TODAY_RATING_GOOD: (arg: { currentDate: string }) => LocalizedString + CURRENT_RATING_GOOD: (arg: { currentDate: string }) => LocalizedString /** - * Hoy {currentDate} es un día MALO + * {currentDate} es un día MALO */ - TODAY_RATING_BAD: (arg: { currentDate: string }) => LocalizedString + CURRENT_RATING_BAD: (arg: { currentDate: string }) => LocalizedString /** - * Hoy {currentDate} es un día NORMAL + * {currentDate} es un día NORMAL */ - TODAY_RATING_NORMAL: (arg: { currentDate: string }) => LocalizedString + CURRENT_RATING_NORMAL: (arg: { currentDate: string }) => LocalizedString /** * Precio actual - {currentTime} */ diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 3e0925d..2863dde 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -12,12 +12,17 @@ import { DailyPriceInfo } from "models/DailyPriceInfo" import { DayRating } from "models/DayRating" import { useI18nContext } from "i18n/i18n-react" import { useDateTime } from "hooks/RegionalDateTime" +import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers" +import { AdapterLuxon } from "@mui/x-date-pickers/AdapterLuxon" +import { DateTime } from "luxon" const DashboardContent: React.FC = () => { const { LL } = useI18nContext() const { now, fromISO } = useDateTime() const [currentDate, setCurrentDate] = useState(now()) - const [pricesToday, setPricesToday] = useState(null) + const [currentPrices, setPricesToday] = useState( + null, + ) const [pricesTomorrow, setPricesTomorrow] = useState( null, ) @@ -91,6 +96,11 @@ const DashboardContent: React.FC = () => { } }, [now]) + const isToday = useMemo( + () => currentDate.hasSame(now(), "day"), + [currentDate, now], + ) + const median = useMemo( () => calculateAverage(pricesThirtyDays), [pricesThirtyDays], @@ -98,25 +108,25 @@ const DashboardContent: React.FC = () => { const currentPrice = useMemo(() => { return ( - pricesToday?.prices.find(price => { + currentPrices?.prices.find(price => { const priceDateTimeInMadrid = fromISO(price.dateTime) return currentDate.hasSame(priceDateTimeInMadrid, "hour") }) ?? null ) - }, [pricesToday?.prices, fromISO, currentDate]) + }, [currentPrices?.prices, fromISO, currentDate]) const minPriceToday = useMemo(() => { - if (!pricesToday) return null - const min = Math.min(...pricesToday.prices.map(price => price.price)) - return pricesToday.prices.find(price => price.price === min) - }, [pricesToday]) + if (!currentPrices) return null + const min = Math.min(...currentPrices.prices.map(price => price.price)) + return currentPrices.prices.find(price => price.price === min) + }, [currentPrices]) const maxPriceToday = useMemo(() => { - if (!pricesToday) return null - const max = Math.max(...pricesToday.prices.map(price => price.price)) - return pricesToday.prices.find(price => price.price === max) - }, [pricesToday]) + if (!currentPrices) return null + const max = Math.max(...currentPrices.prices.map(price => price.price)) + return currentPrices.prices.find(price => price.price === max) + }, [currentPrices]) const minPriceTomorrow = useMemo(() => { if (!pricesTomorrow) return null @@ -147,24 +157,24 @@ const DashboardContent: React.FC = () => { return medians }, [pricesThirtyDays]) - const todayRatingText = useMemo(() => { + const currentRatingText = useMemo(() => { const date = currentDate.toFormat("dd/MM") - switch (pricesToday?.dayRating) { + switch (currentPrices?.dayRating) { case DayRating.BAD: - return LL.TODAY_RATING_BAD({ + return LL.CURRENT_RATING_BAD({ currentDate: date, }) case DayRating.GOOD: - return LL.TODAY_RATING_GOOD({ + return LL.CURRENT_RATING_GOOD({ currentDate: date, }) default: - return LL.TODAY_RATING_NORMAL({ + return LL.CURRENT_RATING_NORMAL({ currentDate: date, }) } - }, [pricesToday, currentDate, LL]) + }, [currentPrices, currentDate, LL]) const tomorrowRatingText = useMemo(() => { if (!pricesTomorrow || pricesTomorrow.prices.length === 0) @@ -190,6 +200,12 @@ const DashboardContent: React.FC = () => { } }, [pricesTomorrow, LL, fromISO]) + const handleDateChange = (date: DateTime | null) => { + if (date) { + setCurrentDate(date) + } + } + return ( { gutterBottom> {LL.TITLE()} + + + + + + + - {todayRatingText} + {currentRatingText} - - - + {isToday && ( + + + + )} { - {pricesToday && ( + {currentPrices && ( )} diff --git a/src/utils/PriceUtils.spec.ts b/src/utils/PriceUtils.spec.ts index 331029e..3de5b1f 100644 --- a/src/utils/PriceUtils.spec.ts +++ b/src/utils/PriceUtils.spec.ts @@ -1,12 +1,12 @@ -import { filterAndPadPrices } from "./PriceUtils" +import { padPrices } from "./PriceUtils" import prices20230513 from "test/data/prices20230513.json" -describe("filterAndPadPrices", () => { +describe("padPrices", () => { test("should return empty array if prices is empty", () => { - expect(filterAndPadPrices([])).toEqual([]) + expect(padPrices([])).toEqual([]) }) test("If the period has passed return null array", () => { - expect(filterAndPadPrices(prices20230513)).toEqual([]) + expect(padPrices(prices20230513)).toEqual([]) }) }) diff --git a/src/utils/PriceUtils.ts b/src/utils/PriceUtils.ts index 042232e..abee16b 100644 --- a/src/utils/PriceUtils.ts +++ b/src/utils/PriceUtils.ts @@ -15,20 +15,13 @@ export const formatEuro = (amount: number): string => { }).format(amount) } -export const filterAndPadPrices = ( - period: Price[], - now = new Date(), -): (number | null)[] => { +export const padPrices = (period: Price[]): (number | null)[] => { if (period.length < 1) return [] // If the period has passed return empty array const endOfPeriod = new Date(period[period.length - 1].dateTime) endOfPeriod.setMinutes(59) - if (endOfPeriod.getTime() < now.getTime()) { - return [] - } - const paddedArray = Array.from({ length: 24 }, (_, i) => i) .map(priceHour => { return period.find(periodItem => { diff --git a/yarn.lock b/yarn.lock index a243848..51e96ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,7 +7,7 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@adobe/css-tools@^4.3.0": +"@adobe/css-tools@^4.3.1": version "4.3.1" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== @@ -42,25 +42,25 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" - integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.2.tgz#6a12ced93455827037bfb5ed8492820d60fc32cc" + integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" - integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" + integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.22.13" "@babel/generator" "^7.23.0" "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-module-transforms" "^7.23.0" - "@babel/helpers" "^7.23.0" + "@babel/helpers" "^7.23.2" "@babel/parser" "^7.23.0" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.0" + "@babel/traverse" "^7.23.2" "@babel/types" "^7.23.0" convert-source-map "^2.0.0" debug "^4.1.0" @@ -136,10 +136,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" - integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== +"@babel/helper-define-polyfill-provider@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" + integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -204,7 +204,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": +"@babel/helper-remap-async-to-generator@^7.22.20", "@babel/helper-remap-async-to-generator@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== @@ -267,13 +267,13 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.0": - version "7.23.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.1.tgz#44e981e8ce2b9e99f8f0b703f3326a4636c16d15" - integrity sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA== +"@babel/helpers@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" + integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.0" + "@babel/traverse" "^7.23.2" "@babel/types" "^7.23.0" "@babel/highlight@^7.22.13": @@ -315,9 +315,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.0.tgz#66d9014173b3267a9ced3e69935138bc64ffb5c8" - integrity sha512-kYsT+f5ARWF6AdFmqoEEp+hpqxEB8vGmRWfw2aj78M2vTwS2uHW91EF58iFm1Z9U8Y/RrLu2XKJn46P9ca1b0w== + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.2.tgz#0b345a5754f48309fa50b7cd99075ef0295b12c8" + integrity sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg== dependencies: "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" @@ -542,14 +542,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3" - integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w== +"@babel/plugin-transform-async-generator-functions@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz#054afe290d64c6f576f371ccc321772c8ea87ebb" + integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.9" + "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.22.5": @@ -568,7 +568,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.15": +"@babel/plugin-transform-block-scoping@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== @@ -615,7 +615,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.15": +"@babel/plugin-transform-destructuring@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== @@ -715,7 +715,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.22.5": +"@babel/plugin-transform-modules-amd@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== @@ -723,7 +723,7 @@ "@babel/helper-module-transforms" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.22.15", "@babel/plugin-transform-modules-commonjs@^7.23.0": +"@babel/plugin-transform-modules-commonjs@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== @@ -732,7 +732,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.22.11": +"@babel/plugin-transform-modules-systemjs@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== @@ -808,7 +808,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.15": +"@babel/plugin-transform-optional-chaining@^7.22.15", "@babel/plugin-transform-optional-chaining@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== @@ -905,15 +905,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.16.4": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9" - integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g== + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz#c956a3f8d1aa50816ff6c30c6288d66635c12990" + integrity sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.5" - babel-plugin-polyfill-corejs3 "^0.8.3" - babel-plugin-polyfill-regenerator "^0.5.2" + 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@^7.22.5": @@ -993,12 +993,12 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.20.tgz#de9e9b57e1127ce0a2f580831717f7fb677ceedb" - integrity sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059" + integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== dependencies: - "@babel/compat-data" "^7.22.20" + "@babel/compat-data" "^7.23.2" "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.15" @@ -1024,15 +1024,15 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.15" + "@babel/plugin-transform-async-generator-functions" "^7.23.2" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.15" + "@babel/plugin-transform-block-scoping" "^7.23.0" "@babel/plugin-transform-class-properties" "^7.22.5" "@babel/plugin-transform-class-static-block" "^7.22.11" "@babel/plugin-transform-classes" "^7.22.15" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.15" + "@babel/plugin-transform-destructuring" "^7.23.0" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" "@babel/plugin-transform-dynamic-import" "^7.22.11" @@ -1044,9 +1044,9 @@ "@babel/plugin-transform-literals" "^7.22.5" "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.15" - "@babel/plugin-transform-modules-systemjs" "^7.22.11" + "@babel/plugin-transform-modules-amd" "^7.23.0" + "@babel/plugin-transform-modules-commonjs" "^7.23.0" + "@babel/plugin-transform-modules-systemjs" "^7.23.0" "@babel/plugin-transform-modules-umd" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.22.5" @@ -1055,7 +1055,7 @@ "@babel/plugin-transform-object-rest-spread" "^7.22.15" "@babel/plugin-transform-object-super" "^7.22.5" "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-optional-chaining" "^7.23.0" "@babel/plugin-transform-parameters" "^7.22.15" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.11" @@ -1072,10 +1072,10 @@ "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" "@babel/preset-modules" "0.1.6-no-external-plugins" - "@babel/types" "^7.22.19" - babel-plugin-polyfill-corejs2 "^0.4.5" - babel-plugin-polyfill-corejs3 "^0.8.3" - babel-plugin-polyfill-regenerator "^0.5.2" + "@babel/types" "^7.23.0" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1100,10 +1100,10 @@ "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.22.5" -"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz#cc6602d13e7e5b2087c811912b87cf937a9129d9" - integrity sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg== +"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz#c8de488130b7081f7e1482936ad3de5b018beef4" + integrity sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.15" @@ -1117,9 +1117,9 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.23.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" - integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== dependencies: regenerator-runtime "^0.14.0" @@ -1132,10 +1132,10 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.0", "@babel/traverse@^7.7.2": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" - integrity sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw== +"@babel/traverse@^7.23.2", "@babel/traverse@^7.7.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== dependencies: "@babel/code-frame" "^7.22.13" "@babel/generator" "^7.23.0" @@ -1764,9 +1764,9 @@ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -1781,97 +1781,110 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/base@5.0.0-beta.18": - version "5.0.0-beta.18" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.18.tgz#f95d393cf80974e77c0823170cc15c854d5af84b" - integrity sha512-e9ZCy/ndhyt5MTshAS3qAUy/40UiO0jX+kAo6a+XirrPJE+rrQW+mKPSI0uyp+5z4Vh+z0pvNoJ2S2gSrNz3BQ== +"@mui/base@5.0.0-beta.20", "@mui/base@^5.0.0-beta.17": + version "5.0.0-beta.20" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.20.tgz#14fcdfe0350f2aad06ab6c37c4c91dacaab8f600" + integrity sha512-CS2pUuqxST7ch9VNDCklRYDbJ3rru20Tx7na92QvVVKfu3RL4z/QLuVIc8jYGsdCnauMaeUSlFNLAJNb0yXe6w== dependencies: "@babel/runtime" "^7.23.1" "@floating-ui/react-dom" "^2.0.2" - "@mui/types" "^7.2.5" - "@mui/utils" "^5.14.12" + "@mui/types" "^7.2.6" + "@mui/utils" "^5.14.13" "@popperjs/core" "^2.11.8" clsx "^2.0.0" prop-types "^15.8.1" -"@mui/core-downloads-tracker@^5.14.12": - version "5.14.12" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.12.tgz#7be13094ef0c2fc7c3854da2b90a7eae456ebefd" - integrity sha512-WZhCkKqhrXaSVBzoC6LNcVkIawS000OOt7gmnp4g9HhyvN0PSclRXc/JrkC7EwfzUAZJh+hiK2LaVsbtOpNuOg== +"@mui/core-downloads-tracker@^5.14.14": + version "5.14.14" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.14.tgz#a54894e9b4dc908ab2d59eac543219d9018448e6" + integrity sha512-Rw/xKiTOUgXD8hdKqj60aC6QcGprMipG7ne2giK6Mz7b4PlhL/xog9xLeclY3BxsRLkZQ05egFnIEY1CSibTbw== -"@mui/icons-material@^5.14.12": - version "5.14.12" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.12.tgz#6634cdc3198bc438e8d38ce591c96d63d5df99a0" - integrity sha512-aFm6g/AIB3RQN9h/4MKoBoBybLZXeR3aDHWNx6KzemEpIlElUxv5uXRX5Qk1VC6v/YPkhbaPsiLLjsRSTiZF3w== +"@mui/icons-material@^5.14.14": + version "5.14.14" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.14.tgz#02d33f51f0b9de238d5c47b0a31ff330144393c4" + integrity sha512-vwuaMsKvI7AWTeYqR8wYbpXijuU8PzMAJWRAq2DDIuOZPxjKyHlr8WQ25+azZYkIXtJ7AqnVb1ZmHdEyB4/kug== dependencies: "@babel/runtime" "^7.23.1" -"@mui/material@^5.14.12": - version "5.14.12" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.12.tgz#8fa5bebd1a096796a288b548f1ba867e068601c8" - integrity sha512-EelF2L46VcVqhg3KjzIGBBpOtcBgRh0MMy9Efuk6Do81QdcZsFC9RebCVAflo5jIdbHiBmxBs5/l5Q9NjONozg== +"@mui/material@^5.14.14": + version "5.14.14" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.14.tgz#e47f3992b609002cd57a71f70e829dc2d286028c" + integrity sha512-cAmCwAHFQXxb44kWbVFkhKATN8tACgMsFwrXo8ro6WzYW73U/qsR5AcCiJIhCyYYg+gcftfkmNcpRaV3JjhHCg== dependencies: "@babel/runtime" "^7.23.1" - "@mui/base" "5.0.0-beta.18" - "@mui/core-downloads-tracker" "^5.14.12" - "@mui/system" "^5.14.12" - "@mui/types" "^7.2.5" - "@mui/utils" "^5.14.12" - "@types/react-transition-group" "^4.4.6" + "@mui/base" "5.0.0-beta.20" + "@mui/core-downloads-tracker" "^5.14.14" + "@mui/system" "^5.14.14" + "@mui/types" "^7.2.6" + "@mui/utils" "^5.14.13" + "@types/react-transition-group" "^4.4.7" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.14.12": - version "5.14.12" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.12.tgz#b07f710b9794c928052ee4c91bf67fc3e0a442ea" - integrity sha512-TWwm+9+BgHFpoR3w04FG+IqID4ALa74A27RuKq2CEaWgxliBZB24EVeI6djfjFt5t4FYmIb8BMw2ZJEir7YjLQ== +"@mui/private-theming@^5.14.14": + version "5.14.14" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.14.tgz#035dde1eb30c896c69a12b7dee1dce3a323c66e9" + integrity sha512-n77au3CQj9uu16hak2Y+rvbGSBaJKxziG/gEbOLVGrAuqZ+ycVSkorCfN6Y/4XgYOpG/xvmuiY3JwhAEOzY3iA== dependencies: "@babel/runtime" "^7.23.1" - "@mui/utils" "^5.14.12" + "@mui/utils" "^5.14.13" prop-types "^15.8.1" -"@mui/styled-engine@^5.14.12": - version "5.14.12" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.12.tgz#bfacc045f14f8f8bef735c76ecfd90bc99427c43" - integrity sha512-bocxt1nDmXfB3gpLfCCmFCyJ7sVmscFs+PuheO210QagZwHVp47UIRT1AiswLDYSQo1ZqmVGn7KLEJEYK0d4Xw== +"@mui/styled-engine@^5.14.13": + version "5.14.14" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.14.tgz#b0ededf531fff1ef110f7b263c2d3d95a0b8ec9a" + integrity sha512-sF3DS2PVG+cFWvkVHQQaGFpL1h6gSwOW3L91pdxPLQDHDZ5mZ/X0SlXU5XA+WjypoysG4urdAQC7CH/BRvUiqg== dependencies: "@babel/runtime" "^7.23.1" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.14.12": - version "5.14.12" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.12.tgz#da5b32c2a10bbe58f8b4839c5d5de449dc35e425" - integrity sha512-6DXfjjLhW0/ia5qU3Crke7j+MnfDbMBOHlLIrqbrEqNs0AuSBv8pXniEGb+kqO0H804NJreRTEJRjCngwOX5CA== +"@mui/system@^5.14.14": + version "5.14.14" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.14.tgz#f33327e74230523169107ace960e8bb51cbdbab7" + integrity sha512-y4InFmCgGGWXnz+iK4jRTWVikY0HgYnABjz4wgiUgEa2W1H8M4ow+27BegExUWPkj4TWthQ2qG9FOGSMtI+PKA== dependencies: "@babel/runtime" "^7.23.1" - "@mui/private-theming" "^5.14.12" - "@mui/styled-engine" "^5.14.12" - "@mui/types" "^7.2.5" - "@mui/utils" "^5.14.12" + "@mui/private-theming" "^5.14.14" + "@mui/styled-engine" "^5.14.13" + "@mui/types" "^7.2.6" + "@mui/utils" "^5.14.13" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/types@^7.2.5": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.5.tgz#cd62a1fc5eb1044137ccab2053b431dd7cfc3cb8" - integrity sha512-S2BwfNczr7VwS6ki8GoAXJyARoeSJDLuxOEPs3vEMyTALlf9PrdHv+sluX7kk3iKrCg/ML2mIWwapZvWbkMCQA== +"@mui/types@^7.2.6": + version "7.2.6" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.6.tgz#d72b9e9eb0032e107e76033932d65c3f731d2608" + integrity sha512-7sjLQrUmBwufm/M7jw/quNiPK/oor2+pGUQP2CULRcFCArYTq78oJ3D5esTaL0UMkXKJvDqXn6Ike69yAOBQng== -"@mui/utils@^5.14.12": - version "5.14.12" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.12.tgz#58b570839e22e0fba71e17d37d9c083fe233704d" - integrity sha512-RFNXnhKQlzIkIUig6mmv0r5VbtjPdWoaBPYicq25LETdZux59HAqoRdWw15T7lp3c7gXOoE8y67+hTB8C64m2g== +"@mui/utils@^5.14.11", "@mui/utils@^5.14.13": + version "5.14.14" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.14.tgz#7b2a0bcfb44c3376fc81f85500f9bd01706682ac" + integrity sha512-3AKp8uksje5sRfVrtgG9Q/2TBsHWVBUtA0NaXliZqGcXo8J+A+Agp0qUW2rJ+ivgPWTCCubz9FZVT2IQZ3bGsw== dependencies: "@babel/runtime" "^7.23.1" "@types/prop-types" "^15.7.7" prop-types "^15.8.1" react-is "^18.2.0" +"@mui/x-date-pickers@^6.16.2": + version "6.16.2" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-6.16.2.tgz#a21e9891d797287bd8aebb822eb26e70a81923f8" + integrity sha512-JFrDUeBkiKtfJ0WqwyPBICEP1U+Ujfsily3ZQ/Hv4zAOleG/5769EgS7TOO4cVgnuhtvQ/pqx2gmuCn8/gcC5w== + dependencies: + "@babel/runtime" "^7.23.1" + "@mui/base" "^5.0.0-beta.17" + "@mui/utils" "^5.14.11" + "@types/react-transition-group" "^4.4.7" + clsx "^2.0.0" + prop-types "^15.8.1" + react-transition-group "^4.4.5" + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" @@ -2113,12 +2126,12 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^6.1.3": - version "6.1.3" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz#443118c9e4043f96396f120de2c7122504a079c5" - integrity sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ== +"@testing-library/jest-dom@^6.1.4": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.4.tgz#cf0835c33bc5ef00befb9e672b1e3e6a710e30e3" + integrity sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw== dependencies: - "@adobe/css-tools" "^4.3.0" + "@adobe/css-tools" "^4.3.1" "@babel/runtime" "^7.9.2" aria-query "^5.0.0" chalk "^3.0.0" @@ -2152,14 +2165,14 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@types/aria-query@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.2.tgz#6f1225829d89794fd9f891989c9ce667422d7f64" - integrity sha512-PHKZuMN+K5qgKIWhBodXzQslTo5P+K/6LqeKXS6O/4liIDdZqaX5RXrCK++LAw+y/nptN48YmUMFiQHRSWYwtQ== + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.3.tgz#07570ebd25f9b516c910a91f7244052c9b58eabc" + integrity sha512-0Z6Tr7wjKJIk4OUEjVUQMtyunLDy339vcMaj38Kpj6jM2OE1p3S4kXExKZ7a3uXQAPCoy3sbrP1wibDKaf39oA== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" - integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== + version "7.20.3" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.3.tgz#d5625a50b6f18244425a1359a858c73d70340778" + integrity sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -2168,77 +2181,77 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.5" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.5.tgz#281f4764bcbbbc51fdded0f25aa587b4ce14da95" - integrity sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w== + version "7.6.6" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.6.tgz#676f89f67dc8ddaae923f70ebc5f1fa800c031a8" + integrity sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.2.tgz#843e9f1f47c957553b0c374481dc4772921d6a6b" - integrity sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ== + version "7.4.3" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.3.tgz#db9ac539a2fe05cfe9e168b24f360701bde41f5f" + integrity sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.2.tgz#4ddf99d95cfdd946ff35d2b65c978d9c9bf2645d" - integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw== + version "7.20.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.3.tgz#a971aa47441b28ef17884ff945d0551265a2d058" + integrity sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw== dependencies: "@babel/types" "^7.20.7" "@types/body-parser@*": - version "1.19.3" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.3.tgz#fb558014374f7d9e56c8f34bab2042a3a07d25cd" - integrity sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ== + version "1.19.4" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.4.tgz#78ad68f1f79eb851aa3634db0c7f57f6f601b462" + integrity sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA== dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.11" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.11.tgz#fbaa46a1529ea5c5e46cde36e4be6a880db55b84" - integrity sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg== + version "3.5.12" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.12.tgz#49badafb988e6c433ca675a5fd769b93b7649fc8" + integrity sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz#6e5e3602d93bda975cebc3449e1a318340af9e20" - integrity sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw== + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.2.tgz#acf51e088b3bb6507f7b093bd2b0de20940179cc" + integrity sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.36" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" - integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== + version "3.4.37" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.37.tgz#c66a96689fd3127c8772eb3e9e5c6028ec1a9af5" + integrity sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q== dependencies: "@types/node" "*" "@types/eslint-scope@^3.7.3": - version "3.7.5" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.5.tgz#e28b09dbb1d9d35fdfa8a884225f00440dfc5a3e" - integrity sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA== + version "3.7.6" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.6.tgz#585578b368ed170e67de8aae7b93f54a1b2fdc26" + integrity sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.44.4" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.4.tgz#28eaff82e1ca0a96554ec5bb0188f10ae1a74c2f" - integrity sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA== + version "8.44.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.6.tgz#60e564551966dd255f4c01c459f0b4fb87068603" + integrity sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" - integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.3.tgz#2be19e759a3dd18c79f9f436bd7363556c1a73dd" + integrity sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ== "@types/estree@0.0.39": version "0.0.39" @@ -2246,9 +2259,9 @@ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.37" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz#7e4b7b59da9142138a2aaa7621f5abedce8c7320" - integrity sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg== + version "4.17.38" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.38.tgz#d9c1d3a134a1226d84ec8e40c182f960f969d5a4" + integrity sha512-hXOtc0tuDHZPFwwhuBJXPbjemWtXnJjbvuuyNH2Y5Z6in+iXc63c4eXYDc7GGGqHy+iwYqAJMdaItqdnbcBKmg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2256,9 +2269,9 @@ "@types/send" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.19" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.19.tgz#6ff9b4851fda132c5d3dcd2f89fdb6a7a0031ced" - integrity sha512-UtOfBtzN9OvpZPPbnnYunfjM7XCI4jyk1NvnFhTVz5krYAnW4o5DCoIekvms+8ApqhB4+9wSge1kBijdfTSmfg== + version "4.17.20" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.20.tgz#e7c9b40276d29e38a4e3564d7a3d65911e2aa433" + integrity sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -2266,9 +2279,9 @@ "@types/serve-static" "*" "@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": - version "4.1.7" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.7.tgz#30443a2e64fd51113bc3e2ba0914d47109695e2a" - integrity sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw== + version "4.1.8" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.8.tgz#417e461e4dc79d957dc3107f45fe4973b09c2915" + integrity sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw== dependencies: "@types/node" "*" @@ -2278,85 +2291,85 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-errors@*": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.2.tgz#a86e00bbde8950364f8e7846687259ffcd96e8c2" - integrity sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.3.tgz#c54e61f79b3947d040f150abd58f71efb422ff62" + integrity sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA== "@types/http-proxy@^1.17.8": - version "1.17.12" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.12.tgz#86e849e9eeae0362548803c37a0a1afc616bd96b" - integrity sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw== + version "1.17.13" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.13.tgz#dd3a4da550580eb0557d4c7128a2ff1d1a38d465" + integrity sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#fdfdd69fa16d530047d9963635bd77c71a08c068" + integrity sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ== "@types/istanbul-lib-report@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#412e0725ef41cde73bfa03e0e833eaff41e0fd63" - integrity sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz#394798d5f727402eb5ec99eb9618ffcd2b7645a1" + integrity sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz#edc8e421991a3b4df875036d381fc0a5a982f549" - integrity sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz#0313e2608e6d6955d195f55361ddeebd4b74c6e7" + integrity sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.5": - version "29.5.5" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.5.tgz#727204e06228fe24373df9bae76b90f3e8236a2a" - integrity sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg== +"@types/jest@^29.5.6": + version "29.5.6" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.6.tgz#f4cf7ef1b5b0bfc1aa744e41b24d9cc52533130b" + integrity sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w== dependencies: expect "^29.0.0" pretty-format "^29.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.13" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" - integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== + version "7.0.14" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" + integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/luxon@^3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.2.tgz#f6e3524c2486b949a4db445e85d93c8e9886dfe2" - integrity sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ== +"@types/luxon@^3.3.3": + version "3.3.3" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.3.tgz#b2e20a9536f91ab3e6e7895c91883e1a7ad49a6e" + integrity sha512-/BJF3NT0pRMuxrenr42emRUF67sXwcZCd+S1ksG/Fcf9O7C3kKCY4uJSbKBE4KDUIYr3WMsvfmWD8hRjXExBJQ== "@types/mime@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.2.tgz#c1ae807f13d308ee7511a5b81c74f327028e66e8" - integrity sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.3.tgz#886674659ce55fe7c6c06ec5ca7c0eb276a08f91" + integrity sha512-i8MBln35l856k5iOhKk2XJ4SeAWg75mLIpZB4v6imOagKL6twsukBZGDMNhdOVk7yRFTMPpfILocMos59Q1otQ== "@types/mime@^1": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.3.tgz#bbe64987e0eb05de150c305005055c7ad784a9ce" - integrity sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg== + version "1.3.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.4.tgz#a4ed836e069491414bab92c31fdea9e557aca0d9" + integrity sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw== -"@types/mixpanel-browser@^2.47.3": - version "2.47.3" - resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.3.tgz#1c4c96c946aac102e8a4ed941a9ebaae9ff04f8a" - integrity sha512-lum9ZdfLihJ89XoCrBjB8le/Vg6ohYSR2/3AdfLWGZdhUBEgftncDO9+0uW08FSN6SLqy2s9zCf55YV5sNLNYA== +"@types/mixpanel-browser@^2.47.4": + version "2.47.4" + resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.4.tgz#38f0382ae51ca509a6686312ce40cc322cede1ca" + integrity sha512-wAwhSaIk//XY+O5Y8vnlb0Dc9Rpt0s+yHRXf1cGIYM4G5efzRjNeqWEqROf4qzP9FUgVE2M0Z8Pg9BV8Dt46yw== -"@types/node@*", "@types/node@^20.8.4": - version "20.8.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.4.tgz#0e9ebb2ff29d5c3302fc84477d066fa7c6b441aa" - integrity sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A== +"@types/node@*", "@types/node@^20.8.7": + version "20.8.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.7.tgz#ad23827850843de973096edfc5abc9e922492a25" + integrity sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ== dependencies: undici-types "~5.25.1" "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.1.tgz#27f7559836ad796cea31acb63163b203756a5b4e" + integrity sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng== "@types/prettier@^2.1.5": version "2.7.3" @@ -2364,43 +2377,43 @@ integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/prop-types@*", "@types/prop-types@^15.7.7": - version "15.7.8" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.8.tgz#805eae6e8f41bd19e88917d2ea200dc992f405d3" - integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ== + version "15.7.9" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.9.tgz#b6f785caa7ea1fe4414d9df42ee0ab67f23d8a6d" + integrity sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g== "@types/q@^1.5.1": - version "1.5.6" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.6.tgz#a6edffe8283910e46dc7a573621f928e6b47fa56" - integrity sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ== + version "1.5.7" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.7.tgz#5fe8cf91556bfb310d17f2e2b4263a7c12c2c2ca" + integrity sha512-HBPgtzp44867rkL+IzQ3560/E/BlobwCjeXsuKqogrcE99SKgZR4tvBBCuNJZMhUFMz26M7cjKWZg785lllwpA== "@types/qs@*": - version "6.9.8" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.8.tgz#f2a7de3c107b89b441e071d5472e6b726b4adf45" - integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg== + version "6.9.9" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.9.tgz#66f7b26288f6799d279edf13da7ccd40d2fa9197" + integrity sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg== "@types/range-parser@*": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.5.tgz#38bd1733ae299620771bd414837ade2e57757498" - integrity sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA== + version "1.2.6" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.6.tgz#7cb33992049fd7340d5b10c0098e104184dfcd2a" + integrity sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.12": - version "18.2.12" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.12.tgz#58479c463d1e0b7f1ee7cd80e09186189f9ec32d" - integrity sha512-QWZuiA/7J/hPIGocXreCRbx7wyoeet9ooxfbSA+zbIWqyQEE7GMtRn4A37BdYyksnN+/NDnWgfxZH9UVGDw1hg== +"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.14": + version "18.2.14" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.14.tgz#c01ba40e5bb57fc1dc41569bb3ccdb19eab1c539" + integrity sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ== dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.6": - version "4.4.7" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.7.tgz#bf69f269d74aa78b99097673ca6dd6824a68ef1c" - integrity sha512-ICCyBl5mvyqYp8Qeq9B5G/fyBSRC0zx3XM3sCC6KkcMsNeAHqXBKkmat4GqdJET5jtYUpZXrxI5flve5qhi2Eg== +"@types/react-transition-group@^4.4.7": + version "4.4.8" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.8.tgz#46f87d80512959cac793ecc610a93d80ef241ccf" + integrity sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.27": - version "18.2.27" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.27.tgz#746e52b06f3ccd5d7a724fd53769b70792601440" - integrity sha512-Wfv7B7FZiR2r3MIqbAlXoY1+tXm4bOqfz4oRr+nyXdBqapDBZ0l/IGcSlAfvxIHEEJjkPU0MYAc/BlFPOcrgLw== +"@types/react@*", "@types/react@^18.2.29": + version "18.2.29" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.29.tgz#88b48a287e00f6fdcd6f95662878fb701ae18b27" + integrity sha512-Z+ZrIRocWtdD70j45izShRwDuiB4JZqDegqMFW/I8aG5DxxLKOzVNoq62UIO82v9bdgi+DO1jvsb9sTEZUSm+Q== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2419,79 +2432,79 @@ integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/scheduler@*": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.4.tgz#fedc3e5b15c26dc18faae96bf1317487cb3658cf" - integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ== + version "0.16.5" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.5.tgz#4751153abbf8d6199babb345a52e1eb4167d64af" + integrity sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw== "@types/semver@^7.3.12": - version "7.5.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04" - integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw== + version "7.5.4" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" + integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== "@types/send@*": - version "0.17.2" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.2.tgz#af78a4495e3c2b79bfbdac3955fdd50e03cc98f2" - integrity sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw== + version "0.17.3" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.3.tgz#81b2ea5a3a18aad357405af2d643ccbe5a09020b" + integrity sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/serve-index@^1.9.1": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.2.tgz#cb26e775678a8526b73a5d980a147518740aaecd" - integrity sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig== + version "1.9.3" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.3.tgz#af9403916eb6fbf7d6ec6f47b2a4c46eb3222cc9" + integrity sha512-4KG+yMEuvDPRrYq5fyVm/I2uqAJSAwZK9VSa+Zf+zUq9/oxSSvy3kkIqyL+jjStv6UCVi8/Aho0NHtB1Fwosrg== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.3" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.3.tgz#2cfacfd1fd4520bbc3e292cca432d5e8e2e3ee61" - integrity sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg== + version "1.15.4" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.4.tgz#44b5895a68ca637f06c229119e1c774ca88f81b2" + integrity sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw== dependencies: "@types/http-errors" "*" "@types/mime" "*" "@types/node" "*" "@types/sockjs@^0.3.33": - version "0.3.34" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.34.tgz#43e10e549b36d2ba2589278f00f81b5d7ccda167" - integrity sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g== + version "0.3.35" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.35.tgz#f4a568c73d2a8071944bd6ffdca0d4e66810cd21" + integrity sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw== dependencies: "@types/node" "*" "@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.2.tgz#01284dde9ef4e6d8cef6422798d9a3ad18a66f8b" + integrity sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw== "@types/trusted-types@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.4.tgz#2b38784cd16957d3782e8e2b31c03bc1d13b4d65" - integrity sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.5.tgz#5cac7e7df3275bb95f79594f192d97da3b4fd5fe" + integrity sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA== "@types/ws@^8.5.5": - version "8.5.6" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.6.tgz#e9ad51f0ab79b9110c50916c9fcbddc36d373065" - integrity sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg== + version "8.5.8" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.8.tgz#13efec7bd439d0bdf2af93030804a94f163b1430" + integrity sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.1.tgz#07773d7160494d56aa882d7531aac7319ea67c3b" - integrity sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ== + version "21.0.2" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.2.tgz#7bd04c5da378496ef1695a1008bf8f71847a8b8b" + integrity sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw== "@types/yargs@^16.0.0": - version "16.0.6" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.6.tgz#cc0c63684d68d23498cf0b5f32aa4c3fb437c638" - integrity sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A== + version "16.0.7" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.7.tgz#b0d0502cb5f6c17994df72a600049f10bbf17203" + integrity sha512-lQcYmxWuOfJq4IncK88/nwud9rwr1F04CFc5xzk0k4oKVyz/AI35TfsXmhjf6t8zp8mpCOi17BfvuNWx+zrYkg== dependencies: "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.28" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.28.tgz#d106e4301fbacde3d1796ab27374dd16588ec851" - integrity sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw== + version "17.0.29" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.29.tgz#06aabc72497b798c643c812a8b561537fea760cf" + integrity sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA== dependencies: "@types/yargs-parser" "*" @@ -3159,29 +3172,29 @@ babel-plugin-named-asset-import@^0.3.8: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== -babel-plugin-polyfill-corejs2@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" - integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== +babel-plugin-polyfill-corejs2@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" + integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.2" + "@babel/helper-define-polyfill-provider" "^0.4.3" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz#1fac2b1dcef6274e72b3c72977ed8325cb330591" - integrity sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg== +babel-plugin-polyfill-corejs3@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz#a75fa1b0c3fc5bd6837f9ec465c0f48031b8cab1" + integrity sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" + "@babel/helper-define-polyfill-provider" "^0.4.3" core-js-compat "^3.32.2" -babel-plugin-polyfill-regenerator@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" - integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== +babel-plugin-polyfill-regenerator@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" + integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.2" + "@babel/helper-define-polyfill-provider" "^0.4.3" babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" @@ -3424,9 +3437,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: - version "1.0.30001547" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz#d4f92efc488aab3c7f92c738d3977c2a3180472b" - integrity sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA== + version "1.0.30001550" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001550.tgz#6ec6a2239eb2a8123cc26cfe0571db5c79eb8669" + integrity sha512-p82WjBYIypO0ukTsd/FG3Xxs+4tFeaY9pfT4amQL8KWtYH7H9nYwReGAbMTJ0hsmRO8IfDtsS6p3ZWj8+1c2RQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -4043,9 +4056,9 @@ default-gateway@^6.0.3: execa "^5.0.0" define-data-property@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" - integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== dependencies: get-intrinsic "^1.2.1" gopd "^1.0.1" @@ -4275,9 +4288,9 @@ ejs@^3.1.6: jake "^10.8.5" electron-to-chromium@^1.4.535: - version "1.4.549" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.549.tgz#ab223f5d85c55a9def358db163bc8cacba72df69" - integrity sha512-gpXfJslSi4hYDkA0mTLEpYKRv9siAgSUgZ+UWyk+J5Cttpd1ThCVwdclzIwQSclz3hYn049+M2fgrP1WpvF8xg== + version "1.4.558" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.558.tgz#28aca5571e8c156e0850f3547952b6f5ee7863ad" + integrity sha512-j9IcGmfkyN5MBH/0Xzg45GDHasXsnwEJDM6Xnr9H7GlGUni+JH4q6xp6Nk7NV5LjTmoEFBqhILIqg1McJrv6uA== emittery@^0.10.2: version "0.10.2" @@ -5055,9 +5068,9 @@ forwarded@0.2.0: integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fraction.js@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" - integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fresh@0.5.2: version "0.5.2" @@ -5099,9 +5112,9 @@ fsevents@^2.3.2, fsevents@~2.3.2: integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: version "1.1.6" @@ -5645,7 +5658,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.9.0: +is-core-module@^2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== @@ -7086,9 +7099,9 @@ object-hash@^3.0.0: integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + version "1.13.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.0.tgz#42695d3879e1cd5bda6df5062164d80c996e23e2" + integrity sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g== object-is@^1.1.5: version "1.1.5" @@ -8451,20 +8464,20 @@ resolve.exports@^1.1.0: integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.6" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.6.tgz#dd209739eca3aef739c626fea1b4f3c506195362" - integrity sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw== + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -9210,9 +9223,9 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: - version "5.21.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.21.0.tgz#d2b27e92b5e56650bc83b6defa00a110f0b124b2" - integrity sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw== + version "5.22.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.22.0.tgz#4f18103f84c5c9437aafb7a14918273310a8a49d" + integrity sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -9713,9 +9726,9 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack@^5.64.4: - version "5.88.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== + version "5.89.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" + integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^1.0.0" @@ -10102,9 +10115,9 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yaml@^2.1.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.2.tgz#f522db4313c671a0ca963a75670f1c12ea909144" - integrity sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg== + version "2.3.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.3.tgz#01f6d18ef036446340007db8e016810e5d64aad9" + integrity sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ== yargs-parser@^20.2.2: version "20.2.9" From 88de45f1e65123d7323d9a359a48b4594d00445e Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 19 Oct 2023 00:08:21 +0200 Subject: [PATCH 36/78] test: removing redundant test --- src/utils/PriceUtils.spec.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/utils/PriceUtils.spec.ts b/src/utils/PriceUtils.spec.ts index 3de5b1f..c907ba5 100644 --- a/src/utils/PriceUtils.spec.ts +++ b/src/utils/PriceUtils.spec.ts @@ -1,12 +1,12 @@ import { padPrices } from "./PriceUtils" -import prices20230513 from "test/data/prices20230513.json" +// import prices20230513 from "test/data/prices20230513.json" describe("padPrices", () => { test("should return empty array if prices is empty", () => { expect(padPrices([])).toEqual([]) }) - test("If the period has passed return null array", () => { - expect(padPrices(prices20230513)).toEqual([]) - }) + // test("If the period has passed return null array", () => { + // expect(padPrices(prices20230513)).toEqual([]) + // }) }) From 1e59380b156a3dde4ddd8c2c9aa0e1fd90122a3d Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 19 Oct 2023 01:09:06 +0200 Subject: [PATCH 37/78] fix: tomorrow date --- package.json | 2 +- public/manifest.json | 2 +- src/pages/Dashboard.tsx | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 5d01496..4293f90 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.6.0", + "version": "2.6.1", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index e02cd5c..e62c43e 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.6.0", + "version": "2.6.1", "start_url": ".", "display": "standalone", "theme_color": "#000000", diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 2863dde..28a3a35 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -39,7 +39,7 @@ const DashboardContent: React.FC = () => { useEffect(() => { const fetchData = async () => { - const tomorrow = currentDate.plus({ days: 1 }) + const tomorrow = now().plus({ days: 1 }) const prices = await getDailyPriceInfo(tomorrow) if (prices === null) { @@ -54,7 +54,7 @@ const DashboardContent: React.FC = () => { } } fetchData() - }, [currentDate]) + }, [now]) useEffect(() => { const fetchData = async () => { From 670837a9014e517254b3a417dbae87f59f3e7060 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 19 Oct 2023 23:38:16 +0200 Subject: [PATCH 38/78] Using new daily median endpoint --- package.json | 2 +- public/manifest.json | 2 +- src/components/DailyMedianChart.tsx | 178 ++++++++++++++++++++++++++++ src/components/PriceChart.tsx | 6 +- src/i18n/en/index.ts | 1 + src/i18n/es/index.ts | 1 + src/i18n/i18n-types.ts | 8 ++ src/models/DailyMedian.ts | 4 + src/pages/Dashboard.tsx | 56 +++------ src/services/PriceService.ts | 39 +++--- 10 files changed, 241 insertions(+), 56 deletions(-) create mode 100644 src/components/DailyMedianChart.tsx create mode 100644 src/models/DailyMedian.ts diff --git a/package.json b/package.json index 4293f90..7d3ec2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.6.1", + "version": "2.7.0", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index e62c43e..3b6d67a 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.6.1", + "version": "2.7.0", "start_url": ".", "display": "standalone", "theme_color": "#000000", diff --git a/src/components/DailyMedianChart.tsx b/src/components/DailyMedianChart.tsx new file mode 100644 index 0000000..5807fb9 --- /dev/null +++ b/src/components/DailyMedianChart.tsx @@ -0,0 +1,178 @@ +import React, { useEffect, useMemo, useRef, useState } from "react" +import { Chart, ChartData, ChartOptions } from "chart.js/auto" +import Annotation from "chartjs-plugin-annotation" +import { useTheme } from "@mui/material/styles" +import { useI18nContext } from "i18n/i18n-react" +import { useDateTime } from "hooks/RegionalDateTime" +import { DailyMedian } from "models/DailyMedian" + +Chart.register(Annotation) + +export const ID_PREFIX = "median-chart-" + +const hexToRGBA = (hex: string, alpha: number) => { + const r = parseInt(hex.slice(1, 3), 16) + const g = parseInt(hex.slice(3, 5), 16) + const b = parseInt(hex.slice(5, 7), 16) + + return `rgba(${r}, ${g}, ${b}, ${alpha})` +} + +export interface DailyMedianChartProps { + medians: DailyMedian[] + median: number + chartId: string + dateFormat: string +} + +const DailyMedianChart: React.FC = ({ + medians, + median, + chartId, + dateFormat, +}) => { + const { LL } = useI18nContext() + const { fromISO } = useDateTime() + const theme = useTheme() + const chartRef = useRef(null) + + const chartOptions = useMemo(() => { + const chartOptions: ChartOptions = { + plugins: { + tooltip: { + callbacks: { + label: (context: any) => { + if ( + !context.dataset.label || + context.dataset.label === "Hide" + ) + return "" + + return `${context.dataset.label}: ${context.formattedValue}` + }, + }, + }, + legend: { + position: "bottom", + labels: { + filter: item => { + return item.text !== "Hide" // Hide the label for 'Dataset 2' + }, + color: + theme.palette.mode === "dark" + ? theme.palette.grey[300] + : theme.palette.grey[800], + }, + }, + }, + interaction: { + intersect: false, + mode: "index", + }, + elements: { + line: { + tension: 0.2, // disables bezier curves + // stepped: true, // use steppedLine to create a stepped line chart + }, + }, + responsive: true, + maintainAspectRatio: false, + scales: { + x: { + grid: { + display: false, // Set this to false to remove vertical grid lines + // color: theme.palette.divider, + }, + ticks: { + color: + theme.palette.mode === "dark" + ? theme.palette.grey[300] + : theme.palette.grey[800], + }, + }, + y: { + beginAtZero: true, + grid: { + color: theme.palette.divider, + }, + ticks: { + color: + theme.palette.mode === "dark" + ? theme.palette.grey[300] + : theme.palette.grey[800], + }, + }, + }, + } + return chartOptions + }, [theme]) + + const averageDataset = useMemo( + () => Array(medians.length).fill(median), + [medians, median], + ) + + const chartData: ChartData<"line", (number | null)[]> = useMemo(() => { + const datasets = [] + + datasets.push( + { + label: LL.MEDIAN(), + data: medians.map(item => item.median), + borderColor: theme.palette.info.main, + backgroundColor: hexToRGBA(theme.palette.info.main, 0.4), + pointRadius: 0, + }, + { + label: LL.THIRTY_DAY_AVG(), + data: averageDataset, + borderColor: theme.palette.secondary.main, + backgroundColor: hexToRGBA(theme.palette.secondary.main, 0.2), + pointRadius: 0, + }, + ) + + return { + labels: medians.map(item => + fromISO(item.date).toFormat(dateFormat), + ), + datasets: datasets, + } + }, [ + LL, + medians, + theme.palette.info.main, + theme.palette.secondary.main, + averageDataset, + fromISO, + dateFormat, + ]) + + useEffect(() => { + const chartCanvas = document.getElementById( + ID_PREFIX + chartId, + ) as HTMLCanvasElement + + if (chartCanvas) { + if (chartRef.current) { + chartRef.current.destroy() + } + + chartRef.current = new Chart(chartCanvas, { + type: "line", + data: chartData, + options: chartOptions, + }) + } + + return () => { + if (chartRef.current) { + chartRef.current.destroy() + } + } + }, [chartData, chartOptions, chartId]) + + return +} + +export default DailyMedianChart diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index 4d3b3a6..2e9974e 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -19,7 +19,7 @@ const hexToRGBA = (hex: string, alpha: number) => { return `rgba(${r}, ${g}, ${b}, ${alpha})` } -export interface DailyChartProps { +export interface PriceChartProps { prices: Price[] median: number chartId: string @@ -29,7 +29,7 @@ export interface DailyChartProps { expensivePeriods: Price[][] } -const DailyChart: React.FC = ({ +const PriceChart: React.FC = ({ prices, median, chartId, @@ -303,4 +303,4 @@ const DailyChart: React.FC = ({ return } -export default DailyChart +export default PriceChart diff --git a/src/i18n/en/index.ts b/src/i18n/en/index.ts index cd01eda..6e5f6c7 100644 --- a/src/i18n/en/index.ts +++ b/src/i18n/en/index.ts @@ -16,6 +16,7 @@ const en = { "Tomorrow's prices are not available yet. Prices are usually available after 20:30", LAST_THIRTY_DAYS: "Last 30 days", PRICE: "Price", + MEDIAN: "Median", } satisfies Translation export default en diff --git a/src/i18n/es/index.ts b/src/i18n/es/index.ts index f3401b1..605ccce 100644 --- a/src/i18n/es/index.ts +++ b/src/i18n/es/index.ts @@ -16,6 +16,7 @@ const es = { "Los datos de mañana aún no están disponibles. Los precios suelen estar disponibles después de las 20:30", LAST_THIRTY_DAYS: "Últimos 30 días", PRICE: "Precio", + MEDIAN: "Mediana", } satisfies BaseTranslation export default es diff --git a/src/i18n/i18n-types.ts b/src/i18n/i18n-types.ts index 6650951..71d9d88 100644 --- a/src/i18n/i18n-types.ts +++ b/src/i18n/i18n-types.ts @@ -79,6 +79,10 @@ type RootTranslation = { * P​r​e​c​i​o */ PRICE: string + /** + * M​e​d​i​a​n​a + */ + MEDIAN: string } export type TranslationFunctions = { @@ -138,6 +142,10 @@ export type TranslationFunctions = { * Precio */ PRICE: () => LocalizedString + /** + * Mediana + */ + MEDIAN: () => LocalizedString } export type Formatters = {} diff --git a/src/models/DailyMedian.ts b/src/models/DailyMedian.ts new file mode 100644 index 0000000..088e810 --- /dev/null +++ b/src/models/DailyMedian.ts @@ -0,0 +1,4 @@ +export interface DailyMedian { + date: string + median: number +} diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 28a3a35..09e6355 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -2,10 +2,8 @@ import React, { useEffect, useMemo, useState } from "react" import Box from "@mui/material/Box" import Typography from "@mui/material/Typography" import Paper from "@mui/material/Paper" -import DailyChart from "components/PriceChart" -import { Price } from "models/Price" -import { getDailyPriceInfo, getPrices } from "services/PriceService" -import { calculateAverage } from "utils/PriceUtils" +import PriceChart from "components/PriceChart" +import { getDailyPriceInfo, getDailyMedians } from "services/PriceService" import { Container, Grid } from "@mui/material" import Metric from "components/Metric" import { DailyPriceInfo } from "models/DailyPriceInfo" @@ -15,6 +13,8 @@ import { useDateTime } from "hooks/RegionalDateTime" import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers" import { AdapterLuxon } from "@mui/x-date-pickers/AdapterLuxon" import { DateTime } from "luxon" +import { DailyMedian } from "models/DailyMedian" +import DailyMedianChart from "components/DailyMedianChart" const DashboardContent: React.FC = () => { const { LL } = useI18nContext() @@ -26,7 +26,7 @@ const DashboardContent: React.FC = () => { const [pricesTomorrow, setPricesTomorrow] = useState( null, ) - const [pricesThirtyDays, setPricesThirtyDays] = useState([]) + const [dailyMedians, setDailyMedians] = useState([]) useEffect(() => { const fetchData = async () => { @@ -58,11 +58,9 @@ const DashboardContent: React.FC = () => { useEffect(() => { const fetchData = async () => { - const thirtyDaysAgo = currentDate.minus({ days: 30 }) + const medians = await getDailyMedians(currentDate) - const prices = await getPrices(thirtyDaysAgo, currentDate) - - setPricesThirtyDays(prices) + if (medians) setDailyMedians(medians) } fetchData() }, [currentDate]) @@ -101,10 +99,14 @@ const DashboardContent: React.FC = () => { [currentDate, now], ) - const median = useMemo( - () => calculateAverage(pricesThirtyDays), - [pricesThirtyDays], - ) + const median = useMemo(() => { + return ( + dailyMedians.reduce( + (accumulator, med) => accumulator + med.median, + 0, + ) / dailyMedians.length + ) + }, [dailyMedians]) const currentPrice = useMemo(() => { return ( @@ -140,23 +142,6 @@ const DashboardContent: React.FC = () => { return pricesTomorrow.prices.find(price => price.price === max) }, [pricesTomorrow]) - const dailyMedians = useMemo(() => { - const medians: Price[] = [] - - if (pricesThirtyDays.length % 24 !== 0) - throw Error( - `Expected prices to be a multiple of 24 but got ${pricesThirtyDays.length}`, - ) - - for (let i = 0; i < pricesThirtyDays.length; i = i + 24) { - const prices = pricesThirtyDays.slice(i, i + 24) - const median = calculateAverage(prices) - medians.push({ price: median, dateTime: prices[0].dateTime }) - } - - return medians - }, [pricesThirtyDays]) - const currentRatingText = useMemo(() => { const date = currentDate.toFormat("dd/MM") @@ -311,7 +296,7 @@ const DashboardContent: React.FC = () => { {currentPrices && ( - { {pricesTomorrow && ( - { - diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index f684212..879abdf 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -1,25 +1,12 @@ import axios from "axios" import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" -import { Price } from "models/Price" +import { DailyMedian } from "models/DailyMedian" const PRICES_API = process.env.REACT_APP_API_URL ?? "https://elec-api.daithiapp.com/api/v1/price" -export const getPrices = async ( - start: DateTime, - end: DateTime, -): Promise => { - const startDay = start.toFormat("yyyy-MM-dd") - const endDay = end.toFormat("yyyy-MM-dd") - - const response = await axios.get( - `${PRICES_API}?start=${startDay}&end=${endDay}`, - ) - return response.data -} - export const getDailyPriceInfo = async ( date: DateTime, ): Promise => { @@ -43,3 +30,27 @@ export const getDailyPriceInfo = async ( return null } } + +export const getDailyMedians = async ( + date: DateTime, +): Promise => { + const dateStr = date.toFormat("yyyy-MM-dd") + + try { + const response = await axios.get( + `${PRICES_API}/medians?date=${dateStr}`, + ) + return response.data + } catch (error) { + if (axios.isAxiosError(error)) { + if (error.response?.status === 404) { + console.error("Resource not found.") + } else { + console.error(`An error occurred: ${error.response?.status}`) + } + } else { + console.error("An unknown error occurred.") + } + return null + } +} From 1417fb06dd3979a385d13ddcfe8470e2997dd0a2 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 19 Oct 2023 23:52:38 +0200 Subject: [PATCH 39/78] fix: build --- src/pages/Dashboard.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 09e6355..a539b0d 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -31,8 +31,7 @@ const DashboardContent: React.FC = () => { useEffect(() => { const fetchData = async () => { const prices = await getDailyPriceInfo(currentDate) - if (prices === null) return - setPricesToday(prices) + if (prices) setPricesToday(prices) } fetchData() }, [currentDate]) From b307489df1f827798ee5da4f02489a1c05e44bf1 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 20 Oct 2023 00:10:41 +0200 Subject: [PATCH 40/78] fix: build --- src/pages/Dashboard.tsx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index a539b0d..7aba3ac 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -20,12 +20,12 @@ const DashboardContent: React.FC = () => { const { LL } = useI18nContext() const { now, fromISO } = useDateTime() const [currentDate, setCurrentDate] = useState(now()) - const [currentPrices, setPricesToday] = useState( - null, - ) - const [pricesTomorrow, setPricesTomorrow] = useState( - null, - ) + const [currentPrices, setPricesToday] = useState< + DailyPriceInfo | undefined + >() + const [pricesTomorrow, setPricesTomorrow] = useState< + DailyPriceInfo | undefined + >() const [dailyMedians, setDailyMedians] = useState([]) useEffect(() => { @@ -42,7 +42,7 @@ const DashboardContent: React.FC = () => { const prices = await getDailyPriceInfo(tomorrow) if (prices === null) { - setPricesTomorrow(null) + setPricesTomorrow(undefined) } else { const last = prices.prices[prices.prices.length - 1] prices.prices.push({ @@ -120,25 +120,25 @@ const DashboardContent: React.FC = () => { const minPriceToday = useMemo(() => { if (!currentPrices) return null const min = Math.min(...currentPrices.prices.map(price => price.price)) - return currentPrices.prices.find(price => price.price === min) + return currentPrices.prices.find(price => price.price === min) ?? null }, [currentPrices]) const maxPriceToday = useMemo(() => { if (!currentPrices) return null const max = Math.max(...currentPrices.prices.map(price => price.price)) - return currentPrices.prices.find(price => price.price === max) + return currentPrices.prices.find(price => price.price === max) ?? null }, [currentPrices]) const minPriceTomorrow = useMemo(() => { if (!pricesTomorrow) return null const min = Math.min(...pricesTomorrow.prices.map(price => price.price)) - return pricesTomorrow.prices.find(price => price.price === min) + return pricesTomorrow.prices.find(price => price.price === min) ?? null }, [pricesTomorrow]) const maxPriceTomorrow = useMemo(() => { if (!pricesTomorrow) return null const max = Math.max(...pricesTomorrow.prices.map(price => price.price)) - return pricesTomorrow.prices.find(price => price.price === max) + return pricesTomorrow.prices.find(price => price.price === max) ?? null }, [pricesTomorrow]) const currentRatingText = useMemo(() => { From bb8cd89bf632b201705b9c819ef71191f034226c Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Mon, 30 Oct 2023 12:33:49 +0100 Subject: [PATCH 41/78] refactor: changing median to average --- Makefile | 9 ++++ package.json | 2 +- public/manifest.json | 2 +- ...yMedianChart.tsx => DailyAverageChart.tsx} | 30 ++++++------ src/components/PriceChart.tsx | 8 ++-- src/i18n/en/index.ts | 2 +- src/models/DailyAverage.ts | 4 ++ src/models/DailyMedian.ts | 4 -- src/pages/Dashboard.tsx | 46 +++++++++---------- src/services/PriceService.ts | 10 ++-- 10 files changed, 63 insertions(+), 54 deletions(-) create mode 100644 Makefile rename src/components/{DailyMedianChart.tsx => DailyAverageChart.tsx} (89%) create mode 100644 src/models/DailyAverage.ts delete mode 100644 src/models/DailyMedian.ts diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f800cce --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +help: + @egrep -h '\s#@\s' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?#@ "}; {printf "\033[36m %-30s\033[0m %s\n", $$1, $$2}' + +start: #@ Start local + yarn start +build: #@ Build local + yarn build +image: #@ Build docker image + docker build -t electricity-prices-dashboard . --load diff --git a/package.json b/package.json index 7d3ec2d..d814272 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.7.0", + "version": "2.8.0", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index 3b6d67a..18b2d9e 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.7.0", + "version": "2.8.0", "start_url": ".", "display": "standalone", "theme_color": "#000000", diff --git a/src/components/DailyMedianChart.tsx b/src/components/DailyAverageChart.tsx similarity index 89% rename from src/components/DailyMedianChart.tsx rename to src/components/DailyAverageChart.tsx index 5807fb9..fbff5ca 100644 --- a/src/components/DailyMedianChart.tsx +++ b/src/components/DailyAverageChart.tsx @@ -1,14 +1,14 @@ -import React, { useEffect, useMemo, useRef, useState } from "react" +import React, { useEffect, useMemo, useRef } from "react" import { Chart, ChartData, ChartOptions } from "chart.js/auto" import Annotation from "chartjs-plugin-annotation" import { useTheme } from "@mui/material/styles" import { useI18nContext } from "i18n/i18n-react" import { useDateTime } from "hooks/RegionalDateTime" -import { DailyMedian } from "models/DailyMedian" +import { DailyAverage } from "models/DailyAverage" Chart.register(Annotation) -export const ID_PREFIX = "median-chart-" +export const ID_PREFIX = "average-chart-" const hexToRGBA = (hex: string, alpha: number) => { const r = parseInt(hex.slice(1, 3), 16) @@ -18,16 +18,16 @@ const hexToRGBA = (hex: string, alpha: number) => { return `rgba(${r}, ${g}, ${b}, ${alpha})` } -export interface DailyMedianChartProps { - medians: DailyMedian[] - median: number +export interface DailyAverageChartProps { + averages: DailyAverage[] + average: number chartId: string dateFormat: string } -const DailyMedianChart: React.FC = ({ - medians, - median, +const DailyAverageChart: React.FC = ({ + averages, + average, chartId, dateFormat, }) => { @@ -108,8 +108,8 @@ const DailyMedianChart: React.FC = ({ }, [theme]) const averageDataset = useMemo( - () => Array(medians.length).fill(median), - [medians, median], + () => Array(averages.length).fill(average), + [averages, average], ) const chartData: ChartData<"line", (number | null)[]> = useMemo(() => { @@ -118,7 +118,7 @@ const DailyMedianChart: React.FC = ({ datasets.push( { label: LL.MEDIAN(), - data: medians.map(item => item.median), + data: averages.map(item => item.average), borderColor: theme.palette.info.main, backgroundColor: hexToRGBA(theme.palette.info.main, 0.4), pointRadius: 0, @@ -133,14 +133,14 @@ const DailyMedianChart: React.FC = ({ ) return { - labels: medians.map(item => + labels: averages.map(item => fromISO(item.date).toFormat(dateFormat), ), datasets: datasets, } }, [ LL, - medians, + averages, theme.palette.info.main, theme.palette.secondary.main, averageDataset, @@ -175,4 +175,4 @@ const DailyMedianChart: React.FC = ({ return } -export default DailyMedianChart +export default DailyAverageChart diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index 2e9974e..726d6dd 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -21,7 +21,7 @@ const hexToRGBA = (hex: string, alpha: number) => { export interface PriceChartProps { prices: Price[] - median: number + average: number chartId: string dateFormat: string showCurrentPrice: boolean @@ -31,7 +31,7 @@ export interface PriceChartProps { const PriceChart: React.FC = ({ prices, - median, + average, chartId, dateFormat, showCurrentPrice, @@ -190,8 +190,8 @@ const PriceChart: React.FC = ({ }, [prices]) const averageDataset = useMemo( - () => Array(paddedPrices.length).fill(median), - [paddedPrices, median], + () => Array(paddedPrices.length).fill(average), + [paddedPrices, average], ) const chartData: ChartData<"line", (number | null)[]> = useMemo(() => { diff --git a/src/i18n/en/index.ts b/src/i18n/en/index.ts index 6e5f6c7..7edb2ce 100644 --- a/src/i18n/en/index.ts +++ b/src/i18n/en/index.ts @@ -16,7 +16,7 @@ const en = { "Tomorrow's prices are not available yet. Prices are usually available after 20:30", LAST_THIRTY_DAYS: "Last 30 days", PRICE: "Price", - MEDIAN: "Median", + MEDIAN: "Average", } satisfies Translation export default en diff --git a/src/models/DailyAverage.ts b/src/models/DailyAverage.ts new file mode 100644 index 0000000..6204a95 --- /dev/null +++ b/src/models/DailyAverage.ts @@ -0,0 +1,4 @@ +export interface DailyAverage { + date: string + average: number +} diff --git a/src/models/DailyMedian.ts b/src/models/DailyMedian.ts deleted file mode 100644 index 088e810..0000000 --- a/src/models/DailyMedian.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface DailyMedian { - date: string - median: number -} diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 7aba3ac..23abbf4 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -3,7 +3,7 @@ import Box from "@mui/material/Box" import Typography from "@mui/material/Typography" import Paper from "@mui/material/Paper" import PriceChart from "components/PriceChart" -import { getDailyPriceInfo, getDailyMedians } from "services/PriceService" +import { getDailyPriceInfo, getDailyAverages } from "services/PriceService" import { Container, Grid } from "@mui/material" import Metric from "components/Metric" import { DailyPriceInfo } from "models/DailyPriceInfo" @@ -13,8 +13,8 @@ import { useDateTime } from "hooks/RegionalDateTime" import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers" import { AdapterLuxon } from "@mui/x-date-pickers/AdapterLuxon" import { DateTime } from "luxon" -import { DailyMedian } from "models/DailyMedian" -import DailyMedianChart from "components/DailyMedianChart" +import { DailyAverage } from "models/DailyAverage" +import DailyAverageChart from "components/DailyAverageChart" const DashboardContent: React.FC = () => { const { LL } = useI18nContext() @@ -26,7 +26,7 @@ const DashboardContent: React.FC = () => { const [pricesTomorrow, setPricesTomorrow] = useState< DailyPriceInfo | undefined >() - const [dailyMedians, setDailyMedians] = useState([]) + const [dailyAverages, setDailyAverages] = useState([]) useEffect(() => { const fetchData = async () => { @@ -57,9 +57,9 @@ const DashboardContent: React.FC = () => { useEffect(() => { const fetchData = async () => { - const medians = await getDailyMedians(currentDate) + const averages = await getDailyAverages(currentDate) - if (medians) setDailyMedians(medians) + if (averages) setDailyAverages(averages) } fetchData() }, [currentDate]) @@ -98,14 +98,14 @@ const DashboardContent: React.FC = () => { [currentDate, now], ) - const median = useMemo(() => { + const average = useMemo(() => { return ( - dailyMedians.reduce( - (accumulator, med) => accumulator + med.median, + dailyAverages.reduce( + (accumulator, med) => accumulator + med.average, 0, - ) / dailyMedians.length + ) / dailyAverages.length ) - }, [dailyMedians]) + }, [dailyAverages]) const currentPrice = useMemo(() => { return ( @@ -246,7 +246,7 @@ const DashboardContent: React.FC = () => { value={currentPrice?.price ?? 0} delta={ currentPrice - ? median - currentPrice.price + ? average - currentPrice.price : 0 } /> @@ -263,7 +263,7 @@ const DashboardContent: React.FC = () => { })} value={minPriceToday ? minPriceToday.price : 0} delta={ - median - + average - (minPriceToday ? minPriceToday.price : 0) } /> @@ -279,7 +279,7 @@ const DashboardContent: React.FC = () => { })} value={maxPriceToday ? maxPriceToday.price : 0} delta={ - median - + average - (maxPriceToday ? maxPriceToday.price : 0) } /> @@ -287,7 +287,7 @@ const DashboardContent: React.FC = () => { @@ -297,7 +297,7 @@ const DashboardContent: React.FC = () => { {currentPrices && ( { : 0 } delta={ - median - + average - (minPriceTomorrow ? minPriceTomorrow.price : 0) @@ -357,7 +357,7 @@ const DashboardContent: React.FC = () => { : 0 } delta={ - median - + average - (maxPriceTomorrow ? maxPriceTomorrow.price : 0) @@ -372,7 +372,7 @@ const DashboardContent: React.FC = () => { { - diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index 879abdf..eda33b4 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -1,7 +1,7 @@ import axios from "axios" import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" -import { DailyMedian } from "models/DailyMedian" +import { DailyAverage } from "models/DailyAverage" const PRICES_API = process.env.REACT_APP_API_URL ?? @@ -31,14 +31,14 @@ export const getDailyPriceInfo = async ( } } -export const getDailyMedians = async ( +export const getDailyAverages = async ( date: DateTime, -): Promise => { +): Promise => { const dateStr = date.toFormat("yyyy-MM-dd") try { - const response = await axios.get( - `${PRICES_API}/medians?date=${dateStr}`, + const response = await axios.get( + `${PRICES_API}/averages?date=${dateStr}`, ) return response.data } catch (error) { From 3cc02b1767f56e16fca4c87fdfbbcd8f741b1742 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 2 Nov 2023 22:21:31 +0100 Subject: [PATCH 42/78] fix: minor bug fix on chart --- package.json | 2 +- public/manifest.json | 2 +- src/components/PriceChart.tsx | 16 ++++++++++------ src/hooks/RegionalDateTime.tsx | 8 ++++++++ src/pages/Dashboard.tsx | 5 ----- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index d814272..4e8915e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.8.0", + "version": "2.8.1", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index 18b2d9e..8a6f530 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.8.0", + "version": "2.8.1", "start_url": ".", "display": "standalone", "theme_color": "#000000", diff --git a/src/components/PriceChart.tsx b/src/components/PriceChart.tsx index 726d6dd..8b9a7df 100644 --- a/src/components/PriceChart.tsx +++ b/src/components/PriceChart.tsx @@ -39,7 +39,7 @@ const PriceChart: React.FC = ({ expensivePeriods, }) => { const { LL } = useI18nContext() - const { now, fromISO } = useDateTime() + const { now, fromISO, endOfDay } = useDateTime() const theme = useTheme() const [currentPriceLocation, setCurrentPriceLocation] = useState(-1) const chartRef = useRef(null) @@ -180,14 +180,18 @@ const PriceChart: React.FC = ({ const paddedPrices = useMemo(() => { if (prices.length === 0) return [] + if (prices.length > 24) return prices const last = prices[prices.length - 1] const pp = [...prices] - pp.push({ - price: last.price, - dateTime: last.dateTime.slice(0, -8) + "24:00:00", - }) + const eod = endOfDay(last.dateTime).toISO() + if (eod) { + pp.push({ + price: last.price, + dateTime: eod, + }) + } return pp - }, [prices]) + }, [endOfDay, prices]) const averageDataset = useMemo( () => Array(paddedPrices.length).fill(average), diff --git a/src/hooks/RegionalDateTime.tsx b/src/hooks/RegionalDateTime.tsx index 26152da..3897f24 100644 --- a/src/hooks/RegionalDateTime.tsx +++ b/src/hooks/RegionalDateTime.tsx @@ -15,8 +15,16 @@ export const useDateTime = (timezone: string = DEFAULT_TIMEZONE) => { [timezone], ) + const endOfDay = useCallback( + (iso: string) => { + return fromISO(iso).endOf("day") + }, + [fromISO], + ) + return { now, fromISO, + endOfDay, } } diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 23abbf4..fe43f06 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -44,11 +44,6 @@ const DashboardContent: React.FC = () => { if (prices === null) { setPricesTomorrow(undefined) } else { - const last = prices.prices[prices.prices.length - 1] - prices.prices.push({ - price: last.price, - dateTime: last.dateTime.slice(0, -8) + "24:00:00", - }) setPricesTomorrow(prices) } } From 84fe847e498a184d80d66b8e2d89e11cdab9afac Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sun, 5 Nov 2023 17:20:23 +0100 Subject: [PATCH 43/78] chore: codecev support --- .github/workflows/unit-tests.yml | 5 +++++ src/services/PriceService.ts | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 91d3295..779dca9 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -23,3 +23,8 @@ jobs: - name: Run tests run: yarn test + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index eda33b4..e206026 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -3,9 +3,10 @@ import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" import { DailyAverage } from "models/DailyAverage" -const PRICES_API = - process.env.REACT_APP_API_URL ?? - "https://elec-api.daithiapp.com/api/v1/price" +// const PRICES_API = +// process.env.REACT_APP_API_URL ?? +// "https://elec-api.daithiapp.com/api/v1/price" +const PRICES_API = "http://localhost:8080/api/v1/price" export const getDailyPriceInfo = async ( date: DateTime, From 38168f9774822ab4a173937f842467b3a4381193 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sun, 5 Nov 2023 17:23:26 +0100 Subject: [PATCH 44/78] fix: naming issue --- .github/workflows/unit-tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 779dca9..f4279ca 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -6,7 +6,8 @@ on: branches: ["main"] jobs: - test: + unit-tests: + name: Run unit tests runs-on: ubuntu-latest steps: From bd9711f8d883a1a336b93b5abf3d0e239bb31e39 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Sun, 5 Nov 2023 20:46:59 +0100 Subject: [PATCH 45/78] fix: incorrect api --- src/services/PriceService.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index e206026..eda33b4 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -3,10 +3,9 @@ import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" import { DailyAverage } from "models/DailyAverage" -// const PRICES_API = -// process.env.REACT_APP_API_URL ?? -// "https://elec-api.daithiapp.com/api/v1/price" -const PRICES_API = "http://localhost:8080/api/v1/price" +const PRICES_API = + process.env.REACT_APP_API_URL ?? + "https://elec-api.daithiapp.com/api/v1/price" export const getDailyPriceInfo = async ( date: DateTime, From 13af5736e7f59dc12b217432a69a34c2cde4c1da Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 09:34:35 +0100 Subject: [PATCH 46/78] chore: adding heroku build --- heroku.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 heroku.yml diff --git a/heroku.yml b/heroku.yml new file mode 100644 index 0000000..60e23d9 --- /dev/null +++ b/heroku.yml @@ -0,0 +1,9 @@ +build: + docker: + web: Dockerfile + +env: + REACT_APP_API_URL: "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" + +run: + web: ./entrypoint.sh From b73da83694605f994a3407ecd561f4b1fbd75d3f Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 09:38:14 +0100 Subject: [PATCH 47/78] chore: adding heroku build --- heroku.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/heroku.yml b/heroku.yml index 60e23d9..c5d068c 100644 --- a/heroku.yml +++ b/heroku.yml @@ -2,8 +2,5 @@ build: docker: web: Dockerfile -env: - REACT_APP_API_URL: "https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price" - run: web: ./entrypoint.sh From 9b60e3674e3789e3afbd9332702ba98dd5394f4e Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 14:46:08 +0100 Subject: [PATCH 48/78] chore: adding support for a build arg for the api url --- Dockerfile | 6 ++++++ Makefile | 8 ++++++-- docker-compose.yaml | 6 +++++- src/services/PriceService.ts | 5 +++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5756ea3..4dd17cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,12 @@ COPY ./src ./src COPY ./public ./public COPY ./tsconfig.json tsconfig.json +# Set the build argument +ARG REACT_APP_API_URL + +# Set the environment variable to the value of the build argument +ENV REACT_APP_API_URL=${REACT_APP_API_URL} + RUN yarn build # deployment diff --git a/Makefile b/Makefile index f800cce..73711c7 100644 --- a/Makefile +++ b/Makefile @@ -5,5 +5,9 @@ start: #@ Start local yarn start build: #@ Build local yarn build -image: #@ Build docker image - docker build -t electricity-prices-dashboard . --load +.PHONY:build + +docker-up: #@ Start docker + docker compose up --build -d +docker-down: #@ Stop docker + docker compose down diff --git a/docker-compose.yaml b/docker-compose.yaml index 6480a33..5027f99 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,7 +2,11 @@ version: "3.5" services: electricity-prices-dashboard: - image: electricity-prices-dashboard + build: + context: . + dockerfile: Dockerfile + args: + - REACT_APP_API_URL=https://elec-api.daithiapp.com/api/v1/price container_name: electricity-prices-dashboard restart: always environment: diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index eda33b4..b3b41b4 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -4,8 +4,9 @@ import { DailyPriceInfo } from "models/DailyPriceInfo" import { DailyAverage } from "models/DailyAverage" const PRICES_API = - process.env.REACT_APP_API_URL ?? - "https://elec-api.daithiapp.com/api/v1/price" + process.env.REACT_APP_API_URL && process.env.REACT_APP_API_URL.trim() !== "" + ? process.env.REACT_APP_API_URL + : "https://elec-api.daithiapp.com/api/v1/price" export const getDailyPriceInfo = async ( date: DateTime, From f649a1bb07abc88e3f2f0343c911f20d275b80b1 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 14:56:29 +0100 Subject: [PATCH 49/78] chore: adding support for a build arg for the api url --- heroku.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/heroku.yml b/heroku.yml index c5d068c..927e5a9 100644 --- a/heroku.yml +++ b/heroku.yml @@ -1,6 +1,8 @@ build: docker: web: Dockerfile + config: + REACT_APP_API_URL: ${REACT_APP_API_URL} run: web: ./entrypoint.sh From 3f6b07ac5eccf705bbba3a832cc54cc83479d0f6 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 16:39:46 +0100 Subject: [PATCH 50/78] refactor: renaming const --- src/pages/Dashboard.tsx | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index fe43f06..5057d13 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -20,9 +20,7 @@ const DashboardContent: React.FC = () => { const { LL } = useI18nContext() const { now, fromISO } = useDateTime() const [currentDate, setCurrentDate] = useState(now()) - const [currentPrices, setPricesToday] = useState< - DailyPriceInfo | undefined - >() + const [pricesToday, setPricesToday] = useState() const [pricesTomorrow, setPricesTomorrow] = useState< DailyPriceInfo | undefined >() @@ -104,25 +102,25 @@ const DashboardContent: React.FC = () => { const currentPrice = useMemo(() => { return ( - currentPrices?.prices.find(price => { + pricesToday?.prices.find(price => { const priceDateTimeInMadrid = fromISO(price.dateTime) return currentDate.hasSame(priceDateTimeInMadrid, "hour") }) ?? null ) - }, [currentPrices?.prices, fromISO, currentDate]) + }, [pricesToday?.prices, fromISO, currentDate]) const minPriceToday = useMemo(() => { - if (!currentPrices) return null - const min = Math.min(...currentPrices.prices.map(price => price.price)) - return currentPrices.prices.find(price => price.price === min) ?? null - }, [currentPrices]) + if (!pricesToday) return null + const min = Math.min(...pricesToday.prices.map(price => price.price)) + return pricesToday.prices.find(price => price.price === min) ?? null + }, [pricesToday]) const maxPriceToday = useMemo(() => { - if (!currentPrices) return null - const max = Math.max(...currentPrices.prices.map(price => price.price)) - return currentPrices.prices.find(price => price.price === max) ?? null - }, [currentPrices]) + if (!pricesToday) return null + const max = Math.max(...pricesToday.prices.map(price => price.price)) + return pricesToday.prices.find(price => price.price === max) ?? null + }, [pricesToday]) const minPriceTomorrow = useMemo(() => { if (!pricesTomorrow) return null @@ -139,7 +137,7 @@ const DashboardContent: React.FC = () => { const currentRatingText = useMemo(() => { const date = currentDate.toFormat("dd/MM") - switch (currentPrices?.dayRating) { + switch (pricesToday?.dayRating) { case DayRating.BAD: return LL.CURRENT_RATING_BAD({ currentDate: date, @@ -153,7 +151,7 @@ const DashboardContent: React.FC = () => { currentDate: date, }) } - }, [currentPrices, currentDate, LL]) + }, [pricesToday, currentDate, LL]) const tomorrowRatingText = useMemo(() => { if (!pricesTomorrow || pricesTomorrow.prices.length === 0) @@ -289,15 +287,15 @@ const DashboardContent: React.FC = () => { - {currentPrices && ( + {pricesToday && ( )} From f961ec41946e6507ee469c65de6c3770eb36e5ac Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 17:11:47 +0100 Subject: [PATCH 51/78] chore: adding heroku build --- heroku.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/heroku.yml b/heroku.yml index 927e5a9..c5d068c 100644 --- a/heroku.yml +++ b/heroku.yml @@ -1,8 +1,6 @@ build: docker: web: Dockerfile - config: - REACT_APP_API_URL: ${REACT_APP_API_URL} run: web: ./entrypoint.sh From 099a7048816d321b0c45544355c846796f00a0a8 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 17:25:54 +0100 Subject: [PATCH 52/78] adding logging --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 4dd17cc..d4de2b8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ COPY ./tsconfig.json tsconfig.json # Set the build argument ARG REACT_APP_API_URL +RUN echo "Build argument REACT_APP_API_URL is: $REACT_APP_API_URL" # Set the environment variable to the value of the build argument ENV REACT_APP_API_URL=${REACT_APP_API_URL} From 768b6d2318d633ccbd15b034725b192bf8334024 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 17:31:33 +0100 Subject: [PATCH 53/78] fixing build --- heroku.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/heroku.yml b/heroku.yml index c5d068c..927e5a9 100644 --- a/heroku.yml +++ b/heroku.yml @@ -1,6 +1,8 @@ build: docker: web: Dockerfile + config: + REACT_APP_API_URL: ${REACT_APP_API_URL} run: web: ./entrypoint.sh From 025437a221247789c5931060cbaa09492a00929a Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 17:48:20 +0100 Subject: [PATCH 54/78] fixing build --- heroku.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/heroku.yml b/heroku.yml index 927e5a9..8225bab 100644 --- a/heroku.yml +++ b/heroku.yml @@ -2,7 +2,7 @@ build: docker: web: Dockerfile config: - REACT_APP_API_URL: ${REACT_APP_API_URL} + REACT_APP_API_URL: $REACT_APP_API_URL run: web: ./entrypoint.sh From 6f94cfe93a47bf87cce02eb70a5bc81bcade757d Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 18:02:27 +0100 Subject: [PATCH 55/78] hardcoding the api value --- heroku.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/heroku.yml b/heroku.yml index 8225bab..3bc938b 100644 --- a/heroku.yml +++ b/heroku.yml @@ -2,7 +2,7 @@ build: docker: web: Dockerfile config: - REACT_APP_API_URL: $REACT_APP_API_URL + REACT_APP_API_URL: https://elec-prices-9603b16ade4e.herokuapp.com/api/v1/price run: web: ./entrypoint.sh From 89387e2fdbc4249c2e0c25b56c1a6f1ef60acbca Mon Sep 17 00:00:00 2001 From: Daithi Hearn <37153003+daithihearn@users.noreply.github.com> Date: Thu, 7 Dec 2023 20:39:31 +0100 Subject: [PATCH 56/78] Create docker-image.yml --- .github/workflows/docker-image.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..f4c7173 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,18 @@ +name: Docker Image CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Build the Docker image + run: docker build . --file Dockerfile --tag electricity-prices-dashboard:$(date +%s) From f8c54dcb2622f8eca00ade7e4cac9d5499cfa877 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 21:09:32 +0100 Subject: [PATCH 57/78] build: github pages build --- .github/workflows/deploy-github-pages.yml | 38 +++++++++++++++++++++++ .github/workflows/docker-image.yml | 18 ----------- 2 files changed, 38 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/deploy-github-pages.yml delete mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/deploy-github-pages.yml b/.github/workflows/deploy-github-pages.yml new file mode 100644 index 0000000..88b6745 --- /dev/null +++ b/.github/workflows/deploy-github-pages.yml @@ -0,0 +1,38 @@ +name: Build and Deploy to GitHub Pages + +on: + push: + branches: + - main # Set to your default branch + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Cache Docker layers + uses: actions/cache@v1 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Build and Extract Static Files + run: | + docker build --target builder -t react-app . + id=$(docker create react-app) + docker cp $id:/app/build ./build + docker rm -v $id + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./build diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index f4c7173..0000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Docker Image CI - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -jobs: - - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Build the Docker image - run: docker build . --file Dockerfile --tag electricity-prices-dashboard:$(date +%s) From 726becf2e17925b6aefd9817617e6e14d64e0737 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 21:19:29 +0100 Subject: [PATCH 58/78] build: github pages build --- .github/workflows/deploy-github-pages.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/deploy-github-pages.yml b/.github/workflows/deploy-github-pages.yml index 88b6745..108511a 100644 --- a/.github/workflows/deploy-github-pages.yml +++ b/.github/workflows/deploy-github-pages.yml @@ -9,6 +9,9 @@ jobs: build-and-deploy: runs-on: ubuntu-latest + permissions: + contents: write + steps: - name: Checkout Repository uses: actions/checkout@v2 From f8415fce9ff99588dda7318ef27accc78fa262c5 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 21:30:11 +0100 Subject: [PATCH 59/78] build: github pages build --- .github/workflows/deploy-github-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-github-pages.yml b/.github/workflows/deploy-github-pages.yml index 108511a..04c379d 100644 --- a/.github/workflows/deploy-github-pages.yml +++ b/.github/workflows/deploy-github-pages.yml @@ -29,7 +29,7 @@ jobs: - name: Build and Extract Static Files run: | - docker build --target builder -t react-app . + docker build --build-arg REACT_APP_API_URL=${{ secrets.REACT_APP_API_URL }} --target builder -t react-app . id=$(docker create react-app) docker cp $id:/app/build ./build docker rm -v $id From ee06b42802092a17bef23ac52f7b1856be870ed8 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 22:22:12 +0100 Subject: [PATCH 60/78] deploy on release --- .github/workflows/deploy-github-pages.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-github-pages.yml b/.github/workflows/deploy-github-pages.yml index 04c379d..a34e4cd 100644 --- a/.github/workflows/deploy-github-pages.yml +++ b/.github/workflows/deploy-github-pages.yml @@ -1,9 +1,8 @@ name: Build and Deploy to GitHub Pages on: - push: - branches: - - main # Set to your default branch + release: + types: [published] jobs: build-and-deploy: From 15abf6f6107c17eb8eeb568d03bc2e638b3a8f20 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 22:22:39 +0100 Subject: [PATCH 61/78] run on github hosted hardware --- .github/workflows/publish-to-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index 66ffd80..37f29ca 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -11,7 +11,7 @@ jobs: contents: write pull-requests: write packages: read - runs-on: self-hosted + runs-on: ubuntu-latest steps: - name: Login to Dockerhub From ea3c4355c956820b1a86f5b02b3e40dda6f07500 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 22:24:07 +0100 Subject: [PATCH 62/78] updating version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4e8915e..1b5e004 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.8.1", + "version": "2.8.2", "private": true, "dependencies": { "@emotion/react": "^11.11.1", From d253b144fb8bc8010fbe0e567500e83054f2350c Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 22:24:43 +0100 Subject: [PATCH 63/78] run on github hosted hardware --- .github/workflows/build-docker-image.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml index 986cac1..145b077 100644 --- a/.github/workflows/build-docker-image.yml +++ b/.github/workflows/build-docker-image.yml @@ -1,16 +1,16 @@ name: Build Docker image on: - workflow_dispatch: - pull_request: - branches: ["main"] + workflow_dispatch: + pull_request: + branches: ["main"] jobs: - build: - name: Build docker image - runs-on: self-hosted + build: + name: Build docker image + runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Build the Docker image - run: docker build . --file Dockerfile + steps: + - uses: actions/checkout@v3 + - name: Build the Docker image + run: docker build . --file Dockerfile From 0d8a18c7afe5dcc9124410755029aa8aa13fcf47 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 23:03:20 +0100 Subject: [PATCH 64/78] updating dependencies --- Dockerfile | 1 - package.json | 40 +- yarn.lock | 1976 +++++++++++++++++++++++++------------------------- 3 files changed, 1028 insertions(+), 989 deletions(-) diff --git a/Dockerfile b/Dockerfile index d4de2b8..4dd17cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,6 @@ COPY ./tsconfig.json tsconfig.json # Set the build argument ARG REACT_APP_API_URL -RUN echo "Build argument REACT_APP_API_URL is: $REACT_APP_API_URL" # Set the environment variable to the value of the build argument ENV REACT_APP_API_URL=${REACT_APP_API_URL} diff --git a/package.json b/package.json index 1b5e004..e6f3445 100644 --- a/package.json +++ b/package.json @@ -5,29 +5,29 @@ "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.14.14", - "@mui/material": "^5.14.14", - "@mui/x-date-pickers": "^6.16.2", - "@testing-library/jest-dom": "^6.1.4", - "@testing-library/react": "^14.0.0", + "@mui/icons-material": "^5.14.19", + "@mui/material": "^5.14.20", + "@mui/x-date-pickers": "^6.18.3", + "@testing-library/jest-dom": "^6.1.5", + "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.1", - "@types/jest": "^29.5.6", - "@types/luxon": "^3.3.3", - "@types/node": "^20.8.7", - "@types/react": "^18.2.29", - "@types/react-dom": "^18.2.14", - "axios": "^1.5.1", - "chart.js": "^4.4.0", + "@types/jest": "^29.5.11", + "@types/luxon": "^3.3.7", + "@types/node": "^20.10.4", + "@types/react": "^18.2.42", + "@types/react-dom": "^18.2.17", + "axios": "^1.6.2", + "chart.js": "^4.4.1", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", - "luxon": "^3.4.3", - "mixpanel-browser": "^2.47.0", - "prettier": "^3.0.3", + "luxon": "^3.4.4", + "mixpanel-browser": "^2.48.1", + "prettier": "^3.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", "typesafe-i18n": "^5.26.2", - "typescript": "^5.2.2", + "typescript": "^5.3.3", "web-vitals": "^3.5.0" }, "scripts": { @@ -64,10 +64,10 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.23.2", - "@babel/preset-react": "^7.22.15", - "@babel/preset-typescript": "^7.23.2", - "@types/mixpanel-browser": "^2.47.4", + "@babel/preset-env": "^7.23.5", + "@babel/preset-react": "^7.23.3", + "@babel/preset-typescript": "^7.23.3", + "@types/mixpanel-browser": "^2.47.5", "babel-jest": "^29.7.0" } } diff --git a/yarn.lock b/yarn.lock index 51e96ef..6929ae8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,9 +8,9 @@ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@adobe/css-tools@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" - integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== + version "4.3.2" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.2.tgz#a6abc715fb6884851fca9dad37fc34739a04fd11" + integrity sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw== "@alloc/quick-lru@^5.2.0": version "5.2.0" @@ -34,34 +34,34 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.8.3": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.8.3": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.2.tgz#6a12ced93455827037bfb5ed8492820d60fc32cc" - integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" - integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.0" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.0" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -69,20 +69,20 @@ semver "^6.3.1" "@babel/eslint-parser@^7.16.3": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" - integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz#7bf0db1c53b54da0c8a12627373554a0828479ca" + integrity sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.23.0", "@babel/generator@^7.7.2": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== +"@babel/generator@^7.23.5", "@babel/generator@^7.7.2": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== dependencies: - "@babel/types" "^7.23.0" + "@babel/types" "^7.23.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -94,14 +94,14 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== @@ -112,22 +112,22 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" + integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== @@ -147,7 +147,7 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": +"@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== @@ -167,24 +167,24 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.15": +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" - integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-module-imports" "^7.22.15" @@ -204,7 +204,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.20", "@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-remap-async-to-generator@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== @@ -213,7 +213,7 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": +"@babel/helper-replace-supers@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== @@ -243,20 +243,20 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== "@babel/helper-wrap-function@^7.22.20": version "7.22.20" @@ -267,44 +267,52 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== +"@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" - integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f" - integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.15" + "@babel/plugin-transform-optional-chaining" "^7.23.3" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" + integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-proposal-class-properties@^7.16.0": version "7.18.6" @@ -315,15 +323,15 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.2.tgz#0b345a5754f48309fa50b7cd99075ef0295b12c8" - integrity sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.5.tgz#eeaa49d0dc9229aec4d23378653738cdc5a3ea0a" + integrity sha512-6IsY8jOeWibsengGlWIezp7cuZEFzNlAghFpzh9wiZwhQ42/hRcPnY/QV9HJoKTlujupinSlnQPiEy/u2C1ZfQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-create-class-features-plugin" "^7.23.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/plugin-syntax-decorators" "^7.22.10" + "@babel/plugin-syntax-decorators" "^7.23.3" "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": version "7.18.6" @@ -401,10 +409,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-decorators@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.10.tgz#7d83ea04d893c442b78ebf4c3cbac59a7211deff" - integrity sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ== +"@babel/plugin-syntax-decorators@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca" + integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -422,24 +430,24 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" - integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== +"@babel/plugin-syntax-flow@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz#084564e0f3cc21ea6c70c44cff984a1c0509729a" + integrity sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -457,10 +465,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== +"@babel/plugin-syntax-jsx@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -520,10 +528,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.22.5", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -535,219 +543,219 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz#054afe290d64c6f576f371ccc321772c8ea87ebb" - integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ== +"@babel/plugin-transform-async-generator-functions@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== dependencies: - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz#8744d02c6c264d82e1a4bc5d2d501fd8aff6f022" - integrity sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g== +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974" - integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g== +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.11" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b" - integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw== +"@babel/plugin-transform-classes@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" + integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@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.9" + "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" + "@babel/template" "^7.22.15" -"@babel/plugin-transform-destructuring@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" - integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa" - integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA== +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c" - integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw== +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-transform-flow-strip-types@^7.16.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" - integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz#cfa7ca159cc3306fab526fc67091556b51af26ff" + integrity sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" + "@babel/plugin-syntax-flow" "^7.23.3" -"@babel/plugin-transform-for-of@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29" - integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA== +"@babel/plugin-transform-for-of@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" + integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@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@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835" - integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw== +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c" - integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ== +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz#05b2bc43373faa6d30ca89214731f76f966f3b88" - integrity sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw== +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== dependencies: - "@babel/helper-module-transforms" "^7.23.0" + "@babel/helper-module-transforms" "^7.23.3" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-commonjs@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481" - integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== dependencies: - "@babel/helper-module-transforms" "^7.23.0" + "@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@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz#77591e126f3ff4132a40595a6cccd00a6b60d160" - integrity sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg== +"@babel/plugin-transform-modules-systemjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" + integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== dependencies: "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.23.0" + "@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@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== dependencies: - "@babel/helper-module-transforms" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": @@ -758,108 +766,108 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc" - integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg== +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd" - integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg== +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f" - integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q== +"@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== dependencies: - "@babel/compat-data" "^7.22.9" + "@babel/compat-data" "^7.23.3" "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/plugin-transform-parameters" "^7.23.3" -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-optional-catch-binding@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0" - integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ== +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.15", "@babel/plugin-transform-optional-chaining@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz#73ff5fc1cf98f542f09f29c0631647d8ad0be158" - integrity sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g== +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== 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" -"@babel/plugin-transform-parameters@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114" - integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.22.11": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1" - integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ== +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.11" + "@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@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz#6dfa7c1c37f7d7279e417ceddf5a04abb8bb9c29" - integrity sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz#5efc001d07ef0f7da0d73c3a86c132f73d28e43c" + integrity sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -871,43 +879,43 @@ "@babel/plugin-transform-react-jsx" "^7.22.5" "@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz#7e6266d88705d7c49f11c98db8b9464531289cd6" - integrity sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== 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.22.5" - "@babel/types" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" -"@babel/plugin-transform-react-pure-annotations@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" - integrity sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA== +"@babel/plugin-transform-react-pure-annotations@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" + integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" - integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" regenerator-transform "^0.15.2" -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.16.4": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz#c956a3f8d1aa50816ff6c30c6288d66635c12990" - integrity sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz#5132b388580002fc5cb7c84eccfb968acdc231cb" + integrity sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" @@ -916,102 +924,103 @@ babel-plugin-polyfill-regenerator "^0.5.3" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127" - integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" + integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-create-class-features-plugin" "^7.23.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" -"@babel/plugin-transform-unicode-escapes@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" - integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059" - integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" + integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== dependencies: - "@babel/compat-data" "^7.23.2" + "@babel/compat-data" "^7.23.5" "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15" + "@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.3" "@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.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" + "@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" @@ -1023,56 +1032,55 @@ "@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.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.23.2" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.23.0" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.11" - "@babel/plugin-transform-classes" "^7.22.15" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.23.0" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.11" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.11" - "@babel/plugin-transform-for-of" "^7.22.15" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.11" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.11" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.23.0" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-modules-systemjs" "^7.23.0" - "@babel/plugin-transform-modules-umd" "^7.22.5" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@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.3" + "@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.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11" - "@babel/plugin-transform-numeric-separator" "^7.22.11" - "@babel/plugin-transform-object-rest-spread" "^7.22.15" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.11" - "@babel/plugin-transform-optional-chaining" "^7.23.0" - "@babel/plugin-transform-parameters" "^7.22.15" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.10" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.10" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-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/types" "^7.23.0" babel-plugin-polyfill-corejs2 "^0.4.6" babel-plugin-polyfill-corejs3 "^0.8.5" babel-plugin-polyfill-regenerator "^0.5.3" @@ -1088,42 +1096,42 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0", "@babel/preset-react@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.22.15.tgz#9a776892b648e13cc8ca2edf5ed1264eea6b6afc" - integrity sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w== +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0", "@babel/preset-react@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" + integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-transform-react-display-name" "^7.22.5" + "@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.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.23.3" -"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.23.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz#c8de488130b7081f7e1482936ad3de5b018beef4" - integrity sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA== +"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.23.0" - "@babel/plugin-transform-typescript" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" "@babel/regjsgen@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7", "@babel/runtime@^7.23.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" + integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.15", "@babel/template@^7.22.5", "@babel/template@^7.3.3": +"@babel/template@^7.22.15", "@babel/template@^7.3.3": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -1132,28 +1140,28 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.2", "@babel/traverse@^7.7.2": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== +"@babel/traverse@^7.23.5", "@babel/traverse@^7.7.2": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" @@ -1388,14 +1396,14 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" - integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1407,15 +1415,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.51.0": - version "8.51.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" - integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== +"@eslint/js@8.55.0": + version "8.55.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" + integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== "@floating-ui/core@^1.4.2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" - integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== + version "1.5.2" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.2.tgz#53a0f7a98c550e63134d504f26804f6b83dbc071" + integrity sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A== dependencies: "@floating-ui/utils" "^0.1.3" @@ -1427,10 +1435,10 @@ "@floating-ui/core" "^1.4.2" "@floating-ui/utils" "^0.1.3" -"@floating-ui/react-dom@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20" - integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ== +"@floating-ui/react-dom@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz#b076fafbdfeb881e1d86ae748b7ff95150e9f3ec" + integrity sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ== dependencies: "@floating-ui/dom" "^1.5.1" @@ -1439,12 +1447,12 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -1453,10 +1461,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -1781,106 +1789,106 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/base@5.0.0-beta.20", "@mui/base@^5.0.0-beta.17": - version "5.0.0-beta.20" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.20.tgz#14fcdfe0350f2aad06ab6c37c4c91dacaab8f600" - integrity sha512-CS2pUuqxST7ch9VNDCklRYDbJ3rru20Tx7na92QvVVKfu3RL4z/QLuVIc8jYGsdCnauMaeUSlFNLAJNb0yXe6w== +"@mui/base@5.0.0-beta.26", "@mui/base@^5.0.0-beta.22": + version "5.0.0-beta.26" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.26.tgz#5fab6062238dc17dd840bf1a17ab759370452713" + integrity sha512-gPMRKC84VRw+tjqYoyBzyrBUqHQucMXdlBpYazHa5rCXrb91fYEQk5SqQ2U5kjxx9QxZxTBvWAmZ6DblIgaGhQ== dependencies: - "@babel/runtime" "^7.23.1" - "@floating-ui/react-dom" "^2.0.2" - "@mui/types" "^7.2.6" - "@mui/utils" "^5.14.13" + "@babel/runtime" "^7.23.4" + "@floating-ui/react-dom" "^2.0.4" + "@mui/types" "^7.2.10" + "@mui/utils" "^5.14.20" "@popperjs/core" "^2.11.8" clsx "^2.0.0" prop-types "^15.8.1" -"@mui/core-downloads-tracker@^5.14.14": - version "5.14.14" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.14.tgz#a54894e9b4dc908ab2d59eac543219d9018448e6" - integrity sha512-Rw/xKiTOUgXD8hdKqj60aC6QcGprMipG7ne2giK6Mz7b4PlhL/xog9xLeclY3BxsRLkZQ05egFnIEY1CSibTbw== - -"@mui/icons-material@^5.14.14": - version "5.14.14" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.14.tgz#02d33f51f0b9de238d5c47b0a31ff330144393c4" - integrity sha512-vwuaMsKvI7AWTeYqR8wYbpXijuU8PzMAJWRAq2DDIuOZPxjKyHlr8WQ25+azZYkIXtJ7AqnVb1ZmHdEyB4/kug== - dependencies: - "@babel/runtime" "^7.23.1" - -"@mui/material@^5.14.14": - version "5.14.14" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.14.tgz#e47f3992b609002cd57a71f70e829dc2d286028c" - integrity sha512-cAmCwAHFQXxb44kWbVFkhKATN8tACgMsFwrXo8ro6WzYW73U/qsR5AcCiJIhCyYYg+gcftfkmNcpRaV3JjhHCg== - dependencies: - "@babel/runtime" "^7.23.1" - "@mui/base" "5.0.0-beta.20" - "@mui/core-downloads-tracker" "^5.14.14" - "@mui/system" "^5.14.14" - "@mui/types" "^7.2.6" - "@mui/utils" "^5.14.13" - "@types/react-transition-group" "^4.4.7" +"@mui/core-downloads-tracker@^5.14.20": + version "5.14.20" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.20.tgz#c9ce5ccfcc7972d3bc1623440e041e0a01386626" + integrity sha512-fXoGe8VOrIYajqALysFuyal1q1YmBARqJ3tmnWYDVl0scu8f6h6tZQbS2K8BY28QwkWNGyv4WRfuUkzN5HR3Ow== + +"@mui/icons-material@^5.14.19": + version "5.14.19" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.19.tgz#6e0f4e9d89f99517d3c0ee65dee7ac97753755af" + integrity sha512-yjP8nluXxZGe3Y7pS+yxBV+hWZSsSBampCxkZwaw+1l+feL+rfP74vbEFbMrX/Kil9I/Y1tWfy5bs/eNvwNpWw== + dependencies: + "@babel/runtime" "^7.23.4" + +"@mui/material@^5.14.20": + version "5.14.20" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.20.tgz#d9834187838011642779c57bbdd989275ef37b6d" + integrity sha512-SUcPZnN6e0h1AtrDktEl76Dsyo/7pyEUQ+SAVe9XhHg/iliA0b4Vo+Eg4HbNkELsMbpDsUF4WHp7rgflPG7qYQ== + dependencies: + "@babel/runtime" "^7.23.4" + "@mui/base" "5.0.0-beta.26" + "@mui/core-downloads-tracker" "^5.14.20" + "@mui/system" "^5.14.20" + "@mui/types" "^7.2.10" + "@mui/utils" "^5.14.20" + "@types/react-transition-group" "^4.4.9" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.14.14": - version "5.14.14" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.14.tgz#035dde1eb30c896c69a12b7dee1dce3a323c66e9" - integrity sha512-n77au3CQj9uu16hak2Y+rvbGSBaJKxziG/gEbOLVGrAuqZ+ycVSkorCfN6Y/4XgYOpG/xvmuiY3JwhAEOzY3iA== +"@mui/private-theming@^5.14.20": + version "5.14.20" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.20.tgz#ccb0ef60d854510585cb266780d6e37589693c40" + integrity sha512-WV560e1vhs2IHCh0pgUaWHznrcrVoW9+cDCahU1VTkuwPokWVvb71ccWQ1f8Y3tRBPPcNkU2dChkkRJChLmQlQ== dependencies: - "@babel/runtime" "^7.23.1" - "@mui/utils" "^5.14.13" + "@babel/runtime" "^7.23.4" + "@mui/utils" "^5.14.20" prop-types "^15.8.1" -"@mui/styled-engine@^5.14.13": - version "5.14.14" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.14.tgz#b0ededf531fff1ef110f7b263c2d3d95a0b8ec9a" - integrity sha512-sF3DS2PVG+cFWvkVHQQaGFpL1h6gSwOW3L91pdxPLQDHDZ5mZ/X0SlXU5XA+WjypoysG4urdAQC7CH/BRvUiqg== +"@mui/styled-engine@^5.14.19": + version "5.14.20" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.20.tgz#b0e80294c35d2b68548f6f655fe80127b3169d05" + integrity sha512-Vs4nGptd9wRslo9zeRkuWcZeIEp+oYbODy+fiZKqqr4CH1Gfi9fdP0Q1tGYk8OiJ2EPB/tZSAyOy62Hyp/iP7g== dependencies: - "@babel/runtime" "^7.23.1" + "@babel/runtime" "^7.23.4" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.14.14": - version "5.14.14" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.14.tgz#f33327e74230523169107ace960e8bb51cbdbab7" - integrity sha512-y4InFmCgGGWXnz+iK4jRTWVikY0HgYnABjz4wgiUgEa2W1H8M4ow+27BegExUWPkj4TWthQ2qG9FOGSMtI+PKA== +"@mui/system@^5.14.20": + version "5.14.20" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.20.tgz#4973883279377024ca2b4c98d311ec364f01875b" + integrity sha512-jKOGtK4VfYZG5kdaryUHss4X6hzcfh0AihT8gmnkfqRtWP7xjY+vPaUhhuSeibE5sqA5wCtdY75z6ep9pxFnIg== dependencies: - "@babel/runtime" "^7.23.1" - "@mui/private-theming" "^5.14.14" - "@mui/styled-engine" "^5.14.13" - "@mui/types" "^7.2.6" - "@mui/utils" "^5.14.13" + "@babel/runtime" "^7.23.4" + "@mui/private-theming" "^5.14.20" + "@mui/styled-engine" "^5.14.19" + "@mui/types" "^7.2.10" + "@mui/utils" "^5.14.20" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/types@^7.2.6": - version "7.2.6" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.6.tgz#d72b9e9eb0032e107e76033932d65c3f731d2608" - integrity sha512-7sjLQrUmBwufm/M7jw/quNiPK/oor2+pGUQP2CULRcFCArYTq78oJ3D5esTaL0UMkXKJvDqXn6Ike69yAOBQng== +"@mui/types@^7.2.10": + version "7.2.10" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.10.tgz#13e3e9aa07ee6d593cfacd538e02e8e896d7a12f" + integrity sha512-wX1vbDC+lzF7FlhT6A3ffRZgEoKWPF8VqRoTu4lZwouFX2t90KyCMsgepMw5DxLak1BSp/KP86CmtZttikb/gQ== -"@mui/utils@^5.14.11", "@mui/utils@^5.14.13": - version "5.14.14" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.14.tgz#7b2a0bcfb44c3376fc81f85500f9bd01706682ac" - integrity sha512-3AKp8uksje5sRfVrtgG9Q/2TBsHWVBUtA0NaXliZqGcXo8J+A+Agp0qUW2rJ+ivgPWTCCubz9FZVT2IQZ3bGsw== +"@mui/utils@^5.14.16", "@mui/utils@^5.14.20": + version "5.14.20" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.20.tgz#6d57b8ef02633fbeef51de8f74a2388cde7da8b9" + integrity sha512-Y6yL5MoFmtQml20DZnaaK1znrCEwG6/vRSzW8PKOTrzhyqKIql0FazZRUR7sA5EPASgiyKZfq0FPwISRXm5NdA== dependencies: - "@babel/runtime" "^7.23.1" - "@types/prop-types" "^15.7.7" + "@babel/runtime" "^7.23.4" + "@types/prop-types" "^15.7.11" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/x-date-pickers@^6.16.2": - version "6.16.2" - resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-6.16.2.tgz#a21e9891d797287bd8aebb822eb26e70a81923f8" - integrity sha512-JFrDUeBkiKtfJ0WqwyPBICEP1U+Ujfsily3ZQ/Hv4zAOleG/5769EgS7TOO4cVgnuhtvQ/pqx2gmuCn8/gcC5w== +"@mui/x-date-pickers@^6.18.3": + version "6.18.3" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-6.18.3.tgz#a857adbe1591432f4cb87fdbb10c92ecb744b29a" + integrity sha512-DmJrAAr6EfhuWA9yubANAdeQayAbUppCezdhxkYKwn38G8+HJPZBol0V5fKji+B4jMxruO78lkQYsGUxVxaR7A== dependencies: - "@babel/runtime" "^7.23.1" - "@mui/base" "^5.0.0-beta.17" - "@mui/utils" "^5.14.11" - "@types/react-transition-group" "^4.4.7" + "@babel/runtime" "^7.23.2" + "@mui/base" "^5.0.0-beta.22" + "@mui/utils" "^5.14.16" + "@types/react-transition-group" "^4.4.8" clsx "^2.0.0" prop-types "^15.8.1" react-transition-group "^4.4.5" @@ -1971,9 +1979,9 @@ picomatch "^2.2.2" "@rushstack/eslint-patch@^1.1.0": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" - integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== + version "1.6.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz#1898e7a7b943680d757417a47fb10f5fcc230b39" + integrity sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA== "@sinclair/typebox@^0.24.1": version "0.24.51" @@ -2126,10 +2134,10 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^6.1.4": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.4.tgz#cf0835c33bc5ef00befb9e672b1e3e6a710e30e3" - integrity sha512-wpoYrCYwSZ5/AxcrjLxJmCU6I5QAJXslEeSiMQqaWmP2Kzpd1LvF/qxmAIW2qposULGWq2gw30GgVNFLSc2Jnw== +"@testing-library/jest-dom@^6.1.5": + version "6.1.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.5.tgz#0a635d0ad4a1a880089d967299d94e9cfc81fbe1" + integrity sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g== dependencies: "@adobe/css-tools" "^4.3.1" "@babel/runtime" "^7.9.2" @@ -2140,10 +2148,10 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.0.0.tgz#59030392a6792450b9ab8e67aea5f3cc18d6347c" - integrity sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg== +"@testing-library/react@^14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.1.2.tgz#a2b9e9ee87721ec9ed2d7cfc51cc04e474537c32" + integrity sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg== dependencies: "@babel/runtime" "^7.12.5" "@testing-library/dom" "^9.0.0" @@ -2165,14 +2173,14 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@types/aria-query@^5.0.1": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.3.tgz#07570ebd25f9b516c910a91f7244052c9b58eabc" - integrity sha512-0Z6Tr7wjKJIk4OUEjVUQMtyunLDy339vcMaj38Kpj6jM2OE1p3S4kXExKZ7a3uXQAPCoy3sbrP1wibDKaf39oA== + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.3.tgz#d5625a50b6f18244425a1359a858c73d70340778" - integrity sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -2181,77 +2189,77 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.6" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.6.tgz#676f89f67dc8ddaae923f70ebc5f1fa800c031a8" - integrity sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w== + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.3.tgz#db9ac539a2fe05cfe9e168b24f360701bde41f5f" - integrity sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.3.tgz#a971aa47441b28ef17884ff945d0551265a2d058" - integrity sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw== + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== dependencies: "@babel/types" "^7.20.7" "@types/body-parser@*": - version "1.19.4" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.4.tgz#78ad68f1f79eb851aa3634db0c7f57f6f601b462" - integrity sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA== + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: "@types/connect" "*" "@types/node" "*" "@types/bonjour@^3.5.9": - version "3.5.12" - resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.12.tgz#49badafb988e6c433ca675a5fd769b93b7649fc8" - integrity sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg== + version "3.5.13" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" + integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.2.tgz#acf51e088b3bb6507f7b093bd2b0de20940179cc" - integrity sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q== + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" + integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: "@types/express-serve-static-core" "*" "@types/node" "*" "@types/connect@*": - version "3.4.37" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.37.tgz#c66a96689fd3127c8772eb3e9e5c6028ec1a9af5" - integrity sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q== + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" "@types/eslint-scope@^3.7.3": - version "3.7.6" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.6.tgz#585578b368ed170e67de8aae7b93f54a1b2fdc26" - integrity sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ== + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.44.6" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.6.tgz#60e564551966dd255f4c01c459f0b4fb87068603" - integrity sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw== + version "8.44.8" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.8.tgz#f4fe1dab9b3d3dd98082d4b9f80e59ab40f1261c" + integrity sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.3.tgz#2be19e759a3dd18c79f9f436bd7363556c1a73dd" - integrity sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/estree@0.0.39": version "0.0.39" @@ -2259,9 +2267,9 @@ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": - version "4.17.38" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.38.tgz#d9c1d3a134a1226d84ec8e40c182f960f969d5a4" - integrity sha512-hXOtc0tuDHZPFwwhuBJXPbjemWtXnJjbvuuyNH2Y5Z6in+iXc63c4eXYDc7GGGqHy+iwYqAJMdaItqdnbcBKmg== + version "4.17.41" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" + integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2269,9 +2277,9 @@ "@types/send" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.20" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.20.tgz#e7c9b40276d29e38a4e3564d7a3d65911e2aa433" - integrity sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw== + version "4.17.21" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" + integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -2279,9 +2287,9 @@ "@types/serve-static" "*" "@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": - version "4.1.8" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.8.tgz#417e461e4dc79d957dc3107f45fe4973b09c2915" - integrity sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== dependencies: "@types/node" "*" @@ -2291,129 +2299,136 @@ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-errors@*": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.3.tgz#c54e61f79b3947d040f150abd58f71efb422ff62" - integrity sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== "@types/http-proxy@^1.17.8": - version "1.17.13" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.13.tgz#dd3a4da550580eb0557d4c7128a2ff1d1a38d465" - integrity sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw== + version "1.17.14" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.14.tgz#57f8ccaa1c1c3780644f8a94f9c6b5000b5e2eec" + integrity sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#fdfdd69fa16d530047d9963635bd77c71a08c068" - integrity sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz#394798d5f727402eb5ec99eb9618ffcd2b7645a1" - integrity sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz#0313e2608e6d6955d195f55361ddeebd4b74c6e7" - integrity sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.6": - version "29.5.6" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.6.tgz#f4cf7ef1b5b0bfc1aa744e41b24d9cc52533130b" - integrity sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w== +"@types/jest@^29.5.11": + version "29.5.11" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" + integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" - integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/luxon@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.3.tgz#b2e20a9536f91ab3e6e7895c91883e1a7ad49a6e" - integrity sha512-/BJF3NT0pRMuxrenr42emRUF67sXwcZCd+S1ksG/Fcf9O7C3kKCY4uJSbKBE4KDUIYr3WMsvfmWD8hRjXExBJQ== +"@types/luxon@^3.3.7": + version "3.3.7" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.7.tgz#043d413b6492a012de47503907bdf3ec4f827933" + integrity sha512-gKc9P2d4g5uYwmy4s/MO/yOVPmvHyvzka1YH6i5dM03UrFofHSmgc0D0ymbDRStFWHusk6cwwF6nhLm/ckBbbQ== "@types/mime@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.3.tgz#886674659ce55fe7c6c06ec5ca7c0eb276a08f91" - integrity sha512-i8MBln35l856k5iOhKk2XJ4SeAWg75mLIpZB4v6imOagKL6twsukBZGDMNhdOVk7yRFTMPpfILocMos59Q1otQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" + integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== "@types/mime@^1": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.4.tgz#a4ed836e069491414bab92c31fdea9e557aca0d9" - integrity sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw== + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/mixpanel-browser@^2.47.4": - version "2.47.4" - resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.4.tgz#38f0382ae51ca509a6686312ce40cc322cede1ca" - integrity sha512-wAwhSaIk//XY+O5Y8vnlb0Dc9Rpt0s+yHRXf1cGIYM4G5efzRjNeqWEqROf4qzP9FUgVE2M0Z8Pg9BV8Dt46yw== +"@types/mixpanel-browser@^2.47.5": + version "2.47.5" + resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.5.tgz#133dc80307884d6dc3277516a7d309be9ddc8bfd" + integrity sha512-qEKrYSN4nUCPLU39YCoF2vszON0KUkPox0mFlrvhdq+amE44CB25+rdfZV4M9n3pEggXuRH+fbdP9qxthvyFUw== -"@types/node@*", "@types/node@^20.8.7": - version "20.8.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.7.tgz#ad23827850843de973096edfc5abc9e922492a25" - integrity sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ== +"@types/node-forge@^1.3.0": + version "1.3.10" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.10.tgz#62a19d4f75a8b03290578c2b04f294b1a5a71b07" + integrity sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw== dependencies: - undici-types "~5.25.1" + "@types/node" "*" + +"@types/node@*", "@types/node@^20.10.4": + version "20.10.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198" + integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== + dependencies: + undici-types "~5.26.4" "@types/parse-json@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.1.tgz#27f7559836ad796cea31acb63163b203756a5b4e" - integrity sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/prettier@^2.1.5": version "2.7.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/prop-types@*", "@types/prop-types@^15.7.7": - version "15.7.9" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.9.tgz#b6f785caa7ea1fe4414d9df42ee0ab67f23d8a6d" - integrity sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g== +"@types/prop-types@*", "@types/prop-types@^15.7.11": + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== "@types/q@^1.5.1": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.7.tgz#5fe8cf91556bfb310d17f2e2b4263a7c12c2c2ca" - integrity sha512-HBPgtzp44867rkL+IzQ3560/E/BlobwCjeXsuKqogrcE99SKgZR4tvBBCuNJZMhUFMz26M7cjKWZg785lllwpA== + version "1.5.8" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== "@types/qs@*": - version "6.9.9" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.9.tgz#66f7b26288f6799d279edf13da7ccd40d2fa9197" - integrity sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg== + version "6.9.10" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" + integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== "@types/range-parser@*": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.6.tgz#7cb33992049fd7340d5b10c0098e104184dfcd2a" - integrity sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA== + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.14": - version "18.2.14" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.14.tgz#c01ba40e5bb57fc1dc41569bb3ccdb19eab1c539" - integrity sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ== +"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.17": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" + integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.7": - version "4.4.8" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.8.tgz#46f87d80512959cac793ecc610a93d80ef241ccf" - integrity sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg== +"@types/react-transition-group@^4.4.8", "@types/react-transition-group@^4.4.9": + version "4.4.10" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.29": - version "18.2.29" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.29.tgz#88b48a287e00f6fdcd6f95662878fb701ae18b27" - integrity sha512-Z+ZrIRocWtdD70j45izShRwDuiB4JZqDegqMFW/I8aG5DxxLKOzVNoq62UIO82v9bdgi+DO1jvsb9sTEZUSm+Q== +"@types/react@*", "@types/react@^18.2.42": + version "18.2.42" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.42.tgz#6f6b11a904f6d96dda3c2920328a97011a00aba7" + integrity sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2432,79 +2447,79 @@ integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/scheduler@*": - version "0.16.5" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.5.tgz#4751153abbf8d6199babb345a52e1eb4167d64af" - integrity sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw== + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== "@types/semver@^7.3.12": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@types/send@*": - version "0.17.3" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.3.tgz#81b2ea5a3a18aad357405af2d643ccbe5a09020b" - integrity sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug== + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/serve-index@^1.9.1": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.3.tgz#af9403916eb6fbf7d6ec6f47b2a4c46eb3222cc9" - integrity sha512-4KG+yMEuvDPRrYq5fyVm/I2uqAJSAwZK9VSa+Zf+zUq9/oxSSvy3kkIqyL+jjStv6UCVi8/Aho0NHtB1Fwosrg== + version "1.9.4" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" + integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": - version "1.15.4" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.4.tgz#44b5895a68ca637f06c229119e1c774ca88f81b2" - integrity sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw== + version "1.15.5" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" + integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== dependencies: "@types/http-errors" "*" "@types/mime" "*" "@types/node" "*" "@types/sockjs@^0.3.33": - version "0.3.35" - resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.35.tgz#f4a568c73d2a8071944bd6ffdca0d4e66810cd21" - integrity sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw== + version "0.3.36" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" + integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" "@types/stack-utils@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.2.tgz#01284dde9ef4e6d8cef6422798d9a3ad18a66f8b" - integrity sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/trusted-types@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.5.tgz#5cac7e7df3275bb95f79594f192d97da3b4fd5fe" - integrity sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA== + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== "@types/ws@^8.5.5": - version "8.5.8" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.8.tgz#13efec7bd439d0bdf2af93030804a94f163b1430" - integrity sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg== + version "8.5.10" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" + integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.2" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.2.tgz#7bd04c5da378496ef1695a1008bf8f71847a8b8b" - integrity sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^16.0.0": - version "16.0.7" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.7.tgz#b0d0502cb5f6c17994df72a600049f10bbf17203" - integrity sha512-lQcYmxWuOfJq4IncK88/nwud9rwr1F04CFc5xzk0k4oKVyz/AI35TfsXmhjf6t8zp8mpCOi17BfvuNWx+zrYkg== + version "16.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" + integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== dependencies: "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.29" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.29.tgz#06aabc72497b798c643c812a8b561537fea760cf" - integrity sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA== + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== dependencies: "@types/yargs-parser" "*" @@ -2599,6 +2614,11 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -2772,9 +2792,9 @@ acorn@^7.1.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== address@^1.0.1, address@^1.1.2: version "1.2.2" @@ -2913,7 +2933,7 @@ aria-query@5.1.3: dependencies: deep-equal "^2.0.5" -aria-query@^5.0.0, aria-query@^5.1.3: +aria-query@^5.0.0, aria-query@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== @@ -2938,7 +2958,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.6: +array-includes@^3.1.6, array-includes@^3.1.7: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== @@ -2954,7 +2974,7 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.2: +array.prototype.findlastindex@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== @@ -2965,7 +2985,7 @@ array.prototype.findlastindex@^1.2.2: es-shim-unscopables "^1.0.0" get-intrinsic "^1.2.1" -array.prototype.flat@^1.3.1: +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== @@ -2975,7 +2995,7 @@ array.prototype.flat@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1: +array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== @@ -3025,15 +3045,15 @@ asap@~2.0.6: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== asynciterator.prototype@^1.0.0: version "1.0.0" @@ -3069,21 +3089,21 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -axe-core@^4.6.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.2.tgz#2f6f3cde40935825cf4465e3c1c9e77b240ff6ae" - integrity sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g== +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== -axios@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f" - integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A== +axios@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" proxy-from-env "^1.1.0" -axobject-query@^3.1.1: +axobject-query@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== @@ -3182,12 +3202,12 @@ babel-plugin-polyfill-corejs2@^0.4.6: semver "^6.3.1" babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz#a75fa1b0c3fc5bd6837f9ec465c0f48031b8cab1" - integrity sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA== + version "0.8.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" + integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== dependencies: "@babel/helper-define-polyfill-provider" "^0.4.3" - core-js-compat "^3.32.2" + core-js-compat "^3.33.1" babel-plugin-polyfill-regenerator@^0.5.3: version "0.5.3" @@ -3353,14 +3373,14 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9, browserslist@^4.22.1: - version "4.22.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" - integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9, browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== dependencies: - caniuse-lite "^1.0.30001541" - electron-to-chromium "^1.4.535" - node-releases "^2.0.13" + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" update-browserslist-db "^1.0.13" bser@2.1.1: @@ -3390,13 +3410,14 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" callsites@^3.0.0: version "3.1.0" @@ -3436,10 +3457,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001541: - version "1.0.30001550" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001550.tgz#6ec6a2239eb2a8123cc26cfe0571db5c79eb8669" - integrity sha512-p82WjBYIypO0ukTsd/FG3Xxs+4tFeaY9pfT4amQL8KWtYH7H9nYwReGAbMTJ0hsmRO8IfDtsS6p3ZWj8+1c2RQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: + version "1.0.30001566" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" + integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -3481,10 +3502,10 @@ char-regex@^2.0.0: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== -chart.js@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.0.tgz#df843fdd9ec6bd88d7f07e2b95348d221bd2698c" - integrity sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ== +chart.js@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.4.1.tgz#ac5dc0e69a7758909158a96fe80ce43b3bb96a9f" + integrity sha512-C74QN1bxwV1v2PEujhmKjOZ7iUM4w6BWs23Md/6aOZZSlwMzeCIDGuZay++rBgChYru7/+QFeoQW0fQoP534Dg== dependencies: "@kurkle/color" "^0.3.0" @@ -3534,9 +3555,9 @@ cjs-module-lexer@^1.0.0: integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== clean-css@^5.2.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" - integrity sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww== + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== dependencies: source-map "~0.6.0" @@ -3716,22 +3737,22 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -core-js-compat@^3.31.0, core-js-compat@^3.32.2: - version "3.33.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.0.tgz#24aa230b228406450b2277b7c8bfebae932df966" - integrity sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw== +core-js-compat@^3.31.0, core-js-compat@^3.33.1: + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" + integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== dependencies: - browserslist "^4.22.1" + browserslist "^4.22.2" core-js-pure@^3.23.3: - version "3.33.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.0.tgz#938a28754b4d82017a7a8cbd2727b1abecc63591" - integrity sha512-FKSIDtJnds/YFIEaZ4HszRX7hkxGpNKM7FC9aJ9WLJbSd3lD4vOltFuVIBLR8asSx9frkTSqL0dw90SKQxgKrg== + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.34.0.tgz#981e462500708664c91b827a75b011f04a8134a0" + integrity sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg== core-js@^3.19.2: - version "3.33.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.0.tgz#70366dbf737134761edb017990cf5ce6c6369c40" - integrity sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw== + version "3.34.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.34.0.tgz#5705e6ad5982678612e96987d05b27c6c7c274a5" + integrity sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag== core-util-is@~1.0.0: version "1.0.3" @@ -3882,9 +3903,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.8.0.tgz#ac41fa025371b74eb2ccfe3d41f5c4dbd444fbe3" - integrity sha512-SkeezZOQr5AHt9MgJgSFNyiuJwg1p8AwoVln6JwaQJsyxduRW9QJ+HP/gAQzbsz8SIqINtYvpJKjxTRI67zxLg== + version "7.9.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.9.0.tgz#d42d8269ff3d3e1c366280ab1f9f6207057b262c" + integrity sha512-WPMT9seTQq6fPAa1yN4zjgZZeoTriSN2LqW9C+otjar12DQIWA4LuSfFrvFJiKp4oD0xIk1vumDLw8K9ur4NBw== cssesc@^3.0.0: version "3.0.0" @@ -3965,9 +3986,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2, csstype@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== damerau-levenshtein@^1.0.8: version "1.0.8" @@ -4015,14 +4036,14 @@ dedent@^0.7.0: integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== deep-equal@^2.0.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.2.tgz#9b2635da569a13ba8e1cc159c2f744071b115daa" - integrity sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA== + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== dependencies: array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" + call-bind "^1.0.5" es-get-iterator "^1.1.3" - get-intrinsic "^1.2.1" + get-intrinsic "^1.2.2" is-arguments "^1.1.1" is-array-buffer "^3.0.2" is-date-object "^1.0.5" @@ -4032,11 +4053,11 @@ deep-equal@^2.0.5: object-is "^1.1.5" object-keys "^1.1.1" object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" + regexp.prototype.flags "^1.5.1" side-channel "^1.0.4" which-boxed-primitive "^1.0.2" which-collection "^1.0.1" - which-typed-array "^1.1.9" + which-typed-array "^1.1.13" deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" @@ -4055,7 +4076,7 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" -define-data-property@^1.0.1: +define-data-property@^1.0.1, define-data-property@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== @@ -4069,7 +4090,7 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -4287,10 +4308,10 @@ ejs@^3.1.6: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.535: - version "1.4.558" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.558.tgz#28aca5571e8c156e0850f3547952b6f5ee7863ad" - integrity sha512-j9IcGmfkyN5MBH/0Xzg45GDHasXsnwEJDM6Xnr9H7GlGUni+JH4q6xp6Nk7NV5LjTmoEFBqhILIqg1McJrv6uA== +electron-to-chromium@^1.4.601: + version "1.4.608" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.608.tgz#ff567c51dde4892ae330860c7d9f19571e9e1d69" + integrity sha512-J2f/3iIIm3Mo0npneITZ2UPe4B1bg8fTNrFjD8715F/k1BvbviRuqYGkET1PgprrczXYTHFvotbBOmUp6KE0uA== emittery@^0.10.2: version "0.10.2" @@ -4350,25 +4371,25 @@ error-stack-parser@^2.0.6: stackframe "^1.3.4" es-abstract@^1.17.2, es-abstract@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" - integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== dependencies: array-buffer-byte-length "^1.0.0" arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.5" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" - get-intrinsic "^1.2.1" + get-intrinsic "^1.2.2" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" internal-slot "^1.0.5" is-array-buffer "^3.0.2" is-callable "^1.2.7" @@ -4378,7 +4399,7 @@ es-abstract@^1.17.2, es-abstract@^1.22.1: is-string "^1.0.7" is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.3" + object-inspect "^1.13.1" object-keys "^1.1.1" object.assign "^4.1.4" regexp.prototype.flags "^1.5.1" @@ -4392,7 +4413,7 @@ es-abstract@^1.17.2, es-abstract@^1.22.1: typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.11" + which-typed-array "^1.1.13" es-array-method-boxes-properly@^1.0.0: version "1.0.0" @@ -4414,7 +4435,7 @@ es-get-iterator@^1.1.3: isarray "^2.0.5" stop-iteration-iterator "^1.0.0" -es-iterator-helpers@^1.0.12: +es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== @@ -4435,25 +4456,25 @@ es-iterator-helpers@^1.0.12: safe-array-concat "^1.0.1" es-module-lexer@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" - integrity sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q== + version "1.4.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5" + integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w== es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" + get-intrinsic "^1.2.2" has-tostringtag "^1.0.0" + hasown "^2.0.0" es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - has "^1.0.3" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -4532,7 +4553,7 @@ eslint-config-react-app@^7.0.1: eslint-plugin-react-hooks "^4.3.0" eslint-plugin-testing-library "^5.0.1" -eslint-import-resolver-node@^0.3.7: +eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== @@ -4557,25 +4578,25 @@ eslint-plugin-flowtype@^8.0.3: string-natural-compare "^3.0.1" eslint-plugin-import@^2.25.3: - version "2.28.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4" - integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A== - dependencies: - array-includes "^3.1.6" - array.prototype.findlastindex "^1.2.2" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + version "2.29.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" + integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" + eslint-import-resolver-node "^0.3.9" eslint-module-utils "^2.8.0" - has "^1.0.3" - is-core-module "^2.13.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.6" - object.groupby "^1.0.0" - object.values "^1.1.6" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" semver "^6.3.1" tsconfig-paths "^3.14.2" @@ -4587,26 +4608,26 @@ eslint-plugin-jest@^25.3.0: "@typescript-eslint/experimental-utils" "^5.0.0" eslint-plugin-jsx-a11y@^6.5.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" - integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== - dependencies: - "@babel/runtime" "^7.20.7" - aria-query "^5.1.3" - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - ast-types-flow "^0.0.7" - axe-core "^4.6.2" - axobject-query "^3.1.1" + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - has "^1.0.3" - jsx-ast-utils "^3.3.3" - language-tags "=1.0.5" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - semver "^6.3.0" + object.entries "^1.1.7" + object.fromentries "^2.0.7" eslint-plugin-react-hooks@^4.3.0: version "4.6.0" @@ -4680,17 +4701,18 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.51.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" - integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== + version "8.55.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" + integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.51.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.55.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -4873,10 +4895,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.12, fast-glob@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5000,9 +5022,9 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" - integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: flatted "^3.2.9" keyv "^4.5.3" @@ -5111,7 +5133,7 @@ fsevents@^2.3.2, fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: +function-bind@^1.1.1, function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== @@ -5141,15 +5163,15 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" @@ -5314,11 +5336,11 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== dependencies: - get-intrinsic "^1.1.1" + get-intrinsic "^1.2.2" has-proto@^1.0.1: version "1.0.1" @@ -5337,10 +5359,12 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" he@^1.2.0: version "1.2.0" @@ -5400,9 +5424,9 @@ html-minifier-terser@^6.0.2: terser "^5.10.0" html-webpack-plugin@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz#72270f4a78e222b5825b296e5e3e1328ad525a3e" - integrity sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg== + version "5.5.4" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.4.tgz#517a48e6f046ff1ae1a172c983cd993eb79d2f6a" + integrity sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -5525,9 +5549,9 @@ identity-obj-proxy@^3.0.0: harmony-reflect "^1.4.6" ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== immer@^9.0.7: version "9.0.21" @@ -5584,12 +5608,12 @@ ini@^1.3.5: integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-slot@^1.0.4, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" ipaddr.js@1.9.1: @@ -5658,12 +5682,12 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - has "^1.0.3" + hasown "^2.0.0" is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" @@ -5864,9 +5888,9 @@ isexe@^2.0.0: integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.2.1" @@ -6494,10 +6518,10 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" -jiti@^1.18.2: - version "1.20.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" - integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== +jiti@^1.19.1: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -6627,7 +6651,7 @@ jsonpointer@^5.0.0: resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: version "3.3.5" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== @@ -6659,17 +6683,17 @@ klona@^2.0.4, klona@^2.0.5: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== -language-subtag-registry@~0.3.2: +language-subtag-registry@^0.3.20: version "0.3.22" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== -language-tags@=1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== dependencies: - language-subtag-registry "~0.3.2" + language-subtag-registry "^0.3.20" launch-editor@^2.6.0: version "2.6.1" @@ -6700,11 +6724,16 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.1.0: +lilconfig@^2.0.3, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== +lilconfig@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -6809,10 +6838,10 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -luxon@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.3.tgz#8ddf0358a9492267ffec6a13675fbaab5551315d" - integrity sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg== +luxon@^3.4.4: + version "3.4.4" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" + integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== lz-string@^1.5.0: version "1.5.0" @@ -6955,10 +6984,10 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mixpanel-browser@^2.47.0: - version "2.47.0" - resolved "https://registry.yarnpkg.com/mixpanel-browser/-/mixpanel-browser-2.47.0.tgz#4e7fd3bb660c6f63443efbd169d1cd327db71ed4" - integrity sha512-Ldrva0fRBEIFWmEibBQO1PulfpJVF3pf28Guk09lDirDaSQqqU/xs9zQLwN2rL5VwVtsP1aD3JaCgaa98EjojQ== +mixpanel-browser@^2.48.1: + version "2.48.1" + resolved "https://registry.yarnpkg.com/mixpanel-browser/-/mixpanel-browser-2.48.1.tgz#0fec03d87f57fe2e72c6a4b1df5924436840ece7" + integrity sha512-vXTuUzZMg+ht7sRqyjtc3dUDy/81Z/H6FLFgFkUZJqKFaAqcx1JSXmOdY/2kmsxCkUdy5JN5zW9m9TMCk+rxGQ== mkdirp@~0.5.1: version "0.5.6" @@ -6999,10 +7028,10 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare-lite@^1.4.0: version "1.4.0" @@ -7042,10 +7071,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -7098,10 +7127,10 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.0.tgz#42695d3879e1cd5bda6df5062164d80c996e23e2" - integrity sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g== +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-is@^1.1.5: version "1.1.5" @@ -7117,16 +7146,16 @@ object-keys@^1.1.1: integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.6: +object.entries@^1.1.6, object.entries@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== @@ -7135,7 +7164,7 @@ object.entries@^1.1.6: define-properties "^1.2.0" es-abstract "^1.22.1" -object.fromentries@^2.0.6: +object.fromentries@^2.0.6, object.fromentries@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== @@ -7155,7 +7184,7 @@ object.getownpropertydescriptors@^2.1.0: es-abstract "^1.22.1" safe-array-concat "^1.0.0" -object.groupby@^1.0.0: +object.groupby@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== @@ -7173,7 +7202,7 @@ object.hasown@^1.1.2: define-properties "^1.2.0" es-abstract "^1.22.1" -object.values@^1.1.0, object.values@^1.1.6: +object.values@^1.1.0, object.values@^1.1.6, object.values@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== @@ -7611,12 +7640,12 @@ postcss-lab-function@^4.2.1: postcss-value-parser "^4.2.0" postcss-load-config@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" - integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: - lilconfig "^2.0.5" - yaml "^2.1.1" + lilconfig "^3.0.0" + yaml "^2.3.4" postcss-loader@^6.2.1: version "6.2.1" @@ -7960,11 +7989,11 @@ postcss@^7.0.35: source-map "^0.6.1" postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== dependencies: - nanoid "^3.3.6" + nanoid "^3.3.7" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -7978,10 +8007,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== +prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -8072,9 +8101,9 @@ psl@^1.1.33: integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== q@^1.1.2: version "1.5.1" @@ -8631,10 +8660,11 @@ select-hose@^2.0.0: integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" - integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: + "@types/node-forge" "^1.3.0" node-forge "^1" semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: @@ -8705,6 +8735,16 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" @@ -9151,19 +9191,19 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== tailwindcss@^3.0.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.3.tgz#90da807393a2859189e48e9e7000e6880a736daf" - integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== + version "3.3.6" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.6.tgz#4dd7986bf4902ad385d90d45fd4b2fa5fab26d5f" + integrity sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" chokidar "^3.5.3" didyoumean "^1.2.2" dlv "^1.1.3" - fast-glob "^3.2.12" + fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.18.2" + jiti "^1.19.1" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -9223,9 +9263,9 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: terser "^5.16.8" terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: - version "5.22.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.22.0.tgz#4f18103f84c5c9437aafb7a14918273310a8a49d" - integrity sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw== + version "5.26.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" + integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -9446,10 +9486,10 @@ typesafe-i18n@^5.26.2: resolved "https://registry.yarnpkg.com/typesafe-i18n/-/typesafe-i18n-5.26.2.tgz#d8e2ef67197c837cdd11ea2ec17f73af2591e9b4" integrity sha512-2QAriFmiY5JwUAJtG7yufoE/XZ1aFBY++wj7YFS2yo89a3jLBfKoWSdq5JfQYk1V2BS7V2c/u+KEcaCQoE65hw== -typescript@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== +typescript@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== unbox-primitive@^1.0.2: version "1.0.2" @@ -9466,10 +9506,10 @@ underscore@1.12.1: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== -undici-types@~5.25.1: - version "5.25.3" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" - integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -9507,9 +9547,9 @@ universalify@^0.2.0: integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" @@ -9843,13 +9883,13 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" -which-typed-array@^1.1.11, which-typed-array@^1.1.9: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" @@ -10114,10 +10154,10 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.1.1: - version "2.3.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.3.tgz#01f6d18ef036446340007db8e016810e5d64aad9" - integrity sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ== +yaml@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== yargs-parser@^20.2.2: version "20.2.9" From c36860fc4c065c4949875f04a89fef3bb2a549b8 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 7 Dec 2023 23:04:33 +0100 Subject: [PATCH 65/78] updating version --- package.json | 2 +- public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e6f3445..a915e5f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.8.2", + "version": "2.8.3", "private": true, "dependencies": { "@emotion/react": "^11.11.1", diff --git a/public/manifest.json b/public/manifest.json index 8a6f530..2ce6b88 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.8.1", + "version": "2.8.3", "start_url": ".", "display": "standalone", "theme_color": "#000000", From 8a75b4c61c96d9dfb461be329a8795209ee81542 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Fri, 8 Dec 2023 00:50:20 +0100 Subject: [PATCH 66/78] adding cname record --- .github/workflows/deploy-github-pages.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/deploy-github-pages.yml b/.github/workflows/deploy-github-pages.yml index a34e4cd..36331b9 100644 --- a/.github/workflows/deploy-github-pages.yml +++ b/.github/workflows/deploy-github-pages.yml @@ -33,6 +33,9 @@ jobs: docker cp $id:/app/build ./build docker rm -v $id + - name: Create CNAME File + run: echo '${{ secrets.CNAME }}' > ./build/CNAME + - name: Deploy to GitHub Pages uses: peaceiris/actions-gh-pages@v3 with: From 255a61552a40c2ac8ef4379b9dda23dda80123ed Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 3 Jan 2024 21:03:00 +0100 Subject: [PATCH 67/78] chore: update dependencies --- package.json | 28 +- yarn.lock | 803 ++++++++++++++++++++++++++++----------------------- 2 files changed, 457 insertions(+), 374 deletions(-) diff --git a/package.json b/package.json index a915e5f..de4a948 100644 --- a/package.json +++ b/package.json @@ -3,32 +3,32 @@ "version": "2.8.3", "private": true, "dependencies": { - "@emotion/react": "^11.11.1", + "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.14.19", - "@mui/material": "^5.14.20", - "@mui/x-date-pickers": "^6.18.3", - "@testing-library/jest-dom": "^6.1.5", + "@mui/icons-material": "^5.15.3", + "@mui/material": "^5.15.3", + "@mui/x-date-pickers": "^6.18.6", + "@testing-library/jest-dom": "^6.2.0", "@testing-library/react": "^14.1.2", - "@testing-library/user-event": "^14.5.1", + "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.11", "@types/luxon": "^3.3.7", - "@types/node": "^20.10.4", - "@types/react": "^18.2.42", - "@types/react-dom": "^18.2.17", - "axios": "^1.6.2", + "@types/node": "^20.10.6", + "@types/react": "^18.2.46", + "@types/react-dom": "^18.2.18", + "axios": "^1.6.3", "chart.js": "^4.4.1", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", "luxon": "^3.4.4", "mixpanel-browser": "^2.48.1", - "prettier": "^3.1.0", + "prettier": "^3.1.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", "typesafe-i18n": "^5.26.2", "typescript": "^5.3.3", - "web-vitals": "^3.5.0" + "web-vitals": "^3.5.1" }, "scripts": { "start": "react-scripts start", @@ -64,10 +64,10 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.23.5", + "@babel/preset-env": "^7.23.7", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.23.3", - "@types/mixpanel-browser": "^2.47.5", + "@types/mixpanel-browser": "^2.48.1", "babel-jest": "^29.7.0" } } diff --git a/yarn.lock b/yarn.lock index 6929ae8..30da3c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,7 +7,7 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@adobe/css-tools@^4.3.1": +"@adobe/css-tools@^4.3.2": version "4.3.2" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.2.tgz#a6abc715fb6884851fca9dad37fc34739a04fd11" integrity sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw== @@ -42,26 +42,26 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" - integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.5" - "@babel/parser" "^7.23.5" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" + "@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" @@ -77,12 +77,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.23.5", "@babel/generator@^7.7.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" - integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - "@babel/types" "^7.23.5" + "@babel/types" "^7.23.6" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -101,21 +101,21 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" - integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6", "@babel/helper-create-class-features-plugin@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d" + integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -136,10 +136,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -267,14 +267,14 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" - integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== +"@babel/helpers@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.7.tgz#eb543c36f81da2873e47b76ee032343ac83bba60" + integrity sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" "@babel/highlight@^7.23.4": version "7.23.4" @@ -285,10 +285,10 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" - integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" @@ -306,10 +306,10 @@ "@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@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -323,14 +323,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-decorators@^7.16.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.5.tgz#eeaa49d0dc9229aec4d23378653738cdc5a3ea0a" - integrity sha512-6IsY8jOeWibsengGlWIezp7cuZEFzNlAghFpzh9wiZwhQ42/hRcPnY/QV9HJoKTlujupinSlnQPiEy/u2C1ZfQ== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.7.tgz#1d827902cbd3d9054e54fb2f2056cdd1eaa0e368" + integrity sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng== dependencies: - "@babel/helper-create-class-features-plugin" "^7.23.5" + "@babel/helper-create-class-features-plugin" "^7.23.7" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-split-export-declaration" "^7.22.6" "@babel/plugin-syntax-decorators" "^7.23.3" "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": @@ -550,10 +548,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== +"@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -677,12 +675,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-flow" "^7.23.3" -"@babel/plugin-transform-for-of@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-function-name@^7.23.3": version "7.23.3" @@ -913,15 +912,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.16.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz#5132b388580002fc5cb7c84eccfb968acdc231cb" - integrity sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz#52bbd20054855beb9deae3bee9ceb05289c343e6" + integrity sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw== 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" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.23.3": @@ -961,12 +960,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typescript@^7.23.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" - integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.23.5" + "@babel/helper-create-class-features-plugin" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.23.3" @@ -1001,18 +1000,18 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" - integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.7.tgz#e5d69b9f14db8a13bae4d8e5ce7f360973626241" + integrity sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA== dependencies: "@babel/compat-data" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@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.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" @@ -1033,7 +1032,7 @@ "@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.4" + "@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" @@ -1047,7 +1046,7 @@ "@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.3" + "@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" @@ -1081,9 +1080,9 @@ "@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.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + 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" @@ -1124,10 +1123,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" - integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.7.tgz#dd7c88deeb218a0f8bd34d5db1aa242e0f203193" + integrity sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA== dependencies: regenerator-runtime "^0.14.0" @@ -1140,26 +1139,26 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.5", "@babel/traverse@^7.7.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" - integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== +"@babel/traverse@^7.23.7", "@babel/traverse@^7.7.2": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== dependencies: "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" + "@babel/generator" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.5" - "@babel/types" "^7.23.5" - debug "^4.1.0" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" - integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -1171,9 +1170,9 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@csstools/normalize.css@*": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz#a9583a75c3f150667771f30b60d9f059473e62c4" - integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg== + version "12.1.1" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-12.1.1.tgz#f0ad221b7280f3fc814689786fd9ee092776ef8f" + integrity sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ== "@csstools/postcss-cascade-layers@^1.1.1": version "1.1.1" @@ -1326,24 +1325,24 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== -"@emotion/react@^11.11.1": - version "11.11.1" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" - integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== +"@emotion/react@^11.11.3": + version "11.11.3" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.3.tgz#96b855dc40a2a55f52a72f518a41db4f69c31a25" + integrity sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA== dependencies: "@babel/runtime" "^7.18.3" "@emotion/babel-plugin" "^11.11.0" "@emotion/cache" "^11.11.0" - "@emotion/serialize" "^1.1.2" + "@emotion/serialize" "^1.1.3" "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" "@emotion/utils" "^1.2.1" "@emotion/weak-memoize" "^0.3.1" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" - integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== +"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.3.tgz#84b77bfcfe3b7bb47d326602f640ccfcacd5ffb0" + integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA== dependencies: "@emotion/hash" "^0.9.1" "@emotion/memoize" "^0.8.1" @@ -1415,10 +1414,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.55.0": - version "8.55.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" - integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@floating-ui/core@^1.4.2": version "1.5.2" @@ -1466,6 +1465,18 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -1771,7 +1782,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.9": version "0.3.20" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== @@ -1789,101 +1800,101 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/base@5.0.0-beta.26", "@mui/base@^5.0.0-beta.22": - version "5.0.0-beta.26" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.26.tgz#5fab6062238dc17dd840bf1a17ab759370452713" - integrity sha512-gPMRKC84VRw+tjqYoyBzyrBUqHQucMXdlBpYazHa5rCXrb91fYEQk5SqQ2U5kjxx9QxZxTBvWAmZ6DblIgaGhQ== +"@mui/base@5.0.0-beta.30", "@mui/base@^5.0.0-beta.22": + version "5.0.0-beta.30" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.30.tgz#8feca6b70f2b9cd4d5cb97799ae9fcb5376c7f83" + integrity sha512-dc38W4W3K42atE9nSaOeoJ7/x9wGIfawdwC/UmMxMLlZ1iSsITQ8dQJaTATCbn98YvYPINK/EH541YA5enQIPQ== dependencies: - "@babel/runtime" "^7.23.4" + "@babel/runtime" "^7.23.6" "@floating-ui/react-dom" "^2.0.4" - "@mui/types" "^7.2.10" - "@mui/utils" "^5.14.20" + "@mui/types" "^7.2.12" + "@mui/utils" "^5.15.3" "@popperjs/core" "^2.11.8" clsx "^2.0.0" prop-types "^15.8.1" -"@mui/core-downloads-tracker@^5.14.20": - version "5.14.20" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.20.tgz#c9ce5ccfcc7972d3bc1623440e041e0a01386626" - integrity sha512-fXoGe8VOrIYajqALysFuyal1q1YmBARqJ3tmnWYDVl0scu8f6h6tZQbS2K8BY28QwkWNGyv4WRfuUkzN5HR3Ow== - -"@mui/icons-material@^5.14.19": - version "5.14.19" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.19.tgz#6e0f4e9d89f99517d3c0ee65dee7ac97753755af" - integrity sha512-yjP8nluXxZGe3Y7pS+yxBV+hWZSsSBampCxkZwaw+1l+feL+rfP74vbEFbMrX/Kil9I/Y1tWfy5bs/eNvwNpWw== - dependencies: - "@babel/runtime" "^7.23.4" - -"@mui/material@^5.14.20": - version "5.14.20" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.20.tgz#d9834187838011642779c57bbdd989275ef37b6d" - integrity sha512-SUcPZnN6e0h1AtrDktEl76Dsyo/7pyEUQ+SAVe9XhHg/iliA0b4Vo+Eg4HbNkELsMbpDsUF4WHp7rgflPG7qYQ== - dependencies: - "@babel/runtime" "^7.23.4" - "@mui/base" "5.0.0-beta.26" - "@mui/core-downloads-tracker" "^5.14.20" - "@mui/system" "^5.14.20" - "@mui/types" "^7.2.10" - "@mui/utils" "^5.14.20" - "@types/react-transition-group" "^4.4.9" +"@mui/core-downloads-tracker@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.3.tgz#40fc854d7cf5505a182a4e121149dfe21cd277ef" + integrity sha512-sWeihiVyxdJjpLkp8SHkTy9kt2M/o11M60G1MzwljGL2BXdM3Ktzqv5QaQHdi00y7Y1ulvtI3GOSxP2xU8mQJw== + +"@mui/icons-material@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.15.3.tgz#eee07582ea3ad913982b7843ff1612d0fad21278" + integrity sha512-7LEs8AnO2Se/XYH+CcJndRsGAE+M8KAExiiQHf0V11poqmPVGcbbY82Ry2IUYf9+rOilCVnWI18ErghZ625BPQ== + dependencies: + "@babel/runtime" "^7.23.6" + +"@mui/material@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.15.3.tgz#b77f1ac1275e5bf13b735e8224bdd301aab918c4" + integrity sha512-DODBBMouyq1B5f3YkEWL9vO8pGCxuEGqtfpltF6peMJzz/78tJFyLQsDas9MNLC/8AdFu2BQdkK7wox5UBPTAA== + dependencies: + "@babel/runtime" "^7.23.6" + "@mui/base" "5.0.0-beta.30" + "@mui/core-downloads-tracker" "^5.15.3" + "@mui/system" "^5.15.3" + "@mui/types" "^7.2.12" + "@mui/utils" "^5.15.3" + "@types/react-transition-group" "^4.4.10" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.14.20": - version "5.14.20" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.20.tgz#ccb0ef60d854510585cb266780d6e37589693c40" - integrity sha512-WV560e1vhs2IHCh0pgUaWHznrcrVoW9+cDCahU1VTkuwPokWVvb71ccWQ1f8Y3tRBPPcNkU2dChkkRJChLmQlQ== +"@mui/private-theming@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.15.3.tgz#2db0177d847dc6b28721d93308ed05d434a77c53" + integrity sha512-Q79MhVMmywC1l5bMsMZq5PsIudr1MNPJnx9/EqdMP0vpz5iNvFpnLmxsD7d8/hqTWgFAljI+LH3jX8MxlZH9Gw== dependencies: - "@babel/runtime" "^7.23.4" - "@mui/utils" "^5.14.20" + "@babel/runtime" "^7.23.6" + "@mui/utils" "^5.15.3" prop-types "^15.8.1" -"@mui/styled-engine@^5.14.19": - version "5.14.20" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.20.tgz#b0e80294c35d2b68548f6f655fe80127b3169d05" - integrity sha512-Vs4nGptd9wRslo9zeRkuWcZeIEp+oYbODy+fiZKqqr4CH1Gfi9fdP0Q1tGYk8OiJ2EPB/tZSAyOy62Hyp/iP7g== +"@mui/styled-engine@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.15.3.tgz#85cb294d701b1a3f197bfc90e87ec0685a0943b2" + integrity sha512-+d5XZCTeemOO/vBfWGEeHgTm8fjU1Psdgm+xAw+uegycO2EnoA/EfGSaG5UwZ6g3b66y48Mkxi35AggShMr88w== dependencies: - "@babel/runtime" "^7.23.4" + "@babel/runtime" "^7.23.6" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.14.20": - version "5.14.20" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.20.tgz#4973883279377024ca2b4c98d311ec364f01875b" - integrity sha512-jKOGtK4VfYZG5kdaryUHss4X6hzcfh0AihT8gmnkfqRtWP7xjY+vPaUhhuSeibE5sqA5wCtdY75z6ep9pxFnIg== +"@mui/system@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.15.3.tgz#062d0d6b5259c3dc0e1d4026b85ffcc3acf8637b" + integrity sha512-ewVU4eRgo4VfNMGpO61cKlfWmH7l9s6rA8EknRzuMX3DbSLfmtW2WJJg6qPwragvpPIir0Pp/AdWVSDhyNy5Tw== dependencies: - "@babel/runtime" "^7.23.4" - "@mui/private-theming" "^5.14.20" - "@mui/styled-engine" "^5.14.19" - "@mui/types" "^7.2.10" - "@mui/utils" "^5.14.20" + "@babel/runtime" "^7.23.6" + "@mui/private-theming" "^5.15.3" + "@mui/styled-engine" "^5.15.3" + "@mui/types" "^7.2.12" + "@mui/utils" "^5.15.3" clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/types@^7.2.10": - version "7.2.10" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.10.tgz#13e3e9aa07ee6d593cfacd538e02e8e896d7a12f" - integrity sha512-wX1vbDC+lzF7FlhT6A3ffRZgEoKWPF8VqRoTu4lZwouFX2t90KyCMsgepMw5DxLak1BSp/KP86CmtZttikb/gQ== +"@mui/types@^7.2.12": + version "7.2.12" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.12.tgz#602acbb5aa3eb56a31f569a19f87f75d33de5c01" + integrity sha512-3kaHiNm9khCAo0pVe0RenketDSFoZGAlVZ4zDjB/QNZV0XiCj+sh1zkX0VVhQPgYJDlBEzAag+MHJ1tU3vf0Zw== -"@mui/utils@^5.14.16", "@mui/utils@^5.14.20": - version "5.14.20" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.20.tgz#6d57b8ef02633fbeef51de8f74a2388cde7da8b9" - integrity sha512-Y6yL5MoFmtQml20DZnaaK1znrCEwG6/vRSzW8PKOTrzhyqKIql0FazZRUR7sA5EPASgiyKZfq0FPwISRXm5NdA== +"@mui/utils@^5.14.16", "@mui/utils@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.15.3.tgz#421043be5279d31ca9b221a6398feb7c9d61209b" + integrity sha512-mT3LiSt9tZWCdx1pl7q4Q5tNo6gdZbvJel286ZHGuj6LQQXjWNAh8qiF9d+LogvNUI+D7eLkTnj605d1zoazfg== dependencies: - "@babel/runtime" "^7.23.4" + "@babel/runtime" "^7.23.6" "@types/prop-types" "^15.7.11" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/x-date-pickers@^6.18.3": - version "6.18.3" - resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-6.18.3.tgz#a857adbe1591432f4cb87fdbb10c92ecb744b29a" - integrity sha512-DmJrAAr6EfhuWA9yubANAdeQayAbUppCezdhxkYKwn38G8+HJPZBol0V5fKji+B4jMxruO78lkQYsGUxVxaR7A== +"@mui/x-date-pickers@^6.18.6": + version "6.18.6" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-6.18.6.tgz#416e0b83dd2774547e3c864c89bedf2f4ca3e05a" + integrity sha512-pqOrGPUDVY/1xXrM1hofqwgquno/SB9aG9CVS1m2Rs8hKF1VWRC+jYlEa1Qk08xKmvkia5g7NsdV/BBb+tHUZw== dependencies: "@babel/runtime" "^7.23.2" "@mui/base" "^5.0.0-beta.22" @@ -1921,6 +1932,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pmmmwh/react-refresh-webpack-plugin@^0.5.3": version "0.5.11" resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz#7c2268cedaa0644d677e8c4f377bc8fb304f714a" @@ -1979,9 +1995,9 @@ picomatch "^2.2.2" "@rushstack/eslint-patch@^1.1.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz#1898e7a7b943680d757417a47fb10f5fcc230b39" - integrity sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA== + version "1.6.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz#9ab8f811930d7af3e3d549183a50884f9eb83f36" + integrity sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw== "@sinclair/typebox@^0.24.1": version "0.24.51" @@ -2134,17 +2150,17 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^6.1.5": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.5.tgz#0a635d0ad4a1a880089d967299d94e9cfc81fbe1" - integrity sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g== +"@testing-library/jest-dom@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.2.0.tgz#b572bd5cd6b29314487bac7ba393188e4987b4f7" + integrity sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw== dependencies: - "@adobe/css-tools" "^4.3.1" + "@adobe/css-tools" "^4.3.2" "@babel/runtime" "^7.9.2" aria-query "^5.0.0" chalk "^3.0.0" css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" + dom-accessibility-api "^0.6.3" lodash "^4.17.15" redent "^3.0.0" @@ -2157,10 +2173,10 @@ "@testing-library/dom" "^9.0.0" "@types/react-dom" "^18.0.0" -"@testing-library/user-event@^14.5.1": - version "14.5.1" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.1.tgz#27337d72046d5236b32fd977edee3f74c71d332f" - integrity sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg== +"@testing-library/user-event@^14.5.2": + version "14.5.2" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.2.tgz#db7257d727c891905947bd1c1a99da20e03c2ebd" + integrity sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ== "@tootallnate/once@1": version "1.1.2" @@ -2189,9 +2205,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.7" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" - integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" @@ -2204,9 +2220,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" - integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== dependencies: "@babel/types" "^7.20.7" @@ -2249,9 +2265,9 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": - version "8.44.8" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.8.tgz#f4fe1dab9b3d3dd98082d4b9f80e59ab40f1261c" - integrity sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw== + version "8.56.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.1.tgz#988cabb39c973e9200f35fdbb29d17992965bb08" + integrity sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -2362,22 +2378,22 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/mixpanel-browser@^2.47.5": - version "2.47.5" - resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.47.5.tgz#133dc80307884d6dc3277516a7d309be9ddc8bfd" - integrity sha512-qEKrYSN4nUCPLU39YCoF2vszON0KUkPox0mFlrvhdq+amE44CB25+rdfZV4M9n3pEggXuRH+fbdP9qxthvyFUw== +"@types/mixpanel-browser@^2.48.1": + version "2.48.1" + resolved "https://registry.yarnpkg.com/@types/mixpanel-browser/-/mixpanel-browser-2.48.1.tgz#ccab3d1fe3d10b18191171e884dcf061cfbf11d5" + integrity sha512-qcckCw9znV98KUkvImglkiVd303Fnn1NTpbKkboQS0bB1SbkNc0Qzz6M9AsS6MaKSzINN4e5z28qUBsK9Wzm5g== "@types/node-forge@^1.3.0": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.10.tgz#62a19d4f75a8b03290578c2b04f294b1a5a71b07" - integrity sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw== + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^20.10.4": - version "20.10.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198" - integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== +"@types/node@*", "@types/node@^20.10.6": + version "20.10.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.6.tgz#a3ec84c22965802bf763da55b2394424f22bfbb5" + integrity sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw== dependencies: undici-types "~5.26.4" @@ -2402,33 +2418,33 @@ integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== "@types/qs@*": - version "6.9.10" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.10.tgz#0af26845b5067e1c9a622658a51f60a3934d51e8" - integrity sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw== + version "6.9.11" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" + integrity sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ== "@types/range-parser@*": version "1.2.7" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.17": - version "18.2.17" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" - integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== +"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.18": + version "18.2.18" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd" + integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw== dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.8", "@types/react-transition-group@^4.4.9": +"@types/react-transition-group@^4.4.10", "@types/react-transition-group@^4.4.8": version "4.4.10" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.42": - version "18.2.42" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.42.tgz#6f6b11a904f6d96dda3c2920328a97011a00aba7" - integrity sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA== +"@types/react@*", "@types/react@^18.2.46": + version "18.2.46" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.46.tgz#f04d6c528f8f136ea66333bc66abcae46e2680df" + integrity sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -2792,9 +2808,9 @@ acorn@^7.1.1: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== address@^1.0.1, address@^1.1.2: version "1.2.2" @@ -2896,6 +2912,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -2953,11 +2974,6 @@ array-flatten@1.1.1: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-includes@^3.1.6, array-includes@^3.1.7: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" @@ -3094,10 +3110,10 @@ axe-core@=4.7.0: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== -axios@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== +axios@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.3.tgz#7f50f23b3aa246eff43c54834272346c396613f4" + integrity sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -3192,29 +3208,29 @@ babel-plugin-named-asset-import@^0.3.8: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" + integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" - integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== +babel-plugin-polyfill-corejs3@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== +babel-plugin-polyfill-regenerator@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" + integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" @@ -3332,12 +3348,10 @@ body-parser@1.20.1: unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.1.1" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" - integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.0.tgz#1c56da07a76e33b049ba7d865859abee5297f55a" + integrity sha512-xdzMA6JGckxyJzZByjEWRcfKmDxXaGXZWVftah3FkCqdlePNS9DjHSUN5zkP4oEfz/t0EXXlro88EIhzwMB4zA== dependencies: - array-flatten "^2.1.2" - dns-equal "^1.0.0" fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -3373,7 +3387,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9, browserslist@^4.22.2: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -3458,9 +3472,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: - version "1.0.30001566" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" - integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== + version "1.0.30001572" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz#1ccf7dc92d2ee2f92ed3a54e11b7b4a3041acfa0" + integrity sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -3571,9 +3585,9 @@ cliui@^7.0.2: wrap-ansi "^7.0.0" clsx@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" - integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + version "2.1.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.0.tgz#e851283bcb5c80ee7608db18487433f7b23f77cb" + integrity sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg== co@^4.6.0: version "4.6.0" @@ -3738,21 +3752,21 @@ cookie@0.5.0: integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" - integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" + integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== dependencies: browserslist "^4.22.2" core-js-pure@^3.23.3: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.34.0.tgz#981e462500708664c91b827a75b011f04a8134a0" - integrity sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.35.0.tgz#4660033304a050215ae82e476bd2513a419fbb34" + integrity sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew== core-js@^3.19.2: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.34.0.tgz#5705e6ad5982678612e96987d05b27c6c7c274a5" - integrity sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4" + integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg== core-util-is@~1.0.0: version "1.0.3" @@ -3781,7 +3795,7 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3903,9 +3917,9 @@ css.escape@^1.5.1: integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== cssdb@^7.1.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.9.0.tgz#d42d8269ff3d3e1c366280ab1f9f6207057b262c" - integrity sha512-WPMT9seTQq6fPAa1yN4zjgZZeoTriSN2LqW9C+otjar12DQIWA4LuSfFrvFJiKp4oD0xIk1vumDLw8K9ur4NBw== + version "7.10.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.10.0.tgz#08816db7b793f088263e8f61dfe8d7f11a3459f2" + integrity sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA== cssesc@^3.0.0: version "3.0.0" @@ -4011,7 +4025,7 @@ debug@2.6.9, debug@^2.6.0: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -4169,11 +4183,6 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== - dns-packet@^5.2.2: version "5.6.1" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" @@ -4195,11 +4204,16 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: +dom-accessibility-api@^0.5.9: version "0.5.16" resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" @@ -4296,6 +4310,11 @@ duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4309,9 +4328,9 @@ ejs@^3.1.6: jake "^10.8.5" electron-to-chromium@^1.4.601: - version "1.4.608" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.608.tgz#ff567c51dde4892ae330860c7d9f19571e9e1d69" - integrity sha512-J2f/3iIIm3Mo0npneITZ2UPe4B1bg8fTNrFjD8715F/k1BvbviRuqYGkET1PgprrczXYTHFvotbBOmUp6KE0uA== + version "1.4.618" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.618.tgz#98899b3c78495157cc2fe4944316f686939a435d" + integrity sha512-mTM2HieHLxs1RbD/R/ZoQLMsGI8lWIkP17G7cx32mJRBJt9wlNPkXwE3sYg/OnNb5GBkus98lXatSthoL8Y5Ag== emittery@^0.10.2: version "0.10.2" @@ -4578,9 +4597,9 @@ eslint-plugin-flowtype@^8.0.3: string-natural-compare "^3.0.1" eslint-plugin-import@^2.25.3: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" array.prototype.findlastindex "^1.2.3" @@ -4598,7 +4617,7 @@ eslint-plugin-import@^2.25.3: object.groupby "^1.0.1" object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" eslint-plugin-jest@^25.3.0: version "25.7.0" @@ -4701,14 +4720,14 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.55.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" - integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.55.0" + "@eslint/js" "8.56.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -4917,9 +4936,9 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== dependencies: reusify "^1.0.4" @@ -5036,9 +5055,9 @@ flatted@^3.2.9: integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== follow-redirects@^1.0.0, follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== for-each@^0.3.3: version "0.3.3" @@ -5047,6 +5066,14 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + fork-ts-checker-webpack-plugin@^6.5.0: version "6.5.3" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" @@ -5215,17 +5242,16 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" @@ -5261,9 +5287,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -5424,9 +5450,9 @@ html-minifier-terser@^6.0.2: terser "^5.10.0" html-webpack-plugin@^5.5.0: - version "5.5.4" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.4.tgz#517a48e6f046ff1ae1a172c983cd993eb79d2f6a" - integrity sha512-3wNSaVVxdxcu0jd4FpQFoICdqgxs4zIQQvj+2yQKFfBOnLETQ6X5CDWdeasuGlSsooFlMkEioWDTqBv1wvw5Iw== + version "5.6.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" + integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw== dependencies: "@types/html-minifier-terser" "^6.0.0" html-minifier-terser "^6.0.2" @@ -5940,6 +5966,15 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.8.7" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" @@ -6838,6 +6873,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +"lru-cache@^9.1.1 || ^10.0.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + luxon@^3.4.4: version "3.4.4" resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.4.4.tgz#cf20dc27dc532ba41a169c43fdcc0063601577af" @@ -6979,11 +7019,23 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + mixpanel-browser@^2.48.1: version "2.48.1" resolved "https://registry.yarnpkg.com/mixpanel-browser/-/mixpanel-browser-2.48.1.tgz#0fec03d87f57fe2e72c6a4b1df5924436840ece7" @@ -7391,6 +7443,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -7731,9 +7791,9 @@ postcss-modules-local-by-default@^4.0.3: postcss-value-parser "^4.1.0" postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz#fbfddfda93a31f310f1d152c2bb4d3f3c5592ee0" + integrity sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg== dependencies: postcss-selector-parser "^6.0.4" @@ -7953,9 +8013,9 @@ postcss-selector-not@^6.0.1: postcss-selector-parser "^6.0.10" postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -8007,10 +8067,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" - integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== +prettier@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" + integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -8384,9 +8444,9 @@ regenerator-runtime@^0.13.9: integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" @@ -8396,9 +8456,9 @@ regenerator-transform@^0.15.2: "@babel/runtime" "^7.8.4" regex-parser@^2.2.11: - version "2.2.11" - resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" - integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.3.0.tgz#4bb61461b1a19b8b913f3960364bb57887f920ee" + integrity sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg== regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: version "1.5.1" @@ -8795,6 +8855,11 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -8963,7 +9028,7 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -string-width@^4.1.0, string-width@^4.2.0: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8972,6 +9037,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.8: version "4.0.10" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" @@ -9037,7 +9111,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -9102,13 +9176,13 @@ stylis@4.2.0: integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== sucrase@^3.32.0: - version "3.34.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" - integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== dependencies: "@jridgewell/gen-mapping" "^0.3.2" commander "^4.0.0" - glob "7.1.6" + glob "^10.3.10" lines-and-columns "^1.1.6" mz "^2.7.0" pirates "^4.0.1" @@ -9191,9 +9265,9 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== tailwindcss@^3.0.2: - version "3.3.6" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.6.tgz#4dd7986bf4902ad385d90d45fd4b2fa5fab26d5f" - integrity sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw== + version "3.4.0" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.0.tgz#045a9c474e6885ebd0436354e611a76af1c76839" + integrity sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -9252,17 +9326,17 @@ terminal-link@^2.0.0: supports-hyperlinks "^2.0.0" terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.0.0, terser@^5.10.0, terser@^5.16.8: +terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: version "5.26.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== @@ -9366,10 +9440,10 @@ ts-interface-checker@^0.1.9: resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -9669,10 +9743,10 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web-vitals@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.0.tgz#3a5571f00743ecd059394b61e0adceec7fac2634" - integrity sha512-f5YnCHVG9Y6uLCePD4tY8bO/Ge15NPEQWtvm3tPzDKygloiqtb4SVqRHBcrIAqo2ztqX5XueqDn97zHF0LdT6w== +web-vitals@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.1.tgz#af7a9dc60708b81007922ab55a23d963676ba30a" + integrity sha512-xQ9lvIpfLxUj0eSmT79ZjRoU5wIRfIr7pNukL7ZE4EcWZSmfZQqOlhuAGfkVa3EFmzPHZhWhXfm2i5ys+THVPg== webidl-conversions@^4.0.2: version "4.0.2" @@ -9817,9 +9891,9 @@ whatwg-encoding@^1.0.5: iconv-lite "0.4.24" whatwg-fetch@^3.6.2: - version "3.6.19" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973" - integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw== + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== whatwg-mimetype@^2.3.0: version "2.3.0" @@ -10082,7 +10156,7 @@ workbox-window@6.6.1: "@types/trusted-types" "^2.0.2" workbox-core "6.6.1" -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -10091,6 +10165,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -10120,9 +10203,9 @@ ws@^7.4.6: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.13.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== xml-name-validator@^3.0.0: version "3.0.0" From e8b66479eeb79c82ac08bdc87cdd47979b2307a1 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 3 Jan 2024 21:07:23 +0100 Subject: [PATCH 68/78] refactor: removing default api url --- src/services/PriceService.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/services/PriceService.ts b/src/services/PriceService.ts index b3b41b4..e230fe6 100644 --- a/src/services/PriceService.ts +++ b/src/services/PriceService.ts @@ -3,10 +3,14 @@ import { DateTime } from "luxon" import { DailyPriceInfo } from "models/DailyPriceInfo" import { DailyAverage } from "models/DailyAverage" -const PRICES_API = - process.env.REACT_APP_API_URL && process.env.REACT_APP_API_URL.trim() !== "" - ? process.env.REACT_APP_API_URL - : "https://elec-api.daithiapp.com/api/v1/price" +if ( + !process.env.REACT_APP_API_URL || + process.env.REACT_APP_API_URL.trim() === "" +) { + throw new Error("REACT_APP_API_URL environment variable is not set") +} + +const PRICES_API = process.env.REACT_APP_API_URL.trim() export const getDailyPriceInfo = async ( date: DateTime, From d9b70134cbc2d68245096366d2aa9fd639e98806 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 3 Jan 2024 23:19:29 +0100 Subject: [PATCH 69/78] added loading animation --- src/components/DailyInfo.tsx | 110 ++++++++++ src/components/WithLoading.tsx | 43 ++++ src/pages/Dashboard.tsx | 367 ++++++++++++--------------------- 3 files changed, 282 insertions(+), 238 deletions(-) create mode 100644 src/components/DailyInfo.tsx create mode 100644 src/components/WithLoading.tsx diff --git a/src/components/DailyInfo.tsx b/src/components/DailyInfo.tsx new file mode 100644 index 0000000..b9658f0 --- /dev/null +++ b/src/components/DailyInfo.tsx @@ -0,0 +1,110 @@ +import { Grid } from "@mui/material" +import Metric from "./Metric" +import { useI18nContext } from "i18n/i18n-react" +import { useDateTime } from "hooks/RegionalDateTime" +import { useMemo } from "react" +import { DailyPriceInfo } from "models/DailyPriceInfo" + +export interface DailyInfoProps { + dailyInfo: DailyPriceInfo + thirtyDayAverage: number +} + +const DailyInfo: React.FC = ({ + dailyInfo, + thirtyDayAverage, +}) => { + const { LL } = useI18nContext() + const { now, fromISO } = useDateTime() + + const isToday = useMemo(() => { + if (dailyInfo.prices.length === 0) return false + const currentDate = fromISO(dailyInfo.prices[0].dateTime) + return currentDate.hasSame(now(), "day") + }, [dailyInfo.prices, fromISO, now]) + + const currentPrice = useMemo(() => { + if (!isToday) return null + const currentDate = now() + return ( + dailyInfo.prices.find(price => { + const priceDateTimeInMadrid = fromISO(price.dateTime) + + return currentDate.hasSame(priceDateTimeInMadrid, "hour") + }) ?? null + ) + }, [dailyInfo.prices, fromISO, isToday, now]) + + const minPrice = useMemo(() => { + if (dailyInfo.prices.length === 0) return null + const min = Math.min(...dailyInfo.prices.map(price => price.price)) + return dailyInfo.prices.find(price => price.price === min) ?? null + }, [dailyInfo.prices]) + + const maxPrice = useMemo(() => { + if (dailyInfo.prices.length === 0) return null + const max = Math.max(...dailyInfo.prices.map(price => price.price)) + return dailyInfo.prices.find(price => price.price === max) ?? null + }, [dailyInfo.prices]) + + return ( + + {currentPrice && ( + + + + )} + + + {minPrice && ( + + )} + + + {maxPrice && ( + + )} + + + {thirtyDayAverage && ( + + )} + + + ) +} + +export default DailyInfo diff --git a/src/components/WithLoading.tsx b/src/components/WithLoading.tsx new file mode 100644 index 0000000..bd54234 --- /dev/null +++ b/src/components/WithLoading.tsx @@ -0,0 +1,43 @@ +import React from "react" +import { CircularProgress, Box } from "@mui/material" +import { useTheme } from "@mui/material/styles" + +interface Props { + isLoading: boolean + children: React.ReactNode +} + +const WithLoading: React.FC = ({ isLoading, children }) => { + const theme = useTheme() + + const backgroundColor = theme.palette.background.default + + return ( + + {isLoading && ( + + + + )} + + {children} + + ) +} + +export default WithLoading diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 5057d13..a0698fb 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -1,11 +1,10 @@ -import React, { useEffect, useMemo, useState } from "react" +import React, { useCallback, useEffect, useMemo, useState } from "react" import Box from "@mui/material/Box" import Typography from "@mui/material/Typography" import Paper from "@mui/material/Paper" import PriceChart from "components/PriceChart" import { getDailyPriceInfo, getDailyAverages } from "services/PriceService" -import { Container, Grid } from "@mui/material" -import Metric from "components/Metric" +import { Container } from "@mui/material" import { DailyPriceInfo } from "models/DailyPriceInfo" import { DayRating } from "models/DayRating" import { useI18nContext } from "i18n/i18n-react" @@ -15,6 +14,8 @@ import { AdapterLuxon } from "@mui/x-date-pickers/AdapterLuxon" import { DateTime } from "luxon" import { DailyAverage } from "models/DailyAverage" import DailyAverageChart from "components/DailyAverageChart" +import DailyInfo from "components/DailyInfo" +import WithLoading from "components/WithLoading" const DashboardContent: React.FC = () => { const { LL } = useI18nContext() @@ -26,12 +27,22 @@ const DashboardContent: React.FC = () => { >() const [dailyAverages, setDailyAverages] = useState([]) + const [isLoading, setLoading] = useState(true) + + const reloadData = useCallback( + (date?: DateTime) => { + setLoading(true) + setCurrentDate(date ?? now()) + }, + [now, setLoading], + ) + useEffect(() => { - const fetchData = async () => { - const prices = await getDailyPriceInfo(currentDate) - if (prices) setPricesToday(prices) - } - fetchData() + getDailyPriceInfo(currentDate) + .then(prices => { + if (prices) setPricesToday(prices) + }) + .finally(() => setTimeout(() => setLoading(false), 300)) }, [currentDate]) useEffect(() => { @@ -58,7 +69,7 @@ const DashboardContent: React.FC = () => { }, [currentDate]) useEffect(() => { - const fetchData = () => setCurrentDate(now()) + const fetchData = () => reloadData() // Calculate time remaining until the start of the next hour const currTime = now() const nextHour = currTime.startOf("hour").plus({ hour: 1 }) @@ -84,7 +95,7 @@ const DashboardContent: React.FC = () => { return () => { clearTimeout(timeoutId) } - }, [now]) + }, [reloadData, now]) const isToday = useMemo( () => currentDate.hasSame(now(), "day"), @@ -100,40 +111,6 @@ const DashboardContent: React.FC = () => { ) }, [dailyAverages]) - const currentPrice = useMemo(() => { - return ( - pricesToday?.prices.find(price => { - const priceDateTimeInMadrid = fromISO(price.dateTime) - - return currentDate.hasSame(priceDateTimeInMadrid, "hour") - }) ?? null - ) - }, [pricesToday?.prices, fromISO, currentDate]) - - const minPriceToday = useMemo(() => { - if (!pricesToday) return null - const min = Math.min(...pricesToday.prices.map(price => price.price)) - return pricesToday.prices.find(price => price.price === min) ?? null - }, [pricesToday]) - - const maxPriceToday = useMemo(() => { - if (!pricesToday) return null - const max = Math.max(...pricesToday.prices.map(price => price.price)) - return pricesToday.prices.find(price => price.price === max) ?? null - }, [pricesToday]) - - const minPriceTomorrow = useMemo(() => { - if (!pricesTomorrow) return null - const min = Math.min(...pricesTomorrow.prices.map(price => price.price)) - return pricesTomorrow.prices.find(price => price.price === min) ?? null - }, [pricesTomorrow]) - - const maxPriceTomorrow = useMemo(() => { - if (!pricesTomorrow) return null - const max = Math.max(...pricesTomorrow.prices.map(price => price.price)) - return pricesTomorrow.prices.find(price => price.price === max) ?? null - }, [pricesTomorrow]) - const currentRatingText = useMemo(() => { const date = currentDate.toFormat("dd/MM") @@ -179,221 +156,135 @@ const DashboardContent: React.FC = () => { const handleDateChange = (date: DateTime | null) => { if (date) { - setCurrentDate(date) + reloadData(date) } } return ( - - + - - - {LL.TITLE()} - - - - - - - - - - - {currentRatingText} - - + + + + {LL.TITLE()} + + - - - {isToday && ( - - - - )} - - - - - - - - + + - - - + + + + + {currentRatingText} + + - - {pricesToday && ( - - )} - + + {pricesToday && ( + + )} + - - - {tomorrowRatingText} - - + + {pricesToday && ( + + )} + - {minPriceTomorrow && maxPriceTomorrow && ( - - - + {tomorrowRatingText} + + + + {pricesTomorrow && ( + <> + + - - - + + + - - - - )} + + + )} - {pricesTomorrow && ( + + + {LL.LAST_THIRTY_DAYS()} + + - - )} - - - - {LL.LAST_THIRTY_DAYS()} - - - - - - - + + + ) } From fbd0b2ad1a9a14d316f1505bdb333f32b18a829e Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 3 Jan 2024 23:23:49 +0100 Subject: [PATCH 70/78] chore: update version --- package.json | 2 +- public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index de4a948..45931b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.8.3", + "version": "2.9.0", "private": true, "dependencies": { "@emotion/react": "^11.11.3", diff --git a/public/manifest.json b/public/manifest.json index 2ce6b88..5d3bf1c 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.8.3", + "version": "2.9.0", "start_url": ".", "display": "standalone", "theme_color": "#000000", From 13cc56b1ebaa64899e221e9905d3926175b772dd Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 4 Jan 2024 13:41:34 +0100 Subject: [PATCH 71/78] chore: readme update --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 04ce9f8..e2a687b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ +# Electricity Prices Dashboard + +[![Publish to Dockerhub](https://github.com/daithihearn/electricity-prices-dashboard/actions/workflows/publish-to-dockerhub.yml/badge.svg)](https://github.com/daithihearn/electricity-prices-dashboard/actions/workflows/publish-to-dockerhub.yml) +[![Build and Deploy to GitHub Pages](https://github.com/daithihearn/electricity-prices-dashboard/actions/workflows/deploy-github-pages.yml/badge.svg)](https://github.com/daithihearn/electricity-prices-dashboard/actions/workflows/deploy-github-pages.yml) + ## Description -A dashboard to display the PVPC electricity prices in Spain. +[A dashboard to display the PVPC electricity prices for Spain](https://preciosdelaelectricidad.es/). ## Stack From 9fe5b2db133201706c67ff014885e5488791fb49 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 4 Jan 2024 13:43:04 +0100 Subject: [PATCH 72/78] chore: readme update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e2a687b..0115146 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## Description -[A dashboard to display the PVPC electricity prices for Spain](https://preciosdelaelectricidad.es/). +[A dashboard to display the PVPC electricity prices for Spain](https://preciosdelaelectricidad.es/). A docker image for this can also be found on [docker hub](https://hub.docker.com/repository/docker/daithihearn/electricity-prices-dashboard/general). ## Stack From 6f08c838c2847b160066d9f8db366079274b19b6 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 4 Jan 2024 17:54:50 +0100 Subject: [PATCH 73/78] chore: renaming publish step --- .github/workflows/publish-to-dockerhub.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-to-dockerhub.yml b/.github/workflows/publish-to-dockerhub.yml index 37f29ca..58fbd71 100644 --- a/.github/workflows/publish-to-dockerhub.yml +++ b/.github/workflows/publish-to-dockerhub.yml @@ -6,7 +6,7 @@ on: jobs: publish: - name: Build and Publish docker image to dockerhub + name: Publish to dockerhub permissions: contents: write pull-requests: write From 014646e5e44825413e5392ff3c54371b548c52ad Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 4 Jan 2024 17:55:04 +0100 Subject: [PATCH 74/78] chore: updating dependencies --- package.json | 4 ++-- yarn.lock | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 45931b3..91ffbbb 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,11 @@ "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.11", - "@types/luxon": "^3.3.7", + "@types/luxon": "^3.3.8", "@types/node": "^20.10.6", "@types/react": "^18.2.46", "@types/react-dom": "^18.2.18", - "axios": "^1.6.3", + "axios": "^1.6.4", "chart.js": "^4.4.1", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", diff --git a/yarn.lock b/yarn.lock index 30da3c5..ae3d12d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2363,10 +2363,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/luxon@^3.3.7": - version "3.3.7" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.7.tgz#043d413b6492a012de47503907bdf3ec4f827933" - integrity sha512-gKc9P2d4g5uYwmy4s/MO/yOVPmvHyvzka1YH6i5dM03UrFofHSmgc0D0ymbDRStFWHusk6cwwF6nhLm/ckBbbQ== +"@types/luxon@^3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.8.tgz#84dbf2d020a9209a272058725e168f21d331a67e" + integrity sha512-jYvz8UMLDgy3a5SkGJne8H7VA7zPV2Lwohjx0V8V31+SqAjNmurWMkk9cQhfvlcnXWudBpK9xPM1n4rljOcHYQ== "@types/mime@*": version "3.0.4" @@ -3110,12 +3110,12 @@ axe-core@=4.7.0: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== -axios@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.3.tgz#7f50f23b3aa246eff43c54834272346c396613f4" - integrity sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww== +axios@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.4.tgz#184ee1f63d412caffcf30d2c50982253c3ee86e0" + integrity sha512-heJnIs6N4aa1eSthhN9M5ioILu8Wi8vmQW9iHQ9NUvfkJb0lEEDUiIdQNAuBtfUt3FxReaKdpQA5DbmMOqzF/A== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -3472,9 +3472,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: - version "1.0.30001572" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz#1ccf7dc92d2ee2f92ed3a54e11b7b4a3041acfa0" - integrity sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw== + version "1.0.30001574" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001574.tgz#fb4f1359c77f6af942510493672e1ec7ec80230c" + integrity sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -4328,9 +4328,9 @@ ejs@^3.1.6: jake "^10.8.5" electron-to-chromium@^1.4.601: - version "1.4.618" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.618.tgz#98899b3c78495157cc2fe4944316f686939a435d" - integrity sha512-mTM2HieHLxs1RbD/R/ZoQLMsGI8lWIkP17G7cx32mJRBJt9wlNPkXwE3sYg/OnNb5GBkus98lXatSthoL8Y5Ag== + version "1.4.620" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.620.tgz#a6481e0703f8df1e6821063fb43c9b818a7a2ef4" + integrity sha512-a2fcSHOHrqBJsPNXtf6ZCEZpXrFCcbK1FBxfX3txoqWzNgtEDG1f3M59M98iwxhRW4iMKESnSjbJ310/rkrp0g== emittery@^0.10.2: version "0.10.2" @@ -5054,7 +5054,7 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -follow-redirects@^1.0.0, follow-redirects@^1.15.0: +follow-redirects@^1.0.0, follow-redirects@^1.15.4: version "1.15.4" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== From 19e69af3fe7b76d3b3c5c47e960832d274dd918c Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 4 Jan 2024 17:55:30 +0100 Subject: [PATCH 75/78] chore: increasing timeout when running yarn --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4dd17cc..74e1ba1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ WORKDIR /app COPY package.json ./ -RUN yarn --network-timeout 100000 +RUN yarn --network-timeout 1000000 COPY ./src ./src COPY ./public ./public From d1db6fa04679c1933643bf5821df3a524f2c94f5 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Thu, 4 Jan 2024 17:56:25 +0100 Subject: [PATCH 76/78] chore: updating version --- package.json | 2 +- public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 91ffbbb..be7e313 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.9.0", + "version": "2.9.1", "private": true, "dependencies": { "@emotion/react": "^11.11.3", diff --git a/public/manifest.json b/public/manifest.json index 5d3bf1c..86d9401 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.9.0", + "version": "2.9.1", "start_url": ".", "display": "standalone", "theme_color": "#000000", From 60b0f8048646576b9e495dfaf1d9cf1263b7930f Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 10 Jan 2024 21:51:32 +0100 Subject: [PATCH 77/78] chore: updating dependencies --- package.json | 16 +-- yarn.lock | 345 +++++++++++++++++++++++++-------------------------- 2 files changed, 180 insertions(+), 181 deletions(-) diff --git a/package.json b/package.json index be7e313..72b4626 100644 --- a/package.json +++ b/package.json @@ -5,18 +5,18 @@ "dependencies": { "@emotion/react": "^11.11.3", "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.15.3", - "@mui/material": "^5.15.3", - "@mui/x-date-pickers": "^6.18.6", + "@mui/icons-material": "^5.15.4", + "@mui/material": "^5.15.4", + "@mui/x-date-pickers": "^6.18.7", "@testing-library/jest-dom": "^6.2.0", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.11", - "@types/luxon": "^3.3.8", - "@types/node": "^20.10.6", - "@types/react": "^18.2.46", + "@types/luxon": "^3.4.0", + "@types/node": "^20.10.8", + "@types/react": "^18.2.47", "@types/react-dom": "^18.2.18", - "axios": "^1.6.4", + "axios": "^1.6.5", "chart.js": "^4.4.1", "chartjs-adapter-moment": "^1.0.1", "chartjs-plugin-annotation": "^3.0.1", @@ -64,7 +64,7 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.23.7", + "@babel/preset-env": "^7.23.8", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.23.3", "@types/mixpanel-browser": "^2.48.1", diff --git a/yarn.lock b/yarn.lock index ae3d12d..fd5822b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -268,9 +268,9 @@ "@babel/types" "^7.22.19" "@babel/helpers@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.7.tgz#eb543c36f81da2873e47b76ee032343ac83bba60" - integrity sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== dependencies: "@babel/template" "^7.22.15" "@babel/traverse" "^7.23.7" @@ -598,16 +598,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" - integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@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" @@ -1000,10 +999,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.7.tgz#e5d69b9f14db8a13bae4d8e5ce7f360973626241" - integrity sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.8.tgz#7d6f8171ea7c221ecd28059e65ad37c20e441e3e" + integrity sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA== dependencies: "@babel/compat-data" "^7.23.5" "@babel/helper-compilation-targets" "^7.23.6" @@ -1038,7 +1037,7 @@ "@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-classes" "^7.23.8" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" @@ -1123,10 +1122,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.7.tgz#dd7c88deeb218a0f8bd34d5db1aa242e0f203193" - integrity sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA== +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" + integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== dependencies: regenerator-runtime "^0.14.0" @@ -1419,40 +1418,40 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== -"@floating-ui/core@^1.4.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.2.tgz#53a0f7a98c550e63134d504f26804f6b83dbc071" - integrity sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A== +"@floating-ui/core@^1.5.3": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.3.tgz#b6aa0827708d70971c8679a16cf680a515b8a52a" + integrity sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q== dependencies: - "@floating-ui/utils" "^0.1.3" + "@floating-ui/utils" "^0.2.0" -"@floating-ui/dom@^1.5.1": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" - integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== +"@floating-ui/dom@^1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.4.tgz#28df1e1cb373884224a463235c218dcbd81a16bb" + integrity sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ== dependencies: - "@floating-ui/core" "^1.4.2" - "@floating-ui/utils" "^0.1.3" + "@floating-ui/core" "^1.5.3" + "@floating-ui/utils" "^0.2.0" -"@floating-ui/react-dom@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz#b076fafbdfeb881e1d86ae748b7ff95150e9f3ec" - integrity sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ== +"@floating-ui/react-dom@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.5.tgz#851522899c34e3e2be1e29f3294f150834936e28" + integrity sha512-UsBK30Bg+s6+nsgblXtZmwHhgS2vmbuQK22qgt2pTQM6M3X6H1+cQcLXqgRY3ihVLcZJE6IvqDQozhsnIVqK/Q== dependencies: - "@floating-ui/dom" "^1.5.1" + "@floating-ui/dom" "^1.5.4" -"@floating-ui/utils@^0.1.3": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" - integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== +"@floating-ui/utils@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" + integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== "@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -1460,10 +1459,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -1800,101 +1799,101 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/base@5.0.0-beta.30", "@mui/base@^5.0.0-beta.22": - version "5.0.0-beta.30" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.30.tgz#8feca6b70f2b9cd4d5cb97799ae9fcb5376c7f83" - integrity sha512-dc38W4W3K42atE9nSaOeoJ7/x9wGIfawdwC/UmMxMLlZ1iSsITQ8dQJaTATCbn98YvYPINK/EH541YA5enQIPQ== +"@mui/base@5.0.0-beta.31", "@mui/base@^5.0.0-beta.22": + version "5.0.0-beta.31" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.31.tgz#80293893e6bf41ffb51e4ce8d6498e3fc70ca415" + integrity sha512-+uNbP3OHJuZVI00WyMg7xfLZotaEY7LgvYXDfONVJbrS+K9wyjCIPNfjy8r9XJn4fbHo/5ibiZqjWnU9LMNv+A== dependencies: - "@babel/runtime" "^7.23.6" - "@floating-ui/react-dom" "^2.0.4" - "@mui/types" "^7.2.12" - "@mui/utils" "^5.15.3" + "@babel/runtime" "^7.23.7" + "@floating-ui/react-dom" "^2.0.5" + "@mui/types" "^7.2.13" + "@mui/utils" "^5.15.4" "@popperjs/core" "^2.11.8" - clsx "^2.0.0" + clsx "^2.1.0" prop-types "^15.8.1" -"@mui/core-downloads-tracker@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.3.tgz#40fc854d7cf5505a182a4e121149dfe21cd277ef" - integrity sha512-sWeihiVyxdJjpLkp8SHkTy9kt2M/o11M60G1MzwljGL2BXdM3Ktzqv5QaQHdi00y7Y1ulvtI3GOSxP2xU8mQJw== - -"@mui/icons-material@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.15.3.tgz#eee07582ea3ad913982b7843ff1612d0fad21278" - integrity sha512-7LEs8AnO2Se/XYH+CcJndRsGAE+M8KAExiiQHf0V11poqmPVGcbbY82Ry2IUYf9+rOilCVnWI18ErghZ625BPQ== - dependencies: - "@babel/runtime" "^7.23.6" - -"@mui/material@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.15.3.tgz#b77f1ac1275e5bf13b735e8224bdd301aab918c4" - integrity sha512-DODBBMouyq1B5f3YkEWL9vO8pGCxuEGqtfpltF6peMJzz/78tJFyLQsDas9MNLC/8AdFu2BQdkK7wox5UBPTAA== - dependencies: - "@babel/runtime" "^7.23.6" - "@mui/base" "5.0.0-beta.30" - "@mui/core-downloads-tracker" "^5.15.3" - "@mui/system" "^5.15.3" - "@mui/types" "^7.2.12" - "@mui/utils" "^5.15.3" +"@mui/core-downloads-tracker@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.4.tgz#c9430f1786ff604c2afaa00508b5bc45c9726c13" + integrity sha512-0OZN9O6hAtBpx70mMNFOPaAIol/ytwZYPY+z7Rf9dK3+1Xlzwvj5/IeShJKvtp76S1qJyhPuvZg0+BGqQaUnUw== + +"@mui/icons-material@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.15.4.tgz#fb8a5e4be2cd656c5d5b1bbad7618b3fadf8d37b" + integrity sha512-q/Yk7aokN8qGMpR7bwoDpBSeaNe6Bv7vaY9yHYodP37c64TM6ime05ueb/wgksOVszrKkNXC67E/XYbRWOoUFA== + dependencies: + "@babel/runtime" "^7.23.7" + +"@mui/material@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.15.4.tgz#354e0972fc89207926e9e53cc9cb349049873517" + integrity sha512-T/LGRAC+M0c+D3+y67eHwIN5bSje0TxbcJCWR0esNvU11T0QwrX3jedXItPNBwMupF2F5VWCDHBVLlFnN3+ABA== + dependencies: + "@babel/runtime" "^7.23.7" + "@mui/base" "5.0.0-beta.31" + "@mui/core-downloads-tracker" "^5.15.4" + "@mui/system" "^5.15.4" + "@mui/types" "^7.2.13" + "@mui/utils" "^5.15.4" "@types/react-transition-group" "^4.4.10" - clsx "^2.0.0" + clsx "^2.1.0" csstype "^3.1.2" prop-types "^15.8.1" react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.15.3.tgz#2db0177d847dc6b28721d93308ed05d434a77c53" - integrity sha512-Q79MhVMmywC1l5bMsMZq5PsIudr1MNPJnx9/EqdMP0vpz5iNvFpnLmxsD7d8/hqTWgFAljI+LH3jX8MxlZH9Gw== +"@mui/private-theming@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.15.4.tgz#5d7b187e8e31995289b63ec4e0331d1e29859d6c" + integrity sha512-9N5myIMEEQTM5WYWPGvvYADzjFo12LgJ7S+2iTZkBNOcJpUxQYM1tvYjkHCDV+t1ocMOEgjR2EfJ9Dus30dBlg== dependencies: - "@babel/runtime" "^7.23.6" - "@mui/utils" "^5.15.3" + "@babel/runtime" "^7.23.7" + "@mui/utils" "^5.15.4" prop-types "^15.8.1" -"@mui/styled-engine@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.15.3.tgz#85cb294d701b1a3f197bfc90e87ec0685a0943b2" - integrity sha512-+d5XZCTeemOO/vBfWGEeHgTm8fjU1Psdgm+xAw+uegycO2EnoA/EfGSaG5UwZ6g3b66y48Mkxi35AggShMr88w== +"@mui/styled-engine@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.15.4.tgz#2e7bbf9154eba4db34f77aa55a6468408b31fb1d" + integrity sha512-vtrZUXG5XI8CNiNLcxjIirW4dEbOloR+ikfm6ePBo7jXpJdpXjVzBWetrfE+5eI0cHkKWlTptnJ2voKV8pBRfw== dependencies: - "@babel/runtime" "^7.23.6" + "@babel/runtime" "^7.23.7" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.15.3.tgz#062d0d6b5259c3dc0e1d4026b85ffcc3acf8637b" - integrity sha512-ewVU4eRgo4VfNMGpO61cKlfWmH7l9s6rA8EknRzuMX3DbSLfmtW2WJJg6qPwragvpPIir0Pp/AdWVSDhyNy5Tw== - dependencies: - "@babel/runtime" "^7.23.6" - "@mui/private-theming" "^5.15.3" - "@mui/styled-engine" "^5.15.3" - "@mui/types" "^7.2.12" - "@mui/utils" "^5.15.3" - clsx "^2.0.0" +"@mui/system@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.15.4.tgz#750342dd699881cd81c99ea0ea770387d5ac35aa" + integrity sha512-KCwkHajGBXPs2TK1HJjIyab4NDk0cZoBDYN/TTlXVo1qBAmCjY0vjqrlsjeoG+wrwwcezXMLs/e6OGP66fPCog== + dependencies: + "@babel/runtime" "^7.23.7" + "@mui/private-theming" "^5.15.4" + "@mui/styled-engine" "^5.15.4" + "@mui/types" "^7.2.13" + "@mui/utils" "^5.15.4" + clsx "^2.1.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/types@^7.2.12": - version "7.2.12" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.12.tgz#602acbb5aa3eb56a31f569a19f87f75d33de5c01" - integrity sha512-3kaHiNm9khCAo0pVe0RenketDSFoZGAlVZ4zDjB/QNZV0XiCj+sh1zkX0VVhQPgYJDlBEzAag+MHJ1tU3vf0Zw== +"@mui/types@^7.2.13": + version "7.2.13" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.13.tgz#d1584912942f9dc042441ecc2d1452be39c666b8" + integrity sha512-qP9OgacN62s+l8rdDhSFRe05HWtLLJ5TGclC9I1+tQngbssu0m2dmFZs+Px53AcOs9fD7TbYd4gc9AXzVqO/+g== -"@mui/utils@^5.14.16", "@mui/utils@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.15.3.tgz#421043be5279d31ca9b221a6398feb7c9d61209b" - integrity sha512-mT3LiSt9tZWCdx1pl7q4Q5tNo6gdZbvJel286ZHGuj6LQQXjWNAh8qiF9d+LogvNUI+D7eLkTnj605d1zoazfg== +"@mui/utils@^5.14.16", "@mui/utils@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.15.4.tgz#74d0d11c86497594d797302f33fb753ee788eb85" + integrity sha512-E2wLQGBcs3VR52CpMRjk46cGscC4cbf3Q2uyHNaAeL36yTTm+aVNbtsTCazXtjOP4BDd8lu6VtlTpVC8Rtl4mg== dependencies: - "@babel/runtime" "^7.23.6" + "@babel/runtime" "^7.23.7" "@types/prop-types" "^15.7.11" prop-types "^15.8.1" react-is "^18.2.0" -"@mui/x-date-pickers@^6.18.6": - version "6.18.6" - resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-6.18.6.tgz#416e0b83dd2774547e3c864c89bedf2f4ca3e05a" - integrity sha512-pqOrGPUDVY/1xXrM1hofqwgquno/SB9aG9CVS1m2Rs8hKF1VWRC+jYlEa1Qk08xKmvkia5g7NsdV/BBb+tHUZw== +"@mui/x-date-pickers@^6.18.7": + version "6.18.7" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-6.18.7.tgz#6b00163c77dc450c11b44a479baf62541e6f8b36" + integrity sha512-4NoapaCT3jvEk2cuAUjG0ReZvTEk1i4dGDz94Gt1Oc08GuC1AuzYRwCR1/1tdmbDynwkR8ilkKL6AyS3NL1H4A== dependencies: "@babel/runtime" "^7.23.2" "@mui/base" "^5.0.0-beta.22" @@ -2137,9 +2136,9 @@ loader-utils "^2.0.0" "@testing-library/dom@^9.0.0": - version "9.3.3" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5" - integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw== + version "9.3.4" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce" + integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -2363,10 +2362,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/luxon@^3.3.8": - version "3.3.8" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.8.tgz#84dbf2d020a9209a272058725e168f21d331a67e" - integrity sha512-jYvz8UMLDgy3a5SkGJne8H7VA7zPV2Lwohjx0V8V31+SqAjNmurWMkk9cQhfvlcnXWudBpK9xPM1n4rljOcHYQ== +"@types/luxon@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.4.0.tgz#02c16b7c6ecea55426b404e13e4ea971fb057b87" + integrity sha512-PEVoA4MOfSsFNaPrZjIUGUZujBDxnO/tj2A2N9KfzlR+pNgpBdDuk0TmRvSMAVUP5q4q8IkMEZ8UOp3MIr+QgA== "@types/mime@*": version "3.0.4" @@ -2390,10 +2389,10 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^20.10.6": - version "20.10.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.6.tgz#a3ec84c22965802bf763da55b2394424f22bfbb5" - integrity sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw== +"@types/node@*", "@types/node@^20.10.8": + version "20.10.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.8.tgz#f1e223cbde9e25696661d167a5b93a9b2a5d57c7" + integrity sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA== dependencies: undici-types "~5.26.4" @@ -2441,10 +2440,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.46": - version "18.2.46" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.46.tgz#f04d6c528f8f136ea66333bc66abcae46e2680df" - integrity sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w== +"@types/react@*", "@types/react@^18.2.47": + version "18.2.47" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.47.tgz#85074b27ab563df01fbc3f68dc64bf7050b0af40" + integrity sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -3110,10 +3109,10 @@ axe-core@=4.7.0: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== -axios@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.4.tgz#184ee1f63d412caffcf30d2c50982253c3ee86e0" - integrity sha512-heJnIs6N4aa1eSthhN9M5ioILu8Wi8vmQW9iHQ9NUvfkJb0lEEDUiIdQNAuBtfUt3FxReaKdpQA5DbmMOqzF/A== +axios@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: follow-redirects "^1.15.4" form-data "^4.0.0" @@ -3348,9 +3347,9 @@ body-parser@1.20.1: unpipe "1.0.0" bonjour-service@^1.0.11: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.0.tgz#1c56da07a76e33b049ba7d865859abee5297f55a" - integrity sha512-xdzMA6JGckxyJzZByjEWRcfKmDxXaGXZWVftah3FkCqdlePNS9DjHSUN5zkP4oEfz/t0EXXlro88EIhzwMB4zA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02" + integrity sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== dependencies: fast-deep-equal "^3.1.3" multicast-dns "^7.2.5" @@ -3472,9 +3471,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: - version "1.0.30001574" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001574.tgz#fb4f1359c77f6af942510493672e1ec7ec80230c" - integrity sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg== + version "1.0.30001576" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" + integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -3584,7 +3583,7 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clsx@^2.0.0: +clsx@^2.0.0, clsx@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.0.tgz#e851283bcb5c80ee7608db18487433f7b23f77cb" integrity sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg== @@ -3829,18 +3828,18 @@ css-has-pseudo@^3.0.4: postcss-selector-parser "^6.0.9" css-loader@^6.5.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" - integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g== + version "6.9.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.9.0.tgz#0cc2f14df94ed97c526c5ae42b6b13916d1d8d0e" + integrity sha512-3I5Nu4ytWlHvOP6zItjiHlefBNtrH+oehq8tnQa2kO305qpVyx9XNIT1CXIj5bgCJs7qICBCkgCYxQLKPANoLA== dependencies: icss-utils "^5.1.0" - postcss "^8.4.21" + postcss "^8.4.31" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.3" - postcss-modules-scope "^3.0.0" + postcss-modules-scope "^3.1.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.2.0" - semver "^7.3.8" + semver "^7.5.4" css-minimizer-webpack-plugin@^3.2.0: version "3.4.1" @@ -4328,9 +4327,9 @@ ejs@^3.1.6: jake "^10.8.5" electron-to-chromium@^1.4.601: - version "1.4.620" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.620.tgz#a6481e0703f8df1e6821063fb43c9b818a7a2ef4" - integrity sha512-a2fcSHOHrqBJsPNXtf6ZCEZpXrFCcbK1FBxfX3txoqWzNgtEDG1f3M59M98iwxhRW4iMKESnSjbJ310/rkrp0g== + version "1.4.627" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.627.tgz#86e47c33138cf37e1a05b9f3c95ffff666763f5d" + integrity sha512-BPFdHKPzyGxYQpgiCoIGnkzlMlps3bRdnjeh3qd/Q2pSacL0YW81i4llqsTY/wNbN/Ztw++7HNfp8v4Rm8VDuA== emittery@^0.10.2: version "0.10.2" @@ -6994,9 +6993,9 @@ min-indent@^1.0.0: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@^2.4.5: - version "2.7.6" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" - integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== + version "2.7.7" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.7.tgz#4acf02f362c641c38fb913bfcb7ca2fc4a7cf339" + integrity sha512-+0n11YGyRavUR3IlaOzJ0/4Il1avMvJ1VJfhWfCn24ITQXhRr1gghbhhrda6tgtNcpZaWKdSuwKq20Jb7fnlyw== dependencies: schema-utils "^4.0.0" @@ -7790,7 +7789,7 @@ postcss-modules-local-by-default@^4.0.3: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^3.0.0: +postcss-modules-scope@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz#fbfddfda93a31f310f1d152c2bb4d3f3c5592ee0" integrity sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg== @@ -8048,10 +8047,10 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== +postcss@^8.3.5, postcss@^8.4.23, postcss@^8.4.31, postcss@^8.4.4: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -8632,12 +8631,12 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.1.tgz#207369b445fd007e534864635b28b2ae7b105783" + integrity sha512-Y5NejJTTliTyY4H7sipGqY+RX5P87i3F7c4Rcepy72nq+mNLhIsD0W4c7kEmduMDQCSqtPsXPlSTsFhh2LQv+g== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": @@ -8732,7 +8731,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3: +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -8766,9 +8765,9 @@ serialize-javascript@^4.0.0: randombytes "^2.1.0" serialize-javascript@^6.0.0, serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" @@ -9158,9 +9157,9 @@ strip-json-comments@^3.1.1: integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== style-loader@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" - integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== + version "3.3.4" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.4.tgz#f30f786c36db03a45cbd55b6a70d930c479090e7" + integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== stylehacks@^5.1.1: version "5.1.1" @@ -9265,9 +9264,9 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== tailwindcss@^3.0.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.0.tgz#045a9c474e6885ebd0436354e611a76af1c76839" - integrity sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA== + version "3.4.1" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.1.tgz#f512ca5d1dd4c9503c7d3d28a968f1ad8f5c839d" + integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" From e092c2e9612aa0af295977c1b9102513fd073491 Mon Sep 17 00:00:00 2001 From: Daithi Hearn Date: Wed, 10 Jan 2024 21:52:03 +0100 Subject: [PATCH 78/78] chore: updating version --- package.json | 2 +- public/manifest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 72b4626..d6dc0f2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "daithi-dashboard", - "version": "2.9.1", + "version": "2.9.2", "private": true, "dependencies": { "@emotion/react": "^11.11.3", diff --git a/public/manifest.json b/public/manifest.json index 86d9401..0fc708f 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -18,7 +18,7 @@ "sizes": "512x512" } ], - "version": "2.9.1", + "version": "2.9.2", "start_url": ".", "display": "standalone", "theme_color": "#000000",