diff --git a/README.md b/README.md index c8d4c2b..6e2ec24 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,8 @@ The theme used in this application is [MUI](https://mui.com/). ### Images -The application icon was provided by [RemixIcon](https://remixicon.com/). +The application icon (and derivatives) are provided by [RemixIcon](https://remixicon.com/). +All other images were provided by [MUI](https://mui.com/material-ui/material-icons/). ### Translations diff --git a/package.json b/package.json index 13e0f4a..ea2061b 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,23 @@ { "name": "advanced-passgen", - "version": "2.4.3", + "version": "2.5.0", "private": true, "type": "module", "dependencies": { "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@fontsource/roboto": "^5.0.8", - "@mui/icons-material": "^5.14.19", - "@mui/material": "^5.14.20", - "@mui/system": "^5.14.20", - "@mui/x-data-grid": "^6.18.4", + "@mui/icons-material": "^5.15.0", + "@mui/material": "^5.15.0", + "@mui/system": "^5.15.0", + "@mui/x-data-grid": "^6.18.5", "@shopify/react-web-worker": "^5.0.13", - "@tauri-apps/api": "1.5.1", + "@tauri-apps/api": "^1.5.2", "crypto-js": "^4.2.0", + "graphemer": "^1.4.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-router-dom": "^6.20.1" + "react-router-dom": "^6.21.0" }, "scripts": { "start": "vite", @@ -31,31 +32,19 @@ "react-app/jest" ] }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, "packageManager": "yarn@4.0.2", "devDependencies": { - "@tauri-apps/cli": "^1.5.7", + "@tauri-apps/cli": "^1.5.8", "@vitejs/plugin-react": "^4.2.1", "cross-env": "^7.0.3", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-react-app": "^7.0.1", - "eslint-plugin-import": "^2.29.0", + "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "vite": "^5.0.7", + "vite": "^5.0.10", "vite-plugin-eslint": "^1.8.1", "vite-plugin-svgr": "^4.2.0" } diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 97c71ad..381be09 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -19,7 +19,7 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "advanced-passgen" -version = "2.4.3" +version = "2.5.0" dependencies = [ "open", "rand 0.8.5", @@ -424,9 +424,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" dependencies = [ "cfg-if", "crossbeam-utils", @@ -434,9 +434,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -445,22 +445,21 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] @@ -499,17 +498,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] name = "ctor" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583" +checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -533,7 +532,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -544,7 +543,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -799,7 +798,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -1458,9 +1457,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libredox" @@ -1959,7 +1958,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2407,7 +2406,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2429,7 +2428,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2467,7 +2466,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -2637,9 +2636,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ "proc-macro2", "quote", @@ -2979,22 +2978,22 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3150,7 +3149,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", ] [[package]] @@ -3348,7 +3347,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-shared", ] @@ -3382,7 +3381,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3865,9 +3864,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.26" +version = "0.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67b5f0a4e7a27a64c651977932b9dc5667ca7fc31ac44b03ed37a0cf42fdfff" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" dependencies = [ "memchr", ] @@ -3943,9 +3942,11 @@ dependencies = [ [[package]] name = "xattr" -version = "1.1.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc6ab6ec1907d1a901cdbcd2bd4cb9e7d64ce5c9739cbb97d3c391acd8c7fae" +checksum = "a7dae5072fe1f8db8f8d29059189ac175196e410e40ba42d5d4684ae2f750995" dependencies = [ "libc", + "linux-raw-sys", + "rustix", ] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index cbd53b3..3e3af34 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "advanced-passgen" -version = "2.4.3" +version = "2.5.0" description = "Advanced PassGen can be used to quickly generate thousands of passwords" authors = ["CodeDead "] license = "GPL-3.0-only" diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 4adb51e..a6fb338 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -64,7 +64,8 @@ async fn generate_passwords( let mut total_character_set = String::from(character_set); total_character_set.push_str(include_symbols); - let char_count = total_character_set.graphemes(true).count(); + let graphemes = total_character_set.graphemes(true); + let char_count = graphemes.clone().count(); if !allow_duplicates { let mut current = min_length; @@ -75,7 +76,7 @@ async fn generate_passwords( } let mut rng = rand::thread_rng(); - let chars = total_character_set.chars(); + let chars = graphemes.collect::>(); for _n in 0..amount { let mut can_continue = false; while !can_continue { @@ -83,7 +84,7 @@ async fn generate_passwords( let length = rng.gen_range(min_length..(max_length + 1)); for _j in 0..length { let index = rng.gen_range(0..char_count); - password.push(chars.clone().nth(index).unwrap()); + password.push_str(chars.clone()[index]); } if allow_duplicates || (!allow_duplicates && !password_list.contains(&password)) { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 7f6e959..2d8b83a 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -8,7 +8,7 @@ }, "package": { "productName": "advanced-passgen", - "version": "2.4.3" + "version": "2.5.0" }, "tauri": { "allowlist": { diff --git a/src/components/CreatePasswordDialog/index.jsx b/src/components/CreatePasswordDialog/index.jsx index 8bd50d8..056e070 100644 --- a/src/components/CreatePasswordDialog/index.jsx +++ b/src/components/CreatePasswordDialog/index.jsx @@ -39,6 +39,7 @@ const CreatePasswordDialog = ({ open, onCreate, onClose }) => { characterSet, includeSymbols, allowDuplicates, + useEmojis, } = state2; const [title, setTitle] = useState(''); @@ -57,6 +58,7 @@ const CreatePasswordDialog = ({ open, onCreate, onClose }) => { numbers, specialCharacters, brackets, + useEmojis, ); const worker = useWorker(createWorker); diff --git a/src/components/EditPasswordDialog/index.jsx b/src/components/EditPasswordDialog/index.jsx index 656113e..2329f1e 100644 --- a/src/components/EditPasswordDialog/index.jsx +++ b/src/components/EditPasswordDialog/index.jsx @@ -37,6 +37,7 @@ const EditPasswordDialog = ({ characterSet, includeSymbols, allowDuplicates, + useEmojis, } = state2; const [title, setTitle] = useState(data && data.title ? data.title : ''); @@ -55,6 +56,7 @@ const EditPasswordDialog = ({ numbers, specialCharacters, brackets, + useEmojis, ); const cannotGenerate = !simpleCharacterSet || simpleCharacterSet.length === 0 diff --git a/src/contexts/PasswordContextProvider/index.jsx b/src/contexts/PasswordContextProvider/index.jsx index b8ab967..b9366db 100644 --- a/src/contexts/PasswordContextProvider/index.jsx +++ b/src/contexts/PasswordContextProvider/index.jsx @@ -20,6 +20,7 @@ const initState = { useAdvanced: false, passwords: null, allowDuplicates: true, + useEmojis: false, }; export const PasswordContext = createContext(initState); diff --git a/src/languages/de_de.json b/src/languages/de_de.json index 487e491..2c9142c 100644 --- a/src/languages/de_de.json +++ b/src/languages/de_de.json @@ -129,5 +129,7 @@ "hidePassword": "Passwort ausblenden", "showPassword": "Passwort anzeigen", "exit": "Beenden", - "includeSymbols": "Symbole einschließen" + "includeSymbols": "Symbole einschließen", + "useEmojis": "Emojis verwenden", + "exportSuccessful": "Export erfolgreich" } diff --git a/src/languages/en_us.json b/src/languages/en_us.json index 71db1cf..1070c37 100644 --- a/src/languages/en_us.json +++ b/src/languages/en_us.json @@ -131,5 +131,7 @@ "showPassword": "Show password", "hidePassword": "Hide password", "exit": "Exit", - "includeSymbols": "Include symbols" + "includeSymbols": "Include symbols", + "useEmojis": "Use emojis", + "exportSuccessful": "Export successful" } diff --git a/src/languages/es_es.json b/src/languages/es_es.json index e654881..091649d 100644 --- a/src/languages/es_es.json +++ b/src/languages/es_es.json @@ -131,5 +131,7 @@ "showPassword": "Mostrar contraseña", "hidePassword": "Contraseña oculta", "exit": "Salida", - "includeSymbols": "Include symbols" + "includeSymbols": "Incluir símbolos", + "useEmojis": "Usar emojis", + "exportSuccessful": "Exportación exitosa" } diff --git a/src/languages/fr_fr.json b/src/languages/fr_fr.json index 0fc5f7c..84a9c84 100644 --- a/src/languages/fr_fr.json +++ b/src/languages/fr_fr.json @@ -128,5 +128,7 @@ "showPassword": "Afficher le mot de passe", "hidePassword": "Masquer le mot de passe", "exit": "Quitter", - "includeSymbols": "Inclure les symboles" + "includeSymbols": "Inclure les symboles", + "useEmojis": "Utiliser les emojis", + "exportSuccessful": "Exportation réussie" } diff --git a/src/languages/jp_jp.json b/src/languages/jp_jp.json index d186c4b..d05b479 100644 --- a/src/languages/jp_jp.json +++ b/src/languages/jp_jp.json @@ -128,5 +128,7 @@ "showPassword": "パスワードを表示", "hidePassword": "パスワードを隠す", "exit": "出口", - "includeSymbols": "シンボルを含める" + "includeSymbols": "シンボルを含める", + "useEmojis": "絵文字を使用する", + "exportSuccessful": "エクスポートに成功しました" } diff --git a/src/languages/nl_nl.json b/src/languages/nl_nl.json index 3b85ab6..ae71ebe 100644 --- a/src/languages/nl_nl.json +++ b/src/languages/nl_nl.json @@ -130,5 +130,7 @@ "showPassword": "Wachtwoord tonen", "hidePassword": "Wachtwoord verbergen", "exit": "Afsluiten", - "includeSymbols": "Inclusief symbolen" + "includeSymbols": "Inclusief symbolen", + "useEmojis": "Gebruik emoji's", + "exportSuccessful": "Export aangemaakt" } diff --git a/src/languages/ru_ru.json b/src/languages/ru_ru.json index 2382e0d..825cade 100644 --- a/src/languages/ru_ru.json +++ b/src/languages/ru_ru.json @@ -129,5 +129,7 @@ "showPassword": "Показать пароль", "hidePassword": "Скрыть пароль", "exit": "Выход", - "includeSymbols": "Включить символы" + "includeSymbols": "Включить символы", + "useEmojis": "Использовать эмодзи", + "exportSuccessful": "Экспорт успешно завершен!" } diff --git a/src/languages/tr_tr.json b/src/languages/tr_tr.json index 024b851..370af4b 100644 --- a/src/languages/tr_tr.json +++ b/src/languages/tr_tr.json @@ -131,5 +131,7 @@ "showPassword": "Şifreyi göster", "hidePassword": "Şifreyi gizle", "exit": "Çıkış", - "includeSymbols": "Semboller dahil" + "includeSymbols": "Semboller dahil", + "useEmojis": "Emojileri kullan", + "exportSuccessful": "Başarıyla dışa aktarıldı" } diff --git a/src/languages/zh_cn.json b/src/languages/zh_cn.json index dc08dab..4d4e9ac 100644 --- a/src/languages/zh_cn.json +++ b/src/languages/zh_cn.json @@ -129,5 +129,7 @@ "showPassword": "显示密码", "hidePassword": "隐藏密码", "exit": "退出", - "includeSymbols": "包含符号" + "includeSymbols": "包含符号", + "useEmojis": "使用表情符号", + "exportSuccessful": "导出成功" } diff --git a/src/reducers/PasswordReducer/Actions/actionTypes.js b/src/reducers/PasswordReducer/Actions/actionTypes.js index f746704..7581702 100644 --- a/src/reducers/PasswordReducer/Actions/actionTypes.js +++ b/src/reducers/PasswordReducer/Actions/actionTypes.js @@ -12,3 +12,4 @@ export const SET_PASSWORD_LENGTH_MAX = 'SET_PASSWORD_LENGTH_MAX'; export const SET_PASSWORDS = 'SET_PASSWORDS'; export const SET_ALLOW_DUPLICATES = 'SET_ALLOW_DUPLICATES'; export const SET_INCLUDE_SYMBOLS = 'SET_INCLUDE_SYMBOLS'; +export const SET_USE_EMOJIS = 'SET_USE_EMOJIS'; diff --git a/src/reducers/PasswordReducer/Actions/index.js b/src/reducers/PasswordReducer/Actions/index.js index 2a0a28d..74cd8aa 100644 --- a/src/reducers/PasswordReducer/Actions/index.js +++ b/src/reducers/PasswordReducer/Actions/index.js @@ -14,6 +14,7 @@ import { SET_SPACES, SET_SPECIAL_CHARACTERS, SET_USE_ADVANCED, + SET_USE_EMOJIS, } from './actionTypes'; export const setPasswordLengthMin = (min) => ({ @@ -86,6 +87,11 @@ export const setIncludeSymbols = (value) => ({ payload: value, }); +export const setUseEmojis = (value) => ({ + type: SET_USE_EMOJIS, + payload: value, +}); + // eslint-disable-next-line max-len export const generatePasswordArray = (min, max, characterSet, includeSymbols, amount, allowDuplicates, worker) => { // eslint-disable-next-line no-underscore-dangle @@ -103,7 +109,7 @@ export const generatePasswordArray = (min, max, characterSet, includeSymbols, am }; // eslint-disable-next-line max-len -export const getFullCharacterSet = (characterSet, useAdvanced, smallLetters, capitalLetters, spaces, numbers, specialCharacters, brackets) => { +export const getFullCharacterSet = (characterSet, useAdvanced, smallLetters, capitalLetters, spaces, numbers, specialCharacters, brackets, emojis) => { let simpleCharacterSet = characterSet; if (!useAdvanced) { simpleCharacterSet = ''; @@ -125,6 +131,9 @@ export const getFullCharacterSet = (characterSet, useAdvanced, smallLetters, cap if (brackets) { simpleCharacterSet += '[]{}()<>'; } + if (emojis) { + simpleCharacterSet += '😀😃😄😁😆😅🤣😂🙂🙃🫠😉😊😇🥰😍🤩😘😗☺😚😙🥲😋😛😜🤪😝🤑🤗🤭🫢🫣🤫🤔🫡🤐🤨😐😑😶🫥😶‍🌫️😏😒🙄😬😮‍💨🤥🫨🙂‍↔️🙂‍↕️😌😔😪🤤😴😷🤒🤕🤢🤮🤧🥵🥶🥴😵😵‍💫🤯🤠🥳🥸😎🤓🧐😕🫤😟🙁☹😮😯😲😳🥺🥹😦😧😨😰😥😢😭😱😖😣😞😓😩😫🥱😤😡😠🤬😈👿💀☠💩🤡👹👺👻👽👾🤖😺😸😹😻😼😽🙀😿😾🙈🙉🙊💌💘💝💖💗💓💞💕💟❣💔❤️‍🔥❤️‍🩹❤🩷🧡💛💚💙🩵💜🤎🖤🩶🤍💋💯💢💥💫💦💨🕳💬👁️‍🗨️🗨🗯💭💤👋🤚🖐✋🖖🫱🫲🫳🫴🫷🫸👌🤌🤏✌🤞🫰🤟🤘🤙👈👉👆🖕👇☝🫵👍👎✊👊🤛🤜👏🙌🫶👐🤲🤝🙏✍💅🤳💪🦾🦿🦵🦶👂🦻👃🧠🫀🫁🦷🦴👀👁👅👄🫦👶🧒👦👧🧑👱👨🧔🧔‍♂️🧔‍♀️👨‍🦰👨‍🦱👨‍🦳👨‍🦲👩👩‍🦰🧑‍🦰👩‍🦱🧑‍🦱👩‍🦳🧑‍🦳👩‍🦲🧑‍🦲👱‍♀️👱‍♂️🧓👴👵🙍🙍‍♂️🙍‍♀️🙎🙎‍♂️🙎‍♀️🙅🙅‍♂️🙅‍♀️🙆🙆‍♂️🙆‍♀️💁💁‍♂️💁‍♀️🙋🙋‍♂️🙋‍♀️🧏🧏‍♂️🧏‍♀️🙇🙇‍♂️🙇‍♀️🤦🤦‍♂️🤦‍♀️🤷🤷‍♂️🤷‍♀️🧑‍⚕️👨‍⚕️👩‍⚕️🧑‍🎓👨‍🎓👩‍🎓🧑‍🏫👨‍🏫👩‍🏫🧑‍⚖️👨‍⚖️👩‍⚖️🧑‍🌾👨‍🌾👩‍🌾🧑‍🍳👨‍🍳👩‍🍳🧑‍🔧👨‍🔧👩‍🔧🧑‍🏭👨‍🏭👩‍🏭🧑‍💼👨‍💼👩‍💼🧑‍🔬👨‍🔬👩‍🔬🧑‍💻👨‍💻👩‍💻🧑‍🎤👨‍🎤👩‍🎤🧑‍🎨👨‍🎨👩‍🎨🧑‍✈️👨‍✈️👩‍✈️🧑‍🚀👨‍🚀👩‍🚀🧑‍🚒👨‍🚒👩‍🚒👮👮‍♂️👮‍♀️🕵🕵️‍♂️🕵️‍♀️💂💂‍♂️💂‍♀️🥷👷👷‍♂️👷‍♀️🫅🤴👸👳👳‍♂️👳‍♀️👲🧕🤵🤵‍♂️🤵‍♀️👰👰‍♂️👰‍♀️🤰🫃🫄🤱👩‍🍼👨‍🍼🧑‍🍼👼🎅🤶🧑‍🎄🦸🦸‍♂️🦸‍♀️🦹🦹‍♂️🦹‍♀️🧙🧙‍♂️🧙‍♀️🧚🧚‍♂️🧚‍♀️🧛🧛‍♂️🧛‍♀️🧜🧜‍♂️🧜‍♀️🧝🧝‍♂️🧝‍♀️🧞🧞‍♂️🧞‍♀️🧟🧟‍♂️🧟‍♀️🧌💆💆‍♂️💆‍♀️💇💇‍♂️💇‍♀️🚶🚶‍♂️🚶‍♀️🚶‍➡️🚶‍♀️‍➡️🚶‍♂️‍➡️🧍🧍‍♂️🧍‍♀️🧎🧎‍♂️🧎‍♀️🧎‍➡️🧎‍♀️‍➡️🧎‍♂️‍➡️🧑‍🦯🧑‍🦯‍➡️👨‍🦯👨‍🦯‍➡️👩‍🦯👩‍🦯‍➡️🧑‍🦼🧑‍🦼‍➡️👨‍🦼👨‍🦼‍➡️👩‍🦼👩‍🦼‍➡️🧑‍🦽🧑‍🦽‍➡️👨‍🦽👨‍🦽‍➡️👩‍🦽👩‍🦽‍➡️🏃🏃‍♂️🏃‍♀️🏃‍➡️🏃‍♀️‍➡️🏃‍♂️‍➡️💃🕺🕴👯👯‍♂️👯‍♀️🧖🧖‍♂️🧖‍♀️🧗🧗‍♂️🧗‍♀️🤺🏇⛷🏂🏌🏌️‍♂️🏌️‍♀️🏄🏄‍♂️🏄‍♀️🚣🚣‍♂️🚣‍♀️🏊🏊‍♂️🏊‍♀️⛹⛹️‍♂️⛹️‍♀️🏋🏋️‍♂️🏋️‍♀️🚴🚴‍♂️🚴‍♀️🚵🚵‍♂️🚵‍♀️🤸🤸‍♂️🤸‍♀️🤼🤼‍♂️🤼‍♀️🤽🤽‍♂️🤽‍♀️🤾🤾‍♂️🤾‍♀️🤹🤹‍♂️🤹‍♀️🧘🧘‍♂️🧘‍♀️🛀🛌🧑‍🤝‍🧑👭👫👬💏👩‍❤️‍💋‍👨👨‍❤️‍💋‍👨👩‍❤️‍💋‍👩💑👩‍❤️‍👨👨‍❤️‍👨👩‍❤️‍👩👨‍👩‍👦👨‍👩‍👧👨‍👩‍👧‍👦👨‍👩‍👦‍👦👨‍👩‍👧‍👧👨‍👨‍👦👨‍👨‍👧👨‍👨‍👧‍👦👨‍👨‍👦‍👦👨‍👨‍👧‍👧👩‍👩‍👦👩‍👩‍👧👩‍👩‍👧‍👦👩‍👩‍👦‍👦👩‍👩‍👧‍👧👨‍👦👨‍👦‍👦👨‍👧👨‍👧‍👦👨‍👧‍👧👩‍👦👩‍👦‍👦👩‍👧👩‍👧‍👦👩‍👧‍👧🗣👤👥🫂👪🧑‍🧑‍🧒🧑‍🧑‍🧒‍🧒🧑‍🧒🧑‍🧒‍🧒👣🦰🦱🦳🦲🐵🐒🦍🦧🐶🐕🦮🐕‍🦺🐩🐺🦊🦝🐱🐈🐈‍⬛🦁🐯🐅🐆🐴🫎🫏🐎🦄🦓🦌🦬🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🦙🦒🐘🦣🦏🦛🐭🐁🐀🐹🐰🐇🐿🦫🦔🦇🐻🐻‍❄️🐨🐼🦥🦦🦨🦘🦡🐾🦃🐔🐓🐣🐤🐥🐦🐧🕊🦅🦆🦢🦉🦤🪶🦩🦚🦜🪽🐦‍⬛🪿🐦‍🔥🐸🐊🐢🦎🐍🐲🐉🦕🦖🐳🐋🐬🦭🐟🐠🐡🦈🐙🐚🪸🪼🐌🦋🐛🐜🐝🪲🐞🦗🪳🕷🕸🦂🦟🪰🪱🦠💐🌸💮🪷🏵🌹🥀🌺🌻🌼🌷🪻🌱🪴🌲🌳🌴🌵🌾🌿☘🍀🍁🍂🍃🪹🪺🍄🍇🍈🍉🍊🍋🍋‍🟩🍌🍍🥭🍎🍏🍐🍑🍒🍓🫐🥝🍅🫒🥥🥑🍆🥔🥕🌽🌶🫑🥒🥬🥦🧄🧅🥜🫘🌰🫚🫛🍄‍🟫🍞🥐🥖🫓🥨🥯🥞🧇🧀🍖🍗🥩🥓🍔🍟🍕🌭🥪🌮🌯🫔🥙🧆🥚🍳🥘🍲🫕🥣🥗🍿🧈🧂🥫🍱🍘🍙🍚🍛🍜🍝🍠🍢🍣🍤🍥🥮🍡🥟🥠🥡🦀🦞🦐🦑🦪🍦🍧🍨🍩🍪🎂🍰🧁🥧🍫🍬🍭🍮🍯🍼🥛☕🫖🍵🍶🍾🍷🍸🍹🍺🍻🥂🥃🫗🥤🧋🧃🧉🧊🥢🍽🍴🥄🔪🫙🏺🌍🌎🌏🌐🗺🗾🧭🏔⛰🌋🗻🏕🏖🏜🏝🏞🏟🏛🏗🧱🪨🪵🛖🏘🏚🏠🏡🏢🏣🏤🏥🏦🏨🏩🏪🏫🏬🏭🏯🏰💒🗼🗽⛪🕌🛕🕍⛩🕋⛲⛺🌁🌃🏙🌄🌅🌆🌇🌉♨🎠🛝🎡🎢💈🎪🚂🚃🚄🚅🚆🚇🚈🚉🚊🚝🚞🚋🚌🚍🚎🚐🚑🚒🚓🚔🚕🚖🚗🚘🚙🛻🚚🚛🚜🏎🏍🛵🦽🦼🛺🚲🛴🛹🛼🚏🛣🛤🛢⛽🛞🚨🚥🚦🛑🚧⚓🛟⛵🛶🚤🛳⛴🛥🚢✈🛩🛫🛬🪂💺🚁🚟🚠🚡🛰🚀🛸🛎🧳⌛⏳⌚⏰⏱⏲🕰🕛🕧🕐🕜🕑🕝🕒🕞🕓🕟🕔🕠🕕🕡🕖🕢🕗🕣🕘🕤🕙🕥🕚🕦🌑🌒🌓🌔🌕🌖🌗🌘🌙🌚🌛🌜🌡☀🌝🌞🪐⭐🌟🌠🌌☁⛅⛈🌤🌥🌦🌧🌨🌩🌪🌫🌬🌀🌈🌂☂☔⛱⚡❄☃⛄☄🔥💧🌊🎃🎄🎆🎇🧨✨🎈🎉🎊🎋🎍🎎🎏🎐🎑🧧🎀🎁🎗🎟🎫🎖🏆🏅🥇🥈🥉⚽⚾🥎🏀🏐🏈🏉🎾🥏🎳🏏🏑🏒🥍🏓🏸🥊🥋🥅⛳⛸🎣🤿🎽🎿🛷🥌🎯🪀🪁🔫🎱🔮🪄🎮🕹🎰🎲🧩🧸🪅🪩🪆♠♥♦♣♟🃏🀄🎴🎭🖼🎨🧵🪡🧶🪢👓🕶🥽🥼🦺👔👕👖🧣🧤🧥🧦👗👘🥻🩱🩲🩳👙👚🪭👛👜👝🛍🎒🩴👞👟🥾🥿👠👡🩰👢🪮👑👒🎩🎓🧢🪖⛑📿💄💍💎🔇🔈🔉🔊📢📣📯🔔🔕🎼🎵🎶🎙🎚🎛🎤🎧📻🎷🪗🎸🎹🎺🎻🪕🥁🪘🪇🪈📱📲☎📞📟📠🔋🪫🔌💻🖥🖨⌨🖱🖲💽💾💿📀🧮🎥🎞📽🎬📺📷📸📹📼🔍🔎🕯💡🔦🏮🪔📔📕📖📗📘📙📚📓📒📃📜📄📰🗞📑🔖🏷💰🪙💴💵💶💷💸💳🧾💹✉📧📨📩📤📥📦📫📪📬📭📮🗳✏✒🖋🖊🖌🖍📝💼📁📂🗂📅📆🗒🗓📇📈📉📊📋📌📍📎🖇📏📐✂🗃🗄🗑🔒🔓🔏🔐🔑🗝🔨🪓⛏⚒🛠🗡⚔💣🪃🏹🛡🪚🔧🪛🔩⚙🗜⚖🦯🔗⛓️‍💥⛓🪝🧰🧲🪜⚗🧪🧫🧬🔬🔭📡💉🩸💊🩹🩼🩺🩻🚪🛗🪞🪟🛏🛋🪑🚽🪠🚿🛁🪤🪒🧴🧷🧹🧺🧻🪣🧼🫧🪥🧽🧯🛒🚬⚰🪦⚱🧿🪬🗿🪧🪪🏧🚮🚰♿🚹🚺🚻🚼🚾🛂🛃🛄🛅⚠🚸⛔🚫🚳🚭🚯🚱🚷📵🔞☢☣⬆↗➡↘⬇↙⬅↖↕↔↩↪⤴⤵🔃🔄🔙🔚🔛🔜🔝🛐⚛🕉✡☸☯✝☦☪☮🕎🔯🪯♈♉♊♋♌♍♎♏♐♑♒♓⛎🔀🔁🔂▶⏩⏭⏯◀⏪⏮🔼⏫🔽⏬⏸⏹⏺⏏🎦🔅🔆📶🛜📳📴♀♂⚧✖➕➖➗🟰♾‼⁉❓❔❕❗〰💱💲⚕♻⚜🔱📛🔰⭕✅☑✔❌❎➰➿〽✳✴❇©®™#️⃣*️⃣0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟🔠🔡🔢🔣🔤🅰🆎🅱🆑🆒🆓ℹ🆔Ⓜ🆕🆖🅾🆗🅿🆘🆙🆚🈁🈂🈷🈶🈯🉐🈹🈚🈲🉑🈸🈴🈳㊗㊙🈺🈵🔴🟠🟡🟢🔵🟣🟤⚫⚪🟥🟧🟨🟩🟦🟪🟫⬛⬜◼◻◾◽▪▫🔶🔷🔸🔹🔺🔻💠🔘🔳🔲🏁🚩🎌🏴🏳🏳️‍🌈🏳️‍⚧️🏴‍☠️🇦🇨🇦🇩🇦🇪🇦🇫🇦🇬🇦🇮🇦🇱🇦🇲🇦🇴🇦🇶🇦🇷🇦🇸🇦🇹🇦🇺🇦🇼🇦🇽🇦🇿🇧🇦🇧🇧🇧🇩🇧🇪🇧🇫🇧🇬🇧🇭🇧🇮🇧🇯🇧🇱🇧🇲🇧🇳🇧🇴🇧🇶🇧🇷🇧🇸🇧🇹🇧🇻🇧🇼🇧🇾🇧🇿🇨🇦🇨🇨🇨🇩🇨🇫🇨🇬🇨🇭🇨🇮🇨🇰🇨🇱🇨🇲🇨🇳🇨🇴🇨🇵🇨🇷🇨🇺🇨🇻🇨🇼🇨🇽🇨🇾🇨🇿🇩🇪🇩🇬🇩🇯🇩🇰🇩🇲🇩🇴🇩🇿🇪🇦🇪🇨🇪🇪🇪🇬🇪🇭🇪🇷🇪🇸🇪🇹🇪🇺🇫🇮🇫🇯🇫🇰🇫🇲🇫🇴🇫🇷🇬🇦🇬🇧🇬🇩🇬🇪🇬🇫🇬🇬🇬🇭🇬🇮🇬🇱🇬🇲🇬🇳🇬🇵🇬🇶🇬🇷🇬🇸🇬🇹🇬🇺🇬🇼🇬🇾🇭🇰🇭🇲🇭🇳🇭🇷🇭🇹🇭🇺🇮🇨🇮🇩🇮🇪🇮🇱🇮🇲🇮🇳🇮🇴🇮🇶🇮🇷🇮🇸🇮🇹🇯🇪🇯🇲🇯🇴🇯🇵🇰🇪🇰🇬🇰🇭🇰🇮🇰🇲🇰🇳🇰🇵🇰🇷🇰🇼🇰🇾🇰🇿🇱🇦🇱🇧🇱🇨🇱🇮🇱🇰🇱🇷🇱🇸🇱🇹🇱🇺🇱🇻🇱🇾🇲🇦🇲🇨🇲🇩🇲🇪🇲🇫🇲🇬🇲🇭🇲🇰🇲🇱🇲🇲🇲🇳🇲🇴🇲🇵🇲🇶🇲🇷🇲🇸🇲🇹🇲🇺🇲🇻🇲🇼🇲🇽🇲🇾🇲🇿🇳🇦🇳🇨🇳🇪🇳🇫🇳🇬🇳🇮🇳🇱🇳🇴🇳🇵🇳🇷🇳🇺🇳🇿🇴🇲🇵🇦🇵🇪🇵🇫🇵🇬🇵🇭🇵🇰🇵🇱🇵🇲🇵🇳🇵🇷🇵🇸🇵🇹🇵🇼🇵🇾🇶🇦🇷🇪🇷🇴🇷🇸🇷🇺🇷🇼🇸🇦🇸🇧🇸🇨🇸🇩🇸🇪🇸🇬🇸🇭🇸🇮🇸🇯🇸🇰🇸🇱🇸🇲🇸🇳🇸🇴🇸🇷🇸🇸🇸🇹🇸🇻🇸🇽🇸🇾🇸🇿🇹🇦🇹🇨🇹🇩🇹🇫🇹🇬🇹🇭🇹🇯🇹🇰🇹🇱🇹🇲🇹🇳🇹🇴🇹🇷🇹🇹🇹🇻🇹🇼🇹🇿🇺🇦🇺🇬🇺🇲🇺🇳🇺🇸🇺🇾🇺🇿🇻🇦🇻🇨🇻🇪🇻🇬🇻🇮🇻🇳🇻🇺🇼🇫🇼🇸🇽🇰🇾🇪🇾🇹🇿🇦🇿🇲🇿🇼🏴󠁧󠁢󠁥󠁮󠁧󠁿🏴󠁧󠁢󠁳󠁣󠁴󠁿🏴󠁧󠁢󠁷󠁬󠁳󠁿👋🏻👋🏼👋🏽👋🏾👋🏿🤚🏻🤚🏼🤚🏽🤚🏾🤚🏿🖐🏻🖐🏼🖐🏽🖐🏾🖐🏿✋🏻✋🏼✋🏽✋🏾✋🏿🖖🏻🖖🏼🖖🏽🖖🏾🖖🏿🫱🏻🫱🏼🫱🏽🫱🏾🫱🏿🫲🏻🫲🏼🫲🏽🫲🏾🫲🏿🫳🏻🫳🏼🫳🏽🫳🏾🫳🏿🫴🏻🫴🏼🫴🏽🫴🏾🫴🏿🫷🏻🫷🏼🫷🏽🫷🏾🫷🏿🫸🏻🫸🏼🫸🏽🫸🏾🫸🏿👌🏻👌🏼👌🏽👌🏾👌🏿🤌🏻🤌🏼🤌🏽🤌🏾🤌🏿🤏🏻🤏🏼🤏🏽🤏🏾🤏🏿✌🏻✌🏼✌🏽✌🏾✌🏿🤞🏻🤞🏼🤞🏽🤞🏾🤞🏿🫰🏻🫰🏼🫰🏽🫰🏾🫰🏿🤟🏻🤟🏼🤟🏽🤟🏾🤟🏿🤘🏻🤘🏼🤘🏽🤘🏾🤘🏿🤙🏻🤙🏼🤙🏽🤙🏾🤙🏿👈🏻👈🏼👈🏽👈🏾👈🏿👉🏻👉🏼👉🏽👉🏾👉🏿👆🏻👆🏼👆🏽👆🏾👆🏿🖕🏻🖕🏼🖕🏽🖕🏾🖕🏿👇🏻👇🏼👇🏽👇🏾👇🏿☝🏻☝🏼☝🏽☝🏾☝🏿🫵🏻🫵🏼🫵🏽🫵🏾🫵🏿👍🏻👍🏼👍🏽👍🏾👍🏿👎🏻👎🏼👎🏽👎🏾👎🏿✊🏻✊🏼✊🏽✊🏾✊🏿👊🏻👊🏼👊🏽👊🏾👊🏿🤛🏻🤛🏼🤛🏽🤛🏾🤛🏿🤜🏻🤜🏼🤜🏽🤜🏾🤜🏿👏🏻👏🏼👏🏽👏🏾👏🏿🙌🏻🙌🏼🙌🏽🙌🏾🙌🏿🫶🏻🫶🏼🫶🏽🫶🏾🫶🏿👐🏻👐🏼👐🏽👐🏾👐🏿🤲🏻🤲🏼🤲🏽🤲🏾🤲🏿🤝🏻🤝🏼🤝🏽🤝🏾🤝🏿🫱🏻‍🫲🏼🫱🏻‍🫲🏽🫱🏻‍🫲🏾🫱🏻‍🫲🏿🫱🏼‍🫲🏻🫱🏼‍🫲🏽🫱🏼‍🫲🏾🫱🏼‍🫲🏿🫱🏽‍🫲🏻🫱🏽‍🫲🏼🫱🏽‍🫲🏾🫱🏽‍🫲🏿🫱🏾‍🫲🏻🫱🏾‍🫲🏼🫱🏾‍🫲🏽🫱🏾‍🫲🏿🫱🏿‍🫲🏻🫱🏿‍🫲🏼🫱🏿‍🫲🏽🫱🏿‍🫲🏾🙏🏻🙏🏼🙏🏽🙏🏾🙏🏿✍🏻✍🏼✍🏽✍🏾✍🏿💅🏻💅🏼💅🏽💅🏾💅🏿🤳🏻🤳🏼🤳🏽🤳🏾🤳🏿💪🏻💪🏼💪🏽💪🏾💪🏿🦵🏻🦵🏼🦵🏽🦵🏾🦵🏿🦶🏻🦶🏼🦶🏽🦶🏾🦶🏿👂🏻👂🏼👂🏽👂🏾👂🏿🦻🏻🦻🏼🦻🏽🦻🏾🦻🏿👃🏻👃🏼👃🏽👃🏾👃🏿👶🏻👶🏼👶🏽👶🏾👶🏿🧒🏻🧒🏼🧒🏽🧒🏾🧒🏿👦🏻👦🏼👦🏽👦🏾👦🏿👧🏻👧🏼👧🏽👧🏾👧🏿🧑🏻🧑🏼🧑🏽🧑🏾🧑🏿👱🏻👱🏼👱🏽👱🏾👱🏿👨🏻👨🏼👨🏽👨🏾👨🏿🧔🏻🧔🏼🧔🏽🧔🏾🧔🏿🧔🏻‍♂️🧔🏼‍♂️🧔🏽‍♂️🧔🏾‍♂️🧔🏿‍♂️🧔🏻‍♀️🧔🏼‍♀️🧔🏽‍♀️🧔🏾‍♀️🧔🏿‍♀️👨🏻‍🦰👨🏼‍🦰👨🏽‍🦰👨🏾‍🦰👨🏿‍🦰👨🏻‍🦱👨🏼‍🦱👨🏽‍🦱👨🏾‍🦱👨🏿‍🦱👨🏻‍🦳👨🏼‍🦳👨🏽‍🦳👨🏾‍🦳👨🏿‍🦳👨🏻‍🦲👨🏼‍🦲👨🏽‍🦲👨🏾‍🦲👨🏿‍🦲👩🏻👩🏼👩🏽👩🏾👩🏿👩🏻‍🦰👩🏼‍🦰👩🏽‍🦰👩🏾‍🦰👩🏿‍🦰🧑🏻‍🦰🧑🏼‍🦰🧑🏽‍🦰🧑🏾‍🦰🧑🏿‍🦰👩🏻‍🦱👩🏼‍🦱👩🏽‍🦱👩🏾‍🦱👩🏿‍🦱🧑🏻‍🦱🧑🏼‍🦱🧑🏽‍🦱🧑🏾‍🦱🧑🏿‍🦱👩🏻‍🦳👩🏼‍🦳👩🏽‍🦳👩🏾‍🦳👩🏿‍🦳🧑🏻‍🦳🧑🏼‍🦳🧑🏽‍🦳🧑🏾‍🦳🧑🏿‍🦳👩🏻‍🦲👩🏼‍🦲👩🏽‍🦲👩🏾‍🦲👩🏿‍🦲🧑🏻‍🦲🧑🏼‍🦲🧑🏽‍🦲🧑🏾‍🦲🧑🏿‍🦲👱🏻‍♀️👱🏼‍♀️👱🏽‍♀️👱🏾‍♀️👱🏿‍♀️👱🏻‍♂️👱🏼‍♂️👱🏽‍♂️👱🏾‍♂️👱🏿‍♂️🧓🏻🧓🏼🧓🏽🧓🏾🧓🏿👴🏻👴🏼👴🏽👴🏾👴🏿👵🏻👵🏼👵🏽👵🏾👵🏿🙍🏻🙍🏼🙍🏽🙍🏾🙍🏿🙍🏻‍♂️🙍🏼‍♂️🙍🏽‍♂️🙍🏾‍♂️🙍🏿‍♂️🙍🏻‍♀️🙍🏼‍♀️🙍🏽‍♀️🙍🏾‍♀️🙍🏿‍♀️🙎🏻🙎🏼🙎🏽🙎🏾🙎🏿🙎🏻‍♂️🙎🏼‍♂️🙎🏽‍♂️🙎🏾‍♂️🙎🏿‍♂️🙎🏻‍♀️🙎🏼‍♀️🙎🏽‍♀️🙎🏾‍♀️🙎🏿‍♀️🙅🏻🙅🏼🙅🏽🙅🏾🙅🏿🙅🏻‍♂️🙅🏼‍♂️🙅🏽‍♂️🙅🏾‍♂️🙅🏿‍♂️🙅🏻‍♀️🙅🏼‍♀️🙅🏽‍♀️🙅🏾‍♀️🙅🏿‍♀️🙆🏻🙆🏼🙆🏽🙆🏾🙆🏿🙆🏻‍♂️🙆🏼‍♂️🙆🏽‍♂️🙆🏾‍♂️🙆🏿‍♂️🙆🏻‍♀️🙆🏼‍♀️🙆🏽‍♀️🙆🏾‍♀️🙆🏿‍♀️💁🏻💁🏼💁🏽💁🏾💁🏿💁🏻‍♂️💁🏼‍♂️💁🏽‍♂️💁🏾‍♂️💁🏿‍♂️💁🏻‍♀️💁🏼‍♀️💁🏽‍♀️💁🏾‍♀️💁🏿‍♀️🙋🏻🙋🏼🙋🏽🙋🏾🙋🏿🙋🏻‍♂️🙋🏼‍♂️🙋🏽‍♂️🙋🏾‍♂️🙋🏿‍♂️🙋🏻‍♀️🙋🏼‍♀️🙋🏽‍♀️🙋🏾‍♀️🙋🏿‍♀️🧏🏻🧏🏼🧏🏽🧏🏾🧏🏿🧏🏻‍♂️🧏🏼‍♂️🧏🏽‍♂️🧏🏾‍♂️🧏🏿‍♂️🧏🏻‍♀️🧏🏼‍♀️🧏🏽‍♀️🧏🏾‍♀️🧏🏿‍♀️🙇🏻🙇🏼🙇🏽🙇🏾🙇🏿🙇🏻‍♂️🙇🏼‍♂️🙇🏽‍♂️🙇🏾‍♂️🙇🏿‍♂️🙇🏻‍♀️🙇🏼‍♀️🙇🏽‍♀️🙇🏾‍♀️🙇🏿‍♀️🤦🏻🤦🏼🤦🏽🤦🏾🤦🏿🤦🏻‍♂️🤦🏼‍♂️🤦🏽‍♂️🤦🏾‍♂️🤦🏿‍♂️🤦🏻‍♀️🤦🏼‍♀️🤦🏽‍♀️🤦🏾‍♀️🤦🏿‍♀️🤷🏻🤷🏼🤷🏽🤷🏾🤷🏿🤷🏻‍♂️🤷🏼‍♂️🤷🏽‍♂️🤷🏾‍♂️🤷🏿‍♂️🤷🏻‍♀️🤷🏼‍♀️🤷🏽‍♀️🤷🏾‍♀️🤷🏿‍♀️🧑🏻‍⚕️🧑🏼‍⚕️🧑🏽‍⚕️🧑🏾‍⚕️🧑🏿‍⚕️👨🏻‍⚕️👨🏼‍⚕️👨🏽‍⚕️👨🏾‍⚕️👨🏿‍⚕️👩🏻‍⚕️👩🏼‍⚕️👩🏽‍⚕️👩🏾‍⚕️👩🏿‍⚕️🧑🏻‍🎓🧑🏼‍🎓🧑🏽‍🎓🧑🏾‍🎓🧑🏿‍🎓👨🏻‍🎓👨🏼‍🎓👨🏽‍🎓👨🏾‍🎓👨🏿‍🎓👩🏻‍🎓👩🏼‍🎓👩🏽‍🎓👩🏾‍🎓👩🏿‍🎓🧑🏻‍🏫🧑🏼‍🏫🧑🏽‍🏫🧑🏾‍🏫🧑🏿‍🏫👨🏻‍🏫👨🏼‍🏫👨🏽‍🏫👨🏾‍🏫👨🏿‍🏫👩🏻‍🏫👩🏼‍🏫👩🏽‍🏫👩🏾‍🏫👩🏿‍🏫🧑🏻‍⚖️🧑🏼‍⚖️🧑🏽‍⚖️🧑🏾‍⚖️🧑🏿‍⚖️👨🏻‍⚖️👨🏼‍⚖️👨🏽‍⚖️👨🏾‍⚖️👨🏿‍⚖️👩🏻‍⚖️👩🏼‍⚖️👩🏽‍⚖️👩🏾‍⚖️👩🏿‍⚖️🧑🏻‍🌾🧑🏼‍🌾🧑🏽‍🌾🧑🏾‍🌾🧑🏿‍🌾👨🏻‍🌾👨🏼‍🌾👨🏽‍🌾👨🏾‍🌾👨🏿‍🌾👩🏻‍🌾👩🏼‍🌾👩🏽‍🌾👩🏾‍🌾👩🏿‍🌾🧑🏻‍🍳🧑🏼‍🍳🧑🏽‍🍳🧑🏾‍🍳🧑🏿‍🍳👨🏻‍🍳👨🏼‍🍳👨🏽‍🍳👨🏾‍🍳👨🏿‍🍳👩🏻‍🍳👩🏼‍🍳👩🏽‍🍳👩🏾‍🍳👩🏿‍🍳🧑🏻‍🔧🧑🏼‍🔧🧑🏽‍🔧🧑🏾‍🔧🧑🏿‍🔧👨🏻‍🔧👨🏼‍🔧👨🏽‍🔧👨🏾‍🔧👨🏿‍🔧👩🏻‍🔧👩🏼‍🔧👩🏽‍🔧👩🏾‍🔧👩🏿‍🔧🧑🏻‍🏭🧑🏼‍🏭🧑🏽‍🏭🧑🏾‍🏭🧑🏿‍🏭👨🏻‍🏭👨🏼‍🏭👨🏽‍🏭👨🏾‍🏭👨🏿‍🏭👩🏻‍🏭👩🏼‍🏭👩🏽‍🏭👩🏾‍🏭👩🏿‍🏭🧑🏻‍💼🧑🏼‍💼🧑🏽‍💼🧑🏾‍💼🧑🏿‍💼👨🏻‍💼👨🏼‍💼👨🏽‍💼👨🏾‍💼👨🏿‍💼👩🏻‍💼👩🏼‍💼👩🏽‍💼👩🏾‍💼👩🏿‍💼🧑🏻‍🔬🧑🏼‍🔬🧑🏽‍🔬🧑🏾‍🔬🧑🏿‍🔬👨🏻‍🔬👨🏼‍🔬👨🏽‍🔬👨🏾‍🔬👨🏿‍🔬👩🏻‍🔬👩🏼‍🔬👩🏽‍🔬👩🏾‍🔬👩🏿‍🔬🧑🏻‍💻🧑🏼‍💻🧑🏽‍💻🧑🏾‍💻🧑🏿‍💻👨🏻‍💻👨🏼‍💻👨🏽‍💻👨🏾‍💻👨🏿‍💻👩🏻‍💻👩🏼‍💻👩🏽‍💻👩🏾‍💻👩🏿‍💻🧑🏻‍🎤🧑🏼‍🎤🧑🏽‍🎤🧑🏾‍🎤🧑🏿‍🎤👨🏻‍🎤👨🏼‍🎤👨🏽‍🎤👨🏾‍🎤👨🏿‍🎤👩🏻‍🎤👩🏼‍🎤👩🏽‍🎤👩🏾‍🎤👩🏿‍🎤🧑🏻‍🎨🧑🏼‍🎨🧑🏽‍🎨🧑🏾‍🎨🧑🏿‍🎨👨🏻‍🎨👨🏼‍🎨👨🏽‍🎨👨🏾‍🎨👨🏿‍🎨👩🏻‍🎨👩🏼‍🎨👩🏽‍🎨👩🏾‍🎨👩🏿‍🎨🧑🏻‍✈️🧑🏼‍✈️🧑🏽‍✈️🧑🏾‍✈️🧑🏿‍✈️👨🏻‍✈️👨🏼‍✈️👨🏽‍✈️👨🏾‍✈️👨🏿‍✈️👩🏻‍✈️👩🏼‍✈️👩🏽‍✈️👩🏾‍✈️👩🏿‍✈️🧑🏻‍🚀🧑🏼‍🚀🧑🏽‍🚀🧑🏾‍🚀🧑🏿‍🚀👨🏻‍🚀👨🏼‍🚀👨🏽‍🚀👨🏾‍🚀👨🏿‍🚀👩🏻‍🚀👩🏼‍🚀👩🏽‍🚀👩🏾‍🚀👩🏿‍🚀🧑🏻‍🚒🧑🏼‍🚒🧑🏽‍🚒🧑🏾‍🚒🧑🏿‍🚒👨🏻‍🚒👨🏼‍🚒👨🏽‍🚒👨🏾‍🚒👨🏿‍🚒👩🏻‍🚒👩🏼‍🚒👩🏽‍🚒👩🏾‍🚒👩🏿‍🚒👮🏻👮🏼👮🏽👮🏾👮🏿👮🏻‍♂️👮🏼‍♂️👮🏽‍♂️👮🏾‍♂️👮🏿‍♂️👮🏻‍♀️👮🏼‍♀️👮🏽‍♀️👮🏾‍♀️👮🏿‍♀️🕵🏻🕵🏼🕵🏽🕵🏾🕵🏿🕵🏻‍♂️🕵🏼‍♂️🕵🏽‍♂️🕵🏾‍♂️🕵🏿‍♂️🕵🏻‍♀️🕵🏼‍♀️🕵🏽‍♀️🕵🏾‍♀️🕵🏿‍♀️💂🏻💂🏼💂🏽💂🏾💂🏿💂🏻‍♂️💂🏼‍♂️💂🏽‍♂️💂🏾‍♂️💂🏿‍♂️💂🏻‍♀️💂🏼‍♀️💂🏽‍♀️💂🏾‍♀️💂🏿‍♀️🥷🏻🥷🏼🥷🏽🥷🏾🥷🏿👷🏻👷🏼👷🏽👷🏾👷🏿👷🏻‍♂️👷🏼‍♂️👷🏽‍♂️👷🏾‍♂️👷🏿‍♂️👷🏻‍♀️👷🏼‍♀️👷🏽‍♀️👷🏾‍♀️👷🏿‍♀️🫅🏻🫅🏼🫅🏽🫅🏾🫅🏿🤴🏻🤴🏼🤴🏽🤴🏾🤴🏿👸🏻👸🏼👸🏽👸🏾👸🏿👳🏻👳🏼👳🏽👳🏾👳🏿👳🏻‍♂️👳🏼‍♂️👳🏽‍♂️👳🏾‍♂️👳🏿‍♂️👳🏻‍♀️👳🏼‍♀️👳🏽‍♀️👳🏾‍♀️👳🏿‍♀️👲🏻👲🏼👲🏽👲🏾👲🏿🧕🏻🧕🏼🧕🏽🧕🏾🧕🏿🤵🏻🤵🏼🤵🏽🤵🏾🤵🏿🤵🏻‍♂️🤵🏼‍♂️🤵🏽‍♂️🤵🏾‍♂️🤵🏿‍♂️🤵🏻‍♀️🤵🏼‍♀️🤵🏽‍♀️🤵🏾‍♀️🤵🏿‍♀️👰🏻👰🏼👰🏽👰🏾👰🏿👰🏻‍♂️👰🏼‍♂️👰🏽‍♂️👰🏾‍♂️👰🏿‍♂️👰🏻‍♀️👰🏼‍♀️👰🏽‍♀️👰🏾‍♀️👰🏿‍♀️🤰🏻🤰🏼🤰🏽🤰🏾🤰🏿🫃🏻🫃🏼🫃🏽🫃🏾🫃🏿🫄🏻🫄🏼🫄🏽🫄🏾🫄🏿🤱🏻🤱🏼🤱🏽🤱🏾🤱🏿👩🏻‍🍼👩🏼‍🍼👩🏽‍🍼👩🏾‍🍼👩🏿‍🍼👨🏻‍🍼👨🏼‍🍼👨🏽‍🍼👨🏾‍🍼👨🏿‍🍼🧑🏻‍🍼🧑🏼‍🍼🧑🏽‍🍼🧑🏾‍🍼🧑🏿‍🍼👼🏻👼🏼👼🏽👼🏾👼🏿🎅🏻🎅🏼🎅🏽🎅🏾🎅🏿🤶🏻🤶🏼🤶🏽🤶🏾🤶🏿🧑🏻‍🎄🧑🏼‍🎄🧑🏽‍🎄🧑🏾‍🎄🧑🏿‍🎄🦸🏻🦸🏼🦸🏽🦸🏾🦸🏿🦸🏻‍♂️🦸🏼‍♂️🦸🏽‍♂️🦸🏾‍♂️🦸🏿‍♂️🦸🏻‍♀️🦸🏼‍♀️🦸🏽‍♀️🦸🏾‍♀️🦸🏿‍♀️🦹🏻🦹🏼🦹🏽🦹🏾🦹🏿🦹🏻‍♂️🦹🏼‍♂️🦹🏽‍♂️🦹🏾‍♂️🦹🏿‍♂️🦹🏻‍♀️🦹🏼‍♀️🦹🏽‍♀️🦹🏾‍♀️🦹🏿‍♀️🧙🏻🧙🏼🧙🏽🧙🏾🧙🏿🧙🏻‍♂️🧙🏼‍♂️🧙🏽‍♂️🧙🏾‍♂️🧙🏿‍♂️🧙🏻‍♀️🧙🏼‍♀️🧙🏽‍♀️🧙🏾‍♀️🧙🏿‍♀️🧚🏻🧚🏼🧚🏽🧚🏾🧚🏿🧚🏻‍♂️🧚🏼‍♂️🧚🏽‍♂️🧚🏾‍♂️🧚🏿‍♂️🧚🏻‍♀️🧚🏼‍♀️🧚🏽‍♀️🧚🏾‍♀️🧚🏿‍♀️🧛🏻🧛🏼🧛🏽🧛🏾🧛🏿🧛🏻‍♂️🧛🏼‍♂️🧛🏽‍♂️🧛🏾‍♂️🧛🏿‍♂️🧛🏻‍♀️🧛🏼‍♀️🧛🏽‍♀️🧛🏾‍♀️🧛🏿‍♀️🧜🏻🧜🏼🧜🏽🧜🏾🧜🏿🧜🏻‍♂️🧜🏼‍♂️🧜🏽‍♂️🧜🏾‍♂️🧜🏿‍♂️🧜🏻‍♀️🧜🏼‍♀️🧜🏽‍♀️🧜🏾‍♀️🧜🏿‍♀️🧝🏻🧝🏼🧝🏽🧝🏾🧝🏿🧝🏻‍♂️🧝🏼‍♂️🧝🏽‍♂️🧝🏾‍♂️🧝🏿‍♂️🧝🏻‍♀️🧝🏼‍♀️🧝🏽‍♀️🧝🏾‍♀️🧝🏿‍♀️💆🏻💆🏼💆🏽💆🏾💆🏿💆🏻‍♂️💆🏼‍♂️💆🏽‍♂️💆🏾‍♂️💆🏿‍♂️💆🏻‍♀️💆🏼‍♀️💆🏽‍♀️💆🏾‍♀️💆🏿‍♀️💇🏻💇🏼💇🏽💇🏾💇🏿💇🏻‍♂️💇🏼‍♂️💇🏽‍♂️💇🏾‍♂️💇🏿‍♂️💇🏻‍♀️💇🏼‍♀️💇🏽‍♀️💇🏾‍♀️💇🏿‍♀️🚶🏻🚶🏼🚶🏽🚶🏾🚶🏿🚶🏻‍♂️🚶🏼‍♂️🚶🏽‍♂️🚶🏾‍♂️🚶🏿‍♂️🚶🏻‍♀️🚶🏼‍♀️🚶🏽‍♀️🚶🏾‍♀️🚶🏿‍♀️🚶🏻‍➡️🚶🏼‍➡️🚶🏽‍➡️🚶🏾‍➡️🚶🏿‍➡️🚶🏻‍♀️‍➡️🚶🏼‍♀️‍➡️🚶🏽‍♀️‍➡️🚶🏾‍♀️‍➡️🚶🏿‍♀️‍➡️🚶🏻‍♂️‍➡️🚶🏼‍♂️‍➡️🚶🏽‍♂️‍➡️🚶🏾‍♂️‍➡️🚶🏿‍♂️‍➡️🧍🏻🧍🏼🧍🏽🧍🏾🧍🏿🧍🏻‍♂️🧍🏼‍♂️🧍🏽‍♂️🧍🏾‍♂️🧍🏿‍♂️🧍🏻‍♀️🧍🏼‍♀️🧍🏽‍♀️🧍🏾‍♀️🧍🏿‍♀️🧎🏻🧎🏼🧎🏽🧎🏾🧎🏿🧎🏻‍♂️🧎🏼‍♂️🧎🏽‍♂️🧎🏾‍♂️🧎🏿‍♂️🧎🏻‍♀️🧎🏼‍♀️🧎🏽‍♀️🧎🏾‍♀️🧎🏿‍♀️🧎🏻‍➡️🧎🏼‍➡️🧎🏽‍➡️🧎🏾‍➡️🧎🏿‍➡️🧎🏻‍♀️‍➡️🧎🏼‍♀️‍➡️🧎🏽‍♀️‍➡️🧎🏾‍♀️‍➡️🧎🏿‍♀️‍➡️🧎🏻‍♂️‍➡️🧎🏼‍♂️‍➡️🧎🏽‍♂️‍➡️🧎🏾‍♂️‍➡️🧎🏿‍♂️‍➡️🧑🏻‍🦯🧑🏼‍🦯🧑🏽‍🦯🧑🏾‍🦯🧑🏿‍🦯🧑🏻‍🦯‍➡️🧑🏼‍🦯‍➡️🧑🏽‍🦯‍➡️🧑🏾‍🦯‍➡️🧑🏿‍🦯‍➡️👨🏻‍🦯👨🏼‍🦯👨🏽‍🦯👨🏾‍🦯👨🏿‍🦯👨🏻‍🦯‍➡️👨🏼‍🦯‍➡️👨🏽‍🦯‍➡️👨🏾‍🦯‍➡️👨🏿‍🦯‍➡️👩🏻‍🦯👩🏼‍🦯👩🏽‍🦯👩🏾‍🦯👩🏿‍🦯👩🏻‍🦯‍➡️👩🏼‍🦯‍➡️👩🏽‍🦯‍➡️👩🏾‍🦯‍➡️👩🏿‍🦯‍➡️🧑🏻‍🦼🧑🏼‍🦼🧑🏽‍🦼🧑🏾‍🦼🧑🏿‍🦼🧑🏻‍🦼‍➡️🧑🏼‍🦼‍➡️🧑🏽‍🦼‍➡️🧑🏾‍🦼‍➡️🧑🏿‍🦼‍➡️👨🏻‍🦼👨🏼‍🦼👨🏽‍🦼👨🏾‍🦼👨🏿‍🦼👨🏻‍🦼‍➡️👨🏼‍🦼‍➡️👨🏽‍🦼‍➡️👨🏾‍🦼‍➡️👨🏿‍🦼‍➡️👩🏻‍🦼👩🏼‍🦼👩🏽‍🦼👩🏾‍🦼👩🏿‍🦼👩🏻‍🦼‍➡️👩🏼‍🦼‍➡️👩🏽‍🦼‍➡️👩🏾‍🦼‍➡️👩🏿‍🦼‍➡️🧑🏻‍🦽🧑🏼‍🦽🧑🏽‍🦽🧑🏾‍🦽🧑🏿‍🦽🧑🏻‍🦽‍➡️🧑🏼‍🦽‍➡️🧑🏽‍🦽‍➡️🧑🏾‍🦽‍➡️🧑🏿‍🦽‍➡️👨🏻‍🦽👨🏼‍🦽👨🏽‍🦽👨🏾‍🦽👨🏿‍🦽👨🏻‍🦽‍➡️👨🏼‍🦽‍➡️👨🏽‍🦽‍➡️👨🏾‍🦽‍➡️👨🏿‍🦽‍➡️👩🏻‍🦽👩🏼‍🦽👩🏽‍🦽👩🏾‍🦽👩🏿‍🦽👩🏻‍🦽‍➡️👩🏼‍🦽‍➡️👩🏽‍🦽‍➡️👩🏾‍🦽‍➡️👩🏿‍🦽‍➡️🏃🏻🏃🏼🏃🏽🏃🏾🏃🏿🏃🏻‍♂️🏃🏼‍♂️🏃🏽‍♂️🏃🏾‍♂️🏃🏿‍♂️🏃🏻‍♀️🏃🏼‍♀️🏃🏽‍♀️🏃🏾‍♀️🏃🏿‍♀️🏃🏻‍➡️🏃🏼‍➡️🏃🏽‍➡️🏃🏾‍➡️🏃🏿‍➡️🏃🏻‍♀️‍➡️🏃🏼‍♀️‍➡️🏃🏽‍♀️‍➡️🏃🏾‍♀️‍➡️🏃🏿‍♀️‍➡️🏃🏻‍♂️‍➡️🏃🏼‍♂️‍➡️🏃🏽‍♂️‍➡️🏃🏾‍♂️‍➡️🏃🏿‍♂️‍➡️💃🏻💃🏼💃🏽💃🏾💃🏿🕺🏻🕺🏼🕺🏽🕺🏾🕺🏿🕴🏻🕴🏼🕴🏽🕴🏾🕴🏿🧖🏻🧖🏼🧖🏽🧖🏾🧖🏿🧖🏻‍♂️🧖🏼‍♂️🧖🏽‍♂️🧖🏾‍♂️🧖🏿‍♂️🧖🏻‍♀️🧖🏼‍♀️🧖🏽‍♀️🧖🏾‍♀️🧖🏿‍♀️🧗🏻🧗🏼🧗🏽🧗🏾🧗🏿🧗🏻‍♂️🧗🏼‍♂️🧗🏽‍♂️🧗🏾‍♂️🧗🏿‍♂️🧗🏻‍♀️🧗🏼‍♀️🧗🏽‍♀️🧗🏾‍♀️🧗🏿‍♀️🏇🏻🏇🏼🏇🏽🏇🏾🏇🏿🏂🏻🏂🏼🏂🏽🏂🏾🏂🏿🏌🏻🏌🏼🏌🏽🏌🏾🏌🏿🏌🏻‍♂️🏌🏼‍♂️🏌🏽‍♂️🏌🏾‍♂️🏌🏿‍♂️🏌🏻‍♀️🏌🏼‍♀️🏌🏽‍♀️🏌🏾‍♀️🏌🏿‍♀️🏄🏻🏄🏼🏄🏽🏄🏾🏄🏿🏄🏻‍♂️🏄🏼‍♂️🏄🏽‍♂️🏄🏾‍♂️🏄🏿‍♂️🏄🏻‍♀️🏄🏼‍♀️🏄🏽‍♀️🏄🏾‍♀️🏄🏿‍♀️🚣🏻🚣🏼🚣🏽🚣🏾🚣🏿🚣🏻‍♂️🚣🏼‍♂️🚣🏽‍♂️🚣🏾‍♂️🚣🏿‍♂️🚣🏻‍♀️🚣🏼‍♀️🚣🏽‍♀️🚣🏾‍♀️🚣🏿‍♀️🏊🏻🏊🏼🏊🏽🏊🏾🏊🏿🏊🏻‍♂️🏊🏼‍♂️🏊🏽‍♂️🏊🏾‍♂️🏊🏿‍♂️🏊🏻‍♀️🏊🏼‍♀️🏊🏽‍♀️🏊🏾‍♀️🏊🏿‍♀️⛹🏻⛹🏼⛹🏽⛹🏾⛹🏿⛹🏻‍♂️⛹🏼‍♂️⛹🏽‍♂️⛹🏾‍♂️⛹🏿‍♂️⛹🏻‍♀️⛹🏼‍♀️⛹🏽‍♀️⛹🏾‍♀️⛹🏿‍♀️🏋🏻🏋🏼🏋🏽🏋🏾🏋🏿🏋🏻‍♂️🏋🏼‍♂️🏋🏽‍♂️🏋🏾‍♂️🏋🏿‍♂️🏋🏻‍♀️🏋🏼‍♀️🏋🏽‍♀️🏋🏾‍♀️🏋🏿‍♀️🚴🏻🚴🏼🚴🏽🚴🏾🚴🏿🚴🏻‍♂️🚴🏼‍♂️🚴🏽‍♂️🚴🏾‍♂️🚴🏿‍♂️🚴🏻‍♀️🚴🏼‍♀️🚴🏽‍♀️🚴🏾‍♀️🚴🏿‍♀️🚵🏻🚵🏼🚵🏽🚵🏾🚵🏿🚵🏻‍♂️🚵🏼‍♂️🚵🏽‍♂️🚵🏾‍♂️🚵🏿‍♂️🚵🏻‍♀️🚵🏼‍♀️🚵🏽‍♀️🚵🏾‍♀️🚵🏿‍♀️🤸🏻🤸🏼🤸🏽🤸🏾🤸🏿🤸🏻‍♂️🤸🏼‍♂️🤸🏽‍♂️🤸🏾‍♂️🤸🏿‍♂️🤸🏻‍♀️🤸🏼‍♀️🤸🏽‍♀️🤸🏾‍♀️🤸🏿‍♀️🤽🏻🤽🏼🤽🏽🤽🏾🤽🏿🤽🏻‍♂️🤽🏼‍♂️🤽🏽‍♂️🤽🏾‍♂️🤽🏿‍♂️🤽🏻‍♀️🤽🏼‍♀️🤽🏽‍♀️🤽🏾‍♀️🤽🏿‍♀️🤾🏻🤾🏼🤾🏽🤾🏾🤾🏿🤾🏻‍♂️🤾🏼‍♂️🤾🏽‍♂️🤾🏾‍♂️🤾🏿‍♂️🤾🏻‍♀️🤾🏼‍♀️🤾🏽‍♀️🤾🏾‍♀️🤾🏿‍♀️🤹🏻🤹🏼🤹🏽🤹🏾🤹🏿🤹🏻‍♂️🤹🏼‍♂️🤹🏽‍♂️🤹🏾‍♂️🤹🏿‍♂️🤹🏻‍♀️🤹🏼‍♀️🤹🏽‍♀️🤹🏾‍♀️🤹🏿‍♀️🧘🏻🧘🏼🧘🏽🧘🏾🧘🏿🧘🏻‍♂️🧘🏼‍♂️🧘🏽‍♂️🧘🏾‍♂️🧘🏿‍♂️🧘🏻‍♀️🧘🏼‍♀️🧘🏽‍♀️🧘🏾‍♀️🧘🏿‍♀️🛀🏻🛀🏼🛀🏽🛀🏾🛀🏿🛌🏻🛌🏼🛌🏽🛌🏾🛌🏿🧑🏻‍🤝‍🧑🏻🧑🏻‍🤝‍🧑🏼🧑🏻‍🤝‍🧑🏽🧑🏻‍🤝‍🧑🏾🧑🏻‍🤝‍🧑🏿🧑🏼‍🤝‍🧑🏻🧑🏼‍🤝‍🧑🏼🧑🏼‍🤝‍🧑🏽🧑🏼‍🤝‍🧑🏾🧑🏼‍🤝‍🧑🏿🧑🏽‍🤝‍🧑🏻🧑🏽‍🤝‍🧑🏼🧑🏽‍🤝‍🧑🏽🧑🏽‍🤝‍🧑🏾🧑🏽‍🤝‍🧑🏿🧑🏾‍🤝‍🧑🏻🧑🏾‍🤝‍🧑🏼🧑🏾‍🤝‍🧑🏽🧑🏾‍🤝‍🧑🏾🧑🏾‍🤝‍🧑🏿🧑🏿‍🤝‍🧑🏻🧑🏿‍🤝‍🧑🏼🧑🏿‍🤝‍🧑🏽🧑🏿‍🤝‍🧑🏾🧑🏿‍🤝‍🧑🏿👭🏻👩🏻‍🤝‍👩🏼👩🏻‍🤝‍👩🏽👩🏻‍🤝‍👩🏾👩🏻‍🤝‍👩🏿👩🏼‍🤝‍👩🏻👭🏼👩🏼‍🤝‍👩🏽👩🏼‍🤝‍👩🏾👩🏼‍🤝‍👩🏿👩🏽‍🤝‍👩🏻👩🏽‍🤝‍👩🏼👭🏽👩🏽‍🤝‍👩🏾👩🏽‍🤝‍👩🏿👩🏾‍🤝‍👩🏻👩🏾‍🤝‍👩🏼👩🏾‍🤝‍👩🏽👭🏾👩🏾‍🤝‍👩🏿👩🏿‍🤝‍👩🏻👩🏿‍🤝‍👩🏼👩🏿‍🤝‍👩🏽👩🏿‍🤝‍👩🏾👭🏿👫🏻👩🏻‍🤝‍👨🏼👩🏻‍🤝‍👨🏽👩🏻‍🤝‍👨🏾👩🏻‍🤝‍👨🏿👩🏼‍🤝‍👨🏻👫🏼👩🏼‍🤝‍👨🏽👩🏼‍🤝‍👨🏾👩🏼‍🤝‍👨🏿👩🏽‍🤝‍👨🏻👩🏽‍🤝‍👨🏼👫🏽👩🏽‍🤝‍👨🏾👩🏽‍🤝‍👨🏿👩🏾‍🤝‍👨🏻👩🏾‍🤝‍👨🏼👩🏾‍🤝‍👨🏽👫🏾👩🏾‍🤝‍👨🏿👩🏿‍🤝‍👨🏻👩🏿‍🤝‍👨🏼👩🏿‍🤝‍👨🏽👩🏿‍🤝‍👨🏾👫🏿👬🏻👨🏻‍🤝‍👨🏼👨🏻‍🤝‍👨🏽👨🏻‍🤝‍👨🏾👨🏻‍🤝‍👨🏿👨🏼‍🤝‍👨🏻👬🏼👨🏼‍🤝‍👨🏽👨🏼‍🤝‍👨🏾👨🏼‍🤝‍👨🏿👨🏽‍🤝‍👨🏻👨🏽‍🤝‍👨🏼👬🏽👨🏽‍🤝‍👨🏾👨🏽‍🤝‍👨🏿👨🏾‍🤝‍👨🏻👨🏾‍🤝‍👨🏼👨🏾‍🤝‍👨🏽👬🏾👨🏾‍🤝‍👨🏿👨🏿‍🤝‍👨🏻👨🏿‍🤝‍👨🏼👨🏿‍🤝‍👨🏽👨🏿‍🤝‍👨🏾👬🏿💏🏻💏🏼💏🏽💏🏾💏🏿🧑🏻‍❤️‍💋‍🧑🏼🧑🏻‍❤️‍💋‍🧑🏽🧑🏻‍❤️‍💋‍🧑🏾🧑🏻‍❤️‍💋‍🧑🏿🧑🏼‍❤️‍💋‍🧑🏻🧑🏼‍❤️‍💋‍🧑🏽🧑🏼‍❤️‍💋‍🧑🏾🧑🏼‍❤️‍💋‍🧑🏿🧑🏽‍❤️‍💋‍🧑🏻🧑🏽‍❤️‍💋‍🧑🏼🧑🏽‍❤️‍💋‍🧑🏾🧑🏽‍❤️‍💋‍🧑🏿🧑🏾‍❤️‍💋‍🧑🏻🧑🏾‍❤️‍💋‍🧑🏼🧑🏾‍❤️‍💋‍🧑🏽🧑🏾‍❤️‍💋‍🧑🏿🧑🏿‍❤️‍💋‍🧑🏻🧑🏿‍❤️‍💋‍🧑🏼🧑🏿‍❤️‍💋‍🧑🏽🧑🏿‍❤️‍💋‍🧑🏾👩🏻‍❤️‍💋‍👨🏻👩🏻‍❤️‍💋‍👨🏼👩🏻‍❤️‍💋‍👨🏽👩🏻‍❤️‍💋‍👨🏾👩🏻‍❤️‍💋‍👨🏿👩🏼‍❤️‍💋‍👨🏻👩🏼‍❤️‍💋‍👨🏼👩🏼‍❤️‍💋‍👨🏽👩🏼‍❤️‍💋‍👨🏾👩🏼‍❤️‍💋‍👨🏿👩🏽‍❤️‍💋‍👨🏻👩🏽‍❤️‍💋‍👨🏼👩🏽‍❤️‍💋‍👨🏽👩🏽‍❤️‍💋‍👨🏾👩🏽‍❤️‍💋‍👨🏿👩🏾‍❤️‍💋‍👨🏻👩🏾‍❤️‍💋‍👨🏼👩🏾‍❤️‍💋‍👨🏽👩🏾‍❤️‍💋‍👨🏾👩🏾‍❤️‍💋‍👨🏿👩🏿‍❤️‍💋‍👨🏻👩🏿‍❤️‍💋‍👨🏼👩🏿‍❤️‍💋‍👨🏽👩🏿‍❤️‍💋‍👨🏾👩🏿‍❤️‍💋‍👨🏿👨🏻‍❤️‍💋‍👨🏻👨🏻‍❤️‍💋‍👨🏼👨🏻‍❤️‍💋‍👨🏽👨🏻‍❤️‍💋‍👨🏾👨🏻‍❤️‍💋‍👨🏿👨🏼‍❤️‍💋‍👨🏻👨🏼‍❤️‍💋‍👨🏼👨🏼‍❤️‍💋‍👨🏽👨🏼‍❤️‍💋‍👨🏾👨🏼‍❤️‍💋‍👨🏿👨🏽‍❤️‍💋‍👨🏻👨🏽‍❤️‍💋‍👨🏼👨🏽‍❤️‍💋‍👨🏽👨🏽‍❤️‍💋‍👨🏾👨🏽‍❤️‍💋‍👨🏿👨🏾‍❤️‍💋‍👨🏻👨🏾‍❤️‍💋‍👨🏼👨🏾‍❤️‍💋‍👨🏽👨🏾‍❤️‍💋‍👨🏾👨🏾‍❤️‍💋‍👨🏿👨🏿‍❤️‍💋‍👨🏻👨🏿‍❤️‍💋‍👨🏼👨🏿‍❤️‍💋‍👨🏽👨🏿‍❤️‍💋‍👨🏾👨🏿‍❤️‍💋‍👨🏿👩🏻‍❤️‍💋‍👩🏻👩🏻‍❤️‍💋‍👩🏼👩🏻‍❤️‍💋‍👩🏽👩🏻‍❤️‍💋‍👩🏾👩🏻‍❤️‍💋‍👩🏿👩🏼‍❤️‍💋‍👩🏻👩🏼‍❤️‍💋‍👩🏼👩🏼‍❤️‍💋‍👩🏽👩🏼‍❤️‍💋‍👩🏾👩🏼‍❤️‍💋‍👩🏿👩🏽‍❤️‍💋‍👩🏻👩🏽‍❤️‍💋‍👩🏼👩🏽‍❤️‍💋‍👩🏽👩🏽‍❤️‍💋‍👩🏾👩🏽‍❤️‍💋‍👩🏿👩🏾‍❤️‍💋‍👩🏻👩🏾‍❤️‍💋‍👩🏼👩🏾‍❤️‍💋‍👩🏽👩🏾‍❤️‍💋‍👩🏾👩🏾‍❤️‍💋‍👩🏿👩🏿‍❤️‍💋‍👩🏻👩🏿‍❤️‍💋‍👩🏼👩🏿‍❤️‍💋‍👩🏽👩🏿‍❤️‍💋‍👩🏾👩🏿‍❤️‍💋‍👩🏿💑🏻💑🏼💑🏽💑🏾💑🏿🧑🏻‍❤️‍🧑🏼🧑🏻‍❤️‍🧑🏽🧑🏻‍❤️‍🧑🏾🧑🏻‍❤️‍🧑🏿🧑🏼‍❤️‍🧑🏻🧑🏼‍❤️‍🧑🏽🧑🏼‍❤️‍🧑🏾🧑🏼‍❤️‍🧑🏿🧑🏽‍❤️‍🧑🏻🧑🏽‍❤️‍🧑🏼🧑🏽‍❤️‍🧑🏾🧑🏽‍❤️‍🧑🏿🧑🏾‍❤️‍🧑🏻🧑🏾‍❤️‍🧑🏼🧑🏾‍❤️‍🧑🏽🧑🏾‍❤️‍🧑🏿🧑🏿‍❤️‍🧑🏻🧑🏿‍❤️‍🧑🏼🧑🏿‍❤️‍🧑🏽🧑🏿‍❤️‍🧑🏾👩🏻‍❤️‍👨🏻👩🏻‍❤️‍👨🏼👩🏻‍❤️‍👨🏽👩🏻‍❤️‍👨🏾👩🏻‍❤️‍👨🏿👩🏼‍❤️‍👨🏻👩🏼‍❤️‍👨🏼👩🏼‍❤️‍👨🏽👩🏼‍❤️‍👨🏾👩🏼‍❤️‍👨🏿👩🏽‍❤️‍👨🏻👩🏽‍❤️‍👨🏼👩🏽‍❤️‍👨🏽👩🏽‍❤️‍👨🏾👩🏽‍❤️‍👨🏿👩🏾‍❤️‍👨🏻👩🏾‍❤️‍👨🏼👩🏾‍❤️‍👨🏽👩🏾‍❤️‍👨🏾👩🏾‍❤️‍👨🏿👩🏿‍❤️‍👨🏻👩🏿‍❤️‍👨🏼👩🏿‍❤️‍👨🏽👩🏿‍❤️‍👨🏾👩🏿‍❤️‍👨🏿👨🏻‍❤️‍👨🏻👨🏻‍❤️‍👨🏼👨🏻‍❤️‍👨🏽👨🏻‍❤️‍👨🏾👨🏻‍❤️‍👨🏿👨🏼‍❤️‍👨🏻👨🏼‍❤️‍👨🏼👨🏼‍❤️‍👨🏽👨🏼‍❤️‍👨🏾👨🏼‍❤️‍👨🏿👨🏽‍❤️‍👨🏻👨🏽‍❤️‍👨🏼👨🏽‍❤️‍👨🏽👨🏽‍❤️‍👨🏾👨🏽‍❤️‍👨🏿👨🏾‍❤️‍👨🏻👨🏾‍❤️‍👨🏼👨🏾‍❤️‍👨🏽👨🏾‍❤️‍👨🏾👨🏾‍❤️‍👨🏿👨🏿‍❤️‍👨🏻👨🏿‍❤️‍👨🏼👨🏿‍❤️‍👨🏽👨🏿‍❤️‍👨🏾👨🏿‍❤️‍👨🏿👩🏻‍❤️‍👩🏻👩🏻‍❤️‍👩🏼👩🏻‍❤️‍👩🏽👩🏻‍❤️‍👩🏾👩🏻‍❤️‍👩🏿👩🏼‍❤️‍👩🏻👩🏼‍❤️‍👩🏼👩🏼‍❤️‍👩🏽👩🏼‍❤️‍👩🏾👩🏼‍❤️‍👩🏿👩🏽‍❤️‍👩🏻👩🏽‍❤️‍👩🏼👩🏽‍❤️‍👩🏽👩🏽‍❤️‍👩🏾👩🏽‍❤️‍👩🏿👩🏾‍❤️‍👩🏻👩🏾‍❤️‍👩🏼👩🏾‍❤️‍👩🏽👩🏾‍❤️‍👩🏾👩🏾‍❤️‍👩🏿👩🏿‍❤️‍👩🏻👩🏿‍❤️‍👩🏼👩🏿‍❤️‍👩🏽👩🏿‍❤️‍👩🏾👩🏿‍❤️‍👩🏿🏻🏼🏽🏾🏿'; + } } return simpleCharacterSet; diff --git a/src/reducers/PasswordReducer/index.js b/src/reducers/PasswordReducer/index.js index 92915f9..01f1aea 100644 --- a/src/reducers/PasswordReducer/index.js +++ b/src/reducers/PasswordReducer/index.js @@ -2,7 +2,8 @@ import { SET_ALLOW_DUPLICATES, SET_BRACKETS, SET_CAPITAL_LETTERS, - SET_CHARACTER_SET, SET_INCLUDE_SYMBOLS, + SET_CHARACTER_SET, + SET_INCLUDE_SYMBOLS, SET_NUMBERS, SET_PASSWORD_AMOUNT, SET_PASSWORD_LENGTH_MAX, @@ -12,6 +13,7 @@ import { SET_SPACES, SET_SPECIAL_CHARACTERS, SET_USE_ADVANCED, + SET_USE_EMOJIS, } from './Actions/actionTypes'; const PasswordReducer = (state, action) => { @@ -94,6 +96,11 @@ const PasswordReducer = (state, action) => { ...state, allowDuplicates: action.payload, }; + case SET_USE_EMOJIS: + return { + ...state, + useEmojis: action.payload, + }; default: return state; } diff --git a/src/routes/Generate/index.jsx b/src/routes/Generate/index.jsx index 8ebfa65..b2188ec 100644 --- a/src/routes/Generate/index.jsx +++ b/src/routes/Generate/index.jsx @@ -10,6 +10,9 @@ import InputLabel from '@mui/material/InputLabel'; import Select from '@mui/material/Select'; import MenuItem from '@mui/material/MenuItem'; import { DataGrid } from '@mui/x-data-grid'; +import Graphemer from 'graphemer'; +import Alert from '@mui/material/Alert'; +import Snackbar from '@mui/material/Snackbar'; import { MainContext } from '../../contexts/MainContextProvider'; import { PasswordContext } from '../../contexts/PasswordContextProvider'; import { setError, setLoading, setPageIndex } from '../../reducers/MainReducer/Actions'; @@ -31,10 +34,11 @@ const Generate = () => { const language = state1.languages[languageIndex]; const [exportType, setExportType] = useState('application/json'); + const [snackOpen, setSnackOpen] = useState(false); const { min, max, amount, characterSet, includeSymbols, passwords, useAdvanced, smallLetters, - capitalLetters, spaces, specialCharacters, numbers, brackets, allowDuplicates, + capitalLetters, spaces, specialCharacters, numbers, brackets, allowDuplicates, useEmojis, } = state2; const worker = useWorker(createWorker); @@ -48,11 +52,19 @@ const Generate = () => { numbers, specialCharacters, brackets, + useEmojis, ); const cannotGenerate = !simpleCharacterSet || simpleCharacterSet.length === 0 || min > max || max < min; + /** + * Close the snackbar + */ + const closeSnack = () => { + setSnackOpen(false); + }; + /** * Generate passwords */ @@ -83,15 +95,15 @@ const Generate = () => { const getExportData = (passwordArray, type) => { let toExport = ''; if (type === 'text/plain') { - for (let i = 0; i < passwordArray.length; i += 1) { - toExport += `${passwordArray[i]}\n`; - } + passwordArray.forEach((e) => { + toExport += `${e}\n`; + }); } else if (type === 'application/json') { toExport = JSON.stringify(passwordArray, null, 2); } else if (type === 'text/csv') { - for (let i = 0; i < passwordArray.length; i += 1) { - toExport += `"${passwordArray[i].replace('"', '""')}",\n`; - } + passwordArray.forEach((e) => { + toExport += `"${e.replace('"', '""')}",\n`; + }); } return toExport; }; @@ -123,6 +135,8 @@ const Generate = () => { document.body.removeChild(link); URL.revokeObjectURL(href); + + setSnackOpen(true); }; /** @@ -156,6 +170,9 @@ const Generate = () => { const resExt = res.slice((res.lastIndexOf('.') - 1 >>> 0) + 2); const path = resExt && resExt.length > 0 ? res : `${res}.${ext}`; invoke('save_string_to_disk', { content: getExportData(passwords, exportType), path }) + .then(() => { + setSnackOpen(true); + }) .catch((e) => { d1(setError(e)); }); @@ -204,7 +221,10 @@ const Generate = () => { const passwordRows = []; if (passwords && passwords.length > 0) { - passwords.forEach((e, i) => passwordRows.push(createData(`${e}${i}`, e, e.length, PasswordStrength(e)))); + const splitter = new Graphemer(); + passwords.forEach((e, i) => { + passwordRows.push(createData(`${e}${i}`, e, splitter.countGraphemes(e), PasswordStrength(e))); + }); } if (loading) { @@ -297,6 +317,11 @@ const Generate = () => { {language.plainText} + + + {language.exportSuccessful} + + ); }; diff --git a/src/routes/Home/index.jsx b/src/routes/Home/index.jsx index 341ebc2..913f437 100644 --- a/src/routes/Home/index.jsx +++ b/src/routes/Home/index.jsx @@ -35,6 +35,7 @@ import { setSpaces, setSpecialCharacters, setUseAdvanced, + setUseEmojis, } from '../../reducers/PasswordReducer/Actions'; import LoadingBar from '../../components/LoadingBar'; import PasswordTips from '../../components/PasswordTips'; @@ -62,6 +63,7 @@ const Home = () => { characterSet, includeSymbols, allowDuplicates, + useEmojis, } = state2; const navigate = useNavigate(); @@ -76,6 +78,7 @@ const Home = () => { numbers, specialCharacters, brackets, + useEmojis, ); const cannotGenerate = !simpleCharacterSet || simpleCharacterSet.length === 0 @@ -134,6 +137,14 @@ const Home = () => { d2(setAllowDuplicates(event.target.checked)); }; + /** + * Change whether emojis can be used or not + * @param event The event argument + */ + const handleEmojiChange = (event) => { + d2(setUseEmojis(event.target.checked)); + }; + /** * Change whether advanced options are being used or not * @param event The event argument @@ -307,6 +318,16 @@ const Home = () => { )} label={language.allowDuplicates} /> + + )} + label={language.useEmojis} + /> { // eslint-disable-next-line import/prefer-default-export,max-len export const PasswordGenerator = (minLength, maxLength, characterSet, includeSymbols, amount, allowDuplicates) => { const passwordArray = []; + const splitter = new Graphemer(); const totalCharacterSet = characterSet + includeSymbols; + const graphemeCount = splitter.countGraphemes(totalCharacterSet); + const graphemes = splitter.splitGraphemes(totalCharacterSet); + let maxCount = 0; if (!allowDuplicates) { let current = parseInt(minLength, 10); while (current <= parseInt(maxLength, 10)) { // eslint-disable-next-line no-restricted-properties,prefer-exponentiation-operator - maxCount += Math.pow(totalCharacterSet.length, current); + maxCount += Math.pow(graphemeCount, current); current += 1; } } @@ -53,7 +59,7 @@ export const PasswordGenerator = (minLength, maxLength, characterSet, includeSym window.crypto.getRandomValues(randomBuffer); const randomNumber = randomBuffer[0] / (0xffffffff + 1); - password += totalCharacterSet[Math.floor(randomNumber * totalCharacterSet.length)]; + password += graphemes[Math.floor(randomNumber * graphemeCount)]; } if (allowDuplicates === true || (!allowDuplicates && !passwordArray.includes(password))) { diff --git a/src/utils/PasswordStrength/index.js b/src/utils/PasswordStrength/index.js index 7325d5d..9cd55c8 100644 --- a/src/utils/PasswordStrength/index.js +++ b/src/utils/PasswordStrength/index.js @@ -12,6 +12,7 @@ const PasswordStrength = (password) => { const hasUpper = /[A-Z]/.test(password); const hasSymbol = /[!@#€£µ$%^&*()_+\-=[\]{};':"\\|,.<>/?]/.test(password); const hasRepetition = /([a-zA-Z0-9])\1{2,}/.test(password); + const hasEmoji = /\p{Emoji}/u.test(password); if (length > 4) { strength += 10; @@ -40,8 +41,11 @@ const PasswordStrength = (password) => { if (hasRepetition) { strength -= 10; } + if (hasEmoji) { + strength += 10; + } - strength = (strength / 80) * 100; + strength = (strength / 90) * 100; return strength; }; diff --git a/yarn.lock b/yarn.lock index cdcae7a..1ed11df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,7 +32,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c @@ -40,25 +40,25 @@ __metadata: linkType: hard "@babel/core@npm:^7.16.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/core@npm:7.23.5" + version: 7.23.6 + resolution: "@babel/core@npm:7.23.6" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.5" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/generator": "npm:^7.23.6" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.5" - "@babel/parser": "npm:^7.23.5" + "@babel/helpers": "npm:^7.23.6" + "@babel/parser": "npm:^7.23.6" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" + "@babel/traverse": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 311a512a870ee330a3f9a7ea89e5df790b2b5af0b1bd98b10b4edc0de2ac440f0df4d69ea2c0ee38a4b89041b9a495802741d93603be7d4fd834ec8bb6970bd2 + checksum: a02bae7d916029b70706dc301535e1b31e5d216f55d4ee6f64a15825c6b69ee2c14c52a213d1497ec414e925ed4e9d897d41fb0d75df9fea28ed2c0008790e31 languageName: node linkType: hard @@ -76,15 +76,15 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/generator@npm:7.23.5" +"@babel/generator@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/generator@npm:7.23.6" dependencies: - "@babel/types": "npm:^7.23.5" + "@babel/types": "npm:^7.23.6" "@jridgewell/gen-mapping": "npm:^0.3.2" "@jridgewell/trace-mapping": "npm:^0.3.17" jsesc: "npm:^2.5.1" - checksum: 14c6e874f796c4368e919bed6003bb0adc3ce837760b08f9e646d20aeb5ae7d309723ce6e4f06bcb4a2b5753145446c8e4425851380f695e40e71e1760f49e7b + checksum: 53540e905cd10db05d9aee0a5304e36927f455ce66f95d1253bb8a179f286b88fa7062ea0db354c566fe27f8bb96567566084ffd259f8feaae1de5eccc8afbda languageName: node linkType: hard @@ -106,22 +106,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6": - version: 7.22.15 - resolution: "@babel/helper-compilation-targets@npm:7.22.15" +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: - "@babel/compat-data": "npm:^7.22.9" - "@babel/helper-validator-option": "npm:^7.22.15" - browserslist: "npm:^4.21.9" + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-validator-option": "npm:^7.23.5" + browserslist: "npm:^4.22.2" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 45b9286861296e890f674a3abb199efea14a962a27d9b8adeb44970a9fd5c54e73a9e342e8414d2851cf4f98d5994537352fbce7b05ade32e9849bbd327f9ff1 + checksum: ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helper-create-class-features-plugin@npm:7.23.5" +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.6" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" "@babel/helper-environment-visitor": "npm:^7.22.20" @@ -134,7 +134,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: a29bd03725630dcf2f094b7e3fe45c63984e63a5d092ceffec2da9d95c108afcc073863d6e9c0fb944d07f3cde5ebac4bba833473ca96af5e949f7d471154901 + checksum: 4b923a63b757bf030839263b9609d4fc1f9858a701c173a6a15d0fc135a71847c842faddfd8af8eb324d2379725ba0d9a3d004d48ea7aac2c973cea36627707e languageName: node linkType: hard @@ -151,9 +151,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.3": - version: 0.4.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3" +"@babel/helper-define-polyfill-provider@npm:^0.4.4": + version: 0.4.4 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" dependencies: "@babel/helper-compilation-targets": "npm:^7.22.6" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -162,7 +162,7 @@ __metadata: resolve: "npm:^1.14.2" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 0007035157e0d32ee9cb4ca319b89d6f3705523383efe52a59eb3d4dfa2ed08c5147e49c10a6e6d69c15221d89c76c8e5875475d6710fb44a5c37b8e69388e40 + checksum: 60126f5f719b9e2114df62e3bf3ac0797b71d8dc733db60192eb169b004fde72ee309fa5848c5fdfe98b8e8863c46f55e16da5aa8a4e420b4d2670cd0c5dd708 languageName: node linkType: hard @@ -326,14 +326,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helpers@npm:7.23.5" +"@babel/helpers@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helpers@npm:7.23.6" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" - checksum: a37e2728eb4378a4888e5d614e28de7dd79b55ac8acbecd0e5c761273e2a02a8f33b34b1932d9069db55417ace2937cbf8ec37c42f1030ce6d228857d7ccaa4f + "@babel/traverse": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" + checksum: df1cf6607676ad36f52f652ec03536f2732d70aef5e76dba5c964e34d49f3c2d3dcf9fb3740db359f53071d74b64606a833d5ba156f79f437f71bfe06e2e7e19 languageName: node linkType: hard @@ -348,12 +348,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/parser@npm:7.23.5" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" bin: parser: ./bin/babel-parser.js - checksum: 3356aa90d7bafb4e2c7310e7c2c3d443c4be4db74913f088d3d577a1eb914ea4188e05fd50a47ce907a27b755c4400c4e3cbeee73dbeb37761f6ca85954f5a20 + checksum: 6f76cd5ccae1fa9bcab3525b0865c6222e9c1d22f87abc69f28c5c7b2c8816a13361f5bd06bddbd5faf903f7320a8feba02545c981468acec45d12a03db7755e languageName: node linkType: hard @@ -406,17 +406,18 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.16.4": - version: 7.23.5 - resolution: "@babel/plugin-proposal-decorators@npm:7.23.5" + version: 7.23.6 + resolution: "@babel/plugin-proposal-decorators@npm:7.23.6" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.23.5" + "@babel/helper-create-class-features-plugin": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-replace-supers": "npm:^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" "@babel/plugin-syntax-decorators": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f1fffa9f24668e3a2f78ee4c6ca1b8e65b46f69d8fbe77be46dc286b0ac02336fbc77eeaffadcec1b08019e241547cfbfee9a494aeaf6bb6b4eeac1149be5994 + checksum: 3ab6126ca4d463e3070ebbff734a00750776e475c69cabd35f25bbb6e5b7b355fa63f863c73e18f2ba9104f8acc728bdd4dbc1bacb88160714e0632287ccb5f4 languageName: node linkType: hard @@ -933,14 +934,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-for-of@npm:7.23.3" +"@babel/plugin-transform-for-of@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/plugin-transform-for-of@npm:7.23.6" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8a36202cfee312ba80e509c7c2131e6773524e572b4dc64a8ee95bd912634fdeb5ea91c6c7747ee30e03562d0f0d333f88ed7dbb929b36b60b8d74189189e12f + checksum: 46681b6ab10f3ca2d961f50d4096b62ab5d551e1adad84e64be1ee23e72eb2f26a1e30e617e853c74f1349fffe4af68d33921a128543b6f24b6d46c09a3e2aec languageName: node linkType: hard @@ -1296,8 +1298,8 @@ __metadata: linkType: hard "@babel/plugin-transform-runtime@npm:^7.16.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-runtime@npm:7.23.4" + version: 7.23.6 + resolution: "@babel/plugin-transform-runtime@npm:7.23.6" dependencies: "@babel/helper-module-imports": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -1307,7 +1309,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6ac29012550cdd10b65ec43fef0c7f43904ec458c43d597f627d8f52807413e57ea94e3986dbace576d734e67c2d09be5e43e77c72567d18f8c4ac5e19844625 + checksum: 94a7ee92f073df53fd8bebf9ed391a95553716077da1c6c3a57f10f042358c938495d55e6b09b4b50544c01f03560c4770c17698e1c24817a15d3668e8231249 languageName: node linkType: hard @@ -1368,16 +1370,16 @@ __metadata: linkType: hard "@babel/plugin-transform-typescript@npm:^7.23.3": - version: 7.23.5 - resolution: "@babel/plugin-transform-typescript@npm:7.23.5" + version: 7.23.6 + resolution: "@babel/plugin-transform-typescript@npm:7.23.6" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.23.5" + "@babel/helper-create-class-features-plugin": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-typescript": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 75d6689bfdf4c9462b5fb21107c295717c9bedffe5eae8b22b0a65c9603660683d55e020df83825de13792358043bd939f48efc2b3a293b5210a608076c94934 + checksum: e08f7a981fe157e32031070b92cd77030018b002d063e4be3711ffb7ec04539478b240d8967a4748abb56eccc0ba376f094f30711ef6a028b2a89d15d6ddc01f languageName: node linkType: hard @@ -1429,11 +1431,11 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.16.4": - version: 7.23.5 - resolution: "@babel/preset-env@npm:7.23.5" + version: 7.23.6 + resolution: "@babel/preset-env@npm:7.23.6" dependencies: "@babel/compat-data": "npm:^7.23.5" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" @@ -1473,7 +1475,7 @@ __metadata: "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" - "@babel/plugin-transform-for-of": "npm:^7.23.3" + "@babel/plugin-transform-for-of": "npm:^7.23.6" "@babel/plugin-transform-function-name": "npm:^7.23.3" "@babel/plugin-transform-json-strings": "npm:^7.23.4" "@babel/plugin-transform-literals": "npm:^7.23.3" @@ -1514,7 +1516,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2a0e1274dec045186e131c6433659b75492583290e8d41633c616f6bff829cb2e4b2f9a57f556283a54db3bd6aa697911e56a36f607911a29b731c445a5b5a06 + checksum: 5b24d179af52f082d04b9b98cc4777e37bf31a97cef5a91d8917e996dbd75f2f743c88c40f80744cb8529355bb674619d150c0260c32d834aa4067e21d0c8962 languageName: node linkType: hard @@ -1569,12 +1571,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": - version: 7.23.5 - resolution: "@babel/runtime@npm:7.23.5" +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.5, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": + version: 7.23.6 + resolution: "@babel/runtime@npm:7.23.6" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: ca679cc91bb7e424bc2db87bb58cc3b06ade916b9adb21fbbdc43e54cdaacb3eea201ceba2a0464b11d2eb65b9fe6a6ffcf4d7521fa52994f19be96f1af14788 + checksum: d886954e985ef8e421222f7a2848884d96a752e0020d3078b920dd104e672fdf23bcc6f51a44313a048796319f1ac9d09c2c88ec8cbb4e1f09174bcd3335b9ff languageName: node linkType: hard @@ -1589,32 +1591,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/traverse@npm:7.23.5" +"@babel/traverse@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/traverse@npm:7.23.6" dependencies: "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" "@babel/helper-environment-visitor": "npm:^7.22.20" "@babel/helper-function-name": "npm:^7.23.0" "@babel/helper-hoist-variables": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" - debug: "npm:^4.1.0" + "@babel/parser": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" + debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: c5ea793080ca6719b0a1612198fd25e361cee1f3c14142d7a518d2a1eeb5c1d21f7eec1b26c20ea6e1ddd8ed12ab50b960ff95ffd25be353b6b46e1b54d6f825 + checksum: 5b4ebb94a00a7e1daf111e4b0b45a7998d5b7598637a14e75e855e88cc1b702789e09a958726b5d599a003be1e9032dbdfde4b88ea6061332228738950d5582d languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.5, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.23.5 - resolution: "@babel/types@npm:7.23.5" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.6 + resolution: "@babel/types@npm:7.23.6" dependencies: "@babel/helper-string-parser": "npm:^7.23.4" "@babel/helper-validator-identifier": "npm:^7.22.20" to-fast-properties: "npm:^2.0.0" - checksum: 7dd5e2f59828ed046ad0b06b039df2524a8b728d204affb4fc08da2502b9dd3140b1356b5166515d229dc811539a8b70dcd4bc507e06d62a89f4091a38d0b0fb + checksum: 42cefce8a68bd09bb5828b4764aa5586c53c60128ac2ac012e23858e1c179347a4aac9c66fc577994fbf57595227611c5ec8270bf0cfc94ff033bbfac0550b70 languageName: node linkType: hard @@ -1764,156 +1766,156 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-arm64@npm:0.19.8" +"@esbuild/android-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/android-arm64@npm:0.19.9" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-arm@npm:0.19.8" +"@esbuild/android-arm@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/android-arm@npm:0.19.9" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/android-x64@npm:0.19.8" +"@esbuild/android-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/android-x64@npm:0.19.9" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/darwin-arm64@npm:0.19.8" +"@esbuild/darwin-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/darwin-arm64@npm:0.19.9" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/darwin-x64@npm:0.19.8" +"@esbuild/darwin-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/darwin-x64@npm:0.19.9" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/freebsd-arm64@npm:0.19.8" +"@esbuild/freebsd-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/freebsd-arm64@npm:0.19.9" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/freebsd-x64@npm:0.19.8" +"@esbuild/freebsd-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/freebsd-x64@npm:0.19.9" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-arm64@npm:0.19.8" +"@esbuild/linux-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-arm64@npm:0.19.9" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-arm@npm:0.19.8" +"@esbuild/linux-arm@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-arm@npm:0.19.9" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-ia32@npm:0.19.8" +"@esbuild/linux-ia32@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-ia32@npm:0.19.9" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-loong64@npm:0.19.8" +"@esbuild/linux-loong64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-loong64@npm:0.19.9" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-mips64el@npm:0.19.8" +"@esbuild/linux-mips64el@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-mips64el@npm:0.19.9" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-ppc64@npm:0.19.8" +"@esbuild/linux-ppc64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-ppc64@npm:0.19.9" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-riscv64@npm:0.19.8" +"@esbuild/linux-riscv64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-riscv64@npm:0.19.9" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-s390x@npm:0.19.8" +"@esbuild/linux-s390x@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-s390x@npm:0.19.9" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/linux-x64@npm:0.19.8" +"@esbuild/linux-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/linux-x64@npm:0.19.9" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/netbsd-x64@npm:0.19.8" +"@esbuild/netbsd-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/netbsd-x64@npm:0.19.9" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/openbsd-x64@npm:0.19.8" +"@esbuild/openbsd-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/openbsd-x64@npm:0.19.9" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/sunos-x64@npm:0.19.8" +"@esbuild/sunos-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/sunos-x64@npm:0.19.9" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-arm64@npm:0.19.8" +"@esbuild/win32-arm64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/win32-arm64@npm:0.19.9" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-ia32@npm:0.19.8" +"@esbuild/win32-ia32@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/win32-ia32@npm:0.19.9" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.8": - version: 0.19.8 - resolution: "@esbuild/win32-x64@npm:0.19.8" +"@esbuild/win32-x64@npm:0.19.9": + version: 0.19.9 + resolution: "@esbuild/win32-x64@npm:0.19.9" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1953,10 +1955,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.55.0": - version: 8.55.0 - resolution: "@eslint/js@npm:8.55.0" - checksum: 88ab9fc57a651becd2b32ec40a3958db27fae133b1ae77bebd733aa5bbd00a92f325bb02f20ad680d31c731fa49b22f060a4777dd52eb3e27da013d940bd978d +"@eslint/js@npm:8.56.0": + version: 8.56.0 + resolution: "@eslint/js@npm:8.56.0" + checksum: 60b3a1cf240e2479cec9742424224465dc50e46d781da1b7f5ef240501b2d1202c225bd456207faac4b34a64f4765833345bc4ddffd00395e1db40fa8c426f5a languageName: node linkType: hard @@ -2086,14 +2088,14 @@ __metadata: languageName: node linkType: hard -"@mui/base@npm:5.0.0-beta.26": - version: 5.0.0-beta.26 - resolution: "@mui/base@npm:5.0.0-beta.26" +"@mui/base@npm:5.0.0-beta.27": + version: 5.0.0-beta.27 + resolution: "@mui/base@npm:5.0.0-beta.27" dependencies: - "@babel/runtime": "npm:^7.23.4" + "@babel/runtime": "npm:^7.23.5" "@floating-ui/react-dom": "npm:^2.0.4" - "@mui/types": "npm:^7.2.10" - "@mui/utils": "npm:^5.14.20" + "@mui/types": "npm:^7.2.11" + "@mui/utils": "npm:^5.15.0" "@popperjs/core": "npm:^2.11.8" clsx: "npm:^2.0.0" prop-types: "npm:^15.8.1" @@ -2104,22 +2106,22 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 8d04dc6c5674e89e2d3a1ee9b95e595cba9e006304dd52850dfadcc227f4b2acbcc309cf9c4e4e736667c665c113e70a780b45970e83bcc0da4136e15da81bb7 + checksum: 96ed311667f8771a337d9bd117efa24ca7b6a3d38478ad999b6e9a47dac646ce85737f18509b8e32e0ee3f6721c1e1407e39f5005b1d49feda5c2918284f4548 languageName: node linkType: hard -"@mui/core-downloads-tracker@npm:^5.14.20": - version: 5.14.20 - resolution: "@mui/core-downloads-tracker@npm:5.14.20" - checksum: 84b5f236e455ed4e255c64c86e5897d064425dc8640275b0690cddb229a29c6ff182fac1c771d3e7ae068c8fc439718c062e98a6299ff71d234217dd62a52643 +"@mui/core-downloads-tracker@npm:^5.15.0": + version: 5.15.0 + resolution: "@mui/core-downloads-tracker@npm:5.15.0" + checksum: 3b20e49909c24f64504573ee24f117ef7efb23df1000bcdefc48f588fc06292f8afff4537b0f4a559530c2ee41555e2c35fdcbc192572bf84843021d85b18373 languageName: node linkType: hard -"@mui/icons-material@npm:^5.14.19": - version: 5.14.19 - resolution: "@mui/icons-material@npm:5.14.19" +"@mui/icons-material@npm:^5.15.0": + version: 5.15.0 + resolution: "@mui/icons-material@npm:5.15.0" dependencies: - "@babel/runtime": "npm:^7.23.4" + "@babel/runtime": "npm:^7.23.5" peerDependencies: "@mui/material": ^5.0.0 "@types/react": ^17.0.0 || ^18.0.0 @@ -2127,20 +2129,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 1af1a14622795dae1b999b49dc27d8d9f32344ccd3bc73a3b9dbce3d8d7ad43e6aa93e100a58ae423c9404fcb91dbdeb7758bd94f5f4614a4843f649645a42a1 + checksum: 9f7536163e25586f40e66978859dc2f82fee3bd7eb5f7317983fb3e915069ee16553695f053b50df7614a3039b8a9b581698e228d9c2fa40b4b7721611fa669b languageName: node linkType: hard -"@mui/material@npm:^5.14.20": - version: 5.14.20 - resolution: "@mui/material@npm:5.14.20" +"@mui/material@npm:^5.15.0": + version: 5.15.0 + resolution: "@mui/material@npm:5.15.0" dependencies: - "@babel/runtime": "npm:^7.23.4" - "@mui/base": "npm:5.0.0-beta.26" - "@mui/core-downloads-tracker": "npm:^5.14.20" - "@mui/system": "npm:^5.14.20" - "@mui/types": "npm:^7.2.10" - "@mui/utils": "npm:^5.14.20" + "@babel/runtime": "npm:^7.23.5" + "@mui/base": "npm:5.0.0-beta.27" + "@mui/core-downloads-tracker": "npm:^5.15.0" + "@mui/system": "npm:^5.15.0" + "@mui/types": "npm:^7.2.11" + "@mui/utils": "npm:^5.15.0" "@types/react-transition-group": "npm:^4.4.9" clsx: "npm:^2.0.0" csstype: "npm:^3.1.2" @@ -2160,16 +2162,16 @@ __metadata: optional: true "@types/react": optional: true - checksum: f7ade5827b98050bb434b98d79ea77150ba99ed62fd94c91b37636698010d388a91b9f5eeae750b5e2bda2201b3a79e5bfe1820cde44f4b0d1f03d5250690853 + checksum: a650ac0fec2de40dcdfc880874e4102dd350cf304e04784db6bc7c8f3094d6a63fc57d2b6145f7f236a4de4c0bbfd3cbdfe2e0e388e8135f4acfb7a32c9346cb languageName: node linkType: hard -"@mui/private-theming@npm:^5.14.20": - version: 5.14.20 - resolution: "@mui/private-theming@npm:5.14.20" +"@mui/private-theming@npm:^5.15.0": + version: 5.15.0 + resolution: "@mui/private-theming@npm:5.15.0" dependencies: - "@babel/runtime": "npm:^7.23.4" - "@mui/utils": "npm:^5.14.20" + "@babel/runtime": "npm:^7.23.5" + "@mui/utils": "npm:^5.15.0" prop-types: "npm:^15.8.1" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 @@ -2177,15 +2179,15 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: b89ae2265b814c7283c6985a8e14dbe9987fd51e7d42d2adedff1d49c564fb9493c5a9ae465b1772b612a4526fcb42d5b9c256411f9ff61f1799f20e428023e3 + checksum: f48764668073b5b5c6d9b82243de1ecca8942ccfd8fcf1b5c1ee1725f2b38dbac5b6f0ba393ed71febc4663a4b930b99bc494d45514a4ba41e09a1be427fc1f4 languageName: node linkType: hard -"@mui/styled-engine@npm:^5.14.19": - version: 5.14.20 - resolution: "@mui/styled-engine@npm:5.14.20" +"@mui/styled-engine@npm:^5.15.0": + version: 5.15.0 + resolution: "@mui/styled-engine@npm:5.15.0" dependencies: - "@babel/runtime": "npm:^7.23.4" + "@babel/runtime": "npm:^7.23.5" "@emotion/cache": "npm:^11.11.0" csstype: "npm:^3.1.2" prop-types: "npm:^15.8.1" @@ -2198,19 +2200,19 @@ __metadata: optional: true "@emotion/styled": optional: true - checksum: 995800350a54b139d4ebd7c8695b54da11078b044fec700dc5f6d32facd89c09038bcd60795b396b249558b0ece4f6d0600e6951d319341eb84db1b10ec078a4 + checksum: a66aaa139cf93c04b51ab8fad688390c84667745da768c857d60429d26a71260471f915b357f88511aca79d71166eab913196ea0c2cf020f187694e709c0d827 languageName: node linkType: hard -"@mui/system@npm:^5.14.20": - version: 5.14.20 - resolution: "@mui/system@npm:5.14.20" +"@mui/system@npm:^5.15.0": + version: 5.15.0 + resolution: "@mui/system@npm:5.15.0" dependencies: - "@babel/runtime": "npm:^7.23.4" - "@mui/private-theming": "npm:^5.14.20" - "@mui/styled-engine": "npm:^5.14.19" - "@mui/types": "npm:^7.2.10" - "@mui/utils": "npm:^5.14.20" + "@babel/runtime": "npm:^7.23.5" + "@mui/private-theming": "npm:^5.15.0" + "@mui/styled-engine": "npm:^5.15.0" + "@mui/types": "npm:^7.2.11" + "@mui/utils": "npm:^5.15.0" clsx: "npm:^2.0.0" csstype: "npm:^3.1.2" prop-types: "npm:^15.8.1" @@ -2226,27 +2228,27 @@ __metadata: optional: true "@types/react": optional: true - checksum: cd3c49c62d9769a227d7597190ca8a2625f779518c7c7c7b7a0b01aa4ba6a06c181c07b7fd9834808f376f6a48d2852c3c0075f6d8022ecf4d4d220e4f970e78 + checksum: 25c27a1c1ca8156f231dbd61fd43d517b4131d4dd6d0907d5952d524177eccea3fc67b0e42ef612fc02d3739cf02a85b2fc3d17b3e77a6f274409162521397c9 languageName: node linkType: hard -"@mui/types@npm:^7.2.10": - version: 7.2.10 - resolution: "@mui/types@npm:7.2.10" +"@mui/types@npm:^7.2.11": + version: 7.2.11 + resolution: "@mui/types@npm:7.2.11" peerDependencies: "@types/react": ^17.0.0 || ^18.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 59c8162812581cd1021d319e8828f6220723ffceb13609a99b1ffee6943f81ab07291cc3837c28776ca919dbe74c6416b2014c10e16b19135ff94a80ad7d3270 + checksum: 5aecdd9b02ca4537d05ec1809a31e64a3330dc104509bc470ec8e38a00259d36faf2dadee828987b385dff46fbec6fe112ef3a5c0c1b78e60c56755af04d38fa languageName: node linkType: hard -"@mui/utils@npm:^5.14.16, @mui/utils@npm:^5.14.20": - version: 5.14.20 - resolution: "@mui/utils@npm:5.14.20" +"@mui/utils@npm:^5.14.16, @mui/utils@npm:^5.15.0": + version: 5.15.0 + resolution: "@mui/utils@npm:5.15.0" dependencies: - "@babel/runtime": "npm:^7.23.4" + "@babel/runtime": "npm:^7.23.5" "@types/prop-types": "npm:^15.7.11" prop-types: "npm:^15.8.1" react-is: "npm:^18.2.0" @@ -2256,13 +2258,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 2a40c24e0e50c398b4150bbfa800c9eb9c2e35493f508c7daf244d22e1ec8dd2621879567028c3170318daee057bc9db9b7af492be707aaf9bb5b2bfc3b6660f + checksum: a80f43520e116b79d06b59012c957eb97a69fb96f66b845c9e61677e658e49ace0d6c5db97a22abc0a140455f37c0af100a2175d68373b7d8e1983cc10f3d61f languageName: node linkType: hard -"@mui/x-data-grid@npm:^6.18.4": - version: 6.18.4 - resolution: "@mui/x-data-grid@npm:6.18.4" +"@mui/x-data-grid@npm:^6.18.5": + version: 6.18.5 + resolution: "@mui/x-data-grid@npm:6.18.5" dependencies: "@babel/runtime": "npm:^7.23.2" "@mui/utils": "npm:^5.14.16" @@ -2274,7 +2276,7 @@ __metadata: "@mui/system": ^5.4.1 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 - checksum: 649e18d9585d9c8f459c75889f7829f819dee00e48a0371a3f3ff8c306bb2ebae4cce2e0b5cd9fdc69c6313043a35c4f6bfb3edc1d2e8be7856f7b7679a99ad4 + checksum: 6d5ab179730ddba02190296bf5c0b986324abe77e540ccff00ec3b8387bfd36edb3115e611636638f2c5f2d1a011539ee1ebd86770f1ea3306dd345e21a14304 languageName: node linkType: hard @@ -2350,10 +2352,10 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.13.1": - version: 1.13.1 - resolution: "@remix-run/router@npm:1.13.1" - checksum: 2f8c213dd0f1ebc0c2c1357badf6e1a65a42c40d38558f5e5085fbe7b144439eb326955d97ae0b2505f95ec8defa77a2492d44f5b10f351a0a90a50758169a22 +"@remix-run/router@npm:1.14.0": + version: 1.14.0 + resolution: "@remix-run/router@npm:1.14.0" + checksum: 1a64439087ed77b4eec804f55ba9bbb63275eb756f0c6ef8cfa7d92609e29bb8d87d03f3b5446586130d12d2bd59f799baed167044ee80f6dce5456609c317d4 languageName: node linkType: hard @@ -2390,101 +2392,101 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.7.0" +"@rollup/rollup-android-arm-eabi@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-android-arm64@npm:4.7.0" +"@rollup/rollup-android-arm64@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-android-arm64@npm:4.9.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.7.0" +"@rollup/rollup-darwin-arm64@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.9.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.7.0" +"@rollup/rollup-darwin-x64@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.9.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.7.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.1" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.7.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.7.0" +"@rollup/rollup-linux-arm64-musl@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.7.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.7.0" +"@rollup/rollup-linux-x64-gnu@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.7.0" +"@rollup/rollup-linux-x64-musl@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.7.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.7.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.7.0": - version: 4.7.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.7.0" +"@rollup/rollup-win32-x64-msvc@npm:4.9.1": + version: 4.9.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@rushstack/eslint-patch@npm:^1.1.0": - version: 1.6.0 - resolution: "@rushstack/eslint-patch@npm:1.6.0" - checksum: 623fcc4637193864f1c90185b32a4d55d4e4408604cf7f927f445bdb08e7ec4396eb7a6b9a528d474b9f2c7363a08366d1a26cd50ea0ba18dd0083f7224f0042 + version: 1.6.1 + resolution: "@rushstack/eslint-patch@npm:1.6.1" + checksum: 194ffb605cde00c567fe7a5025e221433a61d871d366a9558525b867f073d2d3ddb4d6bd44cf8f05edabfb37a0b99ce128230e0a367d7af2c3b1db90d02b873f languageName: node linkType: hard @@ -2665,97 +2667,97 @@ __metadata: languageName: node linkType: hard -"@tauri-apps/api@npm:1.5.1": - version: 1.5.1 - resolution: "@tauri-apps/api@npm:1.5.1" - checksum: f2848c0e71b70154bd5d06f454f9e7cbe1e76bdd880842f1f79cbbbaa80ab89e47b631a2789aef8af9ae721cd3e5277501868298a2a76ff6c50f065449df1d99 +"@tauri-apps/api@npm:^1.5.2": + version: 1.5.2 + resolution: "@tauri-apps/api@npm:1.5.2" + checksum: cab24ce689c7333eecbc26205127414adc2fb11aa3ee07253411ac53664f7d9f598ff74f4489484b39d9c6455d5a37584edc90bed2be3f7d8a26dcb620129868 languageName: node linkType: hard -"@tauri-apps/cli-darwin-arm64@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-darwin-arm64@npm:1.5.7" +"@tauri-apps/cli-darwin-arm64@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-darwin-arm64@npm:1.5.8" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@tauri-apps/cli-darwin-x64@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-darwin-x64@npm:1.5.7" +"@tauri-apps/cli-darwin-x64@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-darwin-x64@npm:1.5.8" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.7" +"@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-arm-gnueabihf@npm:1.5.8" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@tauri-apps/cli-linux-arm64-gnu@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-linux-arm64-gnu@npm:1.5.7" +"@tauri-apps/cli-linux-arm64-gnu@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-arm64-gnu@npm:1.5.8" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@tauri-apps/cli-linux-arm64-musl@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-linux-arm64-musl@npm:1.5.7" +"@tauri-apps/cli-linux-arm64-musl@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-arm64-musl@npm:1.5.8" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@tauri-apps/cli-linux-x64-gnu@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-linux-x64-gnu@npm:1.5.7" +"@tauri-apps/cli-linux-x64-gnu@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-x64-gnu@npm:1.5.8" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@tauri-apps/cli-linux-x64-musl@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-linux-x64-musl@npm:1.5.7" +"@tauri-apps/cli-linux-x64-musl@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-linux-x64-musl@npm:1.5.8" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@tauri-apps/cli-win32-arm64-msvc@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-win32-arm64-msvc@npm:1.5.7" +"@tauri-apps/cli-win32-arm64-msvc@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-win32-arm64-msvc@npm:1.5.8" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@tauri-apps/cli-win32-ia32-msvc@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-win32-ia32-msvc@npm:1.5.7" +"@tauri-apps/cli-win32-ia32-msvc@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-win32-ia32-msvc@npm:1.5.8" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@tauri-apps/cli-win32-x64-msvc@npm:1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli-win32-x64-msvc@npm:1.5.7" +"@tauri-apps/cli-win32-x64-msvc@npm:1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli-win32-x64-msvc@npm:1.5.8" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@tauri-apps/cli@npm:^1.5.7": - version: 1.5.7 - resolution: "@tauri-apps/cli@npm:1.5.7" +"@tauri-apps/cli@npm:^1.5.8": + version: 1.5.8 + resolution: "@tauri-apps/cli@npm:1.5.8" dependencies: - "@tauri-apps/cli-darwin-arm64": "npm:1.5.7" - "@tauri-apps/cli-darwin-x64": "npm:1.5.7" - "@tauri-apps/cli-linux-arm-gnueabihf": "npm:1.5.7" - "@tauri-apps/cli-linux-arm64-gnu": "npm:1.5.7" - "@tauri-apps/cli-linux-arm64-musl": "npm:1.5.7" - "@tauri-apps/cli-linux-x64-gnu": "npm:1.5.7" - "@tauri-apps/cli-linux-x64-musl": "npm:1.5.7" - "@tauri-apps/cli-win32-arm64-msvc": "npm:1.5.7" - "@tauri-apps/cli-win32-ia32-msvc": "npm:1.5.7" - "@tauri-apps/cli-win32-x64-msvc": "npm:1.5.7" + "@tauri-apps/cli-darwin-arm64": "npm:1.5.8" + "@tauri-apps/cli-darwin-x64": "npm:1.5.8" + "@tauri-apps/cli-linux-arm-gnueabihf": "npm:1.5.8" + "@tauri-apps/cli-linux-arm64-gnu": "npm:1.5.8" + "@tauri-apps/cli-linux-arm64-musl": "npm:1.5.8" + "@tauri-apps/cli-linux-x64-gnu": "npm:1.5.8" + "@tauri-apps/cli-linux-x64-musl": "npm:1.5.8" + "@tauri-apps/cli-win32-arm64-msvc": "npm:1.5.8" + "@tauri-apps/cli-win32-ia32-msvc": "npm:1.5.8" + "@tauri-apps/cli-win32-x64-msvc": "npm:1.5.8" dependenciesMeta: "@tauri-apps/cli-darwin-arm64": optional: true @@ -2779,7 +2781,7 @@ __metadata: optional: true bin: tauri: tauri.js - checksum: 238a26c437750454929a56bb134466b5c848e477cc585e226e54d1367cb0b1c5af4c010a69ca6c19daf55b35bb737d01f1c36339b1e99a90d5f2ba7fe999a09a + checksum: c90ca5da89cbecfbf5c3b62b64400420b564e60ce1fa8cf210d21236fdbc53ecf12b67155fa31ef29f8dc7e453d5e4eb24d0cdb76a674b96c9b134ca8d5dd623 languageName: node linkType: hard @@ -2797,11 +2799,11 @@ __metadata: linkType: hard "@types/babel__generator@npm:*": - version: 7.6.7 - resolution: "@types/babel__generator@npm:7.6.7" + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" dependencies: "@babel/types": "npm:^7.0.0" - checksum: 2427203864ef231857e102eeb32b731a419164863983119cdd4dac9f1503c2831eb4262d05ade95d4574aa410b94c16e54e36a616758452f685a34881f4596d9 + checksum: f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2 languageName: node linkType: hard @@ -2825,12 +2827,12 @@ __metadata: linkType: hard "@types/eslint@npm:^8.4.5": - version: 8.44.8 - resolution: "@types/eslint@npm:8.44.8" + version: 8.44.9 + resolution: "@types/eslint@npm:8.44.9" dependencies: "@types/estree": "npm:*" "@types/json-schema": "npm:*" - checksum: 610966753add984f6ac9f00eeb766691e141e66a7e20b724a45ad077f60e8cd8fd7874b7e655e93537e54873cc5711cd6f57728474e08b478407cd942f098263 + checksum: e9da4e4c7b7c9014b17d40007e36f02f3b5dd55c43bb05928b52dd9c19f2a8fb7971a851a4e7a11625c3c69da286c5baf55de2f8bb900b1a4cfb5145a4491b37 languageName: node linkType: hard @@ -2879,13 +2881,13 @@ __metadata: linkType: hard "@types/react@npm:*": - version: 18.2.43 - resolution: "@types/react@npm:18.2.43" + version: 18.2.45 + resolution: "@types/react@npm:18.2.45" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10477a50fbd3c0cc5b8a2ade679f442717f68fb27c8460b2aa1d3256cd18c48f742bbe5b9ee37a8c4c5f832ffa37b3a23c09fd96dd880a8e3182d8929c05e803 + checksum: 4cc650c47ffb88baac29fb7a74e842e4af4a55f437086ef70250fdc75f0a5f2fcf8adc272d05ab2e00b1de6e14613296881271caee037dadf9130fdeb498c59e languageName: node linkType: hard @@ -3089,27 +3091,28 @@ __metadata: "@emotion/react": "npm:^11.11.1" "@emotion/styled": "npm:^11.11.0" "@fontsource/roboto": "npm:^5.0.8" - "@mui/icons-material": "npm:^5.14.19" - "@mui/material": "npm:^5.14.20" - "@mui/system": "npm:^5.14.20" - "@mui/x-data-grid": "npm:^6.18.4" + "@mui/icons-material": "npm:^5.15.0" + "@mui/material": "npm:^5.15.0" + "@mui/system": "npm:^5.15.0" + "@mui/x-data-grid": "npm:^6.18.5" "@shopify/react-web-worker": "npm:^5.0.13" - "@tauri-apps/api": "npm:1.5.1" - "@tauri-apps/cli": "npm:^1.5.7" + "@tauri-apps/api": "npm:^1.5.2" + "@tauri-apps/cli": "npm:^1.5.8" "@vitejs/plugin-react": "npm:^4.2.1" cross-env: "npm:^7.0.3" crypto-js: "npm:^4.2.0" - eslint: "npm:^8.55.0" + eslint: "npm:^8.56.0" eslint-config-airbnb: "npm:^19.0.4" eslint-config-react-app: "npm:^7.0.1" - eslint-plugin-import: "npm:^2.29.0" + eslint-plugin-import: "npm:^2.29.1" eslint-plugin-jsx-a11y: "npm:^6.8.0" eslint-plugin-react: "npm:^7.33.2" eslint-plugin-react-hooks: "npm:^4.6.0" + graphemer: "npm:^1.4.0" react: "npm:^18.2.0" react-dom: "npm:^18.2.0" - react-router-dom: "npm:^6.20.1" - vite: "npm:^5.0.7" + react-router-dom: "npm:^6.21.0" + vite: "npm:^5.0.10" vite-plugin-eslint: "npm:^1.8.1" vite-plugin-svgr: "npm:^4.2.0" languageName: unknown @@ -3347,38 +3350,38 @@ __metadata: linkType: hard "babel-plugin-polyfill-corejs2@npm:^0.4.6": - version: 0.4.6 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" + version: 0.4.7 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" dependencies: "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 64a98811f343492aa6970ab253760194e389c0417e5b830522f944009c1f0c78e1251975fd1b9869cd48cc4623111b20a3389cf6732a1d10ba0d19de6fa5114f + checksum: f80f7284ec72c63e7dd751e0bdf25e9978df195a79e0887470603bfdea13ee518d62573cf360bb1bc01b80819e54915dd5edce9cff14c52d0af5f984aa3d36a3 languageName: node linkType: hard "babel-plugin-polyfill-corejs3@npm:^0.8.5": - version: 0.8.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.6" + version: 0.8.7 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" core-js-compat: "npm:^3.33.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 97d974c1dfbefdf27866e21a1ac757f6ab1626379b544d6f8ddb05f7bfa02173f8347b6140295b0f770394549f9321775d3048e466a9a02b99b88ad5f0346858 + checksum: 094e40f4ab9f131408202063964d63740609fd4fdb70a5b6332b371761921b540ffbcee7a434c0199b8317dfb2ba4675eef674867215fd3b85e24054607c1501 languageName: node linkType: hard "babel-plugin-polyfill-regenerator@npm:^0.5.3": - version: 0.5.3 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3" + version: 0.5.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: cc32313b9ebbf1d7bedc33524a861136b9e5d3b6e9be317ac360a1c2a59ae5ed1b465a6c68b2715cdefb089780ddfb0c11f4a148e49827a947beee76e43da598 + checksum: 0b903f5fe2f8c487b4260935dfe60bd9a95bcaee7ae63958f063045093b16d4e8288c232199d411261300aa21f6b106a3cb83c42cc996de013b337f5825a79fe languageName: node linkType: hard @@ -3448,7 +3451,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.9, browserslist@npm:^4.22.2": +"browserslist@npm:^4.22.2": version: 4.22.2 resolution: "browserslist@npm:4.22.2" dependencies: @@ -3508,9 +3511,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001565": - version: 1.0.30001566 - resolution: "caniuse-lite@npm:1.0.30001566" - checksum: cd163075b1a9feaf9c9f657c3551279fcdac471471d67ee57ab2286c7b5480168e6336e359741b469fa40e94716f0f95ec185d87bd57d58894d66d8c21d7db04 + version: 1.0.30001570 + resolution: "caniuse-lite@npm:1.0.30001570" + checksum: e47230d2016edea56e002fa462a5289f697b48dcfbf703fb01aecc6c98ad4ecaf945ab23c253cb7af056c2d05f266e4e4cbebf45132100e2c9367439cb95b95b languageName: node linkType: hard @@ -3699,7 +3702,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -3811,9 +3814,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.601": - version: 1.4.609 - resolution: "electron-to-chromium@npm:1.4.609" - checksum: 9675a79388acbaff5953a4c61589af7da93e0d1f9d6a3b284c7630f10126eb0998557b07448514214d5a3d19025310039b55f405ab701b1253130fc94907f743 + version: 1.4.614 + resolution: "electron-to-chromium@npm:1.4.614" + checksum: 2cc4209c5f5794be069d74a4aa9b0849fba3570d06f981dbe41d626b0cc88cfbf8b9aae47b033e67370f477ce49168b4d4324c7c518ee28012e8430b65c5fe84 languageName: node linkType: hard @@ -3971,31 +3974,31 @@ __metadata: linkType: hard "esbuild@npm:^0.19.3": - version: 0.19.8 - resolution: "esbuild@npm:0.19.8" - dependencies: - "@esbuild/android-arm": "npm:0.19.8" - "@esbuild/android-arm64": "npm:0.19.8" - "@esbuild/android-x64": "npm:0.19.8" - "@esbuild/darwin-arm64": "npm:0.19.8" - "@esbuild/darwin-x64": "npm:0.19.8" - "@esbuild/freebsd-arm64": "npm:0.19.8" - "@esbuild/freebsd-x64": "npm:0.19.8" - "@esbuild/linux-arm": "npm:0.19.8" - "@esbuild/linux-arm64": "npm:0.19.8" - "@esbuild/linux-ia32": "npm:0.19.8" - "@esbuild/linux-loong64": "npm:0.19.8" - "@esbuild/linux-mips64el": "npm:0.19.8" - "@esbuild/linux-ppc64": "npm:0.19.8" - "@esbuild/linux-riscv64": "npm:0.19.8" - "@esbuild/linux-s390x": "npm:0.19.8" - "@esbuild/linux-x64": "npm:0.19.8" - "@esbuild/netbsd-x64": "npm:0.19.8" - "@esbuild/openbsd-x64": "npm:0.19.8" - "@esbuild/sunos-x64": "npm:0.19.8" - "@esbuild/win32-arm64": "npm:0.19.8" - "@esbuild/win32-ia32": "npm:0.19.8" - "@esbuild/win32-x64": "npm:0.19.8" + version: 0.19.9 + resolution: "esbuild@npm:0.19.9" + dependencies: + "@esbuild/android-arm": "npm:0.19.9" + "@esbuild/android-arm64": "npm:0.19.9" + "@esbuild/android-x64": "npm:0.19.9" + "@esbuild/darwin-arm64": "npm:0.19.9" + "@esbuild/darwin-x64": "npm:0.19.9" + "@esbuild/freebsd-arm64": "npm:0.19.9" + "@esbuild/freebsd-x64": "npm:0.19.9" + "@esbuild/linux-arm": "npm:0.19.9" + "@esbuild/linux-arm64": "npm:0.19.9" + "@esbuild/linux-ia32": "npm:0.19.9" + "@esbuild/linux-loong64": "npm:0.19.9" + "@esbuild/linux-mips64el": "npm:0.19.9" + "@esbuild/linux-ppc64": "npm:0.19.9" + "@esbuild/linux-riscv64": "npm:0.19.9" + "@esbuild/linux-s390x": "npm:0.19.9" + "@esbuild/linux-x64": "npm:0.19.9" + "@esbuild/netbsd-x64": "npm:0.19.9" + "@esbuild/openbsd-x64": "npm:0.19.9" + "@esbuild/sunos-x64": "npm:0.19.9" + "@esbuild/win32-arm64": "npm:0.19.9" + "@esbuild/win32-ia32": "npm:0.19.9" + "@esbuild/win32-x64": "npm:0.19.9" dependenciesMeta: "@esbuild/android-arm": optional: true @@ -4043,7 +4046,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 57d7d0bc40965bdd9d4c2d76d7f9b8890c59d764e2e3820d3b01af03b6187a90efc0acf05ec900d66672c15760d7377bd22d9330d302fecc492b27065c6941a6 + checksum: 85cf167596f52ec5cde47ec27013d49f04e3052e6b00cd4534095cd74a776955040b03b326d54a9588921dc631f76b97ebda76b52bb5152f3ef4a45cfba81dca languageName: node linkType: hard @@ -4161,9 +4164,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.25.3, eslint-plugin-import@npm:^2.29.0": - version: 2.29.0 - resolution: "eslint-plugin-import@npm:2.29.0" +"eslint-plugin-import@npm:^2.25.3, eslint-plugin-import@npm:^2.29.1": + version: 2.29.1 + resolution: "eslint-plugin-import@npm:2.29.1" dependencies: array-includes: "npm:^3.1.7" array.prototype.findlastindex: "npm:^1.2.3" @@ -4181,10 +4184,10 @@ __metadata: object.groupby: "npm:^1.0.1" object.values: "npm:^1.1.7" semver: "npm:^6.3.1" - tsconfig-paths: "npm:^3.14.2" + tsconfig-paths: "npm:^3.15.0" peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 761a4e1fbc2cd318e62350bed4c448f8b11ed83091d6bb7776f096556363a09debd9922b39fd2714c895edc9aaea82e08e684eb632283f880c58a91e4bae6733 + checksum: 5f35dfbf4e8e67f741f396987de9504ad125c49f4144508a93282b4ea0127e052bde65ab6def1f31b6ace6d5d430be698333f75bdd7dca3bc14226c92a083196 languageName: node linkType: hard @@ -4311,14 +4314,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.55.0": - version: 8.55.0 - resolution: "eslint@npm:8.55.0" +"eslint@npm:^8.56.0": + version: 8.56.0 + resolution: "eslint@npm:8.56.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.55.0" + "@eslint/js": "npm:8.56.0" "@humanwhocodes/config-array": "npm:^0.11.13" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" @@ -4355,7 +4358,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: d28c0b60f19bb7d355cb8393e77b018c8f548dba3f820b799c89bb2e0c436ee26084e700c5e57e1e97e7972ec93065277849141b82e7b0c0d02c2dc1e553a2a1 + checksum: 2be598f7da1339d045ad933ffd3d4742bee610515cd2b0d9a2b8b729395a01d4e913552fff555b559fccaefd89d7b37632825789d1b06470608737ae69ab43fb languageName: node linkType: hard @@ -4692,11 +4695,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.23.0 - resolution: "globals@npm:13.23.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: "npm:^0.20.2" - checksum: fc05e184b3be59bffa2580f28551a12a758c3a18df4be91444202982c76f13f52821ad54ffaf7d3f2a4d2498fdf54aeaca8d4540fd9e860a9edb09d34ef4c507 + checksum: d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd languageName: node linkType: hard @@ -5971,27 +5974,27 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.20.1": - version: 6.20.1 - resolution: "react-router-dom@npm:6.20.1" +"react-router-dom@npm:^6.21.0": + version: 6.21.0 + resolution: "react-router-dom@npm:6.21.0" dependencies: - "@remix-run/router": "npm:1.13.1" - react-router: "npm:6.20.1" + "@remix-run/router": "npm:1.14.0" + react-router: "npm:6.21.0" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 85d94fe4d21120c8782030cb94546a2a59cf057583dceb8e9a7f804655680af9488f4438533e0e5a128412e5c2dcac8c17b934907a7669085fdca19ec6bd5123 + checksum: 635b233dd993599954f82fba9f4baa915061a75bfac79fff142aecdfa4ed418efd7de32e0455b50715fc11250951f049bbd3ead4cb55cfe09fe35c1948717359 languageName: node linkType: hard -"react-router@npm:6.20.1": - version: 6.20.1 - resolution: "react-router@npm:6.20.1" +"react-router@npm:6.21.0": + version: 6.21.0 + resolution: "react-router@npm:6.21.0" dependencies: - "@remix-run/router": "npm:1.13.1" + "@remix-run/router": "npm:1.14.0" peerDependencies: react: ">=16.8" - checksum: 5249f42048633fef42361e08b6fb879e6a575415ac3068a0805ae5464fec998a3149ca262cc1939ae8f4607ee24caa6ec0623c0fef702f1d323faba4a5f87d53 + checksum: ff499df6994353b79ddd4abf35004c4dce944668fa16b18896a72ba255447d3f5ca50018d90f3034abbe08b87a5757141b09144f8eb17e4f375d8850373a11c3 languageName: node linkType: hard @@ -6050,9 +6053,9 @@ __metadata: linkType: hard "regenerator-runtime@npm:^0.14.0": - version: 0.14.0 - resolution: "regenerator-runtime@npm:0.14.0" - checksum: e25f062c1a183f81c99681691a342760e65c55e8d3a4d4fe347ebe72433b123754b942b70b622959894e11f8a9131dc549bd3c9a5234677db06a4af42add8d12 + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 languageName: node linkType: hard @@ -6207,22 +6210,22 @@ __metadata: linkType: hard "rollup@npm:^4.2.0": - version: 4.7.0 - resolution: "rollup@npm:4.7.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.7.0" - "@rollup/rollup-android-arm64": "npm:4.7.0" - "@rollup/rollup-darwin-arm64": "npm:4.7.0" - "@rollup/rollup-darwin-x64": "npm:4.7.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.7.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.7.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.7.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.7.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.7.0" - "@rollup/rollup-linux-x64-musl": "npm:4.7.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.7.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.7.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.7.0" + version: 4.9.1 + resolution: "rollup@npm:4.9.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.9.1" + "@rollup/rollup-android-arm64": "npm:4.9.1" + "@rollup/rollup-darwin-arm64": "npm:4.9.1" + "@rollup/rollup-darwin-x64": "npm:4.9.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.9.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.9.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.9.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.9.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.9.1" + "@rollup/rollup-linux-x64-musl": "npm:4.9.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.9.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.9.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.9.1" fsevents: "npm:~2.3.2" dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -6255,7 +6258,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 1226252168e701aa50d8e71fc42f0561f16388b83f224fdf48aea20784143a668c897c5a8f80dc15f684fab4ece689f9d99ac3e3deab02d6b9d5dd1637b38428 + checksum: fdc76d496583bd916da773522a4949326373c2df55520fc40a56e61f10b16e5214dbeec1947ca13e07f80c0a1a2975ba71ea9bc48d298cda3ee17deaff9aacf6 languageName: node linkType: hard @@ -6639,15 +6642,15 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.2": - version: 3.14.2 - resolution: "tsconfig-paths@npm:3.14.2" +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" dependencies: "@types/json5": "npm:^0.0.29" json5: "npm:^1.0.2" minimist: "npm:^1.2.6" strip-bom: "npm:^3.0.0" - checksum: fdc92bb7b18b31c0e76f8ec4f98d07236b09590fd6578e587ad024792c8b2235d65125a8fd007fa47a84400f84ceccbf33f24e5198d953249e7204f4cef3517c + checksum: 5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5 languageName: node linkType: hard @@ -6850,9 +6853,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.7": - version: 5.0.7 - resolution: "vite@npm:5.0.7" +"vite@npm:^5.0.10": + version: 5.0.10 + resolution: "vite@npm:5.0.10" dependencies: esbuild: "npm:^0.19.3" fsevents: "npm:~2.3.3" @@ -6886,7 +6889,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: ae3a54bcb7933bc1420c54f7d72dfa88b80e53557e7de19dee018d5e8e2545d967bcbd6af48fa96dd132229f25334ff61df42621c034fe8275d9076dadb3ad7f + checksum: d666b2760d2a7ea1d0d35f67c042053e562144f80554be4e4dc58e607fd5f62193cd203d73ab2e315df66830d8b9d9a2e3509d0208bdef1b2e92e0a5c364df84 languageName: node linkType: hard