From 887f2969c3b01beffedb4e255a7df779fc542f04 Mon Sep 17 00:00:00 2001 From: brian <90752841+wokbjso@users.noreply.github.com> Date: Mon, 18 Sep 2023 22:43:27 +0900 Subject: [PATCH 01/12] =?UTF-8?q?Feat:GlobalStyle=20=EB=A1=9C=20reset-css?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95=20=EB=B0=8F=20theme=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 439 +++++++++++++++++++++++++++++++++++--- package.json | 2 + src/App.js | 10 +- src/index.js | 18 +- src/styles/GlobalStyle.js | 69 ++++++ src/styles/theme.js | 14 ++ 6 files changed, 508 insertions(+), 44 deletions(-) create mode 100644 src/styles/GlobalStyle.js create mode 100644 src/styles/theme.js diff --git a/package-lock.json b/package-lock.json index eb6e658d3..874c83501 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,8 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", + "styled-components": "^6.0.8", + "styled-reset": "^4.5.1", "web-vitals": "^2.1.4" } }, @@ -34,6 +36,78 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/cli": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.15.tgz", + "integrity": "sha512-prtg5f6zCERIaECeTZzd2fMtVjlfjhUcO+fBLQ6DXXdq5FljN+excVitJ2nogsusdf31LeqkjAfXZ7Xq+HmN8g==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/cli/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/cli/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/cli/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/cli/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -353,9 +427,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "engines": { "node": ">=6.9.0" } @@ -531,6 +605,20 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-external-helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz", + "integrity": "sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", @@ -2131,6 +2219,24 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", @@ -3005,6 +3111,12 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "optional": true + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -4252,6 +4364,11 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, + "node_modules/@types/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==" + }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.5", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", @@ -5627,6 +5744,14 @@ "node": ">= 6" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -6058,6 +6183,14 @@ "postcss": "^8.4" } }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, "node_modules/css-declaration-sorter": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", @@ -6239,6 +6372,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "node_modules/css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -6426,9 +6569,9 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -8356,6 +8499,11 @@ "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -12128,9 +12276,15 @@ } }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12771,9 +12925,9 @@ } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", "funding": [ { "type": "opencollective", @@ -12782,10 +12936,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -15129,6 +15287,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -15531,6 +15694,60 @@ "webpack": "^5.0.0" } }, + "node_modules/styled-components": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.0.8.tgz", + "integrity": "sha512-AwI02MTWZwqjzfXgR5QcbmcSn5xVjY4N2TLjSuYnmuBGF3y7GicHz3ysbpUq2EMJP5M8/Nc22vcmF3V3WNZDFA==", + "dependencies": { + "@babel/cli": "^7.21.0", + "@babel/core": "^7.21.0", + "@babel/helper-module-imports": "^7.18.6", + "@babel/plugin-external-helpers": "^7.18.6", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@babel/traverse": "^7.21.2", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/unitless": "^0.8.0", + "@types/stylis": "^4.0.2", + "css-to-react-native": "^3.2.0", + "csstype": "^3.1.2", + "postcss": "^8.4.23", + "shallowequal": "^1.1.0", + "stylis": "^4.3.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "babel-plugin-styled-components": ">= 2", + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "babel-plugin-styled-components": { + "optional": true + } + } + }, + "node_modules/styled-reset": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/styled-reset/-/styled-reset-4.5.1.tgz", + "integrity": "sha512-6EvFWZRwaFRFxiPYMwmnzOe33rDkw5r9jIU0eEi49bkt6VSrvjeMp2ZOw/YFbw5SVs81llIY+5fzHtR2/VBZfQ==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "styled-components": ">=4.0.0 || >=5.0.0 || >=6.0.0" + } + }, "node_modules/stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", @@ -15546,6 +15763,11 @@ "postcss": "^8.2.15" } }, + "node_modules/stylis": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", + "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -16064,16 +16286,16 @@ } }, "node_modules/typescript": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", - "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=4.2.0" } }, "node_modules/unbox-primitive": { @@ -17243,6 +17465,53 @@ "@jridgewell/trace-mapping": "^0.3.9" } }, + "@babel/cli": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.22.15.tgz", + "integrity": "sha512-prtg5f6zCERIaECeTZzd2fMtVjlfjhUcO+fBLQ6DXXdq5FljN+excVitJ2nogsusdf31LeqkjAfXZ7Xq+HmN8g==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + } + } + }, "@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -17480,9 +17749,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==" }, "@babel/helper-remap-async-to-generator": { "version": "7.18.9", @@ -17601,6 +17870,14 @@ "@babel/plugin-proposal-optional-chaining": "^7.20.7" } }, + "@babel/plugin-external-helpers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.22.5.tgz", + "integrity": "sha512-ngnNEWxmykPk82mH4ajZT0qTztr3Je6hrMuKAslZVM8G1YZTENJSYwrIGtt6KOtznug3exmAtF4so/nPqJuA4A==", + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", @@ -18598,6 +18875,24 @@ "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==", "requires": {} }, + "@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "requires": { + "@emotion/memoize": "^0.8.1" + } + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, "@eslint-community/eslint-utils": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", @@ -19241,6 +19536,12 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "optional": true + }, "@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -20180,6 +20481,11 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, + "@types/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==" + }, "@types/testing-library__jest-dom": { "version": "5.14.5", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", @@ -21193,6 +21499,11 @@ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, + "camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -21513,6 +21824,11 @@ "postcss-selector-parser": "^6.0.9" } }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" + }, "css-declaration-sorter": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", @@ -21620,6 +21936,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -21758,9 +22084,9 @@ } }, "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "damerau-levenshtein": { "version": "1.0.8", @@ -23184,6 +23510,11 @@ "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -25903,9 +26234,9 @@ } }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" }, "natural-compare": { "version": "1.4.0", @@ -26358,11 +26689,11 @@ } }, "postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -27883,6 +28214,11 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -28186,6 +28522,38 @@ "integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==", "requires": {} }, + "styled-components": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.0.8.tgz", + "integrity": "sha512-AwI02MTWZwqjzfXgR5QcbmcSn5xVjY4N2TLjSuYnmuBGF3y7GicHz3ysbpUq2EMJP5M8/Nc22vcmF3V3WNZDFA==", + "requires": { + "@babel/cli": "^7.21.0", + "@babel/core": "^7.21.0", + "@babel/helper-module-imports": "^7.18.6", + "@babel/plugin-external-helpers": "^7.18.6", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@babel/traverse": "^7.21.2", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/unitless": "^0.8.0", + "@types/stylis": "^4.0.2", + "css-to-react-native": "^3.2.0", + "csstype": "^3.1.2", + "postcss": "^8.4.23", + "shallowequal": "^1.1.0", + "stylis": "^4.3.0", + "tslib": "^2.5.0" + } + }, + "styled-reset": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/styled-reset/-/styled-reset-4.5.1.tgz", + "integrity": "sha512-6EvFWZRwaFRFxiPYMwmnzOe33rDkw5r9jIU0eEi49bkt6VSrvjeMp2ZOw/YFbw5SVs81llIY+5fzHtR2/VBZfQ==", + "requires": {} + }, "stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", @@ -28195,6 +28563,11 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", + "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -28588,9 +28961,9 @@ } }, "typescript": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", - "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "peer": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 101e3ed4b..04885d6e5 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,8 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", + "styled-components": "^6.0.8", + "styled-reset": "^4.5.1", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/src/App.js b/src/App.js index 867910d2a..a1302c40c 100644 --- a/src/App.js +++ b/src/App.js @@ -1,9 +1,9 @@ function App() { - return ( -
sJl9!COoy=D zvJnevNbc&Qo5}AI7kGJi+jRGK|DLKu%dxjI_{8o2`YxxB~1t94sA3&!FD8X^wgCb#Q4-NI#g&fQn= zTVxDabc^}$@1rwyUCWj|{KGt9LjAk+cE6zGPzN0{>0nsPKk?m++V>5DaIrp{{cpKS z5Jjh)aT;U6BDu|J#{w@nd`O2$DSC&wVO8T6WH*n--`eM-X})C`B1ag(6L$iyzP=+( z!s@V%1q1k?zgXYM6~>Vvqww%nu HXwp2{1uO~ zxakHT;rfDnz_)!FfQZ?hfRpfT=LBDk|L(zPCBp2r#aq!fs|R;hsaXuTm^QmIccx{C zl-K4di}!5y$bKy~lpfTXc_z0PrOmIkXz%DdbJ#%>;AAM^ciP3CExVtTz#p%`<{iEh zz861Ai#2(SZ?A_yKfL%&czWffO;97m9TrI%*Bw^Y2}@FwInH;!4s)$XXKhz213Vl0 zjUVF714H%tdrK-jTt3F-9gfR7{BCo4503nW02Tk5W4{+fH>F(dxeE^@z|rS(C#~JW z7klhidrJ&=PEr;r%610(dR}xXjyHW4tC3;j-byGb^Bqs&RGnq-m%zFLfT0DlQkXz> zcHhV4;~kv;7O6ecx7{mzpQ|SVRn8grogPNI_Vm8Ql)GX6-}5?==$pwNf4y3K5?)(L zTYf;+HLpBJ_nThs;}b5|5+0K0X;i^2LY!bqw0~j%pfD;`V=9qPe;1l cpXNX-1>@eGlg~Lm*bJUm +kBmw_fzO`EjB;MU-XCYwlrKHnm~3)E}iI_THBeI~iM@u8)(sYCBN$LjYw&JDn4S z n-8*fq-U=#PjcAy6C?ODGr4$mXvPxm9rIAfhUO+xwNs_%TT#tMP!(iI zbmd-%GpSJScp;^V=dXzKrsYgw&G{s@j;IcAIuh K^AO7RLd@eDaPP$%{JDAHGBf__OJ@D6rY++LT%}y}NpMB2oX4yi 8psUO@6AlPu3-@Fm!cjhnyJ{$@TV5D7;4 AwPb2auX3}!dXs`}&&K8rmeU;kIA&{FC28Ww3wbgLM(0AQ zdI`Q*;=Ri|*9PloDGG{FGYphBb7MVBO~_O@V`uJa4Eb-n!r?MoHfVC$-Cz}S-lO@8 z%s^M+&TQFO(RyhHp%r7ei%qDoSJUfE!p8&jfIW%s`RGco6ObtbS<2QT`JSu?32M1v zF&~7cyZuA3pqqxe5Sa}tdi++~@@Llw_pl%#U+}#+|B*^l-+JkOs`+VLTXuloOr8JC zVU6i|4dy_E+caGAP(>=Spl>0x^@%zT5zD^*cxG8ipa5o`tQ&9DY{k!V;SQuAAF)fi z_1dma@yG0kth~ah4_@8ROe*bUTaSJ@8pBi)9`jXs-dxt-siYW_csehcD|?5!AZaZ@ zm=lk%Alpf?$BqW>2vVGFQF=kY>c#{mBe~z?FhR)*T7jxZm%TX`z5C+4xZb^m=Ut^H z?tJigXMD$q6Ym^+m@zZs_$fdFm){06)K$ZdL%fx_rxzv@t(6;{k>5Vu$ntFK;g|(j z&=d?HBqdJmu1!_A$*UZl`1+9-PQHP!;ql)c;@pmAh5wdqnkVyh@=&IVz4=tHMc4h- z?G3-Iz9Ipr5Vx(iRC(5h{wsW34ZS^P9bq(qF_}=U2t+3@yD?yVX>v_e)5C`Zi&e zA_lrKYd4%9rkZE3M>ZBZO9Fq0AI5zf7F h zuZvS->4_j89;L>j1dlzXDcB9Rcls{Ru9I({0@M^vMRT8e;K}313Zyw995}vm!(l0^ zISa2Ymbu>pE}dH@e8uU>RJxl$P11EGJ|p}_h-6%F=&+-|`M;xH(D%F}4F7hG^$w5M zW{+7>=sxP`!Pq^f!O!z79}1;M*}rsWOtz4 23btGA*JT_2<+K$M{gg#^^|T`!T?jCk|E-!8z3R- zkX*ip7R=$#2d5|1wFLd~>hS;I5hkLSi%j$vx5Y=QWCP=E{h<>1efLej+2K^@wHR4v zTFbGyrB6;&t1NAMEO5wmibAIa;L`-+Zz(hMi2{&R<&rEAK*b6=+wa55F9C!@)Nwvz zi#1_(o;dsXXCmgcV%yV*2&%8&h8-a%07 Nh-5z8@o3uv_H6x$jiD%%+J}4>4!YCzT z{F3eNe%N?3R%Wdgig=dav*+^n^rtB>XayFKM9GcRYyRuXP$Bx+pC{rI#b~n9G`+%< zd^ZbGFEx}=L1tAr!7x76pznvCX%@HrxE4yls@|FQ1GXI;8McFblbi pPz5bFm+ttbb<2!9Xx7IsbDFQ>E*_$c^9*O)O z_>-XEIg4iBiu%ZQu|Td( *F c3f*%}$WS z85!rAJep7c!lUM!|Acy0B$~vD!PrZrGb6foEyyEfq&8BiDUPRJYvTH_+O#28c$tq4 zUeJ4@9<6ASAT;Qd%FwBmX_#z2pe@Y%(x&`wpdRofVVve z9c>0r^g_^l?)f#k1km8NFM(5mV;6~Ik`$kvJx?Qciz&(EdZ68dNKoUt8 zgYG1Qco!Ca$#n$CDQHac0b;>pZPUu-5Lw}ib(QHwUJym*aCY@ViqBDkYZQ%IBR0|* zR(hfZ*~C94Q=t1@VAz=yLJPdjIiR~2j%_=QX#){Q1&O17oGrTsO55UPl;E(Y;LgcC z3m)hKY|vq10`U B9faZTt1 LClo;QSV-w5j~#?qcl_W*^TKUG1BOsVLoF|U%i=tZzP>h=+#aeM z(`5zCqkLtTx@ypa*5Kibor|nCQDRHm$w{gN-O&t)*ZIs zypH%ML+yW9z}}JwXU~7R zGOPCv?8A_7bhF`$TZBoL)+Ab;>Q;!ZaJw$ELNv3T;^nI27)QW1H8M;{t%6FAU3< z&`9AeL3Kxj<4$U*EfoT*rtmxo1UkQ`9kBl`4U)e9A`=WrN#K!+(tSuUw?izGNFMw5 zD3mywhR|b9`rbH5=dars@lLrL&+P$|S^7T@ed4;)?s&2pWAMkB8CZROto51X=S+?3 z(FltTswm~ets~o$mNLss(sA_xwU2p(>+hX~6ywD*t0l@Dy<852!P#t3ZScMaHDZM9 zz2F1kvYoT+9m4?DmmMswPI1X9Qul~RJ$os}V%M?j%H*IJCwFz$zcB?AGkjE+$XP%z zk=b^i1?cy-ynXFZxQ?tk=GkQp1Pf~$uZ2@YkUYEZ`i9zQ!}nXV$9fk&OlFINf;(7> z=TRa8OkowcjSFyy;utVUr7t;Za8aS|6aThF_F9OT7s*8ZNABYndYMVVGu+ihj$ndV zcpc(%t)3Rs(cgsiSsQE9zqvH1-p&|3xl62EYx9@qAqR!G+wiHa{Wxpsak?c U7&K}+{JA&xl>>fR^#w1aU>{axgR z>y15yspXh4?qAJdKEXFppAV<7I_$t&SeK{o{aoqRXK WC{UCqKHqZt|)TJ?wz^C6}8pDwBGkrZu*Ea& HR8mBg zQ(rj!Vnfab1=!9MXqe9b5w=kpjUD)bhhH)au9fa3D*gGfv;H+ FL#z4!EeC@j1-FCa&2^1zoiEF?(8Kua3S zG-SY5w6|@t^}_b?B*SgkvuCClEHNw0gGm#|M6rV905u?Gk1P96=y@%xY`jxcP)%?@ z)mrqh;};ETSm@)gyr}z>fJY%z@7h=-0NQ6D67>|=Epqv}?Z^7b+(}xFNgJ?8x1+vH zS10Pdud)Un^%bx>yDjatg0z;k*A_*OB`|&07NH9ULrFRg4wH3B6%2@F8S=q@bU1El zdf)#84VinsM#7y}LQu^66_q7-u}EWTLg(<3GXZ+X#t2M(Haqitjb+ZKdK3BH(GSa# zR$=s^e?z~S91{lxYGa3l7f9}dtHsnz`npAvyPO2rAr`Ls3 rL*lpx!g&YaWyoJaZIG8K1)Dz1EPxkS@{INtVXQC*$hedf?TIYDWd-Fy74 ziI(O(tG&_Xm^N|j&!=@`<_lGVJQ zj+0Cf#`JMYmFtwODqJeXy4xDRqFmw-6x0W zj?6wPvwALCi|hlsuN(^hoR3pr{nTT_B8TMoFvk+ zyAD=5iR4pQXeyh~ }q%bLBK=k-D?5Y2RU z*gyb*Sjvt$nzf;hD^o)O$M?hK&l1H;A*|-j^XbP@9{&`~-16RQ#Qp$m8?j*~k|*j- z+V@;y(sGn(Iu)W*l%{Apg~XMkSbrsfr4ulIii00=5avcr_bzCb=?=Bq{JRcbRCo`% zXg-0}h#(&P!*Vcdi>v}g-eAUe{ASy2k2XR*kSkQPBRI>zvmSY|zl%|u&4(%{pjbM> zPb~{oV~<%c>O22gvHVn&@8K6*9N$AP^-)R869CN+IK5In<1M5LBOGrWX%Azwd6?hj z@HD-aY4E4fdYx}R867LhN1fQ0vSg-zbprP7Qd0#!FPH&We#zM9x+@XYOsj{4t2z4& z*CcpGzYc;~>GRg>JoPTm1Fv>sM3*0}!zG{52g>`SY)?4M^ns+;V4M+~1=pDCId8i< zxe`DHa}hX7g``!uscezNTTpwuc!&_R(ER*3Dy)yMZHL0N!c2X1foyFb7497L9o zb~G!4MbTf%-CSAjwj6ApX){qxdB{ZBC!Iz=%b0}mmA zhXkUaO&>!RNbZ6E{If}C@|#rVpBzkJL1j#Qqk `k8cbeJ zvbvhOGaV9#G>9YjxW*yDS6 nQK8 zuPHFWsyVLHKqaV`fw2(>if*XFPa3fNl`ks-!%~F~?oWmmOrZaEu5F;x)8pWfcN!A- zQ`GHvb?hiOXEdg>Ebp|x%6tF*G|jN5I%U<5%FOWR!hjTEou9fR9?a7T99`?yJHes5 z1`~6k!a}vNj~+p7Vjce_x(RxJ%aL4G+4$nI^z5hU=utS3pH-Owktb-9n{UOTxK9VP zAV!h)8$0eieOBS-{#MQ!%VCZI{_S}K=?mGLOQ`eRB!3axTOcRZ&-eb$+Y<6~1>U$1 zlbW1yQ}sS7(gijeO*j3457=Ic#)v#YEE?Yw8L?7Tv1BsB6vQHX6k1_YpFWkdTuBPo z7MM S-hXZkae!Xday&?)xpIbt)ncRJ2C(A291?npfGbF2WyL_y2 z`%R}i0kzLzRfV*O??0Ab-T>dn@yUlwZ47Js %CZPtgj|4o;AN@lUA*2_NhqJMfyLhq)+%^d+#_gK_NIeAk( z %b! zy0voK^ZL1i!on-VmPE}=W*#6!fOFHEUvKFmNPhr>o3wV%Z^lVLg`ecvVW-rg=Cphu zixX5Rd*92dN1f+DWsYYI$)e{^xgD`&Hq*2gAn{9gB{}^g {pLAc`Fb!##aSbLk~9p4F2U5OEf6sVL6Q?0r;f+QOT>*72;OfR^SCFEG4F83Cyj ziESx-!}P6H_@TCdGF__D+$={M;X_V}x$?s0yZ)Y*=#fQdvV3;x_}Dd@cq2AK6pgr@ z%G LqZ+8^%RAWLyv?BC71iTQ18hK|2=-sx x)pbN4Qpr@A97J}D?-XVe=Ue=D?(k@IUJQU*12%3r5phr(ATFngDk z#)pRe=a{|?f=aF+mv8I8*hgXR@x2AN*hpg$R JBtQ V|_!?+)h_WtMCdKR S=` <@dL4jrbmyX(?+oc2gDoDT040a zxxLQ%-bl0tbzBBNUf60eTrTHnqQhqV%DvecL4&5y_F;y{WXLxghU~#~wbPWx258;Z z k5Uup`uEx?OXY6b;!Q;2gA;Z94fP{650McTAgJYOoO28Wu5lQonO9j z>aCWdHd1+J1Zb$%xz3f|sjfJx?v cSA2fdYM6PUow9$Rz%}0A` zt`(tE-3(PrAu?@2q2aPHFB9*NpyGTW!Xp=U5wF9V c$7s8zP-#mHexUlHBDFS zas!ye+xa5fz{Q5XH$w1;a(xI??0!NwW^)n14*e#A6YCR`RaY8aYC8}na&&m fS!QEsxaAP8POWK`;^a5)N#52<0&u|>c>Y+b|2`4=@)Pj1&6dnXBvvor zQ~j~1nmuk1@|2a2K8|R@gAi9Hm#^IIIOl-D*FJ7$x(??M9%-`j;eOm8U#(D&;)>qQ z_iCB;@Rxq;FF6iCy7MoQ?mcM{F>!I)7MAgPx-zJD#?h)E;x>C`f_%?PYW9iBnHmu3 z?BV@fl>a$^+=3C@lNOS~{&pxz=#F`qn0>DEySb;1uWlfJ?zk#ItD1!@`@Yb4bofVh zkKT2RZL ?ntVb_aT#MN+}y?ir2PjxVWd|LpI@S z=x~Hi6L`i;ZolF%loZR&2#x8X&FP5<<&biz{=^?`pdwk%{`;7M>#w}3xxHlsM&dRv zOppx9{{`xRxRnn7*DD`D25lMG+g(-r!1Q`c2(?eSqaw0jJ2AoIZ&K&NlG9qkei(7f z1|4CmLf7iOW)OJj`Q}gToB1)%KYr8HhY2ncdans|)4;6TYYBV2r9(&RgvK+kr#f ~;#~3lmAUr{{kMwk7HH_2aNtHY#q3kQ3fn}uFc)Sc zOuS|sj@b<<_$jC`1O4tw6l23#&-%~Y6)FdwuLJN@NQb2kDVCHcssL}1(SY{%+!PvW z&fHWr)xTTGs%kTSG%Hrc`hI%fSIerSwUvG({rOKoEp8Fs7jN=$q%~t?#Qh|(j;ZB% z0CcF5Gx5AVS=n?vi`ylRC;zEvg7%Jgf3gyZUle0sgDU*i9vuzq-pz5(;fP HMPPgAaifiG`jrzDAAxpM9sF%+IL$#-z#5w+)TQr< zBh}{RQ&qAi?WkXrOnQ!&hKR^_7fFm#d$IH1-!lXg{Db|tSP<3+$@1eJy>>5Be~-5$ zz0>vae_=xXb#aAvmR@BcZm &!s*-x>-WfP+ZbiLeFQ#9akyprxP)M@06?7-QSe!9b-vM5SYQ-Eh$Xa z1sL|r|I7LgrvY^XB8MS=R|En_QI$-|uod2*c(p^Z?QU-b%do=BU3AGw%Urk9KL8<# zg4xSP>Us~OH5@1oZ)*oGLjpdXQC9hE2b?qsHkbcGOkPqhWUj?3j8# BW=A^hKzg`)(*3G4b`=899u4&fZ+fb!s?tCvc-5g%X zM4$KibF}skI*2*n@`up5FW @zEWHOqJIX>VgyfIf%`#+^c|bOXn -W34s?__{_gmadlQOP>4+Qp_&pFv_VqOcJ3vuvwL-zbBW&fWjexfjOofmy6EH9 zICjYzOmmW@c!k*L$y+$+U2>}qsYbM^6$yc-G*{+6o%Gqi*DNk#7`>|4foqF_as^XX z#zIbgHXe1N34jl6E$xNPR)_)`6rX +30=Qn0G#5Y3JWk;{4VEF%t-wc zBaG0~pi6A1Ezy&Ievcz3V48(aa{-yP?FL_=;2SeY6XBbhO#4M}=K^fRm|iSBUJ{i> zdANzO7P;HQyi(Be(2T9x77U#n{yxzfHrk7PA+z{sZIHO_*``tlN?xw&yNmbDkh68A zEf5j+O^*uyDg88b^MssF`;}lw(tOJ(aD1gC@c4eSeUCg*_igssht`!3#sBrFVr~li zeCY;2%pWPgDvRT~gHvNGEK^&|K551swv)>`IWu%Bhgg dyIGG0QLQ3f7KgEK95~E$Ytt zo|}%bq8VRrPA!D<>O6WvXzVxMb|IdKDPE{q9g74`Je( ku08WV& zd!(~PN*p7HbQ06916#oN=KpwbH$mU2VK>v{C9p*3=#xI-pL)a^KDlXuF@?(N#SwUb z*O}_rC}12@uONj8y*>wos3T4H)Y^u7V^=uLfxgW_%P=YsO>R@_)SmMLJl+KHo>e)_ zJUKR0=s;9wD3VXi(wU5d=E;LvJ-@!5wH11AFXx`u!Ac7NHsTsY(B1jbI*B_iOk{Md z@@aA`q; `OlQ~kMRdeLnPYu#gMbN+$RWAc5tVrv<(PUZ)Qvz5}xCV3%i zi@DbF2%1c1khI|cQ>CO4DeZsgXTenCe|oTjtHq7$V)nm6jtY{}{-ftf17f9}*|c|` z%P_u7gh~pn!?+E1+-1uL734#^X bmbRdMZ1BqK zzDv&eKdUKUT7v%kPp4Nb8xf 3;RjJzOx z)L _#0cDd0OK+NIg9~~`kolxCsfXh}J^CEASYB#`8 zk>7so +!D9p7= ze5H=;p=D-G_~}X86|utfshi!GH&$<0xbIVh>_6d0mYk!QvOSEX+7?3Y7GKvIjxDm$ zl{TN1`T!gH&~K|HWn##!+>0z%>0<}G{OBH&%l$NMZQp5hs+`-ujpluunM&cc1lbLU z%}j9ZmS?O>l$jmYP3cd^jIQe5Bccm?1`tdE@P0Q}ncWgybA*ydc6{FhQ4BnLD!(t* zb=?i2f1qaNW^(_&iLW%le*V}#rXXltrxuyq$D1&vkWClHnd7#Vl6q6 *Zkf-tqdeDb>dw|kACvvBX&Q3JP&sj# z>n^ZyYe}rtzAeqNjo%SeYPi;UsYN!HxO0h*J>>85VAWodconh6drLaD%^2&9@qGX< z^AxuNQMQvtGwX$+(!1Mv<%*}Rep^;qEjq7Vow8p+eXey?t%c9-_6fP^L}+S!c}W3g zb^oP!PO0f@zu&P(`be9&`pAeI(dX=s^z=iDuu%_s1uONw }?9| z^|Z$FNJHT20+$1BtBXqLUyknmcxuo3*{_#Xa_6Gxwkw*eHoVmp=1QVviN-|Me>GoQ zaAo9LWhib8MuV-4&u 2BhB=NvHgn1E2_b6taJvdc; (kSQVI#l7`0jSi;@r z&TyKzY|m}Csg*P>_Uq1ZF{Wkv2+cBg`UTJJD(3v@-2h9L>$V%(btne~a(iyN`mN}g zK3F5RSK{7gW#p#vI|LfA6j}*}04plhL*r-XX@;$^j(&KC^V}*o{qK IWqh&GcYFo3>e<5LXH*($?UWqun)?Z0_H9sO#y|Sg?kI1z zv^Y`PHE;mRR%J&jIRuW4omy|KPEw7 g;NqR5+P0qrd- o9YiSSq=5q7*aZVpffdb^Pfzj2mOd^IsR@wxJ|qH z(=QSlj{Y+<#dR%2)@y~*MIK&>{S5tB5v}d3#3c?Hp|LogoG8Oh(@ZuWn3GHx0F*i8 zu$(NoUiVlIgtO%Qh6q&wXFTDRhZ=K0BA9p&|3eI-ez&=Bz96&&HNB9m`6LLwAA8hT zZe-!f3}3DTByU|)$`JVc#o)YAbBTWLy G>^hM7H*;{f;bP4GJ3*-R{1Sh+; zb_2WDgpA{BJ%*=Xh1dLs$;tctyPS>Z*i~GVuvBFC%Yi;g-%ub4sEr``!BrYsez5k! zmDI^NTa;#~|NGQ0BU!29A-|<>Xj8xC0#|kcn1Gbeire5oARS9lQF7$huaptLatJ+n zx< 6#PlOFbwWWoH!oN6F>A@+%yVC`ZJ z1Z%Qgu# yr^yz|sr2(l#`86s za(~;2w@@iuUOSi9*e$S;H{Nji)c&_iBH!O$bMZMt!SY(B%19e(8!3}CkL5K}FnN1z zfoq;CN+yuNQrCFoR?(nM6F9~VkB~kz$6VzOl9lp8-pEhsR&@CK PSBq4+e>hSGMBGwVAK{m4-nf8$AZ2hGdztQu*5wmVchOCXvl8_16ni?>Ur_j6QgC z-V|jEX?!BaQAH!T?sph;Z{nzCV>Llgqi$zmFK@7K|8H&!b*F^tm*o+7oH|P36lEPd z4iNomzxdsdA45m&M0IyC-rV`Vx@7nFf*`PEy(KkIxvV71-iUW`rgq6 q z0jD8xele8k5D?Q=2_m}|7M1qMn jNIo?X>4>0TnJOJNE!-&) zL%eU?TMRdBlOAp;*z2E1-$m6@cDkVdpgz>6I;J|SZ1)9IKKKkjB-F9g*OJ?kT6#54 z?K~Iq_*9~xP9Go5!Mh~k*CoMUwbhdtR)sO=SF?6N)U3KWOeydUG-5Y>J}z`vp u2H&Ww~h@I9N>}F!6NqfXi%1H`GMsQ zy;%TN5~fD7)U%>99iXM?zIDPq7iX4O1b;IVO3_iTtr3AMS=t4@oJ>gf6*YeG?8%Ds zQ$#zu3I!{ODNVaKU|W9qEF1xSB$xqiL{0UeCxLOddF5WoD#+?`zD{#~R%iOjz?8&< z6e?^Yy~di<7gQkD&O%p6saS1E31Pe(x;m5V7tFMu^KBR;yJWxUVCT1w-c+`q?tM6p zoA&pgdM;}s_4CEe0xylEn<~N_B=%;)Z>_s+-_xHLlOVXgg(<#yhB8Tz5;TGk_e}R5 zm{uy&S<>`V-C1I@@^Y#7xDe+qD5$EIj3_N{JdS&v`BmS< F5 zN(kPIK4pmRs)t3;?#<=S6|oJTa~hRn0J~+fltpCoSrq=m8&a^QBIWHeVJ_j_;6ZNg zbj&Vf^CmxCjZ>!K#z<)0V_{k3jd164mEKrAQ}9h(D)aFh3f33rb~K_x2FFwhqAK_4 zkP8o80*-+hFxTT|6B$==Exh=1D_OP{LQiv9`n~hmhOvwT4Yvtk_kg#u2tm>Ns44)G z{Po}K(W3IR5}4b*0+7o4DRvSpsitPdk_MHWtsnXMtzEPo?$$YU+m7K}GwGha_A&pC z^v7d9k_44Kz}L9Oo*N!9b++!bfN)MO3P^O1P$5gMElF*^;KlyTtxTve$#UM`b4o&d zEFBZ0h0ug0nW~5M8)VILT(7MaRJYTjN|!A!Oe9 dDreQ?^X~P^9$Ppe5|@=wqJe{EuQP9i5@b|EG-*qZc2tJJV)2^uXmtp7zxt 6(MMeIBCf};5`fyEb(#lL09;%CzJowC# z+tE}E$~F<=(&+jJ7>sP3vq#u5^4-ms&u34#@BdE~5XGL%u@V&@ZZRM_ k+0$O06^_c5b$nNS;OKVgauN+DepMI9F0Wr6 z#ShyZMpQKVe8&~yi>shM7?wGZG3eO>( N8u^{hv~#_OI2)`bYukCFn8s;H#D zNd@`>ZDY+#ea}{ly7TZ)B)(g%AE2^i16Q$eRx8bi^f|D(^VB*`$nzapLM49aa#;y& zQT281Gqw4UjBR$3R&ZQ7bF1wiOMaEt>dUUIa>pWv-~4(Kg;`>3As7VK+OMFakKUPK zJrBD-9b4V3^NyLkgAatGg_T0U)Jn>W+2WA7^>2PnD~~2tIjEvV0MemOvLa|*NlS_b z0PSiDjl!L9=cevtmXOMdu=TxiK{GI%Y9@}$GJa6>5^NIqy~5IjzrxrwrYpiKeE-(i z#m?GFnkH@lh0VV!C+zPR&y32N3GBp3Tl(z!Z%fUd4u}?OpFdu;E3_I=Pp~+vv@HCK zkcrQ7rpW5`cyri7?Qais8-Bqm_AogwzOhd@G8#;F_Po^hD#BGKdsAk6=*iEBtP*66 zt1jdyHnA>Xi)><>V?VL{o~&h~2MxWS)kr@`_}S}#HpxiR%v%`>egZ>UFW_p k^+R>h@)ZElT(XhY!ylP0NF2eH*<@?}dBEz+dT6UoDtRuLaRPkZ2T5=aWu3;hdF zS>_1(Hx=BI8~2$IFNYVu1V7CriGtIb7R c{8bt zYQGU1*ao89SNx>*E_X-#vF0a)65}lN&~2(d*=7@8C!No`0-{pCi E|_%BK^{CNaBy&}K$hBbNmk`z@Mk zS)nfEtWcgu0|!->m9R7Y+9q+pyqf&f(YzNEso}Q+6UdkHtDc(HlRmK8kT(DeI;NWY z(@D>-jWc3=i4C`1!Gn3fDLI?|eL2T1cXDfDyOzr96I*9tddD+S<^djt6V-_Og*%LE zo=~Rq=b8)(;O~4|q!y^0l!JewRu&m{sosCR$KAFKtG=?zLL2QosM*hYBH$;@8(HYt z9iKG(B29}~Bi7zg%J>w=p6TFn*?{(r7|JdOi%4PB1+wBzIyi^oEz50ZhqbLYOPByO zyi$fc X;V08>?rWaN S1cvskGTg8x=7zhjJ09^4}M);@O$~$A-q^A(0S4A%y&+X)f+=zEZDp@iht%9 z7=dS(x!fp*%%9Jpe+@{cnTX7;{i{lqiKYo$>p~+1E>7Ln%C51CgWETJUnz|yB;Mr1 z)uf62I;MBmrzU>gFkD#lM%BkJzu#LntA5yXX9XY)S_;a(+GxcEZ`6qlUW_jSVJzJF z6 5+YyFM%QMtP!H{I#%eCFhm!;L9x_TQ _E~k?GY#+~EPR-g_O~k@Iv*%P zbMH9e@HukZl<2F2x~uKO^z(m?jU!e98K{P}C46kZK&I?*9*w3x3P}@is)U9MwAv9u zt|$E@p(d#V|8kyPmBL>hu@@#qd1xyy(;tGl 1=3Nr7cdpueI}?M)SmYy&Upt$S*c@6Vy$M|gFMSrV-6KXBCk=h8o@BAb3)mQ=>n z$9=q}jm_(xCcaW}->}D&W@h(zZ-N}#7i3qFlcNf<)hs3UipmOC>(G; j^&0VXxfPnj7ZBypPZNw>AqxVBo^M#?=zvysXTjfM H^8~?Es;?!D^?MRdmIxG z>+iO;SBl$V>xzRo9yO#b%0ut0N54wYFS+nio&!QepUledNnVzeR*y>_6}Zf(`0EuL z{;S#JUii0cJH&Z5UMy0>B3K(ru;*WQd(&!rvTI1>iiDM%b00pQzE?J=00`>PC2Q9S zMN-^q2jbF|UKRyc|8jZ?5V_Or0a |#LnKzTdM){-6<>0oQxUo z!OVFf|K)FiU{={H82&==^a8)%pq(~|hm>chxT7lA3B3lO8+ZEnlv|%g75egTJZ3+O zewZAd3{1lE_9t2Gy^>8TFcjs{mBlU8_nAH#dYVPGjG3@rsCml*OS=?)L-^2?!erB= z6LE1Qk)_k-u}c-$aT&_1_}yhcU&qvw#5RHBqX@z*GML#cwlhqZf*W1b9jVumsJnK= zQ(rEp>%ES--oJ#ONM~4hU1({!v 7^=;-79qZJ+hSbr%Jc4Z;gTLXl}!$%y{Ris5_eWEYzaKn z625^xdbZOVO&WE7ILeIQ(g5)=S#Pc$@KDx{QQy?vt#M5>O~cCQSG*|v0M*ueJ?%W} z(RlXDv4vlddMK&G(Dd{++6|qlvD3DTMXQ?-`|ugpqbrB&p3P7~=gfQnA!KIG;X4ZK z**M9P=E~sWw%xB%Rrx`&+HDv!;*7WLzpbV_n>GXhldmM}YbPZ&bLSXAdS`{Zt&%5Z zIzJ;`Pffd)&E*EJN7deSf5U#uJqpPGtQl6wj>-#2@ZM7ifM8~Vg@07}GeWQr!M|zT z7dcyf&=WCl*AaSK7zaNV?@IK4+&)ET*I{e7l@kM%5Yzi}%P`(xc}2+wIu*4a37@4X zE!`=T3v5-H&olq%hSBZwLXX{Bjk~Ys;a%Y~v#TEH9KQu6^bT?RS#jD`$20he|8=&> zoF``E-FN&jz{h@OJ_qOXQZhsp!SsN$y6hJ+#BRatx!pNWZL8VMC+O$fUU2+y94a&I zL6z%)*57{^Z4_O5cuu`jJac&*Ahs8vcj}dx$6O$WVJdXR_r_Nlx{K^9_d#k3u90`n z|B-aw@oax@8?Q}k(-K0=qG~H*Z%S*nMr&_XJN6b^B=%_SQTnA+tx{XXti9D1BX;cl zq`&9S{FCH$@;N8>x$o kx_#Whd qzMcZ%H&?6K!CU&x6}fN01$%|EU-cP_Iy}h73f!F@5!g~eLVoFJG0r{n z7-^NQYhzznd)@Xiy;2UIz=S+rXrH_LVGw1Vs2y@OUi!az*W%5FxcR*or&h;wt`NF3 z7+so9F(ugpLFrBD5| ve#ispEMgZfF4b5Hz-3SPn%>6|7`)%a*Y(1K(qgl$3 zBx2Ug;Cl92HZWE@^>b&6C33^eKVQo+4T1DWX%ZHuJWaWJJo&}*RBSez7?VQgml%I1 ziO%r g`Q}O5jj46RNNj}}AujtcwEM~k3elQ)*-JKN| z4F_JLAt9w>)4|31Z*C5an@8QZ)GV!|EGrg6Yc{R8<~}a36$8T(^_cE=^KNTUh>~6e zUE-Lifmdnj@n3Mx3$?w?%j(HpeE6Vh2 ~+GMXo1fLX@{`0z;%Gx}d!@I2e{CfB4zdJFpWt?`PC$511X#A6| zBR{b3LBP_l2t(M$OKtx#E2GSU!D>4KFRLHcq@D>)@B;b@e#KI^?9etEv_SN=zhHqI zam3_cBzGJppS-i=CNXrUE0bbkjk(*=@GmoL>GRKx=cqqPZ(6O(T4#Bm=T)7*`0B^~ zs1hvNAk*Of78IN{PVr|nG??j=2$QTd %-}XCdGjfMXs77oX-7?iNhQ)L>UQIYZ;RsxN?0+3UCu{N{ zr!gnX)n(;MmVfO%lH1EW;`o00?lXaSinl~`%_e8x-`H)8CVw9P)k*hw$*~c_L^gUy zt%|I=N>=(j awu!yNt8Y6H{;kctpd-NU0VDEgJl;T^h+7$mz*cA3*T zAoX}5)O#o3s`wr |=pL37Sb-9`wf7P9XT3)Tw*;Kthm}?ZDeQt>Ky99BZJF;%iL z_Pg1f0~L^m2S^Skm+L~*S8!w9I5e37mG6fDhZW4d@vi26dQ$qXk9(%iF7g#z%N>iz z)!ayD%Np1LH64JneOgxE$U9lW9_%Sxlq-@N;&<=}0+I0w`^UL 3 z=X5I)8*J5MI#Dc%n7g5ZmIN%CCC@y2aKP;BM>mP(f85=kwl<*9V_lGkInxly?@S(v z()F?>%tU=)xq2dxeCL4?;Py>M?WltRLEGa>u(d%lc*$h#@6bnL5nXrk)x!cmgLL~! z7v@pO$$x&1UVSCUKdiiAbbmBIvmetxm#r1g82_*B&o)J*dCP|D(28xdAiwnx3DO$> z{gKCG6d4-cz@A6-Mh< RV&Mq_hJMy8I6-~U4Gehb7W$ 19fHg;qTD`yMy7k;54cTa=PF>*kIV9GC+)aYsS=Oxns;lEMD%=C`N69%-$Nyc)_t zbsyU9dUg0xiQ4t}60BXuCZ=@gN3?PK!93In7Z|T`trr(UTj>XUwKlih0}K+}ciVRQ zdzFaByB0d _@2+|)@e%)@*TCtCHF_Likq-<(Lq Q zJWs?j !CN-b<5K7vAulm?!>E|z~lObzM{MdWqV>DyzuEFukgBdVv zQ;H;L5NE=C;8BxRC#~rfd+SHsJO;x=5R;RMR3x?paen|O+}jQZm~&W&ATi-99+c^H zq`4`+hfq+n;A_B8nDu4L(sj#r+ik;ry#%3SI`!F;U6C@Va7m_264o0UWd=$-qDp5c zhysR-_C&CTXhpTdRWOoMQL=)RUXGgFj)6cm+j_jlq1>I^4O{$Z3qQ*~_l*K4?C8<+ z#I2gMn{%3 kW^Or0G?^Ac)RMCP|!ON!GNB&Ye zdHzUt^kU4>o%(x)HgCKWi(RhV5sIcxu *MrdwQuE{+m@k&dnDKsQ+ap3h(&SNV3IJZd|9H12wXbbWrQ{P0XfP;ZvL(q!*# zp0~c )x3E;?>_5$1~)^8lDca9uM<2n)yHH(AmF`!XL7%+?(V4t>@xmExSRgOlE(@ zjPjbEu5V?=dV^s>;_S&nTtaX!CLMDuQp`(Y^i&I1TXg}FgEuK4X$yEgEJ0Say~dQ& zRRiIXJ(x0@y2}(%a Njlln1$JFrPF4v0!8SBRQ(7h?TV)hg$6we4Q(fjT1RJC zkY5oU8}t%i>_VJvc9F(1Jg3#%(KTp^38)8 wvng4{NL;r)3C(O z;N?f`gh6H8UZUCWRd5k&VcDR`s9uKLK*Nn=Ya br zbH9YO8 rpc$OcX@>otUC|%iX~oD21A5fM_jq^}q$@{*Am)L5M@Gzmv+>P=P}s zOqn24Io9_L@}tO@o-%kP-G}2ZD2+lHKm}cYAb~%mCPUAku)?5E82|9SEB6Ey(sK_+ zuGFT7`{oxG)G#yFv}Cj(8<>f!E2x>`bYSW|TbC4nrB {GEGR8l=vUu~F28lsBp9?9%(M{5 zpH4;{cTW8CKXrpcuSthnGGntvG=}7j5z_O9^hHrXe2ZEShlLTsp8TMoBjSOd6+$IW zDeUWqCvpW!H{r+(cLKlKq~zVV^wScpEq|wT _`6yP6Npr~S|AZ`gJ< z8PEKpy0?m4t(Fnn4aje2d(eYz=#id =tmr3lBC zFQM6 j!glmzDmws4V zoTF%+)^#gXRFb9X%=5ue=jWcb6V0~T=XIa|_G{;jx>#VX9=5#}Lh_%&Vo9&!7oA^y z(v2);_QMqK+Y$>ENeaGf0m90{Jl$j^iBiK@r%58^C#c4?mARnkNyEJl`T; MWs53^1 zXbdbhS(Tm?Q|MK66kZROg)7b@i %oc#e}V&c?wit40RnJ~UV6=4zbG zmt>}ST7nxFDJFg31<30VmGtzyGnDf1Ntb5WBJ&riqbIAITGrpF@CgOaQWu4w+nSoN zg(1F@207O7&|Ej#m)v;tJT^Ve>5u!7ZhQR#<|~po5%i=(4Vv==?9&vu6RoXbqQwGW z32QfqDfSkxBilolYFN4^QQ3lj^P#yf_|5(}RRR+znQQSk$p4*ktm_%uZrAPp!QDP) zLYp?JxknN!|L~;b@o>wj{&XbMZ^L5o9mWc^5FA^l;mouJlTY_osFD`3O;y$d)l}iw z)?9M~|JEa}0=^(elPkRaEY9^5mydiY5>mDXJtB&E3FXx 5jU+et5kWpyXoBD~Te}XCONI#~kZBXkBwT@^U6G#97CR8&yYnr@fs5dK7+JETb}p z!PbgE4Q;RlrB{}-kekf~cMR#b`q8gZvMhUX>HhC<0Eq!A50SGTeWP{PNK~t=AvuG+ zHQCywmUUW#DI?LY-O?E@4Af22qZ_sU3bf^SzSnb^kOaw7^8MpvRud>!*p#~PueTi< z1|L+g3wHWXyk+}!ylyQIlnR5h_TW;8R3ySE{Yn3?bXmzz9Vvhz{waaMI9!dZGc!Yf zyzNTxthx!E0ug+ggimA%%f_GRf$M;K<|fSGUc9NU#VH*IwmT_1sdcqBcw>br-Pl)9 zv7}?6Vc)9jvVi%5>YHZ?mlki4f*U+bzRXDJesLZNdy4d#+z%rZuAsJyZh= ;?%Q_ zqM&vTc#sgZ6)ZiGYgoCbav`)PaE}oXkVCI>OccBdaO y#s+-XH$* zjC}D3?(<6S0xI|OrnR#*+)!gaCe>V))WhWv)?M9Ee$LV^LD~J`6%uZE5thBC@^DRE zNQR;QZ?bt4rjUZ%keU8cG&ef+%$EhPc!*TqG-+pS8y1)zC-x ^yvbXLQuOPXj$^Jf!?ZtOOPJse< zZo9W$6~aMn>|tLrhj=27-Ty9|-M}=Ie8;a&-{gB!R`fqi%DD5S^j-$@ZkPMX8CFc$ z4+3o0h7ZAffyF-QHSBdlyRyM*Pm7a26-$C%-l5lOla9r*J=L$iA};jr6Ct-+4JClj z!f7v_B4qfwCbz3gQH><5T*4T Kx@YvKsTqb!&_%2W77Aw!Hf ^Oet zl$$Y_N}fyEkN==I4Z^_0eOa06m4t@}YsNQk2(^#OTXGbG&nLbmT*M%c3MSoq;;+(7 zCK8C|rYN*JpZ@AO0Y1rkmhyM9M8>gys? Du#{}BvssoSe%LVuF&tf zCNff{N^NxC57jw;jiD#r;$_eU)H0R55896N0OM TTNT`_tsn&l|uW0Hva@ z(vIwFw|uA3BWksCQJ%Lk_E$MI^64P-Xb)Re{}i20tCRJS2!Y=o%FpkEva@24^3Lyf z>@oOZ#A$*gqxmI(i_GCVoP-(#4M_5-$E4W13S$U}Q4p7ZT(LC>=>j$+zL@Y0`P$ z_wqKT@WW@QF!XX;Rt1E5V@7ZL&Xg;>X^VvZ*GQ1b<~Y~1FO9iQQ^cxMqCm3Ggxuwc zkLU@FZcs%+b+A_tFCp1enIM_?(s&5&iM?83O_48^CnSKv|tFSXD QN5Tw*PalvPUg%3r!5vjA*2YcOJ0GM~Xe>?O z1G7K+c7{A&(+%{gl&kD}y`E@I+2YV3&60QK^j?x6ebcv$+z%X87zu=CQG@=9tFG~T z{Fmn|E~)2u)aPD&6|D-pl{U-69{h8jmCQj3LnT6Yz);!c$IMOk(tJtlj=khrp%kulO; zbc1%#mx}#2-Hwq3eIj+QQpe4kMFE@Jmk);jv> jR?BCf_rayP3;Oatf3Q zNIt0@waFM%{h7YlGB=U|>_Pk4PMDg%vugAP-M5&2H4UK3{b1xl-yl5)e*16sl}JoV z9oCT{8~(lU``cD%=-a!9Z(})YBq&K{S8n1GM>`a7@FX3SO;Cbykt3iX$c~}+(o$d& zV=LKoL(`N%URR&87WE4D( Q4y8C!H1=Sj(dv%2y*bof%r24~ZK|H~<#;NA{>VJ`fb{H*e-ku< zwkru!f#H)y5JvWZA4LuE=#;@0PGh+@R|8=WCcgc#i78eoIzj}E`%L$~$e|R9fh#|P zlSX#A-RHOasx3muk;V}gH*5l0xE}RKl&g)sk%7I_pVRI>wUnA#-}$y^RlEofrNvsD zg-Qb$fuM_sJotsWf X^x+Q~fI)GkI~dnqR9-}=^$}II2PK_lQZ(h6$U~;jd4uXl z^}1-t5 CS~x=dyTUBeqbjI~;3>Lxj&?DnL;)TUCiRW4yd7#w%b z5LVQiHe&Q4HHGS|J?%L3@zU8@MHpn%-}lb;ZC$>wM@iUD{7olTFPxa7!_Ul)B`Vk) z&u&x;2XpQrv>MHW(v0b_I}QuH`n4LWAn8KMm`%^~GEPX6Se;6>yMJV)%%*5HJ7%4! zD5+oZ2id;Yl1$J9T@uvm1tvmqX _baq}_uKj3RdgPV;Bu5_Mc455l@1Pe|7kC9^;Y zIugZGT8=^RWJr(p&NFsOd2P`5%Fo+{h)(e>tZ8U-N)QH++f 2B16- zqRxB-*sT%f>v##EWB~K>V@3tc&r%?)xlbs5NQKH*AdUs0OEiUT=n*q133VU8GlLgV zN+vMAMfHRdiatv^))$(=;uur`S~qcWaNoaPmugog@~Y*h+fcwDSj7d*`i{jAnGfv6 zyW;v54BuKb`r<)E0G4lW`*z}&W(eNwkE{lQLy1jkzc7JpF%2?(RtwmAD-?)Nv6=M^ zVWz_(@(NGeQPBCMvR?(`Qeskyhjd?4xgi SB z89;}Gd$h?4dv@z a!?DlCYU+r2DVa_ljL zeZoe_rkH=r9QX})lbj%DBz*lA7^i<)df7>uS`1R<7SkW~xThKJs0I$V_i0U7M6oG( z@cPrE-h@cOo4$9PQEJbUEL*GH{B|M__p}rL2kg!WNC#j^=f5)4gZ}MK^{@Jrn_{~E zvtpZ7zHmD4XjFKjf^XY^DJ*@&ASdfi{s(x3x8xlzPCMC@zALSFJeJaH385^?KA}qx zUbF~^G4};a#t6yal7|Ct-em+`;z`}jklVLvRV*mLu ~oCjcXj8K*;bUbrGi+RC%ItS&EG)vr+vj-Is$X#bUjb%2Z=HOokgDUt7k8&Z90 z@lSGMys&f)tG5b?PFkz16n?!wEc*s#bpVh5%JYc;t#t @DFpS-#vsU;khmI z5u`A2oWGsr>Jd61 lgcGqN)xB$u!>d;atPJ>c|d9D;WO*FOZ_1M$0$ z)$JgZ{l&hCdf$Xm5PW9X&SjE)DK1((Ac>|hu&<~3?2kd^j@qVa=`#AiLBe^wV3iKA zOuLWtUK-9eu!;Duu+ne)8V~H%hAN^%9`8C?;4&HI&ZTWnY4_A`LEK`KurJF(@nNR> zo2nb0JkPDgV1?U1p}>R`C 25)I~@0mHPSrhZIdc%pe-1-K^eJi#B_ul4Z)ZTk}=Qo?)-=~Oi8EiBN z#CQ&T+OGK+)9pCh6w8Y$JM7{W>W3oHv49a4C;R4x3@QO(9cyzh$^<1zvt<%4-6rcm zsac@`xhawKQspy%gi8|CDQLAUMWrn0d^9sEc>tX$Hp6g4w4}QD?MuR?G6coSo)RN^ z*k6|y`kpP>T385&gT2-iyHB=yXCw$l{T|*g6Uq5D{eyb9K=WZ^C m1IvDGuArcSSqUnyxE|ix+M*Q(y#-FrbnL@kCNpJfFBGg zK=yNqNAk9gjot;HaUmd=+hITEyRrO{EoCMON&ix*1;<#n=P!0)#}JGgspMWZ^w1%7 z)qsK_q4Y`zrLi
OH^OI 2?FmmlcpFQ(XF7E_1&`8bcUkJMjy6Y z<8o}ZK*<0LBM#$k -& n-|l_Xk5>FkJ89`7~LNqZNt}-^R@#4=l2$ zBQ#Bf_*U3~1N4R~j@9(QYht*}9ZYS|pVWh}KdP&S3Qu~nrE0&=h6Y7v v|=1G56ex2NB16kyr_ZTt*q7+Vud0eRv{cbW^Pf9c)?(_4D-qm&eh6hL3PAk=i z5nZlOHpyXn>9bm*6%k|UY`6#Im1R3mWzh}1U(J? ;|o5Yi#n zNcM5PS#A=oeYc5as|-zhbpGg6ePYHNe~$V(MCMI?B(+$I_Z}Sc{h5g0HbG8-)GqHW zt9<}f@F0rM&h{3!R+uaK{2fySa>O7my?RIDX(nF_1A4(-lgzTtSj3heJ12nv(SLN1 z^#=3v@$}b5OCooL(WzY*^32j `jAw@hrfJ8{X9#j%3TNxw<>ye9pHIimc>w3X{eizn4IDGJvBRu~V~g?gD~>A* zYKPLge1>pHL{gwl>+XB>+Tt_D97Ij9`==V@g(tusZhIE-^O?R6wSTlyS6H@Exu9dt zX8z;J3zu4&DM?Lf3lE*lt>p0-VyTKlD^W);C7EhesqZe{G7vV>0UlIs{r&Wiz2xig z$Fj;yc7zzP0P;po>+uKsa m$xyAf;_G|Ty_^XW1g2gRuGI4LuQ(9mC$g>q*1 zD&(x)qT8#I>=}2T_vTf+ihD|wS1aI8=&$91Nu&dhvTyEMJxBD;Dzlg_+PrEr87E4@ zU-*fQh-fah&p_kYemG8*h*?wUB23a_!y4SA8KW$cb<`K7ZL#>`2dc?Y@{6PeO*t9- z&N&XGr?%1*a|z*r5i?`qdRyhvBxvO_zDr(qvcm+tlIOJc(3VF(*s(A;8wCNDpqD @=1`wt{ro;~9X@a~+M94}^X5gt?ix_q5hNFphW zjt-neU 0|*?PO27YYDlXw{N@%9pr_cr5apq zDPw6@^f`J# ;<>a|FZ?9{M64liq=vu*BI*I;V`4L(^Q97HNAT41RA)J@ub^8Q z*8tzkq^p^ir#wVOuVIpsRu%SGf+Jb!Aff$}pnrJoAS`EW?}vb;NH?+slue8viy7l( z$6tE`B+JF2RV{b2QFapE>-}u~j_ZS(TsBw5w|rL>B_Lj8FAfrsqM%V+aYR)g>_#re z37${+<_XOq03 _U7_21e8yUN>|s;?9mbH_6K>Ha)_O zI9?5V7j}mlu9x#`x?iQ4j?%dD2h@x$9i0@eVlyim_^6~zfx1BulD&(koWGSOGU zf~xmJKCPZd5g0&3KxVoSK!RaMVZmqLtbiWknxk_+qZ(B4ZBFD%VN^Es4&jGB_Eu1k z2j|N#rtT(vfduW`5e85| g+p92{&?QW$Jv--@02A8WPrR6C#*pWgUZG$iA=dlBsGT_*i6msnsrH z;Qlgjw`7z;GD&8Hb$Wf9`4UXW6!)EvwfC)!j`7t-3t^S+(i-!5rc226yf&7`w3i d$ju`|ZJDWzVXrEIg`J(g1(+lt4|Jvr;##l)};jXtCAJ|t_ zNA?X!Eo@y}>=n-+KW9sSj&Ghi-W376)@nNTs(>1*gM@5N!wh$+eh{)rwfE6!-znR7 zupH4>m;T>8C-pW#Z`y(z%`cI49beV_Mfyk9<@rlS>6$E+lB#jJ@&ZwY6bm?NO*=}0 z>Hmvk`kw}NybE-9SYqb&H9Ey@(H&+r`Aw_%_T=R~`k2@eySQ3}w10~L%*U6**vPMc zq9Gw-GZ8h*e9Q|6Jnx*9CgjYhu{wySH=ZRoH7d4TZNzSm8ka4#SH`a{#p5Fp>Kh*_ zVW18G#oa1W>i|Y%smx=ZIW=SSpF5uVK=mn_V#fF+<;mBRO#pmc2aYCGp=E~tT4Ce^ zMa`b@l|9#xYfMT6m)vFFcuMX`F^UEr*4o#mwcD=`+Y8sT&UIK3YiRsq^_R5sb2^a7 zx ?j~|qCc45J-EDFD!qv1Tu``>r-#pJm9C`Ie zAqEKKNetZIgrz1`RXcw_Zoj_Je%hBvE^H^Mq&n6&P BRk<`!~eg5ZFB#_>_y)s#nNSyfwjk$-+MLVEqL; z&PmvvgKGfingXbJwU+DI!)8G)AGG-B2iQ^Z)8+}PL=hAkW>dvyRN8#r3~lEi#U-6G zT)GWGisTC2URB*+d1&{dc!+*nI*yYIahox8rKb3tc2hc*c>}`?&1`G0%V(ZxUm6_e z!Isf#wn%>-+%CG8#vTCP$bJR+wQYZB4qoe;++q(F9l^$;trg}ezwh}F-d~6RR8w+m z&b;XO^o1=SZ|>DZDL-Rke_t1WsabRX%mE9xEYi{l*08bhS_b#At}h>>#KQoZ zTu7}qJG~c2wzLQB-*^^RlU$+u55`6 MC>k3(Bs&8m-mOopk@`h7Oy? z7I~z`6MbN#Pswk|&B6ZYrkGIA{H38=l7W!Zs=G-Ho*GS#q^_2t>CkknObbz%ab|j_ zHCxnSJ20#VOdshdwk<(EKu%Z$yFq?=-qY^b`-p@JOmt42>D^?W+n)+rSIa?27_{zL z43;xbpPGVTqhF?ai!cz`^jQmg1yx_reF~LKaT`R4i)G;!<90Hn5*_^00kB=?;3^k9 zX&5wlngW6~WetuteJ^E-=q1DxfwU7lW)9#jVNqe`W`IBOXK_4Vgqb5&B82@7Pc8Vv z-)=n1NJ*rVgyW7hL`bJEJ?#0_5QiRn>QTwGc~ueujPP`GtpgFG&k3cXZKl8@v)OoR zNrPMT3u$ttmYv6zbWI >tgCMxq?n0hEx>{2w$gy)1_Xgsdvr5$|Z*1qElR zQa;XHj&BYJZitl9wQQ*jd?KrnQN?_!Z?2q&>O_0Mg+!yAc)K2rsa2REZh?-!`-rv7 zP@YzmJfWTs6~ZLCXr0QNc8Y` A*kJ zua+=;OTsePd^i)d3PhoWPauugnb-7Z!HoFlRKf%*v2{UQ5zQW2QajNp)E)knliBg7 z$i 11fn^oG{cf zG07&3pRX|qBW6L17Mr0<>&Y(Ro|0S)`JQ87e_=ifcEj|w`(8EKAI;~>3F_D62;blA zPZrV|ZkDA1(~G|Mp53i(lop4fU+F`$09x%F;Z%+m-xFSuubLkCPh&{4j@`5YLu_0t zKvku+EWZQ%Odo?bb|N+bR|-sD5yf(DAX?Av6^NAr*AL}sDmz_v1 uPT{o%S3$F5u+dd*Z5KXC|%l4*Cd O55O09mIJbYFgFFJ-zDotGsD<^` zZFMva38?VNNsuFwitV@Hb`G075$v5@mbnd*GSPMw`!w0s Gy yy^OIyb_Xqnv9ec1fE;peoEGA6wu3$?#o>q z>HA;Q+?caQ@O4AT^~uj3nSFnNnp6TFjRH*cAsIbK!AtA1B9?`kY|0mI c;KyVA*z z?uypMC5io6`~|aWJGO!)Q(>>ATQ4|1oqC xl}V{H+<^nGWk4ZD+BA<;H!y;^s+xZHZAckZ$*FA)=g zM`Dj}%?XQG=YGAIbmSNGIkD6Ca~8Z)?($hVKkn1reyOIXuly$X%y0W*-w@%Vkg^q4 z )JkJX$$SS!6_cU z+F#)VmK;I>!cp&Onhcvf06#o+Lv@DZpGp4;dWc)6TWm7)rIfLxQA|HZ?73#~O8J!p z;Pga2o<@&Iv}j^!(j9;EszR%V{J&c=Z{|K|Gte~UYb-SIS|oWJXI6?UL=7W?<9Ab8 zk>`d56y9H)HnD=DS2Kh63CSmz@iX^Cn((J&wllSe0S35FMQ!~c+TcLZX* `EsyGgY~b92LU7H>^=Ewy5`qW#1S zh({@2FaFBcNC<}0-gZl8sDony6hr+YaM~wm8e{z&^NKE&$;(UJjfE}dt+fYyR4AZ4 zfMhCYE1PQGy
qp!M?GOkvtq;`j=JZ%Z*gBVz2IgclXDYd@OdGrb0gOuzo<%( zde&sHW`=pdoSxlaO~+Ri;g?SwvMnTt2>(#UFnh2pGjk>L$7=EMJ?F)ScC 7hzC`^r>%fDCROkfSqGMa1itz5?`=m-Hvpu~>R7XibfT;%1#4mX+$}Qa zSc+x9*Dmun^~mDqu$;~ zXEx3PVY^8I+m8V$FM2{#3y82WYD+E6lqlOWn<}}w$rtMLjzD#yYJSRB58GKOE51|C z7760bm?t7cw!ZeLr>fFo%G<8W2kdWTnwr*_4t`3I< r@rK(% zhsgjN*hL()IQpxs@Fg2});A+cS|x`~IbVETa!M)Wl_aFEf#Vk0sb+u6;8$g}#sbId zJW!8KEGx)bqWbijo6;lU)5<6|u*p?R4#O_@qj`Ui3%yvA|B(&%Qkf}LBS(d;Zl{dA z2Z-NO{B0rgEjdH|4ofmcBWj`qXVYRS47g1Q&JyfZ|Lv%R!2$$ER!ssAQU6jPGY&M) z#Gjo#6B{3Pm*-Js_xj_z#~Opr9XT>G+Nx63-6T+$|D0rL>8bCQ5~zur-gYH*L5;^j z AA!Hc5|fL$v8e*XVX5S)w$C?JD*iQ1V}Z(KsgXa7%Y`qpl|{ylrioAW z{!4&Lc*Rte-*g9HlJ>KAl}S`^R5JE|ZLqu|Y< 2nZ~?gKwJa&=~Sk=kD%K6c^ycqb6p_~48`eJA!487(mh&>7qa cC*I9fOdD8^!URiS=?=VE=*bN70XubnsQRms2e# zDb-YPkWzZ;jg%#VHAZ$u(Q_j|#7;#cJRG}VR=1Lp#czAnzMg2eVC$OIUoubEn;}Et zvTnr83D-tc#{R=AL?MSn8FDFHbKD;Ud3K2|oq@lfut+G{!yIUfj~z}IkK}pQ>By zed7XDw&-qFXPgakt5ASHO X;jB zLy!i6GtbD7qBoJ1M-rvk*8FlzR5<=P8lv1y-zzS}?>Cm7YrfQ^K=n0VVMBXF`(3M6 zy >pn!e*Gprb z`t+2k 9@tE?mRJ{ZV?f0mP}Jb><0YQOqS8ek>|lmY%dc4WhO@K3FrV zNnT}p-bEO~cN3Tpn2dN%`Cfj=S=oQM<8rIHuZJ<|mTmmU>Oc77$sa5taC{APe}M`p zv7Tq|K%bf+?P9CDdfUNx0@}LV17urSU>(7SsnA4_2{Zt+?f@L1;3+%PkXmR@Ji_rH zuhi_x$mT6g>{u-ow~~SH%S0zFiLvjA`@Z^?y`(<_JMr@$Ktg{XV1I2^K?CIiZpz3S z*;BK-|DocBd;Vx-N1O}j_4a$2NtQ(mzdwH%vM`L*w^f^NrfS(QzYiQ-K8o}_v@2iI zl%V68kygF<0LbusDs>w_u@Jot=9p*Z^h;&3F-skZnq zHJtrOwfK*^z%O@lG_g%SlXGH{ i$CaZ|(4mZ)#qv|nyVT|Dw7xJX%hEaXP2@?k8^a`}wtf-udo=!wHyb+K q*7HvXs6^g9)|yJ|$#di_V^h+@EV>kFk*N#eR^DBGLZL+4YrIzy)o *w+=?!5{cwp%K@pVd%^$h{p4r_0wlRyCc`oFQLu>!0khW4(!(k29 zDdZ-{WJlR)t(lNcXAKa3qy0OqHq1bF8y!0#H-&?KJ=*09GN>{ Z2Ss zxlAHPhB(g2`T6gXE!iwr@f;7msq{x+5*DS+A}WatwZ^FdOu<{C6=`;pxBJ+yx-DH{ zrgWNDHY7BBgbu@O5@V4X;#$pJTvXv@@kKhS#U^H>L_O_1605PL|IZ_CU;~|fkLJ7S zDV_UocRS(_wKXD4L0_X^>#KA6?HM+D>I8JZ7GlzA5t23F(N!_S@Oez{&`!Kx;3N5; zpOIs|jA0l@rT4mi@f<+4WI|H6#|!fh7d&C%$LOj1QI^xMPHLB9(_^Pu`pd);1U=bh z)pO-ZTxz4{ gzI-4c@{0YE)f(Dw^OK3H_gCD0LYcPC<=clt zr|!HHK5AM}JZ`=J3y2GM^l&sz>DrP98C&_3wa4HIg=JeG>3PH>9 EkcM&+&b#j^M^2(pI*jKdGRhI +R_85!{Z~Q`2v> 2eHRMAv;oNM>8c* z($~H2b<@+H_O!)Oa3W??`w||-QDkY#q{xgODE_KZ$)`@s6UHHL<)ugZ;V6$Ia9pEt zDig-@%7XmIBG5Pe)OS>bfX3Nf{p!_kkXIh}8wc{^Dx16X+dB+C_2-9Gex7~TyWaKs zcA+sljt)XQ>P4lWPS`kzJqAh%DL 1B_P-3%_tp9S0CedbZtyI z2YT#9r`~7KcMjA$4L&*l^ O9UaW{#UlKNH<1fb)I9^o@@C}H*6fl9zzD@7y(1c zFgXgdqfN`_KmYm5{siOlD?>A74n s!|&8pFmxY_PBJu6Mm_dg)7FI{nsf{nqja zTPV1Xp4gXQ6pV=BP Y~s;hl#57Dda14Q?1V4q~5!5!r})^{Zb!{o1en+VrYd zy=pN!`w=$cfJ0z>4AK(-hQ`Q*;*3++&B#zQct+VVFzhg%9}kS0b5b{h&OueTzJYuk zT#i8*eUne5pud(7UU2dTq k- (NreGQvF(!w7ZjGpel(Za6j$VjqLyF)qenF9AdVj6xXBIoOwY#VcMhec%Hh zSkgoje$wn!ZAJ@b+R>05T{Gewfpkt}bR^q>y7f=~HVmDspWZp|7nPiXK8iFr6Z 2H4&x91@DG zg!=f5-y<+uOAf}?HyO>uqcLa1j?$`k4BI;%4;+_1h!7aP`s^q8Y8Ho(L(`V}Eg9@B zAkM+2qrTNP%1LpKEs@lnL(t!x-FEu8!LhM%5c?R6ixI3E1#-@K7>!>ratt1c+Q76o zVa9fkgRnOtqUfj1TS0x=KrlLr<00c$-X4N?7Hp @iphwP#`p!l^(8 zuP%LW%#PAgdBS+U!O3IeAoe*jSjWyY3Wk-#;7m9QFIV}4!H$+7UfY(Rb6}9jjEzJl z904%IF{*HXJI1H&$~os8JeC!`c>P(#z$y5twWSXyBHsw*wI$urb^QwC*pchbH@M;0 zIEa0Yt(*e5&d}tMZtZU7we;{8sek|Xe}8(}%U-rP3C@Gj*$`|G!0e4IL2?X513i&| z40oK(LH_neY?N{gHc&aE$35 6{U@BGg1Ec+CGPVSmfatz)p@U+0pZV!R6aSVvlkj5A}0oT2LEgy1S zG@>nk?}M)Sjl{Qq`?oJYp5nCJUyTSh*c;e5h|>U!7=>n4PJ`@i7J9?cK85AS8{Y7S z>1}U&+p?J`lJMPx9Dscd`xcfg3|qa7+%=~nt-66TQNK^g`{k*9hVS@}?^r$xYdOKW zG}9OHY_NB*aS*2gat=8L7#&9NRK$m9yvoc`_ 8ue7t`Y(|M=yd27PF=k#iWA6C3OeY+Uwf1cumh!+B1kGzM*k z_bW&raP?(pk%QUay9x|k9{Cw`^@tKg51fU2;9OL};rObP$ik1Pe6Yo9(wqU3Z|utk zdkY%}aT 7`dZs`R!piSC_h7d+)+MKd5@@Q=htgxP@a;HwPu^aLzd>v%%iO;vhEO`(UFG zo}8Ppo3&SEFFj}B1t!Mr-3S|$q6o9Tdz^v1IU13L<%fJ8W%_`PeF`6leZmu-u>3`A z`% zNInMdk)^1>y9%NJ1~1*lqc<<1WdUa*&D)vwDZDoADTsXs-)zv1x}hkAqfnnmtF^ho z-ox@91OW*NH#nFeU&x?W;eNzfG|M|j9Ewlb{p3&n BeSPcj%e$KW;X3of`| zdhBB#d;K53&G6;Ze#g!^jxnm(U~ge@5Ke@Jn=tS6234Q~Ed{z}yq-q*Qq^;w^PJ@+ zD$5D!@`*NltKp#!edzMBSbGn?t{sl$m^RqkAm8g9gqcF9xWVZS>OdD5b+bAr;aZgN z+Sk5z`O|;>u0j;SIe0tLU#{|rc@c+tIFF5U*uU_k>3RnNmKnq42B#TD*%wXbC`=xX zz9Zqc8h+R%>a?uzhj9JbeES;Eeul@M%5R*+{sWnD^q=J*Hc`as4XS`LXu81AJ?`{3 zD5RTJ c&CrJM_ZaXE_KUWR7Bk(+{I6Flx?$E->=Z@NGQi zNKoa<1KsO TUs_J zHiA9vzyUCD$D#+0p+}V&{FpCvzIt!Wv%%g5*%momi)s4*1JWb)AdT|uwEzGB07*qo IM6N<$f)}VxdH?_b literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= z!sii`1giyH7EKL_+Wi0ab<)&E_0KD!3Rp2^HNB*K2@PHCs4PWSA32*-^7d{9nH2_E zmC{C*N*)(vEF1_aMamw2A{ZH5aIDqiabnFdJ|y0%aS|64E$`s2ccV~3lR!u<){eS` z#^Mx6o(iP1Ix% 4dv`t@!&Za-K@mTm#vadc{0aWDV*_%EiGK7qMC_(`exc>-$Gb9~W!w_^{*pYRm~G zBN{nA ;cm^w$VWg1O^^<6vY`1XCD|s_zv*g*5&V#wv&s#h$xlUilPe4U@I&UXZbL z0)%9Uj&@yd03n;!7do+bfixH^FeZ-Ema}s;DQX2gY+7g0s(9;`8GyvPY1*vxiF&|w z>!vA~GA<~JUqH}d;DfBSi^IT*#lrzXl$fNpq0_T1tA+`A$1?(gLb?e#0>UELvljtQ zK+*74m0jn&)5yk8mLBv;=@}c{t0ztT< v;Avck$S6D`Z)^c0(jiwKhQsn|LDRY&w(Fmi91I7H6S;b0XM{e zXp0~(T@k_r-!jkLwd1_Vre^v$G4|kh4}=Gi?$AaJ)3I+^m|Zyj#*?Kp@w(lQdJZf4 z#|IJW5z+S^e9@(6hW6N~{pj8|NO*>1)E=%?nNUAkmv~OY&ZV ;m-%?pQ_11)hAr0oAwILrlsGawpxx4D43J&K=n+p3WLnlDsQ$b(9+4 z?mO^hmV^F8MV{4 Lx>(Q=aHhQ1){0d*(e&s%G=i5rq3;t{JC zmgbn5Nkl)t@fPH$v;af26lyhH!k+#}_&aBK4baYPbZy$5aFx4}ka &qxl z$=Rh$W;U)>-=S-0=?7FH9dUAd2(q#4TCAHky!$^~;Dz^j|8_wuKc*YzfdA ht@Q&ror?91Dm!N03=4=O!a)I*0q~p0g$Fm$pmr$ zb;wD;STDIi$@M%y1>p&_>%?UP($15gou_ue1u0!4(%81;qcIW8NyxFEvXpiJ|H4wz z*mFT(qVx1FKufG11hByuX%lPk4t#WZ{>8ka2efjY`~;AL6vWyQKpJun2nRiZYDij$ zP>4jQXPaP$UC$yIVgGa)jDV;F0l^n(V=HMRB5)20V7&r$ jmk{UUIe zVjKroK}JAbD>B`2cwNQ&GDLx8{pg`7hbA~grk|W6LgiZ`8y`{Iq0i>t!3p2}MS6S+ zO_ruKyAElt)rdS>CtF7j{&6rP-#c=7evGMt7B6`7HG|-(WL`bDUAjyn+k$mx$C H;q2Dz4x;cPP$hW=`pFfLO)!jaCL@V2+F)So3}vg|%O*^T1j>C2lx zsURO-zIJC$^$g2byVbRIo^w>UxK}74^TqUiRR#7s_X$e)$6iYG1(PcW7un-va-S&u zHk9-6Zn&>T==A)lM^D~bk{&rFzCi35>UR!ZjQkdSiNX*-;l4z9j*7|q`TBl~Au`5& z+c)*8?#-tgUR$Zd%Q3bs96w6k7q@#tUn`5rj+r@_sAVVLqco|6O{ILX&U-&-cbVa3 zY?ngHR@%l{;`ri%H*0EhBWrGjv!LE4db?HEWb5mu*t@{kv|XwK8?npOshmzf=vZA@ zVSN9sL~!sn?r(AK)Q7Jk2(|M67Uy3I{eRy z_l&Y@A>;vjkWN5I2xvFFTLX0i+`{qz7C_@bo`ZUzDugfq4+>a3?1v%)O+YTd6@Ul7 zAfLfm=nhZ`)P~&v90$&UcF+yXm9sq!qCx3^9gzIcO|Y(js^Fj)Rvq>nQAHI92ap=P z10A4@prk+ AGWCb`2)dQYFuR$|H6iDE8p}9a?#nV2}LBCoCf(Xi2@szia7#gY>b|l!-U`c}@ zLdhvQjc!BdLJvYvzzzngnw51yRYCqh4}$oRCy-z|v3Hc*d|?^Wj=l~18*E~*cR_kU z{XsxM1i{V*4GujHQ3DBpl2w4FgFR48Nma@HPgnyKoIEY-MqmMeY=I<%oG~l!f<+FN z1ZY^;10j4M4 #HYXP zw5eJpA_y(>uLQ~OucgxDLuf}fVs272FaMxhn4xnDGIyLXnw>Xsd^J8XhcWIwIoQ9} z%FoSJTAGW(SRGwJwb=@pY7r$uQRK3Zd~XbxU)ts!4XsJrCycrWSI?e!IqwqIR8+Jh zlRjZ`UO1I!BtJR_2~7AbkbSm%XQqxEPkz6BTGWx8e}nQ=w7bZ|eVP4?*Tb!$(R)iC z9)&%bS*u(lXqzitAN)Oo=&Ytn>%Hzjc<5liuPi>zC_nw;Z0AE3Y$Jao_Q90R-gl~5 z_xAb2J%eArrC1CN4G$}-zVvCqF1;H;abAu6G*+PDHSYFx@Tdbfox*uEd3}BUyYY-l zTfEsOqsi#f9^FoLO;ChK<554qkri&Av~SIM*{fEYRE?vH7pTAOmu2pz3X?Wn*!ROX ztd54huAk&mFBemMooL33RV-*1f0Q3_(7hl$<#*|WF9P!;r;4_+X~k~uKEqdzZ$5Al zV63X N @)j$FN#cCD;ek1R#l zv%pGrhB~KWgoCj%GT?%{@@o(AJGt*PG#l3i>lhmb_twKH^EYvacVY-6bsCl5*^~L0 zonm@lk2UvvTKr2RS%}T>^~EYqdL1q4nD%0n&Xqr^cK^`J5W;lRRB^R-O 8b&HENO||mo0xaD+S=I8RTlIfVgqN@SXDr2&-)we--K7w= zJVU8?Z+7k9dy;s;^gDkQa`0nz6N{T?(A&Iz)2!DEecLyRa&FI!id#5Z7B*O2=PsR0 zEvc|8{NS^)!d)MDX(97Xw}m&kEO@5jqRaDZ!+%`wYOI<23q|&js`&o4xvjP7D_xv@ z5hEwpsp{HezI9!~6O{~)lLR@oF7?J7i>1|5a~UuoN=q&6N}EJPV_GD`&M*v8Y`^2j zKII*d_@Fi$+i*YEW+Hbz n{iQk~yP z>7N{S4)r*!NwQ`(qcN#8SRQsNK6>{)X12nbF`*7#ecO7I)Q$uZsV+xS4E7aUn+U(K baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/public/index.html b/public/index.html index aa069f27c..d1a71068c 100644 --- a/public/index.html +++ b/public/index.html @@ -24,7 +24,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - React App +My-Todos diff --git a/src/components/EachTodo.js b/src/components/EachTodo.js index 30cd2827a..8b86fdc8a 100644 --- a/src/components/EachTodo.js +++ b/src/components/EachTodo.js @@ -1,8 +1,9 @@ -import { useEffect, useState } from "react"; +import React, { useEffect, useState } from "react"; import styled from "styled-components"; import { setTodo } from "../hooks/setTodo"; -export default function EachTodo({ index, todo, todoLists, setTodoLists }) { +function EachTodo({ index, todo, todoLists, setTodoLists }) { + console.log(index); const [checkState, setCheckState] = useState(todo.checked); const checkboxChanged = (e) => { const updatedTodoLists = [...todoLists]; @@ -66,3 +67,5 @@ const DeleteBtn = styled.div` font-size: 4rem; color: gray; `; + +export default React.memo(EachTodo); From fbc80d11ba154c79952215c8a9e9add36facf99a Mon Sep 17 00:00:00 2001 From: brian <90752841+wokbjso@users.noreply.github.com> Date: Fri, 22 Sep 2023 18:24:20 +0900 Subject: [PATCH 12/12] =?UTF-8?q?Feat:=EB=8B=A4=EB=A5=B8=20=EB=9D=BC?= =?UTF-8?q?=EC=9A=B0=ED=8A=B8=EB=A1=9C=20=EC=9D=B4=EB=8F=99=20=EC=8B=9C=20?= =?UTF-8?q?=ED=99=88=EC=9C=BC=EB=A1=9C=20navigate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 3 ++- src/components/EachTodo.js | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/App.js b/src/App.js index 007df0e9c..9dc6348d4 100644 --- a/src/App.js +++ b/src/App.js @@ -1,10 +1,11 @@ -import { Route, Routes } from "react-router-dom"; +import { Route, Routes, Navigate } from "react-router-dom"; import Todo from "./pages/Todo"; function App() { return (); } diff --git a/src/components/EachTodo.js b/src/components/EachTodo.js index 8b86fdc8a..88a987561 100644 --- a/src/components/EachTodo.js +++ b/src/components/EachTodo.js @@ -3,7 +3,6 @@ import styled from "styled-components"; import { setTodo } from "../hooks/setTodo"; function EachTodo({ index, todo, todoLists, setTodoLists }) { - console.log(index); const [checkState, setCheckState] = useState(todo.checked); const checkboxChanged = (e) => { const updatedTodoLists = [...todoLists]; } /> + } />