From bd8722cfcbd05b07f30d6a1db21cce724e5d6332 Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 25 May 2026 18:27:26 +0500 Subject: [PATCH] fix: move CartSnackbar inside BrowserRouter in App.tsx --- client/package-lock.json | 179 ++++-------------- client/src/app/App.tsx | 2 + client/src/app/providers/AppProviders.tsx | 6 +- .../ui/__tests__/AddToCartButton.test.tsx | 2 +- .../ui/__tests__/ToggleCartIcon.test.tsx | 6 +- server/prisma/prisma/dev.db | Bin 352256 -> 352256 bytes 6 files changed, 43 insertions(+), 152 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 0fba759..3efb283 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -119,6 +119,7 @@ "version": "7.29.7", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -418,6 +419,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -439,6 +441,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -496,6 +499,7 @@ "node_modules/@dicebear/core": { "version": "9.4.2", "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -613,29 +617,6 @@ "@dicebear/core": "^9.0.0" } }, - "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", @@ -693,6 +674,7 @@ "node_modules/@emotion/react": { "version": "11.14.0", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -730,6 +712,7 @@ "node_modules/@emotion/styled": { "version": "11.14.1", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -1350,15 +1333,6 @@ "@floating-ui/utils": "^0.2.11" } }, - "node_modules/@floating-ui/dom": { - "version": "1.7.6", - "license": "MIT", - "optional": true, - "dependencies": { - "@floating-ui/core": "^1.7.5", - "@floating-ui/utils": "^0.2.11" - } - }, "node_modules/@floating-ui/utils": { "version": "0.2.11", "license": "MIT", @@ -1577,6 +1551,7 @@ "resolved": "https://registry.npmjs.org/@mui/material/-/material-9.0.1.tgz", "integrity": "sha512-voyCpeUxcSWLN7KPZuq0pGCIt726T9K6kiVM3XUcywZDAlZSarLHaUxJVQpospbjjOzN53hwyjo8s6KoWl6utw==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.29.2", "@mui/core-downloads-tracker": "^9.0.1", @@ -1903,9 +1878,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1923,9 +1895,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1943,9 +1912,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1963,9 +1929,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1981,9 +1944,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2001,9 +1961,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2180,9 +2137,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2197,9 +2151,6 @@ "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2214,9 +2165,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2231,9 +2179,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2248,9 +2193,6 @@ "loong64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2265,9 +2207,6 @@ "loong64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2282,9 +2221,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2299,9 +2235,6 @@ "ppc64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2316,9 +2249,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2333,9 +2263,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2350,9 +2277,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2365,9 +2289,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2382,9 +2303,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2522,7 +2440,6 @@ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "dequal": "^2.0.3" } @@ -2603,6 +2520,7 @@ "node_modules/@tiptap/core": { "version": "3.23.6", "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2793,6 +2711,7 @@ "node_modules/@tiptap/extension-list": { "version": "3.23.6", "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2893,6 +2812,7 @@ "node_modules/@tiptap/extensions": { "version": "3.23.6", "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2905,6 +2825,7 @@ "node_modules/@tiptap/pm": { "version": "3.23.6", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-changeset": "^2.3.0", "prosemirror-commands": "^1.6.2", @@ -2997,8 +2918,7 @@ "node_modules/@types/aria-query": { "version": "5.0.4", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/chai": { "version": "5.2.3", @@ -3031,6 +2951,7 @@ "version": "24.12.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -3046,6 +2967,7 @@ "node_modules/@types/react": { "version": "19.2.15", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -3053,6 +2975,7 @@ "node_modules/@types/react-dom": { "version": "19.2.3", "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -3079,6 +3002,7 @@ "version": "8.59.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.59.4", "@typescript-eslint/types": "8.59.4", @@ -3247,6 +3171,7 @@ "version": "8.59.4", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.59.4", @@ -3398,9 +3323,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3415,9 +3337,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3432,9 +3351,6 @@ "loong64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3449,9 +3365,6 @@ "loong64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3466,9 +3379,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3483,9 +3393,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3500,9 +3407,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3517,9 +3421,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3532,9 +3433,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -3549,9 +3447,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -3789,6 +3684,7 @@ "version": "8.16.0", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3833,7 +3729,6 @@ "version": "5.0.1", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -4944,7 +4839,6 @@ "version": "2.0.3", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -4971,8 +4865,7 @@ "node_modules/dom-accessibility-api": { "version": "0.5.16", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/dom-helpers": { "version": "5.2.1", @@ -5011,6 +4904,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=11.0.0" } @@ -5236,6 +5130,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -5295,6 +5190,7 @@ "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -5353,6 +5249,7 @@ "version": "10.1.8", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -5484,6 +5381,7 @@ "version": "4.16.2", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@package-json/types": "^0.0.12", "@typescript-eslint/types": "^8.56.0", @@ -7092,9 +6990,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -7116,9 +7011,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -7138,9 +7030,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -7162,9 +7051,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -7281,7 +7167,6 @@ "version": "1.5.0", "dev": true, "license": "MIT", - "peer": true, "bin": { "lz-string": "bin/bin.js" } @@ -7297,6 +7182,7 @@ "node_modules/maplibre-gl": { "version": "5.24.0", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@mapbox/jsonlint-lines-primitives": "^2.0.2", "@mapbox/point-geometry": "^1.1.0", @@ -7854,6 +7740,7 @@ "version": "3.8.3", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -7879,7 +7766,6 @@ "version": "27.5.1", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -7893,7 +7779,6 @@ "version": "5.2.0", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -7904,8 +7789,7 @@ "node_modules/pretty-format/node_modules/react-is": { "version": "17.0.2", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/prop-types": { "version": "15.8.1", @@ -8051,6 +7935,7 @@ "node_modules/react": { "version": "19.2.6", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8058,6 +7943,7 @@ "node_modules/react-dom": { "version": "19.2.6", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -9241,6 +9127,7 @@ "version": "4.0.4", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9431,6 +9318,7 @@ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9642,6 +9530,7 @@ "version": "8.0.14", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", @@ -9755,6 +9644,7 @@ "version": "4.0.4", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9994,6 +9884,7 @@ "version": "4.0.4", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -10005,6 +9896,7 @@ "version": "7.3.3", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -10306,6 +10198,7 @@ "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/client/src/app/App.tsx b/client/src/app/App.tsx index 179221c..76a90d8 100644 --- a/client/src/app/App.tsx +++ b/client/src/app/App.tsx @@ -1,6 +1,7 @@ import { BrowserRouter } from 'react-router-dom' import { AppProviders } from '@/app/providers/AppProviders' import { AppRoutes } from '@/app/routes' +import { CartSnackbar } from '@/shared/ui/CartSnackbar' import { ErrorBoundary } from '@/shared/ui/ErrorBoundary' export function App() { @@ -10,6 +11,7 @@ export function App() { + ) diff --git a/client/src/app/providers/AppProviders.tsx b/client/src/app/providers/AppProviders.tsx index a2ea0f8..2e26cf5 100644 --- a/client/src/app/providers/AppProviders.tsx +++ b/client/src/app/providers/AppProviders.tsx @@ -3,7 +3,6 @@ import CssBaseline from '@mui/material/CssBaseline' import { ThemeProvider, createTheme } from '@mui/material/styles' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { ThemeControllerProvider, useThemeController } from '@/app/providers/theme-controller' -import { CartSnackbar } from '@/shared/ui/CartSnackbar' import { SseProvider } from './SseProvider' function AppThemeInner({ children }: PropsWithChildren) { @@ -189,10 +188,7 @@ export function AppProviders({ children }: PropsWithChildren) { - - {children} - - + {children} ) diff --git a/client/src/features/cart/add-to-cart/ui/__tests__/AddToCartButton.test.tsx b/client/src/features/cart/add-to-cart/ui/__tests__/AddToCartButton.test.tsx index 5d95186..ee2050d 100644 --- a/client/src/features/cart/add-to-cart/ui/__tests__/AddToCartButton.test.tsx +++ b/client/src/features/cart/add-to-cart/ui/__tests__/AddToCartButton.test.tsx @@ -1,6 +1,6 @@ +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { render, screen, fireEvent } from '@testing-library/react' import { describe, it, expect, vi, beforeEach } from 'vitest' -import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import * as notifications from '@/shared/model/cart-notifications' import { AddToCartButton } from '../AddToCartButton' diff --git a/client/src/features/cart/toggle-cart-icon/ui/__tests__/ToggleCartIcon.test.tsx b/client/src/features/cart/toggle-cart-icon/ui/__tests__/ToggleCartIcon.test.tsx index 4ed67bb..d90671b 100644 --- a/client/src/features/cart/toggle-cart-icon/ui/__tests__/ToggleCartIcon.test.tsx +++ b/client/src/features/cart/toggle-cart-icon/ui/__tests__/ToggleCartIcon.test.tsx @@ -1,9 +1,9 @@ -import { render, screen, fireEvent } from '@testing-library/react' -import { describe, it, expect, vi, beforeEach } from 'vitest' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import { render, screen, fireEvent } from '@testing-library/react' import { MemoryRouter } from 'react-router-dom' -import * as notifications from '@/shared/model/cart-notifications' +import { describe, it, expect, vi, beforeEach } from 'vitest' import * as api from '@/entities/cart/api/cart-api' +import * as notifications from '@/shared/model/cart-notifications' import { ToggleCartIcon } from '../ToggleCartIcon' vi.mock('@/entities/cart/api/cart-api', () => ({ diff --git a/server/prisma/prisma/dev.db b/server/prisma/prisma/dev.db index 18b8cecc6e6e796844fb4ec746e729ec1b35efa2..0d78bd3b19fbaf96b18e2596e5fd4df5976cf5b2 100644 GIT binary patch delta 3312 zcmb_eU2has7~a{Psdkl28$%5!Qe$eond6*~IdcXzrGNq=ST4Y%ezeGPi1DOC%2;U;_DIdjf=&+|U- zbKWzjFRwj)dF@*dteGyAO8fD*zq60U&h)1fADyX|{clVDul~1wyWPL}L;u{R^N-v= zP~pzuR&CZqA>Vwm_UhF12{wPM-2V0a`WrotzgY4YG5I}z^9xSTaIZH!TtD1unz?54 zco>GJ$xk-Sk>-Kgu}0#&Kfd?%AM@dvIfG$A!_$XC(`p?R=gz*m?wt#c+i^qp7k}-l zE|xAiZr|OGf34(S^RKo0N5AmT&7SGazPajb7%+3IcwN(RTFzaAi+8u2!48@~HopCR zPp2nzfATl3x}XY99REtmzXJDP`VVP$c)0hrpqEC=?gdcMD*3H;f7tM|)}LiR1qm~A zQ;1SglyeIw)a0qdI%iM{6DqEZJ{gXWA3w0=>79D#Ypvs3wvSHk+kI%;)8mbJ&olbD z`EXlf*Vg2PJ+O|#yBX4hkt$b80h3;=e8Zl&+8uCm(w6Q8YVPYm{y zb9H^`Zm=}|YlEfBu6w%k%!s$o>1i~kCMQ+rgDqajELbQpURZKMe~!P9#7mev#Yy2nQhwcy_mAlu8&zPwyKcDv^qCR+n)6w5mj8*SC9t2BrR1erY+G;tmVu^ zV24Q)FcUK!6NiGSD2Q03h{rfcum((m))6k4mie<_#%3fS5Ll!G3@UO8(!qYj1kwa1 z0_x%c2}#DX^SivqJ3nvtwmB)+T{>bGMRh`g#gY+I1XbtWc$jb0?J8y{Z$vB7M48r< z2%04V%z-Ox#<8m)_#yQ|iAKgXj!7b9hVj`Y7!fp?@g3e1*~h!Q zm$T}#-e3w2bHYK6u0uwGltL-tis=Yv$1;EcWJAgtiJJbF=B|bIu(dJu0BMUUO&X14 zJZ1?V4CCYvoxiOn4`GT1d9ZshIkr2&CRTtJ4!kDZ;t7_~kmFlm;mBqe$xR^GpnyV; z{{XYDh$WZJ3Mi!Pg{*JHtEN_vrWOv6G<(=qJ3LssJU@^SZJ;7Bo{fxn_od{)y5>S+ zxvbe;ZL_=xQ>c!jK-7^Ps0UsNo5UfB0>P0m^c2cr5-1#eKnAI(4Rk_i2xrky8KE$7 zIPGB(I7mYxr79!{1l-t+3)K3A`WhOmp&Z$gRoG=rd7%lY@EO#&gnWWXv_yfmAd)th z08gVxXkPYEk|{ZciFgR-AK6VTkHBvM0<={VNGf!W)Z|-86yN-bis-`Xe37DwA5NY| ziX0SnIRu)KMs_O`GQFQu3Ts7*3%hcaElZ_15?}I7uTWx8aO}#Zi{iFR1Nenio8T2OVK z6>_AQg}8=D58n6mXC4BQCp_?D9jg%q9auwmji_ z(R6@v6+$BPRzg@XsHj$i5w0*h8RDHa3xNV?MMOeL0nQsoB)F38v;cQ!j5CH03K;-D zzLf&_!A)f)Pc<)&C?HaM*Q^AF>PsUr&Rc#ZXWn)%%3dG$-ss&sKVd)XCN7S8eSZPZ CH~s?~tvAEYqZG`oo?TLcdU(Ri?;NSicC+ayigWVcNd zkmlmK)RZGMO+u7e&`;8iuA)fR)PU_c{;g#F_S(!8YWg~IFt*qr`Z zoub$2B`uf8)9XNCsi-J(C6Zc}ma6Nyk&PNawrJb()OPXcVWRJPiH=AmTMF?}U3=VK%_*aRAYzB)@qXpUeTGm(&>wbSJ zmP;g80#b;K`^Q6aiOkFt=Pz8GlqU_XcnJuqXNco?zKd5b#}^GM5HA(=LRrp9QYI8! z&iJJO*qk|T+_x*^#yTb18DgE`l|0Fi0VVurm47HZ>TXk3PL!Oq|C0Vjk$%SJmn%>d z1>_kLy7M(65V=LrPq==9qv)M=)%O6IPZIFXurtTzxg`9`gQ+ITz>jDE;5LWb_zkXe zB8{Di&H5@lVYXD@518_ z&B-Ax4CCFWc5P^YMh4UnbocHj&hkWG3|diNkIPQoYc%S0G-$LCs;ozP=@tVKzJtY^ Omw)VnO;)!fy!$se)EapJ